[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#803769: d-i hangs after "Detecting hardware" and emits E: Unimplemented function



Control: tags -1 patch
Control: retitle -1 d-i hangs at "Detecting network hardware" and emits "E: Unimplemented function"

On Fri, Nov 13, 2015 at 02:23:40PM +0100, Jonas Smedegaard wrote:
> Quoting Karsten Merker (2015-11-12 21:32:27)
> > Jonas Smedegaard <dr@jones.dk> wrote:
> > [d-i on an Allwinner A20-based Olimex LIME2]
> >> Board boots, asks for locale, and informs that it detects hardware, 
> >> but then (apparently) hangs, and after a little while emits this:
> >>
> >>  E: Unimplemented function
> >
> > Hello,
> >
> > several people seem to have had similar effects on different hardware, 
> > so it does not seem to be a problem that is specific to 
> > Allwinner-based systems. According to the following bugs/threads, 
> > possible candidates for the source of the issue could be the kernel or 
> > udev:
> >
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804351#45
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804351#50
> >
> > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803476
> >
> > https://lists.debian.org/debian-arm/2015/11/msg00021.html
> 
> Interesting!
> 
> The bisection in https://bugs.debian.org/803476#15 matches my more vague 
> tests: Success with Stretch debian-installer 20150911 and package 
> snapshot 20151002T213032Z which pulls udev-udeb 226-3.  Later snapshot 
> complains with kernel mismatch, and next debian-installer release 
> 20151023 is the one failing as reported here.
> 
> I will try test if debian-installer 20151023 works with an older package 
> snapshot (and, as mentioned before, get some debug info).

Hello,

it looks as if we have two separate issues here. One of them is a
bug in ethdetect, which should be fixed with the attached patch.
With this patch applied, the hang does not occur anymore, but d-i
doesn't detect any network interface either.  This in turn seems
to stem from missing modules, which is the result of a series of
upstream kernel changes to the stmmac driver that have split out
functionality from an existing module into different sub-modules:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=902b1607f4fd184de4d1518d19d377528207861e
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ba25020e2725308562d60f3d0247218b07a49b9f
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=69bdd2d40d1e5fd9f7b92d39d129a0d057daf5fd
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=40e6b0ba9183ae9fdab38e3e9fa852374aa3b6c5
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=e0fb4013c2f53cb67190366c4af8714f9c3d43a5
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=c7c52ae74f0bd3ae78d7db7898b52de4282b094c
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a3217988e1597335e1fd5a9d1e3c67c370cfc0fhttps://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2a3217988e1597335e1fd5a9d1e3c67c370cfc0f
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=4198b7db47b29a4fff8f77ccc94ce0208084f3fb

As a result, the installer nic-modules list in the Debian kernel
package needs to be adjusted accordingly.  I'll prepare a patch
for the kernel package, but I probably won't be able to actually
test it before tomorrow as building it takes quite some time on
my (comparatively slow) hardware.

Regards,
Karsten
-- 
Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
Werbung sowie der Markt- oder Meinungsforschung.
>From f83bfba86753a8c3ef9d65d83763847295e97f5a Mon Sep 17 00:00:00 2001
From: Karsten Merker <merker@debian.org>
Date: Fri, 13 Nov 2015 23:37:44 +0100
Subject: [PATCH] Fix a hang during ethdetect (bug #803769).

Commit 79ddda2d8e51776e8c66ef5b54c7ed0b41a241e3 (ethdetect:
Exclude PHY drivers from list of net drivers) replaced the
list_modules_dir() function with a direct find call, but kept
passing $1 (which is now undefined) as a path specifier to find.
Therefore find runs in the root directory instead of in the
network module directory and delivers wrong data to the follwing
parts of ethdetect.

Replace $1 in the find call with the actual module directory.
---
 ethdetect.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ethdetect.sh b/ethdetect.sh
index 0c36174..af52640 100755
--- a/ethdetect.sh
+++ b/ethdetect.sh
@@ -38,7 +38,7 @@ load_module() {
 }
 
 list_nic_modules() {
-	find $1 -name phy -prune -o -type f -print | sed 's/\.ko$//; s/.*\///'
+	find /lib/modules/*/kernel/drivers/net -name phy -prune -o -type f -print | sed 's/\.ko$//; s/.*\///'
 }
 
 snapshot_devs() {
-- 
2.6.2


Reply to: