QUANCOM Kernel Modul
Um unsere Karten und Module unter Linux ansprechen zu können, ist einerseits ein Kernel Modul
und andererseits die QLIB erforderlich. Das Kernel Modul stellt nur die absolut notwendige
Kommunikationschicht zur Verfügung die QLIB hingegen macht die eigentliche Arbeit.
Das PCI Kernel Modul unterstützt alle PCI Optokoppler und Relais Karten, sowie die PCI Watchdogkarten und das USB Kernel Modul alle USB Optokoppler- und Relaismodule, die USB Watchdogkarte sowie die USBGPIB Module von QUANCOM.
Eine Liste der unterstützten Karten finden Sie hier: Liste aller Linux fähigen Karte und Module
Vorgeschichte
Vorraussetzung für die Kernel Modul Installation ist ein Linux Kernel der 2.6.x Reihe.
Dazu passend wird der ausgepackte und konfigurierte Kernelsourcebenötigt. Idealerweise
hat man den Source in /usr/src ausgepackt, konfiguriert und den aktuell laufenden Kernel
daraus generiert. Diverse Distributionen wie Ubuntu bieten auch andere Wege an zu einem
passenden Kernelsource zu kommen.
Als nächstes ist herrauszufinden, ob eines der beiden device
Dateisysteme udev oder devfs im Einsatz ist. Am einfachsten mit
>> mount
und dann überprüfen, ob etwas an /dev gemountet ist (nicht /dev/pts oder /dev/shm).
Kernel Modul
Im Verzeichnisbaum, welchen man erhält wenn man das heruntergeladene Treiber Archiv auspackt,
gibt es ein Verzeichnis module. Nachdem man in dieses Verzeichnis gewechselt ist, startet
man einfach
>> make
Im optimalen Fall findet make jetzt den Kernelsource und baut das Modul. Wenn make die
Kernelsourcen nicht findet, so muss man sie explizit angeben.
>> make LINUX_SOURCE=/usr/src/linux-2.6.12
Wobei /usr/src/linux-2.6.12 für das Verzeichnis steht in dem die Sourcen des Kernel liegen.
Sollten dabei wider Erwarten Fehlermeldungen kommen, dann bitte den Output in eine Datei
umleiten und uns zumailen.
Test
Dieser Schritt funktioniert nur, wenn der laufende Kernel die gleiche Version hat wie die
Kernelsourcen und man selber als root arbeitet.
>> make insmod
Danach sollte das Kernelmodul geladen sein, wovon man sich mit
>> dmesg | tail
überzeugen kann. Wenn jetzt eine QUANCOM PCI Karte eingebaut ist, sollte sie gefunden
sein. Alternativ kann man jetzt ein QUANCOM USB Modul anschließen. Dessen Erkennung überprüft
man wieder mit
>> dmesg | tail
Besitzt man ein USB Modul, und udev oder devfs so wird automatisch ein Device node für
dieses Modul angelegt. Dieses findet man entweder als /dev/qusb0 oder /dev/usb/qusb0.
Benutzt man klassische Device Nodes, so muss man diese per Hand anlegen (einmal).
Im Unterschied zum USB Kernel Modul ist im PCI Kernel Modul leider noch keine
Unterstützung für udev oder devfs. Somit sind von allen die Device nodes selbst zu
erzeugen.
Wenn man klassische Device Nodes einsetzt, dann ist nichts weiter zu beachten.
Wenn man aber udev oder devfs einsetzt, dann muss man diese Device Nodes entweder nach
jedem Neustart neu erzeugen, oder aber sie erzeugen während udev bzw. devfs nicht gemountet
ist. (Bei jedem mount werden die bestehenden Nodes übernommen und alle anderen nur
virtuell erzeugt, sind also nach dem unmount/neustart weg.) Das nur als Hintergrundinfo.
Da wir in Zukunft die Unterstützung von udev/devfs einbauen werden und die Anleitung
je nach Wissensstand um Linux nicht ganz trivial ist sei der erste Weg empfohlen, also
nach jedem Neustart neu anlegen.
Am einfachsten geht es mit:
>> make nodes
Installation
Dieser Schritt muss nicht sein, weil das System auch so läuft, aber wenn man das Modul
installiert kann der kernel es automatisch finden und laden, sonst muss man es nach jedem
Neustart von Hand tun. Das System sollte unter dem Zielkernel laufen und man als root arbeiten:
>> make install
Wie oben sollte jetzt make automatisch wissen wohin es das Modul ablegt. Dabei bitte auf
den Output achten, sollte in dem Verzeichnisnamen keine Versionsnummer auftauchen, dann
ist etwas schiefgelaufen.
Fragen und Anregungen wie immer zu uns unter support@quancom.de.
|