• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] [suse10.0] Promise SATA Treiber compilieren

Bubo

Newbie
hallo,

für die Controllerkarte "Promise SATA300 TX2plus" kennt Suse 10.0 keinen Treiber. Der Hersteller bietet für Suse 9.2 einen fertigen an, der funktioniert gut. Für andere Systeme existiert ein Quellcode, aus dem ich unter Suse 9.3 problemlos den Treiber compilieren und erfolgreich in Betrieb nehmen konnte.
Unter Suse 10.0 scheint das nicht zu funktionieren. Die Kernel-Sourcen sind vorhanden und übersetzt (ohne dem geht es sowieso nicht). Folgende Fehlermeldung (neben vielen Warnungen) erhalte ich bei einem make:
Code:
gurke:~/bin/ut_mod # make
make -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.13-15'
  CC [M]  /root/bin/ut_mod/pdc-ulsata2.o
/root/bin/ut_mod/pdc-ulsata2.c: In function 'ulsata2_init_cam':
/root/bin/ut_mod/pdc-ulsata2.c:1044: warning: format '%d' expects type 'int', but argument 3 has type 'struct ulsata2_adapter_t *'
/root/bin/ut_mod/pdc-ulsata2.c: In function 'ulsata2_detect':
/root/bin/ut_mod/pdc-ulsata2.c:1280: warning: ISO C90 forbids mixed declarations and code
/root/bin/ut_mod/pdc-ulsata2.c:1282: error: implicit declaration of function 'scsi_set_device'
/root/bin/ut_mod/pdc-ulsata2.c: In function 'ulsata2_cbk_atapi_pio':
/root/bin/ut_mod/pdc-ulsata2.c:1913: warning: unused variable 'pada'

[..... noch einige ähnliche Warnungen .... ]

make[2]: *** [/root/bin/ut_mod/pdc-ulsata2.o] Fehler 1
make[1]: *** [_module_/root/bin/ut_mod] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.13-15'
make: *** [default] Fehler 2
gurke:~/bin/ut_mod #
Woran könnte das liegen? Der gleiche Code war unter 9.3 problemlos. Am Compiler? (gcc 4.0.2, unter 9.3 gcc 3.5.5)
Wäre dankbar für Ideen...
 

Morlon

Member
Hi,

die Funktion die dort beschrieben ist, existiert im Kernel der Suse 10 nicht mehr:

The original problem is due to the fact that the poster (seank) is trying to use the Promise "proprietary" driver with kernel 2.6.13, instead of the built-in libsata-based driver. The Promise driver depends on scsi_set_device, a "mid-to-low" internal kernel function which was removed on the transition from kernel 2.6.12 to kernel 2.6.13. I too am trying to use the "proprietary" (I put it between quotes because they supply full source code) promise driver with kernel 2.6.13, because the libsata driver behaves badly when a disk goes bad (starts reporting errors on the *other* disks connected to the same controller, which definitelly isn't good, and is even worse when those disks are in a RAID5 as is my case). I will research further and if I find a solution, I will come back and post it here.

Laut einem Nachfolgepost reicht einfach das auskommentieren des Aufrufs der Funktion scsi_set_device. Aber ich gebe keine Garantie darauf.

Wenn der fertige Treiber von Promise funzt, nimm lieber den.

MfG
 
OP
B

Bubo

Newbie
Hi Morlon,
Das ist ja scheinbar der gute Hinweis, werde ich heute abend mal probieren. Ist schliesslich eine Testmaschine ....
Wenn der fertige Treiber von Promise funzt, nimm lieber den.
tut er ja nicht, existiert nur für den Kernel von Suse 9.2. Bei einem Test (habe ich natürlich als erstes probiert) meckert das System wegen der unterschiedlichen Kernelversionen...

Kannst Du bitte den Link für obiges Posting mal hier reinstellen? dann spare ich mir das Suchen nach dem Original und den weiteren Postings....
 
OP
B

Bubo

Newbie
Code:
driver successfully created

So eine Meldung liest man gerne. Danke für den guten Tipp!
Ich habe tatsächlich nur die fragliche Zeile auskommentiert (bis man als Nicht-Programmierer die Kommentarzeichen raus hat :roll: ...).

Dann den Treiber an den richtigen Platz kopiert, geladen und das System ist zufrieden - ich auch. Habe das /usr Verzeichnis auf eine Partition auf der SATA verschoben, viel arbeiten lassen (z.B. Kernel neu gemacht) und keine Probleme gefunden.

Kann man solche Sachen wie dieses Treibermodul nicht hier im Forum anderen zur Verfügung stellen?
 

Morlon

Member
Hab den Link leider nicht mehr.

Schau mal in Google nach Patch erstellen. Dann kannst du einfach hier die paar Codezeilen des Patches posten. Es werden dabei einfach beide Quelldateien miteinander verglichen und der Diff in einen Patch verpackt.

MfG
 
Oben