Howto get your netbook SD card reader working (this article is a litle modification from http://community.linuxmint.com/tutorial/view/309)
This is a summary of the steps necessary to get my SD card reader working on MSI Wind like netbook running. 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).
The source for this solution was https://bugs.launchpad.net/ubuntu/+s...ux/+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:
$ 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/+s...iles/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
edit usb.c ($gedit usb.c) and change this:
If your kernel is < 2.6.34 search for
"usb_alloc_coherent" and change to "usb_buffer_alloc"
and
"usb_free_coherent" and change to "usb_buffer_free"
Reason: http://lists-archives.org/linux-kernel/27314200-usb-rename-usb_buffer_alloc-and-usb_buffer_free.html
Don`t forget to put the function prototypes after the last #include line according your kernel version:
for Kernel <2.6.34 put:
Code:
void usb_buffer_free (struct usb_device * dev, size_t size, void * addr, dma_addr_t dma);
void * usb_buffer_alloc (struct usb_device * dev, size_t size, gfp_t mem_flags, dma_addr_t * dma);
for Kernel >= 2.6.34 put:
Code:
void * usb_free_coherent (struct usb_device * dev, size_t size, gfp_t mem_flags, dma_addr_t * dma);
void * usb_alloc_coherent (struct usb_device * dev, size_t size, gfp_t mem_flags, dma_addr_t * dma);
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
Add keucr to /etc/modules listing:
$ sudo gedit /etc/modules
This file seens like that:
Code:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
lp
rt3090sta
keucr
If no success please refer to the thread for more info and background. It worked for me. Good luck!
Bookmarks