Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
lecteur_carte_memoire [Le 24/10/2009, 23:24] 213.95.41.13 |
lecteur_carte_memoire [Le 07/05/2024, 07:59] (Version actuelle) jean3476 [Realtek Card Reader RTL8411 Device 5286/5289] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>matériel}} | + | {{tag>matériel BROUILLON}} |
---- | ---- | ||
====== Lecteurs de carte mémoire ====== | ====== 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. | + | L'objet de ce tutoriel 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 ===== | ===== Détection du type de lecteur ===== | ||
- | La première étape est de déterminer quel est le lecteur dans votre portable, pour cela: | + | La première étape est de déterminer quel est le lecteur dans votre portable, pour cela : |
- | + | <code>lspci | |
- | alex@alex-laptop:~$ lspci | + | |
02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller | 02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller | ||
- | 02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller | + | 02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated FlashMedia Controller</code> |
Dans le cas de mon pc (un Acer Extensa 3001WLMi) il s'agit du contrôleur Texas Instruments PCIxx21 | Dans le cas de mon pc (un Acer Extensa 3001WLMi) il s'agit du contrôleur Texas Instruments PCIxx21 | ||
- | Ou | + | Ou : |
- | + | <code>lspci | |
- | pezzos@ubuntu-laptop:~$ lspci | + | |
03:01.1 Class 0805: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 19) | 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.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.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) | + | 03:01.4 System peripheral: Ricoh Co Ltd xD-Picture Card Controller (rev 05)</code> |
Dans le cas de mon pc (le Dell Inspiron 9400 de Pezzos), il s'agit du contrôleur Ricoh. | Dans le cas de mon pc (le Dell Inspiron 9400 de Pezzos), il s'agit du contrôleur Ricoh. | ||
- | |||
- | |||
===== Texas Instruments PCIxx21 ===== | ===== Texas Instruments PCIxx21 ===== | ||
- | |||
- | <note important> | ||
- | Ce lecteur de carte est supporté à partir de Karmic Koala : Ubuntu 9.10 | ||
- | </note> | ||
- | |||
- | <note important> | ||
- | |||
- | 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 | ||
- | </note> | ||
- | |||
- | 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. | ||
- | |||
- | <note important>Ne fonctionne plus à partir de Intrepid Ibex - Ubuntu 8.10</note> | ||
- | |||
- | <note>Tiré du site [[https://bugs.launchpad.net/ubuntu/+source/linux/+bug/222557|Launchpad]]. | ||
- | Uniquement testé sous Ubuntu 8.04, et ne marche que sous Ubuntu 8.04. | ||
- | </note> | ||
- | |||
- | On va d'abord aller chercher le pilote : | ||
- | <code> | ||
- | svn co -r155 http://svn.berlios.de/svnroot/repos/tifmxx/trunk/driver/ | ||
- | </code> | ||
- | |||
- | On se place dans le dossier du pilote : | ||
- | <code> | ||
- | cd driver | ||
- | </code> | ||
- | |||
- | On va chercher le patch : | ||
- | <code> | ||
- | wget http://www.sw83.de/misc/tifm_ms.patch | ||
- | </code> | ||
- | |||
- | Ensuite on applique le patch et on compile : | ||
- | <code> | ||
- | patch -p0 < tifm_ms.patch | ||
- | make | ||
- | sudo make install | ||
- | </code> | ||
- | |||
- | Enfin insérez votre carte et ça devrait fonctionner ! : | ||
- | |||
==== Recompiler le pilote V2 ==== | ==== Recompiler le pilote V2 ==== | ||
- | <note>Tiré de http://ubuntuforums.org/showthread.php?t=797031. | + | <note>Tiré de https://ubuntuforums.org/showthread.php?t=797031. |
Fonctionne sous Ubuntu 9.04 pour les lecteurs de carte Texas Instrument PCIxx21. | Fonctionne sous Ubuntu 9.04 pour les lecteurs de carte Texas Instrument PCIxx21. | ||
Ligne 101: | Ligne 36: | ||
</note> | </note> | ||
- | 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 [[tutoriel/comment_compiler_un_kernel_sur_mesure|recompiler le kernel]] pour obtenir le pilote. Par la suite, libre à vous [[tutoriel/comment_compiler_un_kernel_sur_mesure#installation|d'installer le kernel fraîchement compilé]] ou de juste utiliser le pilote. | + | 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. |
<note important> | <note important> | ||
Ligne 110: | Ligne 45: | ||
=== Méthode manuelle === | === Méthode manuelle === | ||
- | * Activer les [[tutoriel/comment_modifier_sources_maj|dépôts sources]] pour votre [[versions|distribution]] (le dépôt main est suffisant) | + | * Activer les [[tutoriel:comment_modifier_sources_maj|dépôts sources]] pour votre [[versions|distribution]] (le dépôt main est suffisant) |
- | * Ouvrir un [[terminal]] (non, non n'ayez par peu :) ) | + | * Ouvrir un [[:terminal]] (non, non n'ayez par peur :) ) |
* Récupérer les "outils de développement" | * Récupérer les "outils de développement" | ||
<code> | <code> | ||
Ligne 165: | Ligne 100: | ||
=== Méthode automatique === | === Méthode automatique === | ||
- | <note>Si vous n'aimez pas le terminal, il est possible d'utiliser un petit script fait par [[http://ubuntuforums.org/showthread.php?t=797031&page=4|sapmemailek]]</note> | + | <note>Si vous n'aimez pas le terminal, il est possible d'utiliser un petit script fait par [[https://ubuntuforums.org/showthread.php?t=797031&page=4|sapmemailek]]</note> |
* Ouvrez [[nautilus]] (l'explorateur) | * Ouvrez [[nautilus]] (l'explorateur) | ||
Ligne 218: | Ligne 153: | ||
===== Ricoh Co Ltd R5C822 ===== | ===== 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 === | === 1 ere méthode === | ||
Ligne 224: | Ligne 163: | ||
Ce que ne voulons est simple, que la carte SD monte automatiquement dès son insertion dans le slot. | 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 : | 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 | sudo cp /etc/modules /etc/modules.bak | ||
- | \\ | + | |
Nous allons maintenant simplement éditer le fichier /etc/modules : | Nous allons maintenant simplement éditer le fichier /etc/modules : | ||
gksu gedit /etc/modules | gksu gedit /etc/modules | ||
- | \\ | + | |
Et rajouter à la fin de ce fichier dans une nouvelle ligne : | Et rajouter à la fin de ce fichier dans une nouvelle ligne : | ||
tifm_sd | tifm_sd | ||
- | \\ | + | |
Lors du redémarrage, votre lecteur de carte sera fonctionnel (normalement). | Lors du redémarrage, votre lecteur de carte sera fonctionnel (normalement). | ||
- | <note>Sur mon asus W7S j'ai également du ajouter au fichier /etc/modules le module tifm_core</note> | + | <note>Pour tester avant de modifier /etc/modules, on peut se contenter de: |
+ | sudo modprobe tifm_sd | ||
+ | \\ | ||
+ | </note> | ||
- | \\ \\ | + | Sous 12.04, il peut être utile d'ajouter aussi au fichier **/etc/modules** non pas le module tifm_sd mais ceux là : <file> |
+ | pciehp | ||
+ | acpiphp | ||
+ | jmb38x_ms | ||
+ | sdhci-pci | ||
+ | flash_bd | ||
+ | xd_card | ||
+ | jmb38x_xd</file> | ||
+ | Ou encore : | ||
+ | <file>tifm_7xx1 | ||
+ | tifm_core | ||
+ | tifm_ms | ||
+ | tifm_sd | ||
+ | mmc_block | ||
+ | mmc_spi</file> | ||
+ | |||
+ | |||
+ | <note>Sur xubuntu 12.04, inspiron 6400, j'ai blacklisté le module shdci-pci, en ajoutant blacklist sdhci-pci dans /etc/modprobe.d/blacklist</note> | ||
+ | |||
+ | <note>Sur debian wheezy 7.0, Dell inspiron 6400, j'ai blacklisté le module r852 en ajoutant blacklist r852 dans /etc/modprobe.d/blacklist.conf</note> | ||
=== 2 ieme méthode === | === 2 ieme méthode === | ||
- | \\ | + | |
Il existe une autre méthode pour activer votre lecteur de carte (testé avec un DELL inspiron 6400 ) | Il existe une autre méthode pour activer votre lecteur de carte (testé avec un DELL inspiron 6400 ) | ||
- | \\ | + | |
- | tapez la commande : | + | tapez la commande : |
lspci | lspci | ||
- | \\ | + | |
vous allez avoir une liste, dans cette liste repérer la ligne qui contient : | 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 | 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 : | à gauche de cette ligne vous avez quelque chose de ce genre : | ||
03:01.1 | 03:01.1 | ||
- | \\ | + | |
ensuite il suffit de taper ces commandes en changeant le 03:01.1 par ce que vous avez vous : | 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 0xCA=0x57 ( write enable ) | ||
Ligne 262: | Ligne 224: | ||
sudo setpci -s 03:01.1 0xCA=0x00 ( write disable ) | sudo setpci -s 03:01.1 0xCA=0x00 ( write disable ) | ||
- | \\ | ||
- | et ca marche pour une carte du type MMS ! | ||
- | \\ \\ | + | et ca marche pour une carte du type MMC ! |
+ | |||
source : | source : | ||
http://intr.overt.org/blog/?p=59 | http://intr.overt.org/blog/?p=59 | ||
- | |||
===== ENE Technology Inc CB-712/4 ===== | ===== ENE Technology Inc CB-712/4 ===== | ||
- | |Gutsy Gibbon | uniquement avec les cartes SD | | + | Pour que votre lecteur fonctionne, il faut [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] **/etc/modules** avec les [[:sudo|droits d'administration]] et rajoutez les 2 lignes suivantes à la fin du fichier : <file> |
- | |Hardy Heron | testé avec mini sd dans adaptateur, fonctionne, mais pas de detection automatique d'insertion | | + | tifm_sd |
+ | mmc_core</file> | ||
- | Pour que votre lecteur fonctionne, il faut éditer comme suit le fichiers "modules" : | + | ===== O2 Micro Inc Oz776 SmartCard Reader ===== |
- | sudo gedit /etc/modules | + | [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt> libccid]]**. |
- | et rajoutez les 2 lignes suivantes à la fin du fichier : | + | Le tarball (tar.bz2) - fichier archive des sources du pilote - est disponible dans [[https://packages.ubuntu.com/fr/trusty/libccid|Dépôt du paquet libccid dans Trusty Universe]]. |
- | tifm_sd | + | |
- | mmc_core | + | |
- | ===== O2 Micro Inc Oz776 SmartCard Reader ===== | + | * Décompressez l'archive; |
+ | * 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 <code> sudo su </code> | ||
+ | |||
+ | <note important>Télécharger le paquet check Install afin de créer un paquet DEB à partir des sources</note> | ||
+ | |||
+ | <code>sudo apt-get install -f --fix-missing checkinstall</code> | ||
+ | |||
+ | Retour à nos moutons: | ||
+ | * Entrez la commande de compilation <code>./configure </code> | ||
+ | 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 <code>make && make install && depmod && checkinstall</code> | ||
+ | |||
+ | CheckInstall vous demande le nom du paquet DEB des sources du pilote; | ||
+ | * Entrez <code>O2 Micro Inc Oz776 SmartCard Reader </code> | ||
+ | * Faîtes Entrée deux fois; | ||
+ | Checkinstall créé le paquet dans le répertoire des sources. | ||
+ | |||
+ | ===== Realtek Card Reader RTL8411 Device 5286/5289 ===== | ||
+ | |||
+ | <note important>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__**. Hélas cette méthode ne fonctionne plus sous [[16.04|Ubuntu 16.04]].</note> | ||
+ | |||
+ | Le problème vient du fait que proc-info n'est plus présent dans les noyaux récents. Voir [[https://forums.gentoo.org/viewtopic-t-974708-start-0.html|ici]] | ||
+ | |||
+ | Il faut donc supprimer les assertions relatives à ''proc_info'' : | ||
+ | - Télécharger [[https://bugs.launchpad.net/ubuntu/+source/udisks/+bug/971876/+attachment/2991730/+files/rts_bpp.tar.bz2|les sources]] depuis launchpad : | ||
+ | - Extraire l'archive, [[:tutoriel:comment_modifier_un_fichier|Ouvrez le fichier]] ''rtsx.c'' (ou remplacez le par [[https://launchpadlibrarian.net/163687981/rtsx.c|celui-ci]] déjà modifié) : | ||
+ | - Supprimer "_ _devinit" juste avant "rtsx_probe" à la ligne 893 | ||
+ | - Supprimer "_ _devexit" juste avant "rtsx_remove" à la ligne 1048 | ||
+ | - Enlever "_ _devexit_p()" autour de "rtsx_remove" à la ligne 1074 | ||
+ | - Supprimer les lignes 125 à 156<file>static int proc_info (struct Scsi_Host *host, char *buffer, | ||
+ | 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(" Vendor: Realtek Corp.\n"); | ||
+ | SPRINTF(" Product: Barossa Plusplus\n"); | ||
+ | SPRINTF(" Version: %s\n", DRIVER_VERSION); | ||
+ | SPRINTF(" 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); | ||
+ | }</file> | ||
+ | - Supprimer la ligne 259 (227 si vous avez déjà supprimé les lignes précédentes) <file>.proc_info = proc_info,</file> | ||
+ | - Compiler avec "make" (les paquets "build-essential", "fakeroot" et "checkinstall" sont nécessaires, voir le [[tutoriel:compilation|tutoriel:compilation]]) | ||
+ | - Puis "sudo make install" | ||
+ | - Puis "sudo modprobe rts_bpp"(Si cela ne fonctionne pas faire 'sudo depmod -a' et réessayer) | ||
+ | - 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) | ||
+ | - Redémarrer | ||
+ | - - - - - - - - - | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== > <note important>important</note>**Sous Ubuntu 22.04** avec un **Clevo/LDLC**, le lecteur de carte semblait mort alors qu'un lecteur externe donnait accès à la carte SD sans problème. | ||
+ | |||
+ | Le message d'erreur était : | ||
+ | |||
+ | //Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)// | ||
+ | |||
+ | Les tentatives de compilation décrites ci-dessus échouaient avec un message d'erreur dès "make". | ||
+ | |||
+ | J'ai failli abandonner, puis j'ai suivi ces conseils : | ||
+ | |||
+ | **sudo update-pciids && lspci -nn | grep "Card Reader"** | ||
+ | |||
+ | Puis : | ||
+ | |||
+ | Essayez quelque chose d'aussi simple que : | ||
+ | |||
+ | **sudo modprobe -r rtsx_pci** | ||
+ | |||
+ | **sudo modprobe rtsx_pci** | ||
+ | |||
+ | Avec ce commentaire : "En effet, le module rtsx_pci gère le lecteur de carte. Parfois, cela ne fonctionne pas correctement au démarrage." | ||
+ | |||
+ | **Effet IMMÉDIAT, sans même redémarrer. Le lecteur de carte SD est redevenu fonctionnel.** Les solutions par compilations ci-dessus semblent correspondre à un état antérieur d'Ubuntu. J'écris en mars 2024. | ||
+ | |||
+ | La veille, j'avais installé //**firmware-realtek_20230625-2_all.deb**//, un paquet Debian qui maintenant apparaît dans Synaptic et contient RTL8411. J'ai aussi installé le paquet //**Realtek r8168**//. Puis ultérieurement supprimé ce dernier paquet qui cause des erreurs dans dpkg. Le paquet Debian ne sert possiblement à rien. Le problème posé par Realtek Card Reader a donc une solution opérante mais aléatoire.;-) :-| | ||
+ | |||
+ | **AUTRE SOLUTION (TORDUE) DE CONTOURNEMENT :** | ||
+ | |||
+ | La carte mémoire en question, je la laisse en permanence insérée pour des sauvegardes. Il est possible d'ouvrir **/etc/fstab** et de rajouter une ligne **//pour que la carte SD soit chargée automatiquement au démarrage du système//** dans un fichier vide de "**Media**", par exemple, dédié à cet usage et créé pour cela. | ||
+ | |||
+ | Il me faut potasser fstab et mtab... quand j'aurai le temps. Le chargement en lecture seule que j'ai observé a des solutions sans passer par un clic droit. Mais la modification de /etc/fstab présente aussi des inconvénients. Un dernier recours. | ||
- | Aucun pilote ne fonctionne. | + | **MAINTENANT la carte SD se monte souvent au démarrage. Elle peut disparaître après une simple mise en veille de l'ordinateur. En cas d'absence du lecteur et de la carte, tenter « sudo modprobe rtsx_pci » ou « sudo modprobe rtsx_pci rtsx_pci_sdmmc », on croit que c'est le GRAAL ! Mais non, pas à chaque fois. Et même maintenant, ça ne marche plus pour moi !** La solution du problème restant aléatoire, il vaut mieux disposer d'un lecteur externe de carte mémoire qui, lui, branché sur un port USB, marche à tous les coups. |
+ | La carte SD était visible aussi en démarrant sur la live-USB d'Ubuntu, preuve que les drivers et modules de 22.04 incluent tout ce qu'il faut pour Realtek Card Reader RTL8411 Device 5286/5289. Je comprends la prise de tête internationale sur ce problème agaçant. Le problème tient-il au modèle de lecteur ? Mon Clevo/LDLC n'est pas sans défauts et Clevo est spécifiquement mis en cause par d'autres sur ce problème. | ||
+ | Faut-il chercher mieux que la situation actuelle quoique insatisfaisante ? Je m'en tiens là. |