Moin und frohes neues Jahr, wenn man das jetzt noch sagen darf.
Ich hatte vor einiger Zeit ein Kernelmodul bei GitHub besorgt.
Das lässt sich ganz simpel per 'make && sudo make install' bauen und installieren.
Ich hatte den Source dann nach /usr/src kopiert und dort eine dkms.conf erstellt.
Dann mittels dkms add, dkms build und dkms install installiert. DKMS funktionierte einwandfrei.
Wenn ein neuer Kernel installiert wurde, dann wurde das Modul auch entsprechend neu gebaut.
Jetzt gab es ein Update der Sourcen welche ich übernehmen wollte. Dummerweise habe ich die alte Version in /usr/src gelöscht und somit auch die dkms.conf verloren.
Ich bekomme es nun nicht wieder hin. Mir fällt nicht mehr ein was ich seinerzeit in die dkms.conf geschrieben habe.
Die Sourcen und dkms.conf liegen in /usr/src/hid-fanatecff.
Das fertige Modul soll 'hid-fanatecff' heißen, Versionsnummer '0.0.1'
Installiert wird das Modul nach /lib/modules/${KVERSION}/kernel/drivers/hid
Die dkms.conf sieht momentan so aus:
PACKAGE_NAME="hid-fanatecff"
PACKAGE_VERSION="0.0.1"
MAKE[0]="make KVERSION=$kernelver"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="hid-fanatecff"
DEST_MODULE_NAME[0]="hid-fanatecff"
DEST_MODULE_LOCATION[0]="/kernel/drivers/hid/"
AUTOINSTALL="yes"
Bei 'dkms add' wird schon merkwürdig. Durch Autovervollständigung wird mir angeboten:
dkms add -m hid -v fanatecff
Ich hätte hier erwartet 'dkms add -m hid-fanatecff -v 0.0.1' oder dkms add -m hidfanatecff/0.0.1'
Wenn ich trotzdem ein dkms add -m hid -v hfanatecff und anschließend dkms build -m hid -v fanatecff mache dann kommt
Building module:
Cleaning build area...
make -j20 KERNELRELEASE=6.7.0-x64v4-xanmod1 KVERSION=6.7.0-x64v4-xanmod1...
Error! Build of hid-fanatecff.ko failed for: 6.7.0-x64v4-xanmod1 (x86_64)
Make sure the name of the generated module is correct and at the root of the
build directory, or consult make.log in the build directory
/var/lib/dkms/hid/fanatecff/build for more information.
Was mache ich falsch? Es hat schonmal funktioniert.
Wo ist der Fehler?
--
Gruß
Helge
Am Montag, 8. Januar 2024, 19:08:59 CET schrieb Ulf Volmer:
> Das Source- Verzeichniss soll nach dem Schema <name>-<version> benannt sein.
Habe es in /usr/src/hid-fanatecff-0.0.1 umbenannt. Keine Änderung.
--
Gruß
Helge
Am Montag, 8. Januar 2024, 19:36:40 CET schrieb Ulf Volmer:
> Bei mir hat das mindestens Auswirkugen auf das Auto- Complete.
>
> Ich würde mich aber auf **einen** '-' beschränken.
Ich habe hier noch ein anderes Beispiel welches aber funktioniert.
Source liegt in '/usr/src/new-lg4ff-0.4.0.
dkms.conf sieht so so aus:
PACKAGE_NAME="new-lg4ff"
PACKAGE_VERSION="0.4.0"
MAKE[0]="make KVERSION=$kernelver"
CLEAN="make clean"
BUILT_MODULE_NAME[0]="hid-logitech-new"
DEST_MODULE_NAME[0]="hid-logitech"
DEST_MODULE_LOCATION[0]="/kernel/drivers/hid"
AUTOINSTALL="yes"
Alles gut. Läuft.
Autocomplete bringt
'dkms add -m new -v lg4ff-0.4.0'
'dkms build -m new-lg4ff -v 0.4.0' oder
'dkms build -m new-lg4ff/0.4.0'
--
Gruß
Helge
Am Montag, 8. Januar 2024, 20:08:12 CET schrieb Ulf Volmer:
> Der Modul Name bei den beiden Zeilen muß dem realen Modulnamen entsprechen.
>
> In Deinem Fall (falls wir von https://github.com/gotzl/hid-fanatecff
> reden) also
>
>
> hid-fanatec
So gehts. Build und install sind durchgelaufen.
Danke dafür. Wie bist du auf den richtigen Modulnamen gekommen? Wo steht das?
'dkms add' und 'dkms build' ist aber immer noch komisch.
Autocomplete sagt:
dkms add -m hid -v fanatecff-0.0.1
Ich kann damit leben, aber richtig ist das nicht.
Wo kommt das 'hid' her?
--
Gruß
Helge
Am Montag, 8. Januar 2024, 20:48:48 CET schrieb Ulf Volmer:
> Du hattest doch ein manuelles make gemacht, oder? Dann siehst Du dort
> den das resultierende Modul- Namen (*.ko).
Nein, sehe ich nicht.
helge@debian-pc:~/git/hid-fanatecff$ make
-e
:: Compiling Fanatec kernel module
========================================
make -C /lib/modules/`uname -r`/build M=$PWD
make[1]: Verzeichnis „/usr/src/linux-headers-6.7.0-x64v4-xanmod1“ wird betreten
warning: the compiler differs from the one used to build the kernel
The kernel was built by: gcc-13 (Debian 13.2.0-7) 13.2.0
You are using: gcc (Debian 13.2.0-9) 13.2.0
make[1]: Verzeichnis „/usr/src/linux-headers-6.7.0-x64v4-xanmod1“ wird verlassen
> Ich bin nachwievor der Meinung, dass hier am ersten '-' getrennt wird.
>
> Nenn das Verzeichnis halt hid_fantecff-0.0.1 und gut ist.
Ich werde mal rumprobieren.
--
Gruß
Helge
Am Montag, 8. Januar 2024, 20:54:46 CET schrieb Helge Reimer:
> Nein, sehe ich nicht.
Ok, bei 'make instal'l sehe ich es.
--
Gruß
Helge
Am Montag, 8. Januar 2024, 21:04:38 CET schrieb Helge Reimer:
> Am Montag, 8. Januar 2024, 20:54:46 CET schrieb Helge Reimer:
>
> > Nein, sehe ich nicht.
>
> Ok, bei 'make instal'l sehe ich es.
Und in 'Makefile' steht es auch.
Ich bräuchte mal eine Erläuterung zu 'PACKAGE_NAME', 'BUILD_MODULE_NAME' und 'DEST_MODULE_NAME'
Stehe da gerade etwas auf dem Schlauch.
--
Gruß
Helge