Ubuntu

2.6.31-6.25 and later can not boot my USB drive, missing ums_cypress.ko

Reported by Tormod Volden on 2009-08-26
114
This bug affects 7 people
Affects Status Importance Assigned to Milestone
Linux
Invalid
Medium
initramfs-tools (Ubuntu)
Medium
Scott James Remnant (Canonical)
Karmic
Medium
Scott James Remnant (Canonical)

Bug Description

I have karmic on a USB drive, and I can boot the 2.6.31-5-generic kernel. But the 2.6.31-7-generic and the mainline 2.6.31rc7 kernel can not find the root device. dmesg only shows:
[ 1200.104015] usb 1-8: new high speed USB device using ehci_hcd and address 3
[ 1200.237017] usb 1-8: configuration #1 chosen from 1 choice
and cat /sys/bus/usb/devices/1-8/product gives "USB2.0 Storage Device" but I do not get the
[ 1200.278612] scsi7 : SCSI emulation for USB Mass Storage devices
[ 1200.278930] usb-storage: device found at 3
[ 1200.278934] usb-storage: waiting for device to settle before scanning
messages I get with working kernels. /proc/modules show only 17 modules, but usb-storage is loaded, and it is the same modules in 2.6.31-5.

I have LVM installed (but root is not on the LVM) so I initially thought it was bug 418514.

ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 9.04
HibernationDevice: RESUME=UUID=991c78eb-8e14-4500-86fe-1a5898700074
MachineType:

Package: linux-image-2.6.31-6-generic 2.6.31-6.25
ProcCmdLine: root=/dev/mapper/isw_ececbiichd_osmoraid6 ro quiet splash
ProcEnviron:
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-6.25-generic
SourcePackage: linux
UnreportableReason: This is not a genuine Ubuntu package

Tormod Volden (tormodvolden) wrote :
description: updated

It is the same problem with 2.6.31-6-generic

summary: - 2.6.31rc7 does not see my USB drive
+ 2.6.31rc6 and later does not see my USB drive
Tormod Volden (tormodvolden) wrote :
Tormod Volden (tormodvolden) wrote :
Tormod Volden (tormodvolden) wrote :
description: updated
Tormod Volden (tormodvolden) wrote :

I have 2.6.31-6.25-generic with Jaunty installed on my built-in hard drive, and when I plug in the same USB drive, it works.

Tormod Volden (tormodvolden) wrote :

Turns out on Jaunty I had 2.6.31-6.25, but the USB drive had 2.6.31-6.26. When I downgraded to
2.6.31-6.25~radeon2 on the USB drive it worked. So the problem seems to have been introduced between the 2.6.31-6.25 and 2.6.31-6.26 Ubuntu kernel, and between 2.6.31-rc6 and 2.6.31-rc7 mainline kernels.

From the changelog, 2.6.31-6.26 seems to only bring package (abstracted debian) and ports changes...

Tormod Volden (tormodvolden) wrote :

I found that 2.6.31-9.29-generic also failed on the USB drive, but Jaunty on hard drive with 2.6.31-9.29-generic would find the USB drive. So my conclusions above were wrong. It is not only a question of version. For practical reasons I had checked (succesfully) with 2.6.31-6.25~radeon2 and not 2.6.31-6.25 above, and there is already a difference between those:

6.25~radeon2/boot/config-2.6.31-6-generic:# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
6.25/boot/config-2.6.31-6-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m
6.26/boot/config-2.6.31-6-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m

config-2.6.31-5-generic:# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
config-2.6.31-6-generic:# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
config-2.6.31-7-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m

config-2.6.31-020631rc5-generic:# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
config-2.6.31-020631rc6-generic:# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
config-2.6.31-020631rc7-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m
config-2.6.31-020631rc8-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m
config-2.6.31-9-generic:CONFIG_USB_STORAGE_CYPRESS_ATACB=m

and the initrd does not have ums_cypress...

Tormod Volden (tormodvolden) wrote :

If I add ums_cypress.ko to the initrd everything works fine.

