(gelöst) bindeb-pkg

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
KP97
Beiträge: 3432
Registriert: 01.02.2013 15:07:36

Re: bindeb-pkg

Beitrag von KP97 » 12.11.2019 15:45:14

Nur mal so zum Vergleich mein /boot, wobei ich den Kernel ohne zusätzliche lokale Version kompiliere:
-rw-r--r-- 1 root root 144619 Nov 10 13:29 config-5.3.10
drwxr-xr-x 3 root root 4096 Sep 8 2018 efi
drwxr-xr-x 6 root root 4096 Nov 10 13:59 grub
-rw-r--r-- 1 root root 5329176 Nov 11 12:36 initrd.img-5.3.10
-rw-r--r-- 1 root root 3777403 Nov 10 13:29 System.map-5.3.10
-rw-r--r-- 1 root root 6747520 Nov 10 13:29 vmlinuz-5.3.10
Mein fertiges Paket heißt auch genau so, nämlich linux-image-5.3.10
Ich nehme an, daß Du immer nur einen Kernel installiert hast und die Pakete an anderer Stelle aufbewahrst, falls Du mehrere hast. Da könntest Du ja dann die fertigen Pakete entsprechend umbenennen, falls Du doch mal eine andere Version installieren willst.

guennid

Re: bindeb-pkg

Beitrag von guennid » 12.11.2019 16:34:07

Meine vmlinuze sehen zunächst genauso aus wie deine. Und das entsprechende Verzeichnis unter /lib/modules hat dann auch nur diese Kernel-Versions-Bezeichnung. Ich habe mich deswegen bisher noch nie getraut, zwei Kernel der gleichen Kernel-Version aber mit eigener unterschiedlicher lokaler Version zu installieren.

Grüße, Günther

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: bindeb-pkg

Beitrag von JTH » 12.11.2019 17:48:01

guennid hat geschrieben: ↑ zum Beitrag ↑
12.11.2019 08:58:50
wenn du deine „lokale“ Version nur einmal haben willst:
Ich will keine Dopplung, nicht eine nur teilweise Dopplung (Kernel-Version.) Ich kann keinen Sinn erkennen in 2x(Version+lokaler Version). Das ist schlicht redundant.
Konventionen können auch schlecht sein. Und hier sind sie's - meiner Meinng nach.
Trotzdem noch als Ergänzung: Der ganze Debian-Werkzeugkasten – den letztendlich auch die kernel.org-Quellen benutzen – zielt halt darauf, dass dein Paket potentiell irgendwann auch im Debian-/in einem Repository landet. Dort liegen dann mitunter viele gleichnamige Pakete gleicher und unterschiedlicher Versionen und Architekturen in einem Ordner, z.B. hier http://ftp.debian.org/debian/pool/main/l/linux-latest/. Da funktioniert es nicht, wenn du nur ein linux-image.deb oder auch linux-image_3.14.15-42.deb gebaut hast, es geht ohne eine Konvention wie NAME_VERSION_ARCHITEKTUR.deb nicht.
Manchmal bekannt als Just (another) Terminal Hacker.

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

Re: bindeb-pkg

Beitrag von KP97 » 12.11.2019 17:49:36

Günther, ich habe jetzt extra nochmal einen weiteren 5.3.10 kompiliert (geht bei mir schnell). Dabei habe ich im entpackten Verzeichnis in der Datei Makefile
die Zeile EXTRAVERSION geändert:
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 3
SUBLEVEL = 10
EXTRAVERSION = kern2
NAME = Bobtail Squid
Nach Installation des Paketes sieht es in /boot so aus:
root@MB:/boot# ll
insgesamt 31280
-rw-r--r-- 1 root root 144619 Nov 10 13:29 config-5.3.10
-rw-r--r-- 1 root root 144624 Nov 12 17:19 config-5.3.10kern2
drwxr-xr-x 3 root root 4096 Sep 8 2018 efi
drwxr-xr-x 6 root root 4096 Nov 12 17:35 grub
-rw-r--r-- 1 root root 5329176 Nov 11 12:36 initrd.img-5.3.10
-rw-r--r-- 1 root root 5330152 Nov 12 17:35 initrd.img-5.3.10kern2
-rw-r--r-- 1 root root 3777403 Nov 10 13:29 System.map-5.3.10
-rw-r--r-- 1 root root 3777403 Nov 12 17:19 System.map-5.3.10kern2
-rw-r--r-- 1 root root 6747520 Nov 10 13:29 vmlinuz-5.3.10
-rw-r--r-- 1 root root 6747520 Nov 12 17:19 vmlinuz-5.3.10kern2
Der Kernel ist also mit einem neuen Namen zusätzlich vorhanden, auch in /lib/modules ist ein zweites Verzeichnis mit dem kern2 im Namen vorhanden.
Jetzt kommt sich nichts ins Gehege, und ist auch simpel durch das Ändern im Makefile zu erstellen.
Zuletzt geändert von KP97 am 13.11.2019 12:02:41, insgesamt 1-mal geändert.

