Created attachment 360695 [details] serial console kernel messages during boot Description of problem: Dracut does not see a USB flash drive that is attached via CardBus (PCMCIA). I want to boot a USB2.0 flash drive as root on an old machine whose native USB hardware port is only USB1.0, and whose BIOS cannot boot from USB. So I attach the USB2.0 flash drive via a PCMCIA USB2.0 adapter, boot from CD using "root=live:LABEL=<label>", but I get "No root device found." If I do use the native USB1.0 hardware, then booting works but at the USB1.0 speed of only 12Mbit/s is slow. Version-Release number of selected component (if applicable): dracut-001-4.fc12.noarch How reproducible: every time Steps to Reproduce: 1. Attach USB2.0 flash drive using CardBus PCMCIA USB2.0 adapter. 2. Boot LiveCD with "root=live:LABEL=<label>" 3. Actual results: No root device found Expected results: Successful boot Additional info:
After a successful boot, via any means (root on LiveCD, live USB, installed harddrive), then the kernel has these devices: $ find /dev/disk by-label/King4 ## the USB flash drive by-label/SWAP-sda5 <<snip>> by-path/pci-0000:06:00.1-usb-0:3:1.0-scsi-0:0:0:0-part1 ## the USB flash drive by-path/pci-0000:06:00.1-usb-0:3:1.0-scsi-0:0:0:0 by-path/pci-0000:00:07.1-scsi-0:0:0:0-part1 ## the harddrive <<snip>> by-path/pci-0000:00:07.1-scsi-0:0:0:0 by-path/pci-0000:00:07.1-scsi-1:0:0:0 ## the CD drive $
USB2.0 flash drive via a PCMCIA USB2.0 adapter ... ok, which kernel modules are needed for that?
It looks like "yenta_socket" is the one on this machine. lsmod shows ----- Module Size Used by vfat 8600 1 fat 40628 1 vfat fuse 49460 2 sunrpc 155660 1 ip6t_REJECT 4532 2 nf_conntrack_ipv6 17732 2 ip6table_filter 3144 1 ip6_tables 10956 1 ip6table_filter ipv6 235656 22 ip6t_REJECT,nf_conntrack_ipv6 ext2 56596 1 dm_multipath 14036 0 uinput 6676 0 usb_storage 46644 1 dcdbas 8508 0 snd_maestro3 17844 1 snd_ac97_codec 91816 1 snd_maestro3 ac97_bus 1408 1 snd_ac97_codec snd_pcm 62796 2 snd_maestro3,snd_ac97_codec snd_timer 17864 1 snd_pcm joydev 9220 0 pcspkr 2168 0 snd 50336 6 snd_maestro3,snd_ac97_codec,snd_pcm,snd_timer i2c_piix4 11984 0 3c59x 36664 0 soundcore 5476 1 snd snd_page_alloc 7776 1 snd_pcm mii 4044 1 3c59x i2c_core 25024 1 i2c_piix4 video 18744 0 output 2476 1 video floppy 47252 0 yenta_socket 23512 3 rsrc_nonstatic 10068 1 yenta_socket ata_generic 4288 0 pata_acpi 3644 0 ----- "lspci; lspci -n" shows ----- 00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03) 00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) 00:03.0 CardBus bridge: Texas Instruments PCI1420 PC card Cardbus Controller 00:03.1 CardBus bridge: Texas Instruments PCI1420 PC card Cardbus Controller 00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02) 00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) 00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) 00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03) 00:08.0 Multimedia audio controller: ESS Technology ES1983S Maestro-3i PCI Audio Accelerator (rev 10) 00:10.0 Ethernet controller: 3Com Corporation 3c556 Hurricane CardBus [Cyclone] (rev 10) 00:10.1 Communication controller: 3Com Corporation Mini PCI 56k Winmodem (rev 10) 01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility M3 AGP 2x (rev 02) 06:00.0 USB Controller: NEC Corporation USB (rev 44) 06:00.1 USB Controller: NEC Corporation USB 2.0 (rev 05) 00:00.0 0600: 8086:7190 (rev 03) 00:01.0 0604: 8086:7191 (rev 03) 00:03.0 0607: 104c:ac51 00:03.1 0607: 104c:ac51 00:07.0 0680: 8086:7110 (rev 02) 00:07.1 0101: 8086:7111 (rev 01) 00:07.2 0c03: 8086:7112 (rev 01) 00:07.3 0680: 8086:7113 (rev 03) 00:08.0 0401: 125d:1998 (rev 10) 00:10.0 0200: 10b7:6055 (rev 10) 00:10.1 0780: 10b7:1007 (rev 10) 01:00.0 0300: 1002:4c46 (rev 02) 06:00.0 0c03: 1033:0035 (rev 44) 06:00.1 0c03: 1033:00e0 (rev 05) -----
And kernel module "rsrc_nonstatic", too.
For the advanced user, here is a scratch version to test: # rpm -e '*dracut*' --nodeps # rpm -ivh 'http://koji.fedoraproject.org/koji/getfile?taskID=1680533&name=dracut-001-10.git4d924752.fc12.noarch.rpm'
I have installed that rpm on my compose machine (the one that runs pungi+buildinstall to make the .isos). Do I also need to alter the recipe that pungi uses? Somehow pungi still puts dracut-001-9 onto the media. How do I change that?
Please test dracut-001-12.git0f7e10ce.fc12. Either wait for it to appear in rawhide or do: # yum install koji # cd $(mktemp -d) # koji download-build 132403 # rpm -Fvh *.rpm and recreate the image with # dracut /boot/<image> <kernel version> Note: in recent installs the <image> is named initramfs-<kernel version>.img
Created attachment 361589 [details] serial console kernel messages during boot That almost works, but in the end the label cannot be found. I booted with kernel and initramfs (written by new dracut) from harddrive [Grub], and tried to transfer to the USB2.0 root on PCMCIA: ----- Kernel command line: root=live:LABEL=King4 rootfstype=auto ro liveimg console=ttyS0,115200 console=tty0 ----- I see that the PCMCIA adapter is recognized: ----- yenta_cardbus 0000:00:03.0: CardBus bridge found [1028:00b0] yenta_cardbus 0000:00:03.0: Using CSCINT to route CSC interrupts to PCI yenta_cardbus 0000:00:03.0: Routing CardBus interrupts to PCI yenta_cardbus 0000:00:03.0: TI: mfunc 0x01261222, devctl 0x64 cdrom_id used greatest stack depth: 5632 bytes left scsi_id used greatest stack depth: 5280 bytes left yenta_cardbus 0000:00:03.0: ISA IRQ mask 0x04a8, PCI irq 11 yenta_cardbus 0000:00:03.0: Socket status: 30000006 yenta_cardbus 0000:00:03.1: CardBus bridge found [1028:00b0] yenta_cardbus 0000:00:03.1: Using CSCINT to route CSC interrupts to PCI yenta_cardbus 0000:00:03.1: Routing CardBus interrupts to PCI yenta_cardbus 0000:00:03.1: TI: mfunc 0x01261222, devctl 0x64 yenta_cardbus 0000:00:03.1: ISA IRQ mask 0x04a8, PCI irq 11 yenta_cardbus 0000:00:03.1: Socket status: 30000020 ----- I see that the USB2.0 EHCI controller is started. I see that the flash memory device is found: ----- usb 3-3: new high speed USB device using ehci_hcd and address 2 usb 3-3: New USB device found, idVendor=0951, idProduct=1603 usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 usb 3-3: Product: DataTraveler 2.0 usb 3-3: Manufacturer: Kingston usb 3-3: SerialNumber: 89900000000000006CB02B3B usb 3-3: configuration #1 chosen from 1 choice Initializing USB Mass Storage driver... scsi2 : SCSI emulation for USB Mass Storage devices usbcore: registered new interface driver usb-storage USB Mass Storage support registered. scsi 2:0:0:0: Direct-Access Kingston DataTraveler 2.0 1.00 PQ: 0 ANSI: 2 sd 2:0:0:0: Attached scsi generic sg2 type 0 sd 2:0:0:0: [sdb] 8089600 512-byte logical blocks: (4.14 GB/3.85 GiB) sd 2:0:0:0: [sdb] Write Protect is off sd 2:0:0:0: [sdb] Assuming drive cache: write through sd 2:0:0:0: [sdb] Assuming drive cache: write through sdb: sdb1 sd 2:0:0:0: [sdb] Assuming drive cache: write through sd 2:0:0:0: [sdb] Attached SCSI removable disk squashfs: version 4.0 (2009/01/31) Phillip Lougher ----- But then "WARNING: Deprecated config file /etc/modprobe.conf, all config files belong into /etc/modprobe.d/." appears more than a dozen times, and finally the root device cannot be found. (Complete serial console log is attached.)
> squashfs: version 4.0 (2009/01/31) Phillip Lougher hmm, are you sure the specified root=live:LABEL=<LABEL> is correct?
Here's what I have tried. The CD is F12-Snap2-i686-Live (released Monday Sept.14), and the USB2.0 flash drive partition was made from it by livecd-iso-to-disk. On a box that can boot almost anything (not the box with the PCMCIA USB2.0 adapter): The CD works as boot-and-root. The USB2.0 flash works as boot-and-root on a builtin USB2.0 port. kernel-2.6.31-23.fc12.i686.PAE (rawhide of Thursday, with initramfs rewritten by the new dracut) boots from harddrive, and transfers root to either the CD or the USB2.0 flash drive ["root=live:LABEL=King4 rootfstype=ext2" when using the flash drive]. That indicates that getting the root and initramfs from harddrive is not the problem, and that the LABEL is correct. On the USB2.0-via-PCMCIA box: The CD works as boot-and-root. The CD can boot and transfer root to the flash drive connected to the builtin USB1.1 port (not the PCMCIA USB2.0 port.) However, booting new kernel 2.6.31-23 and dracut-updated initiramfs from the harddrive (via Grub), then transfering root to the flash drive on builtin USB1.1 port does *NOT* work: "No root device found" after several complaints about modprobe.conf. So a kernel difference (from Snap2 to 2.6.31-23) and a possibly a boot difference (old Grub?) become the leading contenders to blame. Maybe I should reduce the number of variables by waiting until the new dracut appears in a LiveCD.
It works when dracut-002-2.gitc53acc30.fc12.noarch is used for both the original boot kernel+initramfs and the USB2.0 flash-on-PCMCIA. I don't understand why the efforts in Comment #10 failed; but there are bigger problems elsewhere to work on now.
I forgot to add, "Thank you, Harald."
:-)
Please re-open because Fedora 15 rawhide exhibits the original problem. I can boot with the USB flash device plugged into the direct (on-motherboard) 12 Mbit/sec USB-1 port, but not when plugged into the 480 Mbit/sec USB-2.0 port that is provided by a pcmcia (pc card) device.
This package has changed ownership in the Fedora Package Database. Reassigning to the new owner of this component.
still an issue?
Works for me using Fedora-18-Beta-i386-DVD.iso converted to USB2.0, See bug 882434 for evidence.