Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !



Lecteurs de carte mémoire

L'objet de ce howto est d'activer les lecteurs de carte mémoire parfois présents sur les PC portables mais non reconnus par défaut.

La première étape est de déterminer quel est le lecteur dans votre portable, pour cela:

alex@alex-laptop:~$ lspci
02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller
02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller

Dans le cas de mon pc (un Acer Extensa 3001WLMi) il s'agit du contrôleur Texas Instruments PCIxx21

Ou

pezzos@ubuntu-laptop:~$ lspci
03:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19)
03:01.2 System peripheral: Ricoh Co Ltd Unknown device 0843 (rev 01)
03:01.3 System peripheral: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter (rev 0a)
03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)

Dans le cas de mon pc (le Dell Inspiron 9400 de Pezzos), il s'agit du contrôleur Ricoh.

Valable à partir des noyaux 2.6.20, ce qui exclut Dapper (merci de remonter d'éventuelles astuces)

Ne fonctionne plus à partir de Intrepid Ibex : Ubuntu 8.10

Dans ce cas, pour essayer de charger une carte sd, il faut activer les modules suivants:

$ sudo modprobe tifm_sd
$ sudo modprobe mmc_core

Si cela fonctionne, vous pouvez charger ces modules au démarrage :

$ sudo gedit /etc/modules

et les inserer à la suite des autres :

tifm_sd
mmc_core

Il semble que dans certain cas le second module n'est pas nécessaire, en particulier dans le cas de l'utilisation d'une carte SD. A vous de voir !

Recompiler le pilote V1

Si vous n'arrivez toujours pas à faire fonctionner votre lecteur de carte ,vous pouvez essayer de recompiler vous même le pilote.

Ne fonctionne plus à partir de Intrepid Ibex - Ubuntu 8.10
Tiré du site Launchpad. Uniquement testé sous Ubuntu 8.04, et ne marche que sous Ubuntu 8.04.

On va d'abord aller chercher le pilote :

svn co -r155 http://svn.berlios.de/svnroot/repos/tifmxx/trunk/driver/

On se place dans le dossier du pilote :

cd driver

On va chercher le patch :

wget http://www.sw83.de/misc/tifm_ms.patch

Ensuite on applique le patch et on compile : 8-)

patch -p0 < tifm_ms.patch
make
sudo make install

Enfin insérez votre carte et ça devrait fonctionner ! :-D

Recompiler le pilote V2

Tiré de http://ubuntuforums.org/showthread.php?t=797031. Fonctionne sous Ubuntu 9.04 pour les lecteurs de carte Texas Instrument PCIxx21.

Merci de préciser si ça marche pour d'autres versions ou d'autres lecteurs.

Le pilote nécessaire pour l'utilisation des cartes mémoires est présent dans le kernel, mais n'a pas été compilé dans la version distribuée. Le tuto explique comment recompiler le kernel pour obtenir le pilote dont on a besoin. Par la suite, libre à vous d'installer le kernel fraîchement compilé ou de juste utiliser le pilote.

Compiler un kernel prend du temps, alors préparer quelque chose à faire pendant ce temps là.

Méthode manuelle

sudo apt-get build-dep linux-image-`uname -r`
sudo apt-get source linux-image-`uname -r`
  • Entrer dans le répertoire où ont été téléchargé les fichiers sources
cd linux-`uname -r`

ou

cd linux-`eval "uname -r" | cut -f1 -d-`

suivant lequel fonctionne

  • Activer la compilation du pilote des lecteurs de carte mémoire
sudo gedit debian/config/i386/config

Si vous utiliser un système 32 bit

sudo gedit debian/config/amd64/config

Si vous utiliser un système 64 bit

Rapportez vous à votre CD d'installation pour savoir quel est votre système d'exploitation.
  • Recherchez la ligne :
# CONFIG_MEMSTICK is not set
  • La remplacer par :
CONFIG_MEMSTICK=m
  • Enregistrer et fermer la fenêtre. Dans le terminal taper :
sudo AUTOBUILD=1 NOEXTRAS=1 skipabi=true fakeroot debian/rules binary-generic
Attention, c'est looooooooooooooooooong :)
  • Copier le nouveau pilote au bon endroit et l'activer
sudo cp -r debian/linux-image-`uname -r`/lib/modules/`uname -r`/kernel/drivers/memstick /lib/modules/`uname -r`/kernel/drivers/
sudo depmod -a
  • Insérer la carte, ça marche sans avoir besoin de redémarrer

Méthode automatique

