I've installed Slackware 14.1 on a USB SD card, as I want to test if I'll get a better performance with a read-only root mounted on the SD Card (and making it RW only when doing package updates).
It successfully installed with full packages on the SD card, and lilo on the MBR. It went well until the first reboot.
I created the initrd with the USB modules to mount the SD card at boot, as it requires the USB subsystem kernel modules loaded:
Quote:
mkinitrd -c -k 3.10.17 -m ehci_hcd:uhci_hcd:usb_storage -f ext4 -r UUID="0240d789-1058-42b1-9c19-c62271e32f5c" -o /boot/initrd.gz
|
Configured the initrd on lilo.conf and ran lilo to update the MBR. Until here fine.
I start having a problem after initrd gives control to init and udev starts. After /etc/rc.d/rc.udev starts the USB modules are removed and lots of random problems happen because the root disk device is USB, so it can't execute anything after the modules are removed. The system hangs there.
If I remove the executable bit from /etc/rc.d/rc.udev the system boots, but it's very inconvenient because several of the devices on /dev are missing. If I run /etc/rc.d/rc.udev start manually after boot, it does the same thing: unloads the USB modules and reloads it again, then the card gets re-assigned to device /dev/sdc (originally it's sdb) and the system hangs because it can't access the root filesystem anymore.
I reviewed the /lib/udev/rules.d/*usb* rules, but didn't find anything. Most of the rules there are by vendorId and productId, but I didn't find any specific rule for my SD card (vendorId: 058f, productId: 6335).
I've tried to add several different rules for udev to ignore the USB device matching the vendor id and product id, but the very same errors still happen.
Also tried to blacklist USB modules on /etc/modprobe.d/usb-controller.conf by adding: blacklist ehci_hcd, blacklist uhci_hcd, blacklist usb_storage to see if didn't unload the USB modules, but to no avail.
Does anyone have any clue on what I need to do to avoid having the USB modules unloaded by udev after it starts?
Below follows part of the console output meanwhile the system boots:
Quote:
EXT4.FS(sdb1): mounted filesystem with ordered data mode. Opts: (null)
/boot/initrd.gz: exiting
INIT: version 2.88 booting
loop module loaded
Starting udevd: /sbin/udevd --daemon
Triggering udev events: /sbin/udevadm trigger --action=add
udevd[207]: starting version 182
microcode: CPU0 sig=0x162c2, pf=0x4, revision=0x212
ehci-pci: EHCI PCI platform driver
usb 2-1: USB disconnect device number 2
usb 2-1.1: USB disconnect device number 3
usb 2-1.2: USB disconnect device number 4
usb 2-1.3: USB disconnect device number 5
usb 3-1: USB disconnect device number 2
scsi 4:0:0:0 rejecting I/O to offline device
scsi 4:0:0:0 [sdb] killing request
scsi 4:0:0:0 [sdb] unhandled error code
<...lots of random device read, file execution errors msgs because the root filesystem is now gone...>
|