summary: - 2.6.31rc6 and later does not see my USB drive
+ 2.6.31-6.25 and later can not boot my USB drive, missing ums_cypress.ko
tags: added: regression-potential
Tormod Volden (tormodvolden) wrote :

Reading the description, I don't really understand why this module is needed though. Is there a bug in the kernel?

CONFIG_USB_STORAGE_CYPRESS_ATACB:

Say Y here if you want to use SAT (ata pass through) on devices based
on the Cypress USB/ATA bridge supporting ATACB. This will allow you
to use tools to tune and monitor your drive (like hdparm or smartctl).

If you say no here your device will still work with the standard usb
mass storage class.

Changed in linux:
status: Unknown → Invalid
Changed in linux (Ubuntu):
importance: Undecided → Medium
status: New → Triaged
visibility: public → private
Tormod Volden (tormodvolden) wrote :

david, any reason you made this report private?

visibility: private → public
Andy Whitcroft (apw) wrote :

From what I can see if we enable CONFIG_USB_STORAGE_CYPRESS_ATACB then the USB ids for the supported drives are removed from usbstorage (added to a blacklist) and then the module starts supporting those IDs. As this module is not in the initramfs by default this will fail to load, as this is your root disk your boot will fail.

The module seems to have appropriate ids on it so this looks like an initramfs tools issue:

  alias usb:v04B4p6831d*dc*dsc*dp*ic*isc*ip* ums_cypress
  alias usb:v04B4p6830d*dc*dsc*dp*ic*isc*ip* ums_cypress

affects: linux (Ubuntu) → initramfs-tools (Ubuntu)
Tormod Volden (tormodvolden) wrote :

Yes, this would have been picked up by the dep_add_module logic in /usr/share/initramfs-tools/hook-functions. However this is not used, since default for MODULES is "most" and not "dep" (set in /etc/initramfs-tools/initramfs.conf).

Tormod Volden (tormodvolden) wrote :

IMO, we should by default install the modules from both "dep" and "most".

Robbie Williamson (robbiew) wrote :

@Tormod: so if you change "MODULES=most" to "MODULES=dep" in /etc/initramfs-tools/initramfs.conf, run 'update-initramfs -u', and reboot...it boots from your USB attached disk?

Tormod Volden (tormodvolden) wrote :

That's what I expect from looking at the code and dry-running parts of it. Will try it for real (while removing ums-cypress from /etc/initramfs/modules of course). Better handling of this will probably also solve the old bug 27172.

Tormod Volden (tormodvolden) wrote :

Yes, that worked, I did it in a chroot and could boot it afterwards. A 65% decrease in initrd size as a bonus :)

Changed in initramfs-tools (Ubuntu Karmic):
assignee: nobody → Scott James Remnant (scott)
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package initramfs-tools - 0.92bubuntu52

---------------
initramfs-tools (0.92bubuntu52) karmic; urgency=low

  * Include all usb/storage drivers, not just usb-storage.ko LP: #419231

 -- Scott James Remnant <email address hidden> Fri, 09 Oct 2009 15:34:43 +0100

Changed in initramfs-tools (Ubuntu Karmic):
status: Triaged → Fix Released
krusir@gmail.com (krusir) wrote :

I tried to use "chroot" to get the root shell. Did all udpate.... still no go.

I also tried the method in the post #16.

@Tormod: so if you change "MODULES=most" to "MODULES=dep" in /etc/initramfs-tools/initramfs.conf, run 'update-initramfs -u', and reboot...it boots from your USB attached disk?

Still no go. Do we have any workaround?

Tormod Volden (tormodvolden) wrote :

krusir, if you have updated correctly and still have problems, you have another issue than the one in this bug report, so you should file a new bug. If you have trouble updating correctly, seek help on IRC or the forums or search for documentation.

krusir@gmail.com (krusir) wrote :

Update. I did do a chroot to gain shell again with live CD. apt-get update; apt-get dist-upgrade... Get the latest 2.6.31-14-generic kernel installed. Problem went away after this. Glad I have my UBUNTU back. Thanks.

Changed in linux:
importance: Unknown → Medium
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.