IBM X40 & Ultrabase X4 eject freezes in Jaunty

Bug #369131 reported by Koopee
4
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
New
Undecided
Unassigned

Bug Description

Tried to get ultrabase X4 eject working. I remember getting it to work with Gutsy according to the thinkwiki instructions. In Hardy & intrepid undocking has not worked.

ProblemType: Bug
Architecture: i386
DistroRelease: Ubuntu 9.04
HibernationDevice: RESUME=UUID=a7d4b177-9c1c-4208-929c-7acbf28fdc94
Lsusb:
 Bus 001 Device 002: ID 04b3:4484 IBM Corp.
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: IBM 2371H8G
Package: linux-image-2.6.28-11-generic 2.6.28-11.42
ProcCmdLine: root=UUID=e1cf5f57-6da4-49f8-9516-ad5f5e274696 ro quiet splash
ProcEnviron:
 PATH=(custom, user)
 LANG=en_US.UTF-8
 SHELL=/bin/bash
 LC_PAPER=en_GB.UTF-8
ProcVersionSignature: Ubuntu 2.6.28-11.42-generic
SourcePackage: linux

Revision history for this message
Koopee (koopee1234) wrote :
Revision history for this message
Raphaël Halimi (raph) wrote :

Hi, using all information gathered mainly here and on ThinkWiki, I made a little package as a workaround for this bug (and others). It should work out-of-the-box for everyone who has an UltraBase with a CD/DVD in the UltraBay (but it should work with any brand handled by the new kernel's dock driver).

It's available at my PPA: https://launchpad.net/~raph/+archive/ppa

Its main component is a shell script that handles docking and undocking events, as well as bay's ejection or insertion (all are handled by the dock driver as of 2.6.28). It detects the type of dock triggering the event (ata_bay or dock_station) and try to unmount and unregister the device before undocking.

As of right now, it doesn't detect the type of device present in a bay (/sys/devices/platform/dock.?/block is missing, maybe because the dock driver is loaded into memory after block devices drivers, see at the end of the dock driver source), so this could be considered dirty because you have to specify in the config file the type of device you're using (defaults to /dev/sr0 on SCSI host 1:0:0:0). It seems that it's the best we can do in Jaunty without recompiling the kernel.

Another problem is the undock button. By default the dock driver disconnects immediately any device connected to the dock triggering the event, before the script could be run; to change this, we have to pass an option to the dock driver, but in Jaunty it's built-in the kernel, so you have to pass it to the kernel via the bootloader. If you use grub, my package can add "dock.immediate_undock=0" to your config file, in order to allow the use of the UltraBase eject button (similar code for lilo welcome).

And, last but not the least, it detects if you have a ThinkPad and if so, it binds the eject hotkey (Fn-F9) by adding a file to ACPI events config directory, so you can use the hotkey as well as the eject button.

Hope it helps.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

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