Modul fuer Rocket Raid 1820A
Jan 'RedBully' Seiffert
redbully at cc.fh-luh.de
Sat Aug 6 13:24:18 CEST 2005
Stefan Diestelhorst schrieb:
> Hallo,
Hallihallo,
> Ich setze den c't Server 1.1 mit dem 2.6 Kernel ein. Ein Highpoint 1820a
> in einem normalen PCI Slot (nicht PCI-X) mit 4 SATA Festplatten soll als
> Datenspeicher im RAID 5 dienen. Beim Kompilieren des Open Source
> Treibers v1.12c von Highpoint erhalte ich immer folgende Fehlermeldung:
>
> cp -f raid.o raid.obj
> make -C /usr/src/linux SUBDIRS=`pwd` modules
> make[1]: Entering directory `/usr/src/kernel-source-2.6.12-ct-1'
> LD [M] /usr/src/rr182x-opensource-v1.12c/hptmv.o
> Building modules, stage 2.
> MODPOST
> *** Warning: "scsi_to_pci_dma_dir"
> [/usr/src/rr182x-opensource-v1.12c/hptmv.ko] undefined!
> LD [M] /usr/src/rr182x-opensource-v1.12c/hptmv.ko
> make[1]: Leaving directory `/usr/src/kernel-source-2.6.12-ct-1'
>
>
Er konnte ein Symbol (in dem Fall wohl eine Funktion) nicht finden, sie
ist im Modul referenziert, im Kernel aber nicht vorhanden.
> Beim Versuch den Treiber zu laden folgt diese Meldung:
>
> server2:/usr/src/rr182x-opensource-v1.12c# insmod ./hptmv.ko
> insmod: error inserting './hptmv.ko': -1 Unknown symbol in module
>
Ja, siehe oben. Natuerlich kann das Modul dann auch nicht geladen werden.
> Mit einem Debian Sarge 2.6 konnte ich den Treiber kompilieren und
> einsetzen.
So, da es ja mit einem Debian Sarge 2.6 funzt, ist wohl ersichtlich das
2.6 != 2.6 ist, da kommenen meist noch ein paar Nummern.
Oder anders gesagt:
Welche genauen Version (bis zur n.ten Stelle ganz hinten) sind jetzt an
dem geht/geht nich beteiligt.
> Beim googeln konnte ich keine Loesungen finden. Auch im c't
> Forum konnte mir noch keiner helfen, daher wende ich mich jetzt an Euch.
Hmmmm,
dann noch eine kleine Erklaerung wo das Problem herkommt:
Linux hat keine feste Kernel-API (Programierschnittstelle, also welche
Funktionen mir als Treiberschreiber zur Verfuegung stehen). Wenn
Torvalds (oder $SUBSYSTEM_MAINTAINER) entscheidet, z.B. SCSI hat bis
heute gestunken, und das wird jetzt anders gemacht, dann wird das anders
gemacht. Und nein, ein Kompatibilitaetslayer gibts (meist) nicht.
Ergebniss einer solchen Umstellung ist dann, das alle vom Kernel
mitgebrachten Treiber die das betrifft angefasst werden, um sie
umzustellen oder rauszuschmeissen (wenn sich keiner findet der das macht).
Beispiel dazu war jetzt innerhalb von ich glaub 2.6.9 zu 2.6.10 die API
wie sich ein Treiber ein Gearaet auf dem PCI-Bus fuer sich registriert.
Also wurden alle Trieber im Kernel fuer PCI-Geraete umgestellt.
Probleme haben dann natuerlich Treiber ausserhalb des Kernel, die
muessen a) die aenderung mitkriegen b) aenderung selbst machen (darum
ist auch immer grosses Ziel den Treiber in den Kernel zu kriegen...).
Ach ja, es gibt noch zwei weitere moeglichkeiten woran das Problem
liegen koennte:
1) Jemand hat das Symbol als nur GPL-Lizensierten Modulen zur verfuegung
stehend markiert, und dein OpenSource Treiber ist zwar OpenSource, aber
nicht GPL.
2) Dieses Symbol (und damit die Funktion) ist nur vorhanden, wenn das
Passende Feature im Kernel einkompiliert wurde (denk ich aber mal nich),
also is das Feature (versehentlich) aus.
So, zur Loesung:
API-Aenderung -> Treiber umschreiben oder auf fix vom Erzeuger warten.
Lizenzproblem -> Treiber umschreiben oder auf fix vom Erzeuger warten.
Optionsproblem -> Optionen noch mal durchgehen, mit alten vergleichen,
zur not nen bischen was zusaetzlich anmachen.
Schoener ist natuerlich wenn das Problem schon bekannt ist und jemand
das schon eingegrenzt hat, so das man nicht ganz im dunkeln stochert.
Nach dem ich jetzt grad selber etwas gegoogelt hab, sieht es so aus, das
sie scsi_to_pci_dma_dir 2002 eingefuert haben, und 2004 wurde es wohl
als deprecated markiert und damit wieder sukzessive rausgeschmissen.
> Ich bin kein Linux-Profi, scheue mich aber nicht auch mal einen neuen
> Kernel zu kompilieren, wenn ich die richtigen Einstellungen dafür
> bekommen kann. Es waere schoen wenn Ihr mir den entscheidenden Hinweis
> liefern oder bei der Problemloesung helfen koenntet .
>
Vielleicht hilft dir folgende Seite:
<http://forums.fedoraforum.org/showthread.php?t=66885>
Aber ingesammt sieht es wohl so aus, das HighPoint ihren Treiber fixen
muss...
> Vielen Dank im vorraus.
>
> MfG
> Stefan Diestelhorst
> s.diestelhorst at diesys-net.de
>
HTH
Gruss
Jan
--
Fachbegriffe der Informatik (#213): NT-Fernwartung
Microsoft Cordless Wheel Mouse
More information about the Linux
mailing list