On Thu, 2009-09-03 at 22:17 +0200, Davide Prina wrote:
> Ben Hutchings wrote:
> > On Tue, 2009-09-01 at 20:44 +0200, Davide Prina wrote:
> >> Package: linux-image-2.6.30-1-686
> >> Version: 2.6.30-6
> >> Severity: important
> > 
> > Are you actually using the above packaged kernel or a custom kernel?
> 
> normally I use a custom kernel.
> 
> >> sometimes the boot fail: after grub I see: "Loading, please wait ...", 
> >> but the hard disk is not used.
> >> After a while busybox appear; here I can see that /proc/cmdline try to 
> >> start something in directory /dev/disk/by-id, but this directory don't 
> >> exists.
> 
> > The problem there appeared to be that your custom kernel included two
> > different drivers that both supported your disk controller.  In this
> > case the kernel effectively chooses one driver at random.  In packaged
> > kernel images we try to avoid this by avoiding such duplication or
> > blacklisting alternate drivers by default.
> 
> I don't know that a module can cause these problems. I have always think 
> that a module is loaded only if needed and this process is deterministic.
> 
> How can you found when a module is a duplication of another one?

In general, grep for the device id string in modules.alias.

> I have done the following steps:
> 
> $ lspci
> [...]
> 00:11.0 Mass storage controller: Promise Technology, Inc. PDC20265 
> (FastTrak100 Lite/Ultra100) (rev 02)
> [...]
> 
> $ cat /sys/bus/pci/devices/0000\:00\:11.0/vendor
> 0x105a
> $ cat /sys/bus/pci/devices/0000\:00\:11.0/device
> 0x0d30

You can find drivers that claim this device using:

    grep pci:v0000105Ad00000D30 /lib/modules/$(uname -r)/modules.alias

[...]
> $ grep "CONFIG_PATA_PDC_OLD\|CONFIG_BLK_DEV_PDC202XX_OLD" \
>    /boot/config-2.6.30-1-686
> CONFIG_BLK_DEV_PDC202XX_OLD=m
> # CONFIG_PATA_PDC_OLD is not set
> 
> $ grep "CONFIG_PATA_PDC_OLD\|CONFIG_BLK_DEV_PDC202XX_OLD" \
>    /boot/config-2.6.30-1-custom
> CONFIG_BLK_DEV_PDC202XX_OLD=m
> CONFIG_PATA_PDC_OLD=m

As I suspected.

> I have recompiled and now I have
> $ grep "CONFIG_PATA_PDC_OLD\|CONFIG_BLK_DEV_PDC202XX_OLD" \
>    /boot/config-2.6.30-1-custom
> CONFIG_BLK_DEV_PDC202XX_OLD=m
> # CONFIG_PATA_PDC_OLD is not set
> 
> but still have problems. I noted that good boots have greatly increased 
> over bad boots (I have made few reboots and nearly all are good now).
> When I have a bad boot I have the message saying that it is impossible 
> to remove the SCSI_WAIT_SCAN module (I have disable the "module 
> unloading" option).
[...]

Reenable CONFIG_MODULE_UNLOAD and see if you can boot.

Ben.

-- 
Ben Hutchings
If at first you don't succeed, you're doing about average.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to