falsche Syntax: Versionsnummer

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 12:33:27

Hallo,
ich bin kein Entwickler -- insofern vielleicht eine einfache Frage. Ich habe einen neuen Kernel von kernel.org konfiguriert und installiert. Es gibt verschiedene Anleitungen, wie man ein deb daraus macht. Ich kriege aber immer den Fehler, dass die Versionsnummer nicht passen würde (auch Warnungen). Ich habe dann den Kernel klassisch mit make install installiert. Das funktioniert alles, aber nicht über die Paketverwaltung (und mit den Warnungen).

Ich kriege aber bei update-grub2 oder update-initramfs immer folgende Warnungen (ähnliche gab es schon bei make deb-pkg)
dpkg: Warnung: Version »initrd.img-5.11.1-x86_64« hat falsche Syntax: Versionsnummer beginnt nicht mit einer Ziffer
dpkg: Warnung: Version »5.11.1-x86_64« hat falsche Syntax: ungültiges Zeichen in Revisionsnummer

uname -a
Linux localhost 5.11.1-x86_64 #3 SMP Thu Feb 25 21:54:59 CET 2021 x86_64 GNU/Linux

Was muss ich denn anpassen (vor allem die Versionsnummer), damit ich den Kernel von kernel.org in ein debian-Packet bekomme?

rhHeini
Beiträge: 2706
Registriert: 20.04.2006 20:44:10

Re: falsche Syntax: Versionsnummer

Beitrag von rhHeini » 26.02.2021 13:37:35

Schau Dir mal meine Kernel an:
4.19.0-14-amd64
5.9.0-0.bpo.5-amd64

Siehst Du den Unterschied? Beim 4.19ner Kernel wurde die 14 hochgerzählt. Beim 5.9ner gab es eine .2 vor der .5.

KA ob es hilft, hab noch nie einen Kernel kompiliert.

Rolf

MaGe
Beiträge: 1798
Registriert: 01.06.2014 17:12:16

Re: falsche Syntax: Versionsnummer

Beitrag von MaGe » 26.02.2021 14:51:33

edmund hat geschrieben: [...] Es gibt verschiedene Anleitungen, wie man ein deb daraus macht [...]
Frage was machst du womit, blind geraten checkinstall

MUSTER:
wenn checkinstall dann nicht so
Version: [-5.11.1-x86_64]
sondern so
Version: [5.11.1-x86_64]



gruss MaGe
Wir müssen uns vor der Klimaerwärmung nicht fürchten.
Uns rottet die soziale Kälte viel früher aus.

Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

Re: falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 15:20:59

Leider hilft das Umbenennen allein nicht. Die Probleme treten schon auf, wenn ich in ../linux-source/ "make deb-pkg" aufrufe. Ich habe es ja deshalb außerhalb der Paketverwaltung installiert. Bei gentoo heißt der Kernel bei mir vmlinuz-5.11.0-zen2-x86_64 -- kein Problem. Das ganze hängt mit dpkg zusammen, nur ist mir nicht klar, wo ich den Fehler mache.
Vielleicht muss ich, wenn ich "make deb-pkg" aufrufe, irgendwelche Variablen mitgeben (KERNELVERSION=XXX) oder eine Datei editieren, nur ist mir nicht klar, welche.

make deb-pkg ruft, wenn ich es richtig sehe, scripts/package/mkdebian auf und stellt die notwendigen Variablen zusammen:

dpkg-architecture ergibt:
DEB_BUILD_ARCH=amd64
DEB_BUILD_ARCH_ABI=base
DEB_BUILD_ARCH_BITS=64
DEB_BUILD_ARCH_CPU=amd64
DEB_BUILD_ARCH_ENDIAN=little
DEB_BUILD_ARCH_LIBC=gnu
DEB_BUILD_ARCH_OS=linux
DEB_BUILD_GNU_CPU=x86_64
DEB_BUILD_GNU_SYSTEM=linux-gnu
DEB_BUILD_GNU_TYPE=x86_64-linux-gnu
DEB_BUILD_MULTIARCH=x86_64-linux-gnu
DEB_HOST_ARCH=amd64
DEB_HOST_ARCH_ABI=base
DEB_HOST_ARCH_BITS=64
DEB_HOST_ARCH_CPU=amd64
DEB_HOST_ARCH_ENDIAN=little
DEB_HOST_ARCH_LIBC=gnu
DEB_HOST_ARCH_OS=linux
DEB_HOST_GNU_CPU=x86_64
DEB_HOST_GNU_SYSTEM=linux-gnu
DEB_HOST_GNU_TYPE=x86_64-linux-gnu
DEB_HOST_MULTIARCH=x86_64-linux-gnu
DEB_TARGET_ARCH=amd64
DEB_TARGET_ARCH_ABI=base
DEB_TARGET_ARCH_BITS=64
DEB_TARGET_ARCH_CPU=amd64
DEB_TARGET_ARCH_ENDIAN=little
DEB_TARGET_ARCH_LIBC=gnu
DEB_TARGET_ARCH_OS=linux
DEB_TARGET_GNU_CPU=x86_64
DEB_TARGET_GNU_SYSTEM=linux-gnu
DEB_TARGET_GNU_TYPE=x86_64-linux-gnu
DEB_TARGET_MULTIARCH=x86_64-linux-gnu