Benutzeravatar
towo
Beiträge: 4408
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: bindeb-pkg

Beitrag von towo » 12.11.2019 18:48:40

Also ich ändere am Makefile nichts

Code: Alles auswählen

~
towo:Defiant> grep EXTRAVERS /usr/src/linux-headers-5.4.0-rc7-amdsystem-towo1/Makefile 
EXTRAVERSION = -rc7
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
gebaut habe ich mit

Code: Alles auswählen

make bindeb-pkg LOCALVERSION=-amdsystem-towo1 KDEB_PKGVERSION=$(make kernelversion) -j16
Und da kommen die normalen debs raus:

Code: Alles auswählen

linux-headers-5.4.0-rc7-amdsystem-towo1_5.4.0-rc7_amd64.deb
linux-image-5.4.0-rc7-amdsystem-towo1_5.4.0-rc7_amd64.deb

und dann das:

Code: Alles auswählen

~/daten2/kernel
towo:Defiant> ls -al /boot/
insgesamt 39289
drwxr-xr-x  4 root root     4096 Nov 11 20:57 .
drwxr-xr-x 21 root root     4096 Okt 31 14:41 ..
-rw-r--r--  1 root root   207887 Nov 11 16:46 config-5.4.0-rc7-amdsystem-towo1
drwxr-xr-x  3 root root     1024 Jan  1  1970 efi
drwxr-xr-x  6 root root     4096 Nov 11 19:24 grub
-rw-r--r--  1 root root 29086224 Nov 11 20:57 initrd.img-5.4.0-rc7-amdsystem-towo1
-rw-r--r--  1 root root  4142684 Nov 11 16:46 System.map-5.4.0-rc7-amdsystem-towo1
-rw-r--r--  1 root root  6772096 Nov 11 16:46 vmlinuz-5.4.0-rc7-amdsystem-towo1

guennid

Re: bindeb-pkg

Beitrag von guennid » 13.11.2019 19:51:31

So, ich habe towos Beispielkommando mal so abgeändert durchgezogen:

Code: Alles auswählen

make bindeb-pkg LOCALVERSION=-x61.0 KDEB_PKGVERSION=$(make kernelversion) -j16
Nach wie vor keine Ahnung was -j16 bedeutet und ob ich das weglassen kann. Das Kommando liefert zwar immer noch diesen unsäglichen Paketnamen linux-image-4.19.84-x61.0_4.19.84_amd64.deb aber immerhin, im vmliuz erscheint jetzt die lokale Version. Für mich ist das eine Verbesserung. Den Overhead im Vergleich zu make-kpkg muss man halt händiusch löschen. Ach ja: Wie „säubert“ man mit bindeb-pkg im Nachtrag die Umgebung? make-kpkg clean tut's anscheinend nicht mehr.

zu JTH
Da funktioniert es nicht, wenn du nur ein linux-image.deb oder auch linux-image_3.14.15-42.deb
Ich halte das für untaugliche Beispiele: Warum geht 3.14.15-x61.0-amd64.deb nicht? Warum muss die Kernel-Version 2x erscheinen?
Zuletzt geändert von guennid am 13.11.2019 19:57:30, insgesamt 1-mal geändert.

Benutzeravatar
towo
Beiträge: 4408
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: bindeb-pkg

Beitrag von towo » 13.11.2019 19:56:59

Ach ja: Wie „säubert“ man mit bindeb-pkg im Nachtrag die Umgebung? make-kpkg clean tut's anscheinend nicht mehr.

Code: Alles auswählen

make clean
oder

Code: Alles auswählen

