Howto get your netbook SD card reader working

heterodox
  13 years ago
  0

This is a summary of the steps necessary to get my SD card reader working on my Aspire One D255 running GNOME Julia. It involves downloading, building and installing the driver module.

This is also relevant to other laptops/netbooks using the same internal card reader (ENE Technology UB6250). It applies to those using linux up to 2.6.36. Linux-2.6.37 should have built in support.

The source for this solution was https://bugs.launchpad.net/ubuntu/+source/linux/+bug/530277. All credit goes to its contributors.

Disclaimer: Whilst I foresee no problems with this you copy the actions in this summary entirely at your own risk.

  1. Confirm that you have the relevant SD card reader that is not working and check kernel version.
  2. Install building tools.
  3. Download the driver module source.
  4. Extract the source files from the package.
  5. Build and install the module.
  6. Load the module and test.

1. Confirm that you have the same type of non-working SD card reader.

Insert an SD card into the card reader.

At a terminal type:

$ lsusb

you should see output like this:

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 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
Bus 001 Device 004: ID 0cf2:6250 ENE Technology, Inc.
Bus 001 Device 002: ID 0402:9665 ALi Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The 0cf2:6250 confirms you have the correct SD card reader for this howto.

Remove the SD card.

Check that your kernel is <2.6.37 with:

$ uname -r

 

2. Install building tools.

At a terminal:

$ sudo apt install build-essential

 

3. Download the driver module source.

Download this file:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/530277/+attachment/1712997/+files/keucr.tgz

back to top

4. Extract the package keucr.tgz

From a terminal cd to a working directory of your choice and extract the tar ball with:

$ cd <working directory path>

$ tar zxvf <path to downloaded file>/keucr.tgz

$ cd keucr

 

5. Build and install the module.

$ make -C /usr/src/linux-headers-`uname -r` M=`pwd`

$ sudo make -C /usr/src/linux-headers-`uname -r` O=/lib/modules/`uname -r`/build M=`pwd` modules_install

$ sudo depmod -a

update your initrd:

$ sudo update-initramfs -u -k `uname -r`

 

6. Try it out.

Insert your SD card.

See if it appears in Computer.

It should be mounted under /media.

At a terminal check that the module keucr is loaded with

$ lsmod

Check that the module keucr.ko is available with:

$ modprobe -l keucr

$ ls /lib/modules/`uname -r`/build/extra

 

If no success please refer to the thread for more info and background. It worked for me. Good luck!

back to top

Comments
ericpaulkatz 11 years ago

Help!! I've been trying for days to follow the instructions in this tutorial, to no effect. The problem is the compile step. i finally found a .deb package of the module, but it also needs to compile. Here are the error msgs it gave me:

make: Entering directory `/usr/src/linux-headers-3.2.0-2-486'
LD /var/lib/dkms/keucr/0.0.1/build/built-in.o
CC [M] /var/lib/dkms/keucr/0.0.1/build/usb.o
/var/lib/dkms/keucr/0.0.1/build/usb.c: In function ‘get_transport’:
/var/lib/dkms/keucr/0.0.1/build/usb.c:346:7: error: ‘US_PR_BULK’ undeclared (first use in this function)
/var/lib/dkms/keucr/0.0.1/build/usb.c:346:7: note: each undeclared identifier is reported only once for each function it appears in
/var/lib/dkms/keucr/0.0.1/build/usb.c: In function ‘get_protocol’:
/var/lib/dkms/keucr/0.0.1/build/usb.c:370:7: error: ‘US_SC_SCSI’ undeclared (first use in this function)
/var/lib/dkms/keucr/0.0.1/build/usb.c: In function ‘get_pipes’:
/var/lib/dkms/keucr/0.0.1/build/usb.c:421:44: error: ‘US_PR_CBI’ undeclared (first use in this function)
/var/lib/dkms/keucr/0.0.1/build/usb.c: In function ‘usb_stor_scan_thread’:
/var/lib/dkms/keucr/0.0.1/build/usb.c:567:23: error: ‘US_PR_BULK’ undeclared (first use in this function)
make[3]: *** [/var/lib/dkms/keucr/0.0.1/build/usb.o] Error 1
make[2]: *** [_module_/var/lib/dkms/keucr/0.0.1/build] Error 2
make[1]: *** [sub-make] Error 2
make: *** [all] Error 2
make: Leaving directory `/usr/src/linux-headers-3.2.0-2-486'

--Thanks!
--eric


heterodox 13 years ago

**edit: two lines in section 5 updated. Building and installing should work better now.