Ubuntu-fr

Transcription

Ubuntu-fr
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Contenu | Rechercher | Menus
Ubuntu-fr
Communauté francophone d'utilisateurs d'Ubuntu
Recherche : Recherche rapide....
Documentation
Chercher dans :
ok
Identifiant : Identifiant
Mot de passe : ••••••••••••
connexion
/
inscription
Détection du type de lecteur
Texas Instruments PCIxx21
Recompiler le pilote V1
Recompiler le pilote V2
Ricoh Co Ltd R5C822
ENE Technology Inc CB-712/4
O2 Micro Inc Oz776 SmartCard Reader
sous Gnome
Realtek Card Reader RTL8411 Device 5286/5289
Sous 12.04
Sous 12.04.2 et 12.04.3
Sous 13.10 et 14.04
matériel
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.
Détection du type de lecteur
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
1 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
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.
Texas Instruments PCIxx21
Ce lecteur de carte est supporté à partir de Karmic Koala : Ubuntu 9.10
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 !
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
2 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
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
FIX ME ! (Il semblerait qu'il y ait un problème avec l'URL. J'ai retrouvé le fichier sur launchpad ici :
http://launchpadlibrarian.net/17993308/tifm_ms.patch)
Ensuite on applique le patch et on compile :
patch -p0 < tifm_ms.patch
make
sudo make install
Enfin insérez votre carte et ça devrait fonctionner ! :
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. Par la suite, libre à vous d'installer le kernel fraîchement compilé ou de juste utiliser le
pilote.
Compiler un kernel prend du temps (1h - 1h30 suivant votre système), alors préparez quelque
chose à faire pendant ce temps là.
3 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Méthode manuelle
Activer les dépôts sources pour votre distribution (le dépôt main est suffisant)
Ouvrir un terminal (non, non n'ayez par peur :) )
Récupérer les "outils de développement"
sudo apt-get build-dep linux-image-`uname -r`
Récupérer les fichiers sources du kernel
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
Si vous utiliser un système 32 bit :
sudo gedit debian/config/i386/config
Si vous utiliser un système 64 bit :
sudo gedit debian/config/amd64/config
Rapportez vous à votre CD d'installation pour savoir quel est votre système d'exploitation.
Rechercher la ligne :
# CONFIG_MEMSTICK is not set
Remplacer par :
CONFIG_MEMSTICK=m
4 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Enregistrer et fermer la fenêtre.
Dans le terminal taper :
sudo AUTOBUILD=1 NOEXTRAS=1 skipabi=true fakeroot debian/rules binary-generic
Mettre en place le nouveau pilote 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 "Vous ne m'avez pas donné le type d'architecture de votre ordinateur, par exemple
pour Intel : i386 ; pour AMD64 : amd64"
return
fi
cd tmp_kernel_files && echo "Je dois être utilisé dans un répertoire où il n'y a pas de
sous-répertoire nommé : tmp_kernel_files" && return
echo "Création du répertoire temporaire : ./tmp_kernel_files"
#0.) Création du répertoire temporaire : ./tmp_kernel_files
mkdir tmp_kernel_files
cd tmp_kernel_files
#1.) Télécharge les fichiers sources du dernier noyau linux :
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.) Ajoute "CONFIG_MEMSTICK=m" à debian/config/i386/config
echo CONFIG_MEMSTICK=m >> debian/config/$1/config || return
#3.) Compile le noyau entier :
AUTOBUILD=1 NOEXTRAS=1 skipabi=true fakeroot debian/rules binary-generic
#4.) Copie le pilote "Memory Stick" dans le noyau du système :
cp -r debian/linux-image-`uname -r`/lib/modules/`uname -r`/kernel/drivers/memstick
5 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
/lib/modules/`uname -r`/kernel/drivers/
#5.) Applique les changements au système:
depmod -a
#6.) Nettoie les fichiers temporaires :
cd ..
cd ..
rm -r -f tmp_kernel_files
echo "Répertoire temporaire : ./tmp_kernel_files effacé"
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 ici et permettre l'exécution.
Et ben… maintenant, il faut ouvrir un terminal (là il n'y a pas le choix)
sudo apt-get install fakeroot
sudo sh ~/memstick.sh
Lors de l'exécution du script, il est demandé si le système est un i386 ou un AMD64
Une fois fini, insérer une carte, elle devrait fonctionner.
Ricoh Co Ltd R5C822
Note: aucune de ces 2 méthodes ne fonctionne pour le Ricoh Co Ltd R5C822.
Note 2: pensez à blacklister le module sdhci sur les versions récentes (10.04+), pour cela ajouter
"blacklist sdhci" au fichier /etc/module (testé sous hp dv9000 avec Ricoh Co Ltd R5C822 SD/SDIO
/MMC/MS/MSPro)
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
6 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
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).
Pour tester avant de modifier /etc/modules, on peut se contenter de:
sudo modprobe tifm_sd
Sur mon asus W7S j'ai également dû ajouter au fichier /etc/modules le module tifm_core
Sur mon Dell Inspiron 6400 j'ai également dû ajouter au fichier /etc/modules le module tifm_core
Sur mon Dell Inspiron 6400 sous 12.04, j'ai ajouté au fichier /etc/modules non pas le module
tifm_sd mais ceux là :
pciehp
acpiphp
jmb38x_ms
sdhci-pci
flash_bd
xd_card
jmb38x_xd
et ça marche…
7 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Sur un Lenovo ThinkPad L420 sous Precise Pangolin, l'ajout du seul tifm_sd à /etc/modules a
fonctionné
Sur xubuntu 12.04, inspiron 6400, j'ai blacklisté le module shdci-pci, en ajoutant blacklist sdhci-pci
dans /etc/modprobe.d/blacklist
Sur xubuntu 12.04, Dell D430, l'ajout du seul tifm_sd à /etc/modules a fonctionné
Sur debian wheezy 7.0, Dell inspiron 6400, j'ai blacklisté le module r852 en ajoutant blacklist r852
dans /etc/modprobe.d/blacklist.conf
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 MMC !
8 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
source : http://intr.overt.org/blog/?p=59
ENE Technology Inc CB-712/4
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
bonne idée
Editer le fichier en root en mode graphique n'est pas une très
et rajoutez les 2 lignes suivantes à la fin du fichier :
tifm_sd
mmc_core
O2 Micro Inc Oz776 SmartCard Reader
Télécharger le pilote dans le dépôt Trusty Universe
Paquet : libccid (1.4.15-1) [universe]
Le tarball (tar.bz2) - fichier archive des sources du pilote - est disponible dans Dépôt du paquet
libccid dans Trusty Universe.
Décompressez l'archive;
Dans Némo:
Aller dans le dossier qui contient l'archive décompressée
Cliquer droit entre les fichiers > menu "Ouvrir dans un terminal";
Entrez votre mot de passe pour exécuter la compilation en tant qu'Administrateur
sudo su
Télécharger le paquet check Install afin de créer un paquet DEB à partir des sources
sudo apt-get install -f --fix-missing checkinstall
Retour à nos moutons:
9 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Entrez la commande de compilation
./configure
Si vous obtenez un message d'erreur, ne vous inquiétez pas! cette procédure n'est pas obligatoire
mais nécessaire si la procédure est initiée par le processus de compilation. Poursuivez le processus
de compilation du pilote;
Entrez
make && make install && depmod && checkinstall
CheckInstall vous demande le nom du paquet DEB des sources du pilote;
Entrez
O2 Micro Inc Oz776 SmartCard Reader
Faîtes Entrée deux fois;
Checkinstall créé le paquet dans le répertoire des sources.
Realtek Card Reader RTL8411 Device 5286/5289
Bien que le driver de ce lecteur (rtsx_pci) ait été intégré au noyau sur les versions récentes
(12.04.4 et ultérieur), il ne semble pas fonctionner chez tout le monde.
Une méthode de contournement consiste à utiliser l'ancien module (rts_bpp), comme décrit
ci-après.
En attendant que ce problème soit résolu, merci de ne pas supprimer cette section.
Ce lecteur de carte SD n'est pas reconnu par défaut sur Ubuntu 12.04. Heureusement, c'est un bug
connu et un paquet deb existe pour le corriger !
Il suffit de le télécharger
dkms_1.1_all.deb.
et
de
l'installer
:
http://planet76.com/drivers/realtek/rts-bpp-
Kpozn : newbie "+ ou -…"
sur asus R500V et EdUbuntu 12.04.2 (Precise Pangolin)
Avec un lecteur SD Realtek Card Reader RTL8411 Device 5289
merci beaucoup aux contributeurs pour toutes les infos
Le lecteur sera alors fonctionnel au prochain redémarrage.
10 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
Cette méthode ne semble plus fonctionner depuis les version plus récentes du noyau. Une erreur
-110 apparaît en effet lorsque l'on lance dmesg.
Cette solution donnée ici : https://bbs.archlinux.org/viewtopic.php?pid=1263089#p1263089,
traduite ci dessous, fonctionne parfaitement avec le nouveau noyau :
1. Télécharger rts_bpp.tar.bz2 from launchpad : https://bugs.launchpad.net/ubuntu/+source
/udisks/+bug/971876/+attachment/2991730/+files/rts_bpp.tar.bz2
2. Extraire l'archive, editer rtsx.c:
1. Supprimer _devinit juste avant rtsx_probe à la ligne 893
2. Supprimer _devexit juste avant rtsx_remove à la ligne 1048
3. Enlever _devexit_p() autour de rtsx_remove à la ligne 1074
3. Compiler avec "make"
4. Puis "sudo make install"
5. Blacklister rtsx_pci dans le fichier /etc/modprobe.d/rtsx_blacklist.conf en ajoutant sur une
nouvelle ligne "blacklist rtsx_pci" (créer le fichier si il n'existe pas)
6. 'sudo modprobe rts_bpp' (Si cela ne fonctionne pas faire 'sudo depmod -a' et réessayer)
7. Redémarrer
8. Ça fonctionne !
cette méthode ne fonctionne plus sur les noyaux 3.10+ voir bug https://bugs.launchpad.net
/ubuntu/+source/udisks/+bug/1250605, une erreur apparaît lors de la compilation :
erreur: unknown field ‘proc_info’ specified in initializer
.proc_info =
proc_info,
La méthode décrite pour 12.04 ne fonctionne plus. Le problème vient du fait que proc-info n'est
plus présent dans les kernel récents. https://forums.gentoo.org/viewtopic-t-974708-start-0.html
Il faut donc compléter la méthode mentionnée pour Ubuntu 12.04.2 et 12.04.3, en supprimant les
assertions relatives à proc_info :
1. Télécharger rts_bpp.tar.bz2 depuis launchpad : https://bugs.launchpad.net/ubuntu/+source
/udisks/+bug/971876/+attachment/2991730/+files/rts_bpp.tar.bz2
2. Extraire l'archive, editer rtsx.c (ou remplacez le par celui ci déjà
modifié:https://launchpadlibrarian.net/163687981/rtsx.c):
1. Supprimer "_ _devinit" juste avant "rtsx_probe" à la ligne 893
2. Supprimer "_ _devexit" juste avant "rtsx_remove" à la ligne 1048
3. Enlever "_ _devexit_p()" autour de "rtsx_remove" à la ligne 1074
4. Supprimer les lignes 125 à 156
static int proc_info (struct Scsi_Host *host, char *buffer,
11 sur 12
11/04/2015 22:27
lecteur_carte_memoire - Documentation Ubuntu ...
http://doc.ubuntu-fr.org/lecteur_carte_memoire#r...
char **start, off_t offset, int length, int inout)
{
char *pos = buffer;
if (inout)
return length;
SPRINTF(" Host scsi%d: %s\n", host->host_no, CR_DRIVER_NAME);
SPRINTF("
SPRINTF("
SPRINTF("
SPRINTF("
Vendor: Realtek Corp.\n");
Product: Barossa Plusplus\n");
Version: %s\n", DRIVER_VERSION);
Build: %s\n", __TIME__);
/*
* Calculate start of next buffer, and return value.
*/
*start = buffer + offset;
if ((pos - buffer) < offset)
return (0);
else if ((pos - buffer - offset) < length)
return (pos - buffer - offset);
else
return (length);
}
5. Supprimer la ligne 259
.proc_info = proc_info,
3. Compiler avec "make" (les paquets "build-essential", "fakeroot" et "checkinstall" sont
nécessaires, voir le tutoriel:compilation)
4. Puis "sudo make install"
5. Puis "sudo modprobe rts_bpp"(Si cela ne fonctionne pas faire 'sudo depmod -a' et réessayer)
6. Blacklister rtsx_pci dans le fichier /etc/modprobe.d/rtsx_blacklist.conf en ajoutant sur une
nouvelle ligne "blacklist rtsx_pci" (créer le fichier si il n'existe pas)
7. Redémarrer
Le contenu de ce wiki est sous licence : CC BY-SA v3.0
Contact
Propulsé par Dokuwiki
12 sur 12
11/04/2015 22:27