Si vous n'aimez pas le terminal, il est possible d'utiliser un petit script fait par sapmemailek
  • Ouvrez nautilus (l'explorateur)
  • Clic droit –> Créer un document –> Fichier vierge
  • Copier-coller ce qui suit :
#!/bin/sh
if [ "$1" = "" ]; then
echo "You haven't give me the computer's architecture name e.g. for Intel: i386 , for AMD64: amd64"
return
fi
cd tmp_kernel_files && echo "I need to be runned in a directory where is no tmp_kernel_files named subdirectory" && return
echo "Creating temporary directory: ./tmp_kernel_files"
#0.) Creating temporary directory: ./tmp_kernel_files
mkdir tmp_kernel_files
cd tmp_kernel_files
#1.) Download the latest linux kernel source:
apt-get build-dep linux-image-`uname -r`
apt-get source linux-image-`uname -r`
cd linux-`uname -r` || cd linux-`eval "uname -r" | cut -f1 -d-`
#2.) Add "CONFIG_MEMSTICK=m" to debian/config/i386/config
echo CONFIG_MEMSTICK=m >> debian/config/$1/config || return
#3.) Build the whole kernel actually:
AUTOBUILD=1 NOEXTRAS=1 skipabi=true fakeroot debian/rules binary-generic
#4.) Copy the generated Memory Stick driver to the system kernel:
cp -r debian/linux-image-`uname -r`/lib/modules/`uname -r`/kernel/drivers/memstick /lib/modules/`uname -r`/kernel/drivers/
#5.) Apply changes to the system:
depmod -a
#6.) Clean up temporary files
cd ..
cd ..
rm -r -f tmp_kernel_files
echo "Temporary directory: ./tmp_kernel_files deleted"
Si quelqu'un est motivé pour faire une traduction…
  • Enregistrer sous : memstick.sh
  • Fermer le fichier et le rendre exécutable
  * Ouvrir un terminal et taper :
  * chmod 755 memstick.sh
 ou
  * Utiliser la méthode graphique décrite [[http://doc.ubuntu-fr.org/permissions?s[]=fichier&s[]=permission|ici]] et permettre l'exécution.
  • Ben… maintenant, il faut ouvrir un terminal (là il n'y a pas le choix) :)
sudo apt-get install fakeroot
sudo memstick.sh
Il demandera si on utilise un système i386 ou un système AMD64
Patienter à peu près une heure.

1 ere méthode

J'ai un portable Dell Inspiron 9400 qui intègre un lecteur de carte SD Ricoh. Ce lecteur marche très bien d'origine sur Windows XP mais n'est pas automatiquement détecté sur mon installation Ubuntu. Ce que ne voulons est simple, que la carte SD monte automatiquement dès son insertion dans le slot.


Pour ceci, il suffit d'éditer le même fichier que pour le contrôleur Texas après avoir fait peut-être une petite sauvegarde :

sudo cp /etc/modules /etc/modules.bak


Nous allons maintenant simplement éditer le fichier /etc/modules :

gksu gedit /etc/modules


Et rajouter à la fin de ce fichier dans une nouvelle ligne :

tifm_sd


Lors du redémarrage, votre lecteur de carte sera fonctionnel (normalement).

Sur mon asus W7S j'ai également du ajouter au fichier /etc/modules le module tifm_core



2 ieme méthode


Il existe une autre méthode pour activer votre lecteur de carte (testé avec un DELL inspiron 6400 )
tapez la commande :

lspci


vous allez avoir une liste, dans cette liste repérer la ligne qui contient :

SD Host controller: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter


à gauche de cette ligne vous avez quelque chose de ce genre :

03:01.1


ensuite il suffit de taper ces commandes en changeant le 03:01.1 par ce que vous avez vous :

sudo setpci -s 03:01.1 0xCA=0x57          ( write enable )
sudo setpci -s 03:01.1 0xCB=0x02          ( MMC Disable )
sudo setpci -s 03:01.1 0xCA=0x00          ( write disable )


et ca marche pour une carte du type MMS !



source : http://intr.overt.org/blog/?p=59

Gutsy Gibbon uniquement avec les cartes SD
Hardy Heron testé avec mini sd dans adaptateur, fonctionne, mais pas de detection automatique d'insertion

Pour que votre lecteur fonctionne, il faut éditer comme suit le fichiers "modules" :

sudo gedit /etc/modules

et rajoutez les 2 lignes suivantes à la fin du fichier :

tifm_sd
mmc_core

Aucun pilote ne fonctionne.

  • lecteur_carte_memoire.1246888326.txt.gz
  • Dernière modification: Le 18/04/2011, 14:57
  • (modification externe)