Bug#544592: linux-image-2.6.30-1-686: sometimes failed to boot
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?
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
$ grep -i "0x105a\|0x0d30" /usr/src/linux/include/linux/pci_ids.h | sort
#define PCI_DEVICE_ID_PROMISE_20265 0x0d30
#define PCI_VENDOR_ID_PROMISE 0x105a
$ grep -Rl "PCI_DEVICE_ID_PROMISE_20265\|PCI_VENDOR_ID_PROMISE" \
/usr/src/linux
/usr/src/linux/arch/powerpc/platforms/powermac/pci.c
/usr/src/linux/drivers/ata/pata_pdc202xx_old.c
/usr/src/linux/drivers/block/sx8.c
/usr/src/linux/drivers/ide/pdc202xx_old.c
/usr/src/linux/drivers/message/i2o/pci.c
/usr/src/linux/include/linux/pci_ids.h
in file /usr/src/linux/drivers/ata/pata_pdc202xx_old.c I have found:
static const struct pci_device_id pdc202xx[]
in file /usr/src/linux/drivers/ide/pdc202xx_old.c I have found:
static const struct pci_device_id pdc202xx_pci_tbl[] = {
$ find /usr/src/linux/ -type f -name Makefile | xargs grep pdc202xx \
| grep CONFIG_ | sed "s/\/usr\/src\/linux\///"
drivers/ata/Makefile:obj-$(CONFIG_PATA_PDC_OLD) += pata_pdc202xx_old.o
drivers/ide/Makefile:obj-$(CONFIG_BLK_DEV_PDC202XX_OLD) += pdc202xx_old.o
drivers/ide/Makefile:obj-$(CONFIG_BLK_DEV_PDC202XX_NEW) += pdc202xx_new.o
$ 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
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). When busybox appear I see the same problem
(directory /dev/disk/by-id is missing).
$ grep "SCSI_WAIT_SCAN" /boot/config-2.6.30-custom CONFIG_SCSI_WAIT_SCAN=m
$ grep "SCSI_WAIT_SCAN" /boot/config-2.6.30-1-686
CONFIG_SCSI_WAIT_SCAN=m
I have done some wrong steps?
What else could I have done wrong?
Many thanks for your help
Ciao
Davide
--
Dizionari: http://linguistico.sourceforge.net/wiki
Perché microsoft continua a compiere azioni illegali?:
http://linguistico.sf.net/wiki/doku.php?id=traduzioni:ms_illegal
GNU/Linux User: 302090: http://counter.li.org
Non autorizzo la memorizzazione del mio indirizzo su outlook
Reply to: