[rts_pstor] erreur installation module pour lecteur carte sd

Mise à jour / Création /debug de paquetages
naindejardin
newbie
Messages : 2
Inscription : dim. 29 sept. 2013, 11:15

[rts_pstor] erreur installation module pour lecteur carte sd

Message par naindejardin »

Bonjour,

Désireux d'activer le lecteur de cartes SD sur ma machine j'ai cherché différentes solutions sur internet.
En m'appuyant sur diverses découvertes à droite et à gauche j'ai commencé par chercher mon périphérique sur ma machine, un lspci me donne :

Code : Tout sélectionner

00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4)
00:1c.3 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 4 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation 7 Series Chipset Family LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
02:00.0 Network controller: Intel Corporation Centrino Wireless-N 135 (rev c4)
03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5286 (rev 01)
03:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E/RTL8102E PCI Express Fast Ethernet controller (rev 06)
Il semblerait que ce soit "03:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device 5286 (rev 01)" qui tienne lieu de lecteur de carte SD sur ma machine.

Un lsmod | grep sd me donne :

Code : Tout sélectionner

sd_mod                 30739  6 
scsi_mod              128695  2 libata,sd_mod
Un hwinfo --redasd me donne :

Code : Tout sélectionner

01: IDE 00.0: 10600 Disk                                        
  [Created at block.245]
  Unique ID: 3OOL.fPd3xyF4Bv5
  SysFS ID: /class/block/sda
  SysFS BusID: 0:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0
  Hardware Class: disk
  Model: "TOSHIBA MK6475GS"
  Vendor: "TOSHIBA"
  Device: "MK6475GS"
  Revision: "GT00"
  Driver: "ahci", "sd"
  Driver Modules: "ahci"
  Device File: /dev/sda
  Device Files: /dev/sda, /dev/disk/by-id/ata-TOSHIBA_MK6475GSX_62MHS06ZS, /dev/disk/by-id/wwn-0x5000039415e0652b
  Device Number: block 8:0-8:15
  BIOS id: 0x80
  Drive status: no medium
  Config Status: cfg=new, avail=yes, need=no, active=unknown
lsmod :

Code : Tout sélectionner

Module                  Size  Used by
fuse                   74701  2 
nls_cp437               5953  1 
vfat                   10055  1 
fat                    51827  1 vfat
uvcvideo               72804  0 
videobuf2_vmalloc       3272  1 uvcvideo
videobuf2_memops        2335  1 videobuf2_vmalloc
videobuf2_core         27797  1 uvcvideo
videodev              110188  2 uvcvideo,videobuf2_core
media                  11591  2 uvcvideo,videodev
joydev                  9663  0 
arc4                    2000  2 
iwldvm                172354  0 
btusb                  18496  0 
bluetooth             308340  2 btusb
mac80211              453784  1 iwldvm
x86_pkg_temp_thermal     6959  0 
intel_powerclamp        8802  0 
coretemp                6326  0 
i915                  610839  3 
kvm_intel             129393  0 
kvm                   379223  1 kvm_intel
crc32_pclmul            3019  0 
crc32c_intel           14249  0 
intel_agp              10872  1 i915
ghash_clmulni_intel     4501  0 
intel_gtt              12664  2 i915,intel_agp
iwlwifi               137145  1 iwldvm
drm_kms_helper         35854  1 i915
cryptd                  8473  1 ghash_clmulni_intel
i2c_i801               11269  0 
snd_hda_codec_hdmi     30616  1 
cfg80211              402729  3 iwlwifi,mac80211,iwldvm
drm                   236028  4 i915,drm_kms_helper
r8169                  58391  0 
microcode              13488  0 
iTCO_wdt                5407  0 
i2c_algo_bit            5391  1 i915
i2c_core               23720  6 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,videodev
mii                     4027  1 r8169
iTCO_vendor_support     1929  1 iTCO_wdt
snd_hda_codec_via      19718  1 
snd_hda_intel          36520  5 
snd_hda_codec         148129  3 snd_hda_codec_hdmi,snd_hda_codec_via,snd_hda_intel
snd_hwdep               6332  1 snd_hda_codec
snd_pcm                77765  4 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel
rfkill                 15698  3 cfg80211,bluetooth
pcspkr                  2027  0 
psmouse                85356  0 
wmi                     8347  0 
shpchp                 25457  0 
snd_page_alloc          7234  2 snd_pcm,snd_hda_intel
mei_me                  9296  0 
serio_raw               5041  0 
mei                    61875  1 mei_me
lpc_ich                13112  0 
snd_timer              18718  2 snd_pcm
thermal                 8620  0 
video                  11380  1 i915
battery                 6925  0 
ac                      3324  0 
snd                    59141  15 snd_hwdep,snd_timer,snd_hda_codec_hdmi,snd_hda_codec_via,snd_pcm,snd_hda_codec,snd_hda_intel
button                  4669  1 i915
soundcore               5450  1 snd
mperf                   1267  0 
processor              24917  0 
evdev                  10693  15 
ext4                  470156  3 
crc16                   1359  2 ext4,bluetooth
mbcache                 5866  1 ext4
jbd2                   83376  1 ext4
hid_generic             1153  0 
usbhid                 41466  0 
hid                    88830  2 hid_generic,usbhid
sd_mod                 30739  6 
ahci                   22888  5 
libahci                21393  1 ahci
libata                171318  2 ahci,libahci
scsi_mod              128695  2 libata,sd_mod
ehci_pci                4120  0 
ehci_hcd               48084  1 ehci_pci
usbcore               177959  5 btusb,uvcvideo,ehci_hcd,ehci_pci,usbhid
usb_common              1648  1 usbcore
Je n'ai aucune différence dans le dmesg en insérant et en enlevant une carte sd.
Les linux-headers sont bien installés.

J'ai donc essayé d'installé le module rts_pstor comme j'ai lu au détour d'une page, je télécharge, je décompresse et c'est au "make" que j'ai des erreurs :

Code : Tout sélectionner

sed "s/RTSX_MK_TIME/`date +%y.%m.%d.%H.%M`/" timestamp.in > timestamp.h
cp -f ./define.release ./define.h
make -C /lib/modules/3.11.2-1-ARCH/build/ SUBDIRS=/home/vmonteco/Divers/pilot/rts_pstor modules
make[1]: Entering directory `/usr/src/linux-3.11.2-1-ARCH'
  CC [M]  /home/vmonteco/Divers/pilot/rts_pstor/rtsx.o
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:275:2: error: unknown field 'proc_info' specified in initializer
  .proc_info =   proc_info,
  ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:275:2: warning: initialization from incompatible pointer type [enabled by default]
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:275:2: warning: (near initialization for 'rtsx_host_template.proc_dir') [enabled by default]
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:916:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rtsx_probe'
 static int __devinit rtsx_probe(struct pci_dev *pci, const struct pci_device_id *pci_id)
                      ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:1080:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'rtsx_remove'
 static void __devexit rtsx_remove(struct pci_dev *pci)
                       ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:1106:11: error: 'rtsx_probe' undeclared here (not in a function)
  .probe = rtsx_probe,
           ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:1107:2: error: implicit declaration of function '__devexit_p' [-Werror=implicit-function-declaration]
  .remove = __devexit_p(rtsx_remove),
  ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:1107:24: error: 'rtsx_remove' undeclared here (not in a function)
  .remove = __devexit_p(rtsx_remove),
                        ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:485:12: warning: 'rtsx_control_thread' defined but not used [-Wunused-function]
 static int rtsx_control_thread(void * __dev)
            ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:596:12: warning: 'rtsx_polling_thread' defined but not used [-Wunused-function]
 static int rtsx_polling_thread(void * __dev)
            ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:745:13: warning: 'quiesce_and_remove_host' defined but not used [-Wunused-function]
 static void quiesce_and_remove_host(struct rtsx_dev *dev)
             ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:780:13: warning: 'release_everything' defined but not used [-Wunused-function]
 static void release_everything(struct rtsx_dev *dev)
             ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:790:12: warning: 'rtsx_scan_thread' defined but not used [-Wunused-function]
 static int rtsx_scan_thread(void * __dev)
            ^
/home/vmonteco/Divers/pilot/rts_pstor/rtsx.c:816:13: warning: 'rtsx_init_options' defined but not used [-Wunused-function]
 static void rtsx_init_options(struct rtsx_chip *chip)
             ^
cc1: some warnings being treated as errors
make[2]: *** [/home/vmonteco/Divers/pilot/rts_pstor/rtsx.o] Error 1
make[1]: *** [_module_/home/vmonteco/Divers/pilot/rts_pstor] Error 2
make[1]: Leaving directory `/usr/src/linux-3.11.2-1-ARCH'
make: *** [default] Error 2
J'avoue que je bloque un peu car je ne sais pas d'où provient l'erreur, ce n'est pas la première fois que je tombe sur ce genre d'obstacle.
Je manque encore d'expérience et de connaissances sur linux et j'avoue que j'aimerais comprendre le problème, le module est mal codé? Cela me semble étrange. J'ai essayé avec un autre module realtek, et en essayant d'installer kmod également : même résultats.
Auriez-vous des suggestions?

Je vous remercie par avance pour votre aide!
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17576
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [rts_pstor] erreur installation module pour lecteur cart

Message par benjarobin »

Peux tu donner à nouveau la sortie de : hwinfo --redasd avec une carte SD
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
naindejardin
newbie
Messages : 2
Inscription : dim. 29 sept. 2013, 11:15

Re: [rts_pstor] erreur installation module pour lecteur cart

Message par naindejardin »

Bonjour, tout d'abord merci pour votre réponse.

Voici le retour que j'obtiens avec hwinfo --redasd après avoir inséré une carte sd :

Code : Tout sélectionner

01: IDE 00.0: 10600 Disk                                        
  [Created at block.245]
  Unique ID: 3OOL.fPd3xyF4Bv5
  SysFS ID: /class/block/sda
  SysFS BusID: 0:0:0:0
  SysFS Device Link: /devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0
  Hardware Class: disk
  Model: "TOSHIBA MK6475GS"
  Vendor: "TOSHIBA"
  Device: "MK6475GS"
  Revision: "GT00"
  Driver: "ahci", "sd"
  Driver Modules: "ahci"
  Device File: /dev/sda
  Device Files: /dev/sda, /dev/disk/by-id/ata-TOSHIBA_MK6475GSX_62MHS06ZS, /dev/disk/by-id/wwn-0x5000039415e0652b
  Device Number: block 8:0-8:15
  BIOS id: 0x80
  Drive status: no medium
  Config Status: cfg=new, avail=yes, need=no, active=unknown
Je ne vois malheureusement pas de différence.
J'avoue cependant ne pas être capable de décrypter ce résultat.

Cordialement.
Avatar de l’utilisateur
exzemat
Daikyu
Messages : 64
Inscription : jeu. 19 mai 2011, 10:17

Re: [rts_pstor] erreur installation module pour lecteur cart

Message par exzemat »

à priori il s'agit d'un bug du kernel linux (idem sous ubuntu mainline kernel v3.13-rc3-trusty)
le chipset de ce lecteur de carte sd (5286/5289) était pris en charge par l'installation d'un module rts-bpp
(dispo dans AUR https://aur.archlinux.org/packages/dkms-rts_bpp/),
mais depuis les versions récentes du kernel linux ce module ne peut plus être installé.

ce n'est pas forcément grave pour tous ceux qui ont un chipset de carte sd realtek car le kernel intègre désormais le driver rtsx-pci qui prend apparemment en charge ce genre de chipset.
Malheureusement il ne prend pas encore en charge le chipset 5286...

j'ai donc créé ouvert un post sur buqzilla
https://bugzilla.kernel.org/show_bug.cgi?id=67491
et fait un mail au mainteneur de linux-mmc
http://marc.info/?l=linux-mmc&m=138774674016006&w=4

voir également mon post ouvert sur launchpad
https://bugs.launchpad.net/ubuntu/+sour ... ug/1250605

si d'autres personnes sont concernées, il pourrait être judicieux de faire remonter la priorité de ces posts.
Avatar de l’utilisateur
exzemat
Daikyu
Messages : 64
Inscription : jeu. 19 mai 2011, 10:17

Re: [rts_pstor] erreur installation module pour lecteur cart

Message par exzemat »

après plusieurs manipulations, j'ai réussi à installer le driver rts-bpp pour une carte realtek 5286/5289.
le problème vient du fait que proc-info n'est plus présent sur les kernel récents;

voir step 3
https://forums.gentoo.org/viewtopic-t-9 ... art-0.html

j'ai réaliser ces manipulation pour ubuntu 13.10, mais ça devrait marcher pour arch aussi

to resume
WORKAROUND: work for 13.10:
1. Download:
https://bugs.launchpad.net/ubuntu/+sour ... pp.tar.bz2
2. Extract archive, edit rtsx.c:
2.1. Remove __devinit from rtsx_probe in line 893
2.2. Remove __devexit from rtsx_remove in line 1048
2.3. Extract rtsx_remove from __devexit_p() in line 1074
2.4. Remove line 125 to 156
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);
}

2.5 Remove line 259
.proc_info = proc_info,

3. Compile with "make"
4. As root, make install
5. Blacklist rtsx_pci in /etc/modprobe.d/rtsx_blacklist.conf (add "blacklist rtsx_pci")
6. 'modprobe rts_bpp'
7. run mkinitcpio -p linux
8. Restart the machine
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [rts_pstor] erreur installation module pour lecteur cart

Message par FoolEcho »

exzemat a écrit :2.3. Extract rtsx_remove from __devexit_p() in line 1074
Ça signifie quoi ? :P

(et merci d'utiliser les balises pour le code: ça rendrait les instructions plus lisibles. :chinois: ... un patch serait mieux)
«The following statement is not true. The previous statement is true.» :nage:
Répondre