Bug 522813 - USB flash drive on PCMCIA is not seen by dracut
Summary: USB flash drive on PCMCIA is not seen by dracut
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: dracut
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: dracut-maint
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2009-09-11 15:19 UTC by John Reiser
Modified: 2012-11-30 22:58 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-11-30 22:58:15 UTC


Attachments (Terms of Use)
serial console kernel messages during boot (18.39 KB, text/plain)
2009-09-11 15:19 UTC, John Reiser
no flags Details
serial console kernel messages during boot (24.61 KB, text/plain)
2009-09-18 04:14 UTC, John Reiser
no flags Details

Description John Reiser 2009-09-11 15:19:32 UTC
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:

Comment 1 John Reiser 2009-09-11 15:30:38 UTC
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
$

Comment 2 Harald Hoyer 2009-09-14 06:53:00 UTC
 USB2.0 flash drive via a PCMCIA USB2.0 adapter ... ok, which kernel modules are needed for that?

Comment 3 John Reiser 2009-09-14 16:55:07 UTC
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)
-----

Comment 4 John Reiser 2009-09-14 16:58:43 UTC
And kernel module "rsrc_nonstatic", too.

Comment 5 Harald Hoyer 2009-09-15 14:25:46 UTC
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'

Comment 6 John Reiser 2009-09-15 17:01:24 UTC
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?

Comment 7 Harald Hoyer 2009-09-17 11:09:18 UTC
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

Comment 8 John Reiser 2009-09-18 04:14:11 UTC
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.)

Comment 9 Harald Hoyer 2009-09-18 06:10:58 UTC
> squashfs: version 4.0 (2009/01/31) Phillip Lougher

hmm, are you sure the specified root=live:LABEL=<LABEL> is correct?

Comment 10 John Reiser 2009-09-18 16:02:43 UTC
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.

Comment 11 John Reiser 2009-09-20 19:23:36 UTC
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.

Comment 12 John Reiser 2009-09-21 03:56:40 UTC
I forgot to add, "Thank you, Harald."

Comment 13 Harald Hoyer 2009-09-21 07:39:19 UTC
:-)

Comment 14 John Reiser 2011-02-03 23:46:29 UTC
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.

Comment 15 Fedora Admin XMLRPC Client 2011-10-20 16:19:24 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 16 Harald Hoyer 2012-11-29 16:00:29 UTC
still an issue?

Comment 17 John Reiser 2012-11-30 22:58:15 UTC
Works for me using Fedora-18-Beta-i386-DVD.iso converted to USB2.0,  See bug 882434 for evidence.


Note You need to log in before you can comment on or make changes to this bug.