make distclean
Nach wie vor keine Ahnung was -j16 bedeutet und ob ich das weglassen kann.
Hab ich doch schonmal geschrieben! Das gibt die Anzahl der zu verwendenden Threads für's Kompilieren an.

guennid

Re: bindeb-pkg

Beitrag von guennid » 13.11.2019 19:59:40

Hab ich doch schon mal geschrieben!
Ja, ich weiß, wollt' ich gerade noch nachgucken. Warst aber schneller! :oops: 'Tschuldigung! Was weiß ich, was in dem Zusammenhang „Threads“ sind? :mrgreen:

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: bindeb-pkg

Beitrag von JTH » 13.11.2019 20:19:26

guennid hat geschrieben: ↑ zum Beitrag ↑
13.11.2019 19:51:31
Da funktioniert es nicht, wenn du nur ein linux-image.deb oder auch linux-image_3.14.15-42.deb
Ich halte das für untaugliche Beispiele: Warum geht 3.14.15-x61.0-amd64.deb nicht? Warum muss die Kernel-Version 2x erscheinen?
Du meinst damit ein linux-image_3.14.15-x61.0_amd64.deb? Das Paket hieße damit „linux-image“ und hätte die Version 3.14.15-x61.0, für die Architektur amd64. Du könntest damit per apt/dpkg den Kernel (das imaginäre Paket Debianlinux-image) nur in einer einzigen Version installiert haben. Das ist aus vielen Gründen unpraktisch und riskant.

Deshalb gibt es Pakete mit dem Namen Debianlinux-image-4.19.0-5-amd64, Debianlinux-image-5.3.0-1-amd64, Debianlinux-image-5.3.0-2-amd64 etc., die kann man wegen der unterschiedlichen Namen nebeneinander installieren.

Das die Architektur in den Namen oben auch nochmal redundant auftaucht, ist vermutlich Multiarch und anderem geschuldet. (Debianlinux-image-5.3.0-2-amd64 steckt in einem linux-image-5.3.0-2-amd64_5.3.9-2_amd64.deb – Name_Version_Architektur.deb.)

Ein Paket lässt sich im Dateinamen im Repository halt nur mit Name, Version & Architektur eindeutig benennen.
Manchmal bekannt als Just (another) Terminal Hacker.

guennid

Re: bindeb-pkg

Beitrag von guennid » 13.11.2019 20:26:52

Das die Architektur in den Namen oben auch nochmal redundant auftaucht, ist vermutlich Multiarch und anderem geschuldet.
Ich halt mich mal ans „vermutlich“. Als „notwendig“ einzusehen vermag ich's nicht, denn dass
Ein Paket sich im Dateinamen im Repository halt nur mit Name, Version & Architektur eindeutig benennen (lässt)
, ist ja in meinem letzten Beispiel (ohne Redundanz) berücksichtigt. :wink:

Grüße, Günther

und danke für die ausführlichen Erläuterungen!

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

Re: bindeb-pkg

Beitrag von KP97 » 13.11.2019 20:31:01

guennid hat geschrieben: ↑ zum Beitrag ↑
13.11.2019 19:59:40
...Was weiß ich, was in dem Zusammenhang „Threads“ sind?
Wenn Dein Prozessor 4 Kerne hat, dann heißt es -j4,
wenn das automatisch ermittelt werden soll, heißt es -j`nproc`, wenn Du den Prozessor nicht voll ausnutzen willst, kann der Parameter entfallen.
Hast Du meine Lösung mal ausprobiert? Ist zumindest zum Kompilieren einfacher zu merken als ein ellenlanges Kommando.

guennid

Re: bindeb-pkg

Beitrag von guennid » 13.11.2019 20:45:05

Hast Du meine Lösung mal ausprobiert?
Hatte ich vor, aber jetzt nicht mehr. Denn der output unterscheidet sich ja nicht. Aber wenn mein privates Kennzeichen=LOCALVERSION später automatisch im vmlinuz erscheint, so wie bei towo, und insbesondere im Modulverzeichnis unter /lib/modules, dann halte ich das für eine starke Verbesserung gegenüber unseren „outputs“.

Grüße, Günther

und danke für die Erläuterungen zu den „Threads“!

aber noch mal zu towos apt clean und apt distclean:

