Difference between revisions of "Didj and Explorer MMC Patch"

From eLinux.org
Jump to: navigation, search
(Add Category Didj)
 
(4 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The original source code for the MMC drivers that were released for the LX were not completed but lucky for us there was a patch included that finishes them to a usable state.
+
The original source code for the MMC drivers that were released for the 2.6.31 (LX) kernel were not completed but lucky for us there was a patch included that finishes them to a usable state.
  
  
Line 6: Line 6:
 
'''As these drivers haven't been through extensive testing you should backup any important information on the card before use.
 
'''As these drivers haven't been through extensive testing you should backup any important information on the card before use.
  
 +
'''Applies to the 2.6.31 kernel only
  
 
Here are the files you will need
 
Here are the files you will need
Line 12: Line 13:
 
[http://wtfmoogle.com/wp-content/uploads/2010/07/mmc_patch_lf1000-sdio.patch mmc_patch_lf1000-sdio.patch]
 
[http://wtfmoogle.com/wp-content/uploads/2010/07/mmc_patch_lf1000-sdio.patch mmc_patch_lf1000-sdio.patch]
  
to apply these patches just copy them to /drivers/mmc/host/
+
To apply these patches just copy them to /drivers/mmc/host/ and type the following
and type the following
+
  
 
  patch lf1000_mmc.c < mmc_patch_lf1000-sdio.patch
 
  patch lf1000_mmc.c < mmc_patch_lf1000-sdio.patch
 
  patch Kconfig < mmc_patch_Kconfig.patch
 
  patch Kconfig < mmc_patch_Kconfig.patch
  
now when you do a make menuconfig build the MMC drivers as modules by typing the following:  
+
Now, when you do a make menuconfig, under Device Drivers, enable:
 +
 
 +
<M> MMC/SD/SDIO card support 
 +
 
 +
then
 +
<M>  MMC block device driver
 +
<M>  LF1000 SDIO controller support
 +
[*]    Enable SDIO controller 0 
 +
 
 +
Save your configuration, then build the MMC drivers as modules by typing the following:  
 
   
 
   
 
  make -j Number of cpu cores+1   
 
  make -j Number of cpu cores+1   
Line 32: Line 41:
  
 
on your device.
 
on your device.
 +
Note: depmod is only included in the busybox on the explorer kernel.
  
 
'''Reboot the device with the kernel you just compiled (it is now enabled for the mmc device modules).'''
 
'''Reboot the device with the kernel you just compiled (it is now enabled for the mmc device modules).'''
Line 71: Line 81:
  
 
much thanks to zucchini for the help
 
much thanks to zucchini for the help
 +
[[Category:Didj]]

Latest revision as of 15:10, 10 May 2011

The original source code for the MMC drivers that were released for the 2.6.31 (LX) kernel were not completed but lucky for us there was a patch included that finishes them to a usable state.


Notice: Hot swapping is not supported yet and may lead to data loss in the event that the card is not unmounted before it is removed.

As these drivers haven't been through extensive testing you should backup any important information on the card before use.

Applies to the 2.6.31 kernel only

Here are the files you will need (Located on Moogle's server for now) mmc_patch_Kconfig.patch mmc_patch_lf1000-sdio.patch

To apply these patches just copy them to /drivers/mmc/host/ and type the following

patch lf1000_mmc.c < mmc_patch_lf1000-sdio.patch
patch Kconfig < mmc_patch_Kconfig.patch

Now, when you do a make menuconfig, under Device Drivers, enable:

<M> MMC/SD/SDIO card support  

then

<M>   MMC block device driver 
<M>   LF1000 SDIO controller support
[*]     Enable SDIO controller 0  

Save your configuration, then build the MMC drivers as modules by typing the following:

make -j Number of cpu cores+1  
sudo make modules_install

and your modules will be in /lib/modules/2.6.31-leapfrog on your system ready for you to copy them over

on the device, it is best to copy them to /lib/modules/2.6.31-leapfrog/kernel/drivers/mmc/

and then run:

depmod

on your device. Note: depmod is only included in the busybox on the explorer kernel.

Reboot the device with the kernel you just compiled (it is now enabled for the mmc device modules).


Using the kernel you just built, when you want to mount a card simply type the following to load the modules

modprobe lf1000_mmc

you will then see something like this:

XXX: checking for SDIO...
XXX: checking for SD...
XXX: SD...
mmc0: host does not support reading read-only switch. assuming write-enable.
mmc0: new high speed SDHC card at address 0007

then type:

modprobe mmc_block

you will then see something like the following

mmcblk0: mmc0:0002 00000 3.82 GiB
mmcblk0:
p1

type the following to add the device such that it can be mounted (only need to do this once, the first time)

mdev -s 


To mount the card type

mount /dev/mmcblk0p1 /mnt

and you will then have access to the files on your micro sd card in the /mnt directory

to unmount the card simply type

umount /dev/mmcblk0p1

much thanks to zucchini for the help