Disque dur sata avec module sata_sis[résolu]

Bonjour.

Voici plusieurs jours que je bute sur un problème de module. J’ai voulu installer etch sur mon nouvel ordinateur avec disque sata. Impossible : il n’était pas reconnu. J’ai ajouté un ide qui n’a posé aucun problème.
J’ai testé ensuite la live de mandriva qui a reconnu mon disque et lu les partitions ntfs qui y étaient (debian ne fonctionnant pas, j’avais installé windows pour tester). Le module utilisé par mandriva était sata_sis. Si mandriva pouvait le lire, debian devait aussi pouvoir !!
En fait, le module sata_sis de mandriva est plus récent que celui de debian (il inclut les drivers pour sis 180, comme la debian, mais aussi ceux pour sis 1180, 1183, …, ceux dont j’ai besoin).
Je suis donc allé sur le site de sis pour récupérer les sources et les compiler afin de me fabriquer le module sata_sis.ko dont j’avais besoin. La recette est donnée, elle est simple : décompresser les fichiers, lancer make puis make install en tant que root, puis modprobe sata_sis.
J’ai donc tapé, en tant que root :
apt-get install linux-headers-2.6.18-4-686 build-essential (pour installer les paquets nécessaires à la compilation, mon noyau linux est le 2.6.18-4-686), puis make
Mais ça n’a pas marché !
Il me manquait apparemment une bibliothèque : scsi_request.h (pourquoi debian ne l’a t-il pas ??)
J’ai réussi à trouver un fichier à ce nom sur internet (mais est-ce le bon ?). En tout état de cause, je l’ai enregistré, puis relancer make.
L’avertissement concernant ce fichier n’y était plus, mais des erreurs y étaient toujours. Impossible de créer mon module.
Je ne sais plus quoi faire, quelqu’un a-t-il une solution ? Ai-je oublié d’installer quelque chose pour la compilation ?
Afin de préciser les choses, voici tous les détails de mon problème :

Configuration :
pentium D 820 sur carte mère foxconn sis 6627MA, disque dur maxtor 160 Go en sata (j’ai ajouté un dd ide pour installer debian, mais j’aimerais vraiment pour utiliser le sata)

Résultat de lspci :
00:00.0 Host bridge: Silicon Integrated Systems [SiS] Unknown device 0662 (rev 01)
00:01.0 PCI bridge: Silicon Integrated Systems [SiS] SiS AGP Port (virtual PCI-to-PCI bridge)
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] Unknown device 0966 (rev 59)
00:02.5 IDE interface: Silicon Integrated Systems [SiS] 5513 [IDE] (rev 01)
00:02.7 Multimedia audio controller: Silicon Integrated Systems [SiS] AC’97 Sound Controller (rev a0)
00:03.0 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.1 USB Controller: Silicon Integrated Systems [SiS] USB 1.0 Controller (rev 0f)
00:03.3 USB Controller: Silicon Integrated Systems [SiS] USB 2.0 Controller
00:05.0 IDE interface: Silicon Integrated Systems [SiS] Unknown device 1183 (rev 02)
00:06.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
00:07.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:1f.0 PCI bridge: Silicon Integrated Systems [SiS] PCI-to-PCI bridge
01:00.0 VGA compatible controller: Silicon Integrated Systems [SiS] 661/741/760/761 PCI/AGP VGA Display Adapter (rev 04)

On y voit trois unknnown device dont le sis 1183. J’ai modifié le réglage du bios, mais ça n’a rien changé (le 1183 était remplacé par 1184 (raid) ou 1185 (sata) mais ça ne fonctionnait pas mieux).