Mit apt clean leert man doch /var/cache/apt/archives. Und das soll jetzt das Quellverzeichns der Kern-Komilation „bereinigen“? apt-distclean habe ich noch nie benutzt.

Benutzeravatar
Livingston
Beiträge: 1453
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: bindeb-pkg

Beitrag von Livingston » 13.11.2019 21:24:41

guennid hat geschrieben: ↑ zum Beitrag ↑
13.11.2019 20:45:05

aber noch mal zu towos apt clean und apt distclean:
towo hat make, nicht apt geschrieben. Damit räumst du die Sourcen auf.

guennid

Re: bindeb-pkg

Beitrag von guennid » 13.11.2019 22:17:52

:oops:

guennid

Re: bindeb-pkg

Beitrag von guennid » 14.11.2019 09:41:53

Zu JTH
Ich verstehe „Paketnamen“ offenbar (und womöglich fälschlicherweiuse) bisher anders als du. Aber darüber muss ich noch nachdenken. Den Unterschied zwischen _ und - habe ich nicht beachtet. Bei dem was bindeb-pkg erzeugt, ist also das, was ich bisher als Version (und lokale Version) verstanden habe, erst mal Bestandteil des NAMENS, also linux-image-4.19.75-x61.0_... Über das weitere muss ich noch nachdenken.
Warum ich - gäbe es das Paket namens linux-image - nur ein einziges installieren könnte ist mir noch unklar.
Ein Paket namens linux-image gibt es nicht, das habe ich nachvollzogen. Es gibt Pakete namens linux-image-amd64 linux-image-686, etc.

Benutzeravatar
towo
Beiträge: 4408
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: bindeb-pkg

Beitrag von towo » 14.11.2019 09:56:38

Es gibt Pakete namens linux-image-amd64 linux-image-686,
Die enthalten aber keinen Kernel. Das sind nur Metapakete und referenzieren die eigentlichen Image-Pakete per Versionsnummer.

guennid

Re: bindeb-pkg

Beitrag von guennid » 14.11.2019 10:02:47

Soweit war's mir schon klar, aber es sind gültige Paketnamen im Gegensatz zu „linux-image“. Ich bin am Nachdenken darüber, warum von bindeb-pkg erzeugte Paketnamen, die ich als Monstrum bezeichnet habe, möglichweise notwendig und damit sinnvoll sind.

Grüße, Günther

Benutzeravatar
towo
Beiträge: 4408
Registriert: 27.02.2007 19:49:44
Lizenz eigener Beiträge: GNU Free Documentation License

Re: bindeb-pkg

Beitrag von towo » 14.11.2019 10:27:21

Code: Alles auswählen

~/test
towo:OMPC-AV3> dget linux-image-amd64
dget: retrieving http://deb.debian.org/debian/pool/main/l/linux-signed-amd64/linux-image-amd64_5.3.9-1_amd64.deb
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   354  100   354    0     0    986      0 --:--:-- --:--:-- --:--:--   986
100  1432  100  1432    0     0   3369      0 --:--:-- --:--:-- --:--:--  604k

~/test
towo:OMPC-AV3> la -al
insgesamt 44
drwxr-xr-x   3 towo towo  4096 Nov 14 10:26 .
drwxr-xr-x 165 towo towo 20480 Nov 12 07:01 ..
-rw-r--r--   1 towo towo  1432 Nov 14 10:26 linux-image-amd64_5.3.9-1_amd64.deb
Fällt Dir was auf?
Ich halte die Diskussion über die Paketnamen für relativ sinnfrei.

guennid

Re: bindeb-pkg

Beitrag von guennid » 14.11.2019 15:18:22

towo hat geschrieben:Fällt Dir was auf?
Nein. Ich verfüge nicht über deine Kenntnisse.
towo hat geschrieben:Ich halte die Diskussion über die Paketnamen für relativ sinnfrei.
Unter der Voraussetzung, dass wir beide unter „relativ“ das gleiche verstehen, könnte ich mir vorstellen, deiner Meinung zu sein. Und ich meine auch, sowas Ähnliches sagte ich bereits, das mit dem „relativ sinnfrei“.

Grüße, Günther

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: bindeb-pkg

Beitrag von JTH » 15.11.2019 13:08:40

