Probleme mit Hardlock-Dongle und Treiber
Probleme mit Hardlock-Dongle und Treiber
Also ich versuche einen Treiber für einen Hardlock-Dongle zu installieren. Einen allgemeinen Linux-Treiber gibt es zum Download, wunderbar. Hat auch ein Install-Script mit an Bord, welches mir die Installation zwar erleichtert, aber möglicherweise liegt da schon das Problem, weil das Script vllt nicht zu debian passt. Um es nutzen zu können, habe ich die Kernel-Sourcen installiert (hab die passenden 2.4.27 aus aptitude von den debian-paketen gewählt) und ich musste in dem Install-Script die Pfad-Angabe für die Sourcen ändern. Nun verrichtet das Script seinen Dienst, kompiliert und installiert den Treiber. Ein Ausführen des Treiber-Moduls mit modprobe bringt aber folgende Meldung:
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __request_region_Rsmp_1a1a4f09
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol register_chrdev_Rsmp_01679e76
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __generic_copy_to_user_Rsmp_d523fdd3
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_claim_Rsmp_dc843753
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_register_device_Rsmp_75a20b73
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol unregister_chrdev_Rsmp_c192d491
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol interruptible_sleep_on_timeout_Rsmp_5a57b6ef
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __vmalloc_Rsmp_79995c5b
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_unregister_device_Rsmp_0cffd5b6
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol schedule_timeout_Rsmp_17d59d01
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_release_Rsmp_e2338255
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __wake_up_Rsmp_127fda83
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __check_region_Rsmp_f1d0cdab
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol printk_Rsmp_1b7d4074
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol kfree_Rsmp_037a0cba
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol ioport_resource_Rsmp_865ebccd
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol vfree_Rsmp_2fd1d81c
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol kmalloc_Rsmp_93d4cfe6
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol interruptible_sleep_on_Rsmp_8c23e4cb
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_enumerate_Rsmp_b88956ae
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol schedule_Rsmp_4292364c
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __udelay_Rsmp_9e7d6bd0
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __generic_copy_from_user_Rsmp_116166aa
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol jiffies_Rsmp_0da02d67
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __release_region_Rsmp_d49501d4
/lib/modules/2.4.27-2-386/misc/aksparlnx.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. The module may be trying to access
GPLONLY symbols but the problem is more likely to be a coding or
user error. Contact the module supplier for assistance, only they
can help you.
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: insmod /lib/modules/2.4.27-2-386/misc/aksparlnx.o failed
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: insmod aksparlnx failed
Kann sich da jemand einen Reim drauf machen oder einen Tipp geben, wie ich anders vorgehenm sollte?
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __request_region_Rsmp_1a1a4f09
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol register_chrdev_Rsmp_01679e76
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __generic_copy_to_user_Rsmp_d523fdd3
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_claim_Rsmp_dc843753
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_register_device_Rsmp_75a20b73
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol unregister_chrdev_Rsmp_c192d491
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol interruptible_sleep_on_timeout_Rsmp_5a57b6ef
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __vmalloc_Rsmp_79995c5b
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_unregister_device_Rsmp_0cffd5b6
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol schedule_timeout_Rsmp_17d59d01
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_release_Rsmp_e2338255
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __wake_up_Rsmp_127fda83
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __check_region_Rsmp_f1d0cdab
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol printk_Rsmp_1b7d4074
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol kfree_Rsmp_037a0cba
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol ioport_resource_Rsmp_865ebccd
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol vfree_Rsmp_2fd1d81c
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol kmalloc_Rsmp_93d4cfe6
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol interruptible_sleep_on_Rsmp_8c23e4cb
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol parport_enumerate_Rsmp_b88956ae
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol schedule_Rsmp_4292364c
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __udelay_Rsmp_9e7d6bd0
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __generic_copy_from_user_Rsmp_116166aa
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol jiffies_Rsmp_0da02d67
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: /lib/modules/2.4.27-2-386/misc/aksparlnx.o: unresolved symbol __release_region_Rsmp_d49501d4
/lib/modules/2.4.27-2-386/misc/aksparlnx.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. The module may be trying to access
GPLONLY symbols but the problem is more likely to be a coding or
user error. Contact the module supplier for assistance, only they
can help you.
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: insmod /lib/modules/2.4.27-2-386/misc/aksparlnx.o failed
/lib/modules/2.4.27-2-386/misc/aksparlnx.o: insmod aksparlnx failed
Kann sich da jemand einen Reim drauf machen oder einen Tipp geben, wie ich anders vorgehenm sollte?
die Kernel-Sourcen die du verwendest wurden vorher nicht konfiguriert, oder sie wurden anders konfiguriert als dein installierter Kernel.
Daher bekommen diese Symbole unterschiedliche "Versionsbezeichnungen".
so kannst du deine aktuelle Konfiguration auf deine Kernelsourcen übertragen:
Gruß
gms
Daher bekommen diese Symbole unterschiedliche "Versionsbezeichnungen".
so kannst du deine aktuelle Konfiguration auf deine Kernelsourcen übertragen:
Code: Alles auswählen
cp /boot/config-`uname` <kernel-source-dir>/.config
cd <kernel-source-dir>
make oldconfig
Gruß
gms
Danke für die Antwort. Doch scheinbar war dies nicht das Problem. Ich bin der Meinung, ich hatte die Sourcen vorher schon richtig konfiguriert, aber ich habe es sicherheitshalber nochmal genau nach dem Plan gemacht. Den Treiber habe ich auch nochmal deinstalliert und wieder installiert. Der Fehler bleibt leider gleich.
Du verwendest doch einen UP Kernel und keinen SMP Kernel oder ?
das zweite nicht gefundene Symbol ist "register_chrdev_Rsmp_01679e76".
Was ergibt bei dir
und
Gruß
gms
[edit]
"depmod -a" hast du aber vor dem "modprobe" Kommando einmal aufgerufen, oder ?
Die Ausgabe von "modinfo aksparlnx" und "cat /proc/version" könnte uns auch noch helfen
[/edit]
das zweite nicht gefundene Symbol ist "register_chrdev_Rsmp_01679e76".
Was ergibt bei dir
Code: Alles auswählen
root@gms1:~# grep register_chrdev /boot/System.map-`uname -r`
c0166c80 t __register_chrdev_region
c0166dc0 t __unregister_chrdev_region
c0166e50 T register_chrdev_region
c0166f50 T register_chrdev
c0167090 T unregister_chrdev_region
c01670f0 T unregister_chrdev
c02eb3d4 r __ksymtab_register_chrdev_region
c02eb3dc r __ksymtab_unregister_chrdev_region
c02eb40c r __ksymtab_register_chrdev
c02eb414 r __ksymtab_unregister_chrdev
c02ef4c4 r __kcrctab_register_chrdev_region
c02ef4c8 r __kcrctab_unregister_chrdev_region
c02ef4e0 r __kcrctab_register_chrdev
c02ef4e4 r __kcrctab_unregister_chrdev
c02f38db r __kstrtab_register_chrdev_region
c02f38f2 r __kstrtab_unregister_chrdev_region
c02f3946 r __kstrtab_register_chrdev
c02f3956 r __kstrtab_unregister_chrdev
Code: Alles auswählen
nm /lib/modules/2.4.27-2-386/misc/aksparlnx.o | grep register_chrdev
gms
[edit]
"depmod -a" hast du aber vor dem "modprobe" Kommando einmal aufgerufen, oder ?
Die Ausgabe von "modinfo aksparlnx" und "cat /proc/version" könnte uns auch noch helfen
[/edit]
Diese Multiprozessor-Geschichte ist ein Rätsel für mich. In dem PC steckt ein alter P3, ganz sicher kein SMP. Die Konfiguration des Kernel muss ja stimmen. Von daher weiß ich nicht, wie der Treiber auf die Idee kommt.
Hier erstmal die Ausgaben der Befehle:
cat /proc/version
grep register_chrdev /boot/System.map-`uname -r`
modinfo aksparlnx
nm /lib/modules/2.4.27-2-386/misc/aksparlnx.o | grep register_chrdev
Wird man daraus jetzt schlau? ![Very Happy :D](./images/smilies/icon_biggrin.gif)
Hier erstmal die Ausgaben der Befehle:
cat /proc/version
Code: Alles auswählen
Linux version 2.4.27-2-386 (horms@tabatha.lab.ultramonkey.org) (gcc version 3.3.5 (Debian 1:3.3.5-12)) #1 Mon May 16 16:47:51 JST 2005
Code: Alles auswählen
c0131d58 T register_chrdev
c0131dcc T unregister_chrdev
c015e158 T devfs_register_chrdev
c015e17a T devfs_unregister_chrdev
c0230490 R __kstrtab_register_chrdev
c02304aa R __kstrtab_unregister_chrdev
c02324a0 R __kstrtab_devfs_register_chrdev
c02324e0 R __kstrtab_devfs_unregister_chrdev
c023a788 R __ksymtab_register_chrdev
c023a790 R __ksymtab_unregister_chrdev
c023b120 R __ksymtab_devfs_register_chrdev
c023b130 R __ksymtab_devfs_unregister_chrdev
Code: Alles auswählen
filename: /lib/modules/2.4.27-2-386/misc/aksparlnx.o
description: "Hardlock/HASP Driver for Linux (new $Revision: 1.14 $)"
author: "Christian Groessler, cpg@aladdin.de"
license: "Copyright (c) 1999-2004 Aladdin Knowledge Systems Ltd."
parm: force int
parm: major int
parm: loglevel int
parm: hlportaddress long array (min = 1, max = 5)
parm: isacpcaddress long array (min = 1, max = 2)
parm: timeout int
Code: Alles auswählen
U register_chrdev_Rsmp_01679e76
U unregister_chrdev_Rsmp_c192d491
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Der Output von "modinfo" hat leider nicht meine Erwartungen erfüllt. Es fehlt mir die "vermagic" des Kernels. Die wird aber von modinfo anscheinend erst beim Kernel 2.6 angezeigt.BEAtFREAk hat geschrieben: Wird man daraus jetzt schlau?
Wir wissen aber jetzt, daß zumindestens eines der angemeckerten "unresolved symbol's" eigentlich im Kernel vorhanden ist, aber wegen der unterschiedlichen Versionsinfo nicht gefunden wird. (Erkenntnis aus Vergleich von nm und System.map).
Im Prinzip also eine Bestätigung meines ersten Verdachts.
Das Modul wird also noch immer mit einer falschen Kernelkonfiguration gebaut.
Ich schlage daher vor, das Kernelsource-Verzeichnis einmal aufzuräumen:
Code: Alles auswählen
cd <kernel-source-dir>
make clean
make mrproper
Code: Alles auswählen
cp /boot/config-`uname` .config
make oldconfig
make depend
Gruß
gms
Habe irgendwo ein "aksparlnx-1.6-x86.tar.gz" downgeloaded, glaube das war von hier:
http://www.aladdin.com/support/hasp/hasp4/linuxdrv.asp
Wenn du alles richtig machst sollte es bei dir auch funktionieren.
Hier ist die Ausgabe von meinem "nm", die hat das "SMP" nicht drinnen:
Ich mußte auch das build.sh anpassen, aber nur weil ich bei mir keinen Kernel 2.4 booten wollte.
Du hättest entweder den Link /lib/modules/`uname -r`/build auf das Kernelsource-Verzeichnis legen können oder die Environmentvariable "KERNSRC" entsprechend setzen:
Gruß und viel Erfolg
gms
http://www.aladdin.com/support/hasp/hasp4/linuxdrv.asp
Wenn du alles richtig machst sollte es bei dir auch funktionieren.
Hier ist die Ausgabe von meinem "nm", die hat das "SMP" nicht drinnen:
Code: Alles auswählen
gms@gms1:~/tmp/download/aksparlnx-1.6-x86$ nm aksparlnx.o | grep register_chrdev
U register_chrdev_R7c60f4c9
U unregister_chrdev_Rc192d491
Du hättest entweder den Link /lib/modules/`uname -r`/build auf das Kernelsource-Verzeichnis legen können oder die Environmentvariable "KERNSRC" entsprechend setzen:
Code: Alles auswählen
export KERNSRC=/usr/src/kernel-source-2.4.27
gms