Un make en root dans le répertoire de décompression donne
make -C /lib/modules/2.6.18-4-686/build SUBDIRS=/home/kiti/sa modules
make[1]: entrant dans le répertoire « /usr/src/linux-headers-2.6.18-4-686 »
CC [M] /home/kiti/sa/sata_sis.o
In file included from /home/kiti/sa/sata_sis.c:38:
/home/kiti/sa/scsi.h: In function ‘print_req_sense’:
/home/kiti/sa/scsi.h:81: warning: implicit declaration of function ‘scsi_print_req_sense’
/home/kiti/sa/scsi.h:81: warning: ‘return’ with a value, in function returning void
/home/kiti/sa/scsi.h: In function ‘print_msg’:
/home/kiti/sa/scsi.h:97: warning: implicit declaration of function ‘scsi_print_msg’
/home/kiti/sa/sata_sis.c: At top level:
/home/kiti/sa/sata_sis.c:91: error: unknown field ‘eh_strategy_handler’ specified in initializer
/home/kiti/sa/sata_sis.c:91: error: ‘ata_scsi_error’ undeclared here (not in a function)
/home/kiti/sa/sata_sis.c: In function ‘sis_init_one’:
/home/kiti/sa/sata_sis.c:358: error: too few arguments to function ‘ata_pci_init_native_mode’
/home/kiti/sa/sata_sis.c: At top level:
/home/kiti/sa/sata_sis.c:460: fatal error: opening dependency file /home/kiti/sa/.sata_sis.o.d: Permission non accordée
compilation terminated.
make[2]: *** [/home/kiti/sa/sata_sis.o] Erreur 1
make[1]: *** [module/home/kiti/sa] Erreur 2
make[1]: quittant le répertoire « /usr/src/linux-headers-2.6.18-4-686 »
make: *** [default] Erreur 2

Le fichier contenant le source (sata_sis.c et Makefile) peut être trouvé à l’adresse suivante : sis.com/download

Voilà !
Si quelqu’un me trouve une solution, ou arrive à fabriquer ce sata_sis.ko, je lui en serai gré, car je ne sais plus quoi faire (nombreuses recherches sur internet, tests de distributions, …)
D’avance merci.
Cordialement.

je n’ai pas lu le post, par manque de temps, par contre, j’ai vu ça qui me fais ticker:

/home/kiti/sa/sata_sis.c:460: fatal error: opening dependency file /home/kiti/sa/.sata_sis.o.d: Permission non accordée 

Problème de permissions ? :wink:

A+

Bonjour.

En fait, j’ai réussi à corriger les erreurs pour que le make fonctionne. La compilation arrive à son terme mais l’introduction du module (modprobe sata_sis) ne donne aucun résultat. Pire… Lorsque je fait depmod sata_sis.ko et que je redémarre, ça plante certains drivers (la souris par exemple). Je fait alors depmod -a et ca remarche.
Tous les autres fichiers sata_sis.c que j’ai téléchargé sur le net contenaient des erreurs. J’en ai corrigé un mais ça n’a pas marché non plus (même comportement). Il y a probablement quelque chose que j’ai oublié, mais quoi …?

Bonjour. Merci de vos réponses.

J’ai, d’une certaine façon, résolu le problème. Dans le bios, on peut régler la façon de gérer le disque sata : en ide (lspci : sis1183), en raid (lspci : sis1184), ou en sata (lspci : sis1185). Sur un site qui traite des modules (je ne sais plus lequel), j’avais lu que c’est le module ahci qui convient mieux pour gérer les chipset sis récent.
Cependant :

  • le module ahci de etch ne le permet pas (il n’est pas actualisé)
  • mandriva utilise un module sata_sis qui fonctionne

Je suis parvenu à trouver un sata_sis.c qui prenne en compte le chipset concerné, à corriger les erreurs (il y en avait un certain nombre), et à le compiler. Mais ça n’a quand même pas marché… N’ai-je pas bien compilé ?

Je me suis alors posé la question de l’installation d’un nouveau noyau. J’ai téléchargé le stable le plus récent (à ce jour le 2.6.20.7). Le répertoire drivers contient un répertoire ata dont le sata_sis ne prend toujours pas en compte les sis1183 à 1185, mais le ahci.c, oui (1184 et 1185 apparaissent) ! J’ai donc compilé ce noyau (en cochant les options sata de sis et ahci lors du make menuconfig). En effet : le sata n’est pas activé par défaut. Et ça a marché !!! J’ai maintenant accès à mon disque sata.

Cependant, ça ne résoud pas entièrement le problème, car au départ, je n’avais pas de disque ide sur cet ordinateur. Je n’ai donc pu installer debian qu’en en ajoutant un. Je n’ai pas trouvé la solution permettant d’intégrer un sata_sis modifié, ou un ahci modifié lors de l’installation de etch afin de voir le sata, ce qui m’aurait permit d’y installer le système (j’ai essayé mais ça n’a pas marché, les modules que j’avais compilés étaient rejetés ou ne fonctionnaient pas).
Peu importe, cette solution fonctionne, et c’est l’essentiel.