guennid hat geschrieben: ↑ zum Beitrag ↑
14.11.2019 09:41:53
Warum ich - gäbe es das Paket namens linux-image - nur ein einziges installieren könnte ist mir noch unklar.
Nochmal als Denkanstoß:

Wenn du etwas installierst, machst du das normalerweise etwa so:

Code: Alles auswählen

# apt install bash
Dabei interessiert dich meist nicht, welche Version des Pakets/Programms installiert wird, auch wenn man sie ausdrücklich mit angeben könnte. Es gibt für viele Pakete ein Debian-stable-Release über sowieso nur eine Version; die Backports hier mal ignoriert. Der Paketname ist hier „bash“.

Wenn ich jetzt aber ein

Code: Alles auswählen

# apt full-upgrade
ausführe, wird zwangsweise die neueste im Repository verfügbare Version von Debianbash installiert; apt-pinning etc. hier auch mal ignoriert. Das Update von z.B. Bash 3.0 auf Bash 4.0 könnte jetzt Änderungen mitbringen, mit denen z.B. manche Boot-Skripte nicht mehr funktionieren. Die Paketversion wäre hier 3.0 bzw. 4.0.

Um zu verhindern, dass mein System nach einem Update kaputt ist, muss ich also die alte Version sicherheitshalber behalten. Das geht aber nicht, wenn das Paket nur Debianbash heißt, das kann nur in genau einer Version installiert sein. Man hängt stattdessen die Version an den Namen an, z.B. Debianbash-3.0 und Debianbash-4.0. Die kann ich jetzt nebeneinander installieren:

Code: Alles auswählen

# apt install bash-3.0 bash-4.0

Damit ich aber trotzdem automatisch bei einem apt full-upgrade die neueste Version bekomme, gibt es ein Metapaket. Das Metapaket hängt dann nur von einem anderen Paket ab und ist selbst quasi leer. Es könnte z.B. ein Paket Debianbash-meta geben, das von Debianbash-3.0 abhängt.

Wenn Debianbash-meta bei einem apt full-upgrade jetzt neuerdings von Debianbash-4.0 abhängt, bekomme ich letzteres automatisch installiert – behalte aber Debianbash-3.0. Die Paketversion von bash-meta wäre hier vor dem Update 3.0 und nach dem Update 4.0. (Der Behalten-Part braucht evtl. entsprechende apt-Konfiguration, das hier auch mal ignoriert. Für den Kernel hat apt diese Konfiguration von Haus aus mit dabei.)

Wenn du oben die Bash durch den Kernel ersetzt, hast du z.B. ein Problem, wenn nach einem Update ein Treiber nicht mehr so funktioniert wie vorher. Man möchte deshalb bei einem Update die alte Version des Kernels immer erstmal behalten.

Die Dateinamen der Pakete oben wären:

Code: Alles auswählen

# Ohne Metapaket:
bash_3.0_amd64.deb
bash_4.0_amd64.deb

# Mit Metapaket:
bash-meta_3.0_amd64.deb
bash-meta_4.0_amd64.deb
bash-3.0_3.0_amd64.deb
bash-4.0_4.0_amd64.deb

Ich war ja versucht, hier systemd statt bash als Beispiel zu nehmen ;)

guennid hat geschrieben: ↑ zum Beitrag ↑
13.11.2019 20:26:52
Das die Architektur in den Namen oben auch nochmal redundant auftaucht, ist vermutlich Multiarch und anderem geschuldet.
Ich halt mich mal ans „vermutlich“. Als „notwendig“ einzusehen vermag ich's nicht, denn dass
Ein Paket sich im Dateinamen im Repository halt nur mit Name, Version & Architektur eindeutig benennen (lässt)
, ist ja in meinem letzten Beispiel (ohne Redundanz) berücksichtigt. :wink:
Da noch als Ergänzung: Ja, auch das amd64 in Debianlinux-image-amd64 ist notwendig, sonst gäbe es Probleme bei Multiarch.

Ups, der Text wurde länger als geplant 8O
Manchmal bekannt als Just (another) Terminal Hacker.

guennid

Re: bindeb-pkg

Beitrag von guennid » 15.11.2019 13:59:59

Ich war ja versucht, hier systemd statt bash als Beispiel zu nehmen ;)
Was ist systemd? :mrgreen:

Danke für deine Mühe!!! Ich denke, ich sehe jetzt klarer.

Grüße, Günther

Antworten