Wenn ich nach https://kernel-team.pages.debian.net/ke ... rg-package vorgehe, müsste ich nach "make nconfig" eigntlich nur noch
$ make clean
$ make deb-pkg
eingeben und hätte dann diverse deb-Pakete. Es wird offenbar linuxsource/"vmlinuz" kompiliert, den man mit System.map & .config in das binary-deb packen könnte. Aber da fehlt bei mir irgend etwas.

Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

Re: falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 15:33:37

MaGe hat geschrieben: ↑ zum Beitrag ↑
26.02.2021 14:51:33

Frage was machst du womit, blind geraten checkinstall

MUSTER:
wenn checkinstall dann nicht so
Version: [-5.11.1-x86_64]
sondern so
Version: [5.11.1-x86_64]
Ich bin nach dem Debian Linux Kernel Handbook (https://kernel-team.pages.debian.net/ke ... index.html) vorgegangen, als 4.6 in Verbindung mit 4.5.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: falsche Syntax: Versionsnummer

Beitrag von KP97 » 26.02.2021 15:35:43

1. make oldconfig
anschließend
2. make bindeb-pkg
oder wenn z.B. 4 Kerne benutzt werden sollen
3. make -j4 bindeb-pkg

Du brauchst manuell keine Versionen vergeben.

Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

Re: falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 16:31:35

Ok -- gab folgenden Fehler:
Kernel: arch/x86/boot/bzImage is ready (#5)
make KERNELRELEASE=5.11.1-amd64 ARCH=x86 KBUILD_BUILD_VERSION=4 -f ./Makefile intdeb-pkg
sh ./scripts/package/builddeb
./scripts/package/builddeb: 27: 5.11.1-amd64=5.11.1: not found
make[4]: *** [scripts/Makefile.package:87: intdeb-pkg] Fehler 127
make[3]: *** [Makefile:1528: intdeb-pkg] Fehler 2
make[2]: *** [debian/rules:13: binary-arch] Fehler 2
dpkg-buildpackage: Fehler: Unterprozess debian/rules binary lieferte Exitstatus 2
make[1]: *** [scripts/Makefile.package:83: bindeb-pkg] Fehler 2
make: *** [Makefile:1528: bindeb-pkg] Fehler 2
-----
./scripts/package/builddeb: 27: 5.11.1-amd64=5.11.1: not found

In der betreffenden Zeile von builddeb steht
$ KERNELRELEASE=5.11.1
nicht 5.11.1-amd64

Ich habe in der .config CONFIG_LOCALVERSION="-amd64" leer gelassen (ist bei einem Distri-.Kernel auch leer), neuer Durchlauf.
Kernel: arch/x86/boot/bzImage is ready (#6)
make KERNELRELEASE=5.11.1 ARCH=x86 KBUILD_BUILD_VERSION=5 -f ./Makefile intdeb-pkg
sh ./scripts/package/builddeb
./scripts/package/builddeb: 27: 5.11.1=5.11.1: not found
make[4]: *** [scripts/Makefile.package:87: intdeb-pkg] Fehler 127
make[3]: *** [Makefile:1528: intdeb-pkg] Fehler 2
make[2]: *** [debian/rules:13: binary-arch] Fehler 2
dpkg-buildpackage: Fehler: Unterprozess debian/rules binary lieferte Exitstatus 2
make[1]: *** [scripts/Makefile.package:83: bindeb-pkg] Fehler 2
make: *** [Makefile:1528: bindeb-pkg] Fehler 2
debian/rules sehen (bei bindeb-pkg so aus:
#!/usr/bin/make -f
srctree ?= .
build-indep:
build-arch:
$(MAKE) KERNELRELEASE=5.11.1 ARCH=x86 KBUILD_BUILD_VERSION=5 -f $(srctree)/Makefile
build: build-arch
binary-indep:
binary-arch: build-arch
$(MAKE) KERNELRELEASE=5.11.1 ARCH=x86 KBUILD_BUILD_VERSION=5 -f $(srctree)/Makefile intdeb-pkg
clean:
rm -rf debian/*tmp debian/files
$(MAKE) clean
binary: binary-arch
Naja -- ist kein Beinbruch.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: falsche Syntax: Versionsnummer

Beitrag von KP97 » 26.02.2021 17:22:54

Aus Deinem Ablauf werde ich nicht schlau. Schildere doch mal, was _genau_ Du da machst.
Du lädst den Kernel von kernel.org, entpackst ihn, und dann?

In /boot sollten eine config-5.11.1, eine initrd.img-5.11.1, eine System.map-5.11.1 und der vmlinuz-5.11.1 vorhanden sein. Ist das so?
Wenn ja, brauchst Du nur meine angegebenen Schritte 1 oder 3 ausführen.
Nochmal, laß die Version weg, daß es ein amd64 ist, weißt Du doch.
Ansonsten lies man make, da finden sich auch Hinweise zur Versionskontrolle.

Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

Re: falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 18:25:59

Aus Deinem Ablauf werde ich nicht schlau. Schildere doch mal, was _genau_ Du da machst.
Du lädst den Kernel von kernel.org, entpackst ihn, und dann?
Eigentlich nichts Besonderes:

Link "ln -s linux-5.11.1 linux"
"cd linux"
"make nconfig" (oder menuconfig). config Speichern.
make clean
make deb-pkg (oder wie du gesagt hat: bindeb-pkg)
Das führte zu den genannten Fehlern

--

Unter /boot waren config-5.11.1, initrd.img-5.11.1, System.map-5.11.1 und vmlinuz-5.11.1 natürlich noch nicht vorhanden, weil ich die das erste Mal kompiliere. Aber das ist nicht das Problem.
Bei mir gibt es jetzt in /boot (5.10 -- debian und 5.11.1 -- kernel.org)
config-5.10.0-3-amd64
config-5.11.1-x86_64
initrd.img-5.10.0-3-amd64
initrd.img-5.11.1-x86_64
System.map-5.10.0-3-amd64
System.map-5.11.1-x86_64
vmlinuz-5.10.0-3-amd64
vmlinuz-5.11.1-x86_64
Die Bezeichnung passt auch: uname -r => 5.11.1-x86_64

Der konfigurierte Kernel lasst sich mit "make all" kompilieren, installieren, booten und läuft ohne Probleme. Nur das muss ich noch machen => bluetooth -- hci0: Failed to load Intel firmware -- aber das hat nichts mit den Fehlern zu tun -- habe ich beim konfigurieren vergessen.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: falsche Syntax: Versionsnummer

Beitrag von KP97 » 26.02.2021 19:32:37

Den Link anfangs kannst Du Dir schenken, gehe doch direkt in den entpackten Kernel linux-5.11.1, von dort aus geht es dann weiter.
Ein make clean an dieser Stelle ergibt keinen Sinn, das führt man nur aus, wenn man in dem bereits kompilierten Verzeichnis eine Änderung vornehmen will.
Man geht also an den Anfang zurück.
Wenn man nur zusätzlich etwas erweitern will, der Rest schon ok ist, würde man also alle vorherigen Änderungen auf Null setzen, das wäre kontraproduktiv.

Ich habe gerade eben den 5.11.2 kompiliert, und habe diese Meldungen nicht.
Ich entpacke im Homeverzeichnis in einem Ordner Temp, da bleibt dann alles übersichtlich zusammen. Der Ordnername ist egal, bleibt Dir überlassen.

Du hast ja jetzt eine config-5.11.1, dann kannst Du ja nochmal mit dem 5.11.2 einen neuen Versuch starten. Diesmal mit make oldconfig und Schritt 3.
Hinweis:
Ein bindeb-pkg erstellt nur die Pakete für Kernel und Headers, geht schneller und ist nicht so umfangreich wie ein deb-pkg.
Dabei wird auch ein debugger-Paket erstellt, was man nicht braucht und das Kompilieren verzögert. Den Befehl sollte man also nicht verwenden.

Benutzeravatar
edmund
Beiträge: 113
Registriert: 27.12.2020 13:13:26

Re: falsche Syntax: Versionsnummer

Beitrag von edmund » 26.02.2021 19:51:39

Jetzt habe ich in der Kernelconfig stehen:

CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT="zen"

und die Warnungen kommen nicht mehr ...

Found linux image: /boot/vmlinuz-5.11.1
Found initrd image: /boot/initrd.img-5.11.1
Found linux image: /boot/vmlinuz-5.10.0-3-amd64
Found initrd image: /boot/initrd.img-5.10.0-3-amd64
Found Gentoo/Linux on /dev/sdb1

Verstehe das alles aber nicht.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: falsche Syntax: Versionsnummer

Beitrag von KP97 » 26.02.2021 20:13:40

edmund hat geschrieben: ↑ zum Beitrag ↑
26.02.2021 19:51:39
CONFIG_BUILD_SALT="zen"
Das "zen" solltest Du besser weglassen:
config BUILD_SALT
string "Build ID Salt"
default ""
help
The build ID is used to link binaries and their debug info. Setting
this option will use the value in the calculation of the build id.
This is mostly useful for distributions which want to ensure the
build is unique between builds. It's safe to leave the default.
Dann ist es doch gut, wenn keine Warnungen/Fehler mehr auftreten...

Antworten