Manual para kernel 2.6.28 a 2.6.24 (testeado y comprobado con el 2.6.28 )
(testeado con portatil Sony-Vaio FZ21E )
Bueno , como comprendereis han cambiado algunas cosas en el kernel , y este driver no ha sido diferente.
Tecleamos como root :
Code: Select all
#lspciCode: Select all
09:03.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller
09:03.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller
09:03.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
Vamos ahora al kernel :
Code: Select all
Device Drivers --->
[m] Misc devices --->
<m> TI Flash Media interface support
<m> TI Flash Media PCI74xx/PCI76xx host adapter support
<m> MMC/SD card support --->
<m> TI Flash Media MMC/SD Interface supportCode: Select all
Device Drivers --->
<m> MMC/SD card support --->
<m> Secure Digital Host Controller Interface support
Una vez realizado esto no hace falta recompilar el kernel , salvo que aprovechásemos para hacer más cambios y compilásemos algo directamente en el.
Code: Select all
make modulesCode: Select all
make modules_installAhora necesitamos editar un archivo de configuración para que nos cargue un módulo automaticamente (debería de hacerlo udev por si solo pero en la realidad no es asi )
Code: Select all
echo "mmc_block" >> /etc/modules.autoload.d/kernel-2.6Code: Select all
echo "tifm_core" >> /etc/modules.autoload.d/kernel-2.6Code: Select all
echo "tifm_7xx1" >> /etc/modules.autoload.d/kernel-2.6Ahora necesitamos bloquear 1 módulos en el momento del arranque , sino hacemos esto no funcionará :
Code: Select all
echo "blacklist tifm_sd" >> /etc/modules.d/blacklistBien , ahora procederemos a reiniciar , y una vez estemos logueados insertamos la tarjeta SD :
Code: Select all
tifm_core: MMC/SD card detected in socket 0:1
[ 2082.205568] mmc0: new SD card at address b368
[ 2082.205766] mmcblk0: mmc0:b368 SDC 121 MiB
[ 2082.205820] mmcblk0: p1
Code: Select all
/dev/mmcblk0p1 /mnt/sd vfat noauto,rw,users 0 0Code: Select all
mkdir /mnt/sdSi no funciona probad a cambiar :
Code: Select all
setpci -s 09:03.2 4c=0x02Code: Select all
setpci -s 09:03.2 4c=0x22Code: Select all
setpci -s 09:03.2 4c=0x44Code: Select all
lspci -xxxCode: Select all
09:03.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)
00: 4c 10 3b 80 06 01 10 02 00 00 80 01 10 39 80 00
10: 00 10 10 fc 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 4d 10 05 90
30: 00 00 00 00 44 00 00 00 00 00 00 00 07 03 07 04
40: 00 00 00 00 01 00 02 7e 00 80 00 00 44 00 00 00
50: 4d 10 05 90 05 01 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Code: Select all
Mass storage controllerRecordad que en esta versión del driver no debería de hacer falta cambiar registros con setpci , como se muestra en el manual antiguo , cuidado con lo que cambiais ,recordad que los cambios con setpci permancen con los reinicios , si os olvidasteis del valor original apagad y volver a arrancar el PC.Tambien recordad que el cambiar el registro con setpci activa el modo sdhci exclusivamente .
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
Manual para kernel inferiores a 2.6.24
(testeado con portatil toshiba satellite A80)
Una aclaracion este driver funciona con portatiles que monten controladoras texas instruments y ricoh.
A partir del kernel 2.6.17 no es necesareo parchear
Para comenzar nos bajamos los 3 parches de :
http://list.drzeus.cx/pipermail/sdhci-d ... 00426.html
Lo segundo sera parchear nuestro kernel (para quien no sepa parchear es muy sencillo) ,nos vamos al directorio /usr/src/linux y tecleamos lo siguiente:
Code: Select all
patch -p1 < /ruta/del/parche luego tenemos que configurar nuestro kernel y habilitar los modulos para poder compilarlos,nos vamos a :
DEVICES DRIVERS buscas MMC/SD CARD SUPPORT ,logicamente debes de habilitar el que necesites ,que se supone que debe de ser SECURE DIGITAL HOST CONTROLLER que es el que hemos añadido con el parche.Los compilamos como modulos y si quieres opcion de debug pues tb.
Una vez efectuado esto guardamos los cambios y compilamos el kernel.
Hacemos un make modules_install ,metemos imagen en /boot (bueno lo de siempre)
Y arrancamos ........ como vereis 2 modulos se cargan ya en el arranque,y si no fuese asi pues los insertamos:
Code: Select all
modprobe mmc_core sdhci mmc_blockuna vez realizado comprobamos con un :
Code: Select all
# lsmod
Module Size Used by
mmc_block 6664 0
sdhci 12800 0
mmc_core 18688 2 mmc_block,sdhci
Lo siguiente es para los que tenemos Texas Instruments (TI)
ahora hacemos un :
Code: Select all
lspci -xxxy no saldra algo como esto:
Code: Select all
0000:06:04.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller
00: 4c 10 33 80 06 00 10 02 00 00 80 01 08 39 80 00
10: 00 40 00 b4 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 79 11 01 ff
30: 00 00 00 00 44 00 00 00 00 00 00 00 0a 02 07 04
40: 00 00 00 00 01 00 02 7e 00 00 00 00 20<-- 00 00 00
50: 79 11 01 ff 05 01 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Code: Select all
0: 00 00 00 00 01 00 02 7e 00 00 00 00 [b]20[/b] 00 00 00Code: Select all
setpci -s 06:04.3 4c=0x22 Code: Select all
lspci -xxxCode: Select all
00: 4c 10 33 80 06 00 10 02 00 00 80 01 08 39 80 00
10: 00 40 00 b4 00 00 00 00 00 00 00 00 00 00 00 00
20: 00 00 00 00 00 00 00 00 00 00 00 00 79 11 01 ff
30: 00 00 00 00 44 00 00 00 00 00 00 00 0a 02 07 04
40: 00 00 00 00 01 00 02 7e 00 00 00 00 22<-- 00 00 00
50: 79 11 01 ff 05 01 00 00 00 00 00 00 00 00 00 00
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00ahora insertamos una tarjeta en la unidad y nos fijamos que en /dev tenemos creados los siguientes /dev:
Code: Select all
/dev/mmcblk0 /dev/mmcblk0p1Code: Select all
mount /dev/mmcblk0p1 /mnt/flash -t vfat Este driver ha sido probado con exito en un toshiba satellite a80,con un kernel 2.6.15-r2.
El driver esta disponible sin necesidad de parchear en los ultimos kernel a partir del 2.6.17 en adelante.
FAQ
Es necesario ejecutar
Code: Select all
setpci -s 06:04.3 4c=0x22Si es necesario ,pero lo podeis meter en
Code: Select all
/etc/conf.d/local.startDebes editar tu
Code: Select all
/etc/fstabCode: Select all
/dev/mmcblk0p1 /mnt/sd vfat noauto,rw,users 0 0Espero haberos ayudado





