mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
Vielen Dank nochmals. Heute ist endlich mal Gelegenheit mit dem Thema hoffentlich voran zu kommen. verdooft schrieb: Kernel kompilieren und Debianpakete bauen make -j 16 bindeb-pkg LOCALVERSION=-"custombuild-001" LOCALVERSION kannst du anpassen oder auch komplett weglassen. Je nach Prozessor die Threadzahl, hier 16, auch anpassen.
Die CPU hat 12 Threads. Aber sind diese Meldungen normal (warnings und error)? atman@kuhpuntu:~/kernel/linux-6.4.4$ make -j 12 bindeb-pkg LOCALVERSION=-"custombuild-001"
UPD include/config/kernel.release
GEN debian
dpkg-buildpackage --build=binary --no-pre-clean --unsigned-changes -r'fakeroot -u' -a$(cat debian/arch)
dpkg-buildpackage: info: source package linux-upstream
dpkg-buildpackage: info: source version 6.4.4-4
dpkg-buildpackage: info: source distribution lunar
dpkg-buildpackage: info: source changed by atman <atman@kuhpuntu>
dpkg-buildpackage: info: host architecture amd64
dpkg-source --before-build .
dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper
dpkg-buildpackage: warning: build dependencies/conflicts unsatisfied; aborting
dpkg-buildpackage: warning: (Use -d flag to override.)
make[1]: *** [scripts/Makefile.package:139: bindeb-pkg] Error 3
make: *** [Makefile:1657: bindeb-pkg] Error 2 In welchem Verzeichnis finden sich bitte die Debianpakete? Im Unterverzeichnis Debian? Und 6.4.4 sollte passen, oder gleich mit 6.5-rc2 probieren?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Ja, 6.4.4 habe ich auch jetzt laufen.
dpkg-checkbuilddeps: error: Unmet build dependencies: debhelper
Paket debhelper nachinstallieren:
sudo apt install debhelper
Die Debianpakete wären ein Verzeichnis drüber, also in ~/kernel/ Ich weiß nicht, welche Kernelversion bei dir aktuell ist, am einfachsten installiert man Buildvoraussetzungen so:
sudo apt build-dep <paketname>
Bei mir war halt schon viel Buildzeugs drauf, drum hat es gepasst.
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Noch ein kleiner Nachtrag: Die Konfigurationsänderungen für Zertifikate und Debugzeugs musst du später nicht mehr machen, weil du dann ja die Konfiguration des dann laufenden Kernels (z.B. 6.4.4) kopierst/verwendest per: make olddefconfig Kann man auch so prüfen:
scripts/config --state SYSTEM_TRUSTED_KEYS
<hieristnichts, leerer String>
scripts/config --state DEBUG_INFO
undef Sollte die Frage gestellt werden:
Initialize kernel stack variables at function entry
> 1. no automatic stack variable initialization (weakest) (INIT_STACK_NONE)
2. pattern-init everything (strongest) (INIT_STACK_ALL_PATTERN) (NEW)
3. zero-init everything (strongest and safest) (INIT_STACK_ALL_ZERO) (NEW)
Da hab ich 1 genommen, weil ich bei meinen Tests unbootbare Kernels hatte, ich weiß aber nicht zu 100%, ob es daran lag. Ist der ganze Vorgang erfolgreich, steht am Ende sowas: dpkg-deb: Paket »linux-image-6.4.5-custombuild-001« wird in »../linux-image-6.4.5-custombuild-001_6.4.5-1_amd64.deb« gebaut.
dpkg-deb: Paket »linux-libc-dev« wird in »../linux-libc-dev_6.4.5-1_amd64.deb« gebaut.
dpkg-deb: Paket »linux-headers-6.4.5-custombuild-001« wird in »../linux-headers-6.4.5-custombuild-001_6.4.5-1_amd64.deb« gebaut.
dpkg-genbuildinfo --build=binary -O../linux-upstream_6.4.5-1_amd64.buildinfo
dpkg-genchanges --build=binary -O../linux-upstream_6.4.5-1_amd64.changes
dpkg-genchanges: Information: Binärpaket(e) hochzuladen (kein Quellcode enthalten)
dpkg-source --after-build .
dpkg-buildpackage: Information: Binärpaket(e) hochzuladen (keine Quelle enthalten)
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Ich weiß nicht, welche Kernelversion bei dir aktuell ist, am einfachsten installiert man Buildvoraussetzungen so:
sudo apt build-dep <paketname>
Bei mir war halt schon viel Buildzeugs drauf, drum hat es gepasst.
Danke nochmals. debhelper ist jetzt nachinstalliert. Allerdings funktioniert der Befehl nun überhaupt nicht mehr: atman@kuhpuntu:~/kernel$ make -j 12 bindeb-pkg LOCALVERSION=-"custombuild-001"
make: *** No rule to make target 'bindeb-pkg'. Stop.
atman@kuhpuntu:~/kernel$ make -j 12 bindeb-pkg
make: *** No rule to make target 'bindeb-pkg'. Stop. Aber seit gestern ist 6.4.5 veröffentlicht und von dem her ist es wahrscheinlich ohnehin eine gute Idee damit nochmals von vorne zu beginnen, oder?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Du bist im Verzeichnis kernel, wenn ich das Archiv entpacke, ist ein Ordner linux-6.4.6 da, nur dort funktioniert das Bauen ohne weitere Pfadangaben per make. Bedenke, dass Schritte wiederholt werden müssen, die Config vom laufenden Kernel kopieren, Zertifikatsconfig ändern, Debuginfos abschalten und Kernel patchen, damit Sound bei dir geht. Im Changelog von 6.4.6 steht was von AMD, drum kompiliere ich auch wieder neu. Man muss allgemein aber nicht jedes Update mitmachen. Manchmal sind die Changelogs für das eigene System nicht so relevant.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Du bist im Verzeichnis kernel, wenn ich das Archiv entpacke, ist ein Ordner linux-6.4.6 da, nur dort funktioniert das Bauen ohne weitere Pfadangaben per make. Bedenke, dass Schritte wiederholt werden müssen, die Config vom laufenden Kernel kopieren, Zertifikatsconfig ändern, Debuginfos abschalten und Kernel patchen, damit Sound bei dir geht. Im Changelog von 6.4.6 steht was von AMD, drum kompiliere ich auch wieder neu. Man muss allgemein aber nicht jedes Update mitmachen. Manchmal sind die Changelogs für das eigene System nicht so relevant.
Herzlichen Dank! 6.4.6 klingt noch besser 👍 Was ändert sich denn bitte genau mit dem Bauen per make? Also im Vergleich zu deiner letzten Anleitung und den entsprechenden Schritten?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Du warst im Ordner kernel, nicht in linux-6.4.x. make geht da direkt, wo ein Makefile ist. Es ändert sich nichts, bis auf den Ordner, in dem die entpackten Dateien liegen. Wenn du mal einen 6.4.x Kernel laufen hast, von dem dann die Config kopiert wird, brauchst du folgende Schritte nicht mehr zu machen: Zertifikatszeugsconfig, Debuginfos abstellen. Ums Patchen kommst du allerdings nicht drumrum. Beim Patchen-Schritt habe ich einen Dateinamen vergessen; Den Kernel patchen (Quelle: https://lore.kernel.org/lkml/2022081r@gmail.com/), damit bei dir Sound geht, dazu öffnest du die Datei in einem Editor:
linux-6.4.x/sound/pci/hda/cs35l41_hda.c
suchst die Zeile (aktuell Zeile 1240) mit dem Inhalt:
if (strncmp(hid, "CLSA0100", 8) == 0) {
ersetzt die Zeile durch die 2 Zeilen:
if ((strncmp(hid, "CLSA0100", 8) == 0) ||
(strncmp(hid, "CSC3551", 7) == 0)) {
Dann speicherst du die Datei und öffnest:
linux-6.4.x/sound/pci/hda/patch_realtek.c
suchst die Zeile, die das enthält:
HP Envy x360
machst nach der Zeile (aktuell 9392) einmal Enter, fügst eine neue Zeile ein, so dass die markierte Zeile an der Stelle eingefügt ist:
SND_PCI_QUIRK(0x103c, 0x8497, "HP Envy x360", ALC269_FIXUP_HP_MUTE_LED_MIC3),
SND_PCI_QUIRK(0x103c, 0x8a31, "HP ENVY x360 2-in-1 Laptop 15-ey0xxx", ALC287_FIXUP_CS35L41_I2C_2),
SND_PCI_QUIRK(0x103c, 0x84da, "HP OMEN dc0019-ur", ALC295_FIXUP_HP_OMEN),
Dann speicherst du die Änderungen. Man kann Diffs auch anders anwenden, mit den Vorgehensweisen bin ich allerdings nicht vertraut.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
Vielen Dank nochmals. So sah es jetzt zum Schluss aus nach der Installation des neuen, gepatchten Kernels: dpkg-deb: building package 'linux-headers-6.4.5-custombuild-001' in '../linux-headers-6.4.5-custombuild-001_6.4.5-1_amd64.deb'.
dpkg-genbuildinfo --build=binary -O../linux-upstream_6.4.5-1_amd64.buildinfo
dpkg-genchanges --build=binary -O../linux-upstream_6.4.5-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included)
atman@kuhpuntu:~/kernel/linux-6.4.5$ cd..
cd..: command not found
atman@kuhpuntu:~/kernel/linux-6.4.5$ cd ..
atman@kuhpuntu:~/kernel$ dir
linux-6.4.5 linux-libc-dev_6.4.5-1_amd64.deb
linux-6.4.5.tar.xz linux-upstream_6.4.5-1_amd64.buildinfo
linux-headers-6.4.5-custombuild-001_6.4.5-1_amd64.deb linux-upstream_6.4.5-1_amd64.changes
linux-image-6.4.5-custombuild-001_6.4.5-1_amd64.deb
atman@kuhpuntu:~/kernel$ sudo dpkg -i *.deb
[sudo] password for atman:
Selecting previously unselected package linux-headers-6.4.5-custombuild-001.
(Reading database ... 270241 files and directories currently installed.)
Preparing to unpack linux-headers-6.4.5-custombuild-001_6.4.5-1_amd64.deb ...
Unpacking linux-headers-6.4.5-custombuild-001 (6.4.5-1) ...
Selecting previously unselected package linux-image-6.4.5-custombuild-001.
Preparing to unpack linux-image-6.4.5-custombuild-001_6.4.5-1_amd64.deb ...
Unpacking linux-image-6.4.5-custombuild-001 (6.4.5-1) ...
Preparing to unpack linux-libc-dev_6.4.5-1_amd64.deb ...
Unpacking linux-libc-dev:amd64 (6.4.5-1) over (6.2.0-26.26) ...
Setting up linux-headers-6.4.5-custombuild-001 (6.4.5-1) ...
Setting up linux-image-6.4.5-custombuild-001 (6.4.5-1) ...
* dkms: running auto installation service for kernel 6.4.5-custombuild-001 [ OK ]
update-initramfs: Generating /boot/initrd.img-6.4.5-custombuild-001
W: Possible missing firmware /lib/firmware/amdgpu/ip_discovery.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/vega10_cap.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_cap.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi12_cap.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/psp_13_0_6_sos.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/psp_13_0_10_ta.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/psp_13_0_10_sos.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/aldebaran_cap.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_imu.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_rlc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mec.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_me.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_pfp.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_0_toc.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sdma_4_4_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sdma_6_0_3.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes1.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/sienna_cichlid_mes.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/navi10_mes.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_4_mes_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mes1.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mes_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_3_mes.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_2_mes_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_1_mes_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/gc_11_0_0_mes_2.bin for module amdgpu
W: Possible missing firmware /lib/firmware/amdgpu/smu_13_0_10.bin for module amdgpu
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.4.5-custombuild-001
Found initrd image: /boot/initrd.img-6.4.5-custombuild-001
Found linux image: /boot/vmlinuz-6.2.0-26-generic
Found initrd image: /boot/initrd.img-6.2.0-26-generic
Found linux image: /boot/vmlinuz-6.2.0-25-generic
Found initrd image: /boot/initrd.img-6.2.0-25-generic
Found linux image: /boot/vmlinuz-6.2.0-24-generic
Found initrd image: /boot/initrd.img-6.2.0-24-generic
Found memtest86+ 64bit EFI image: /boot/memtest86+x64.efi
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings ...
done
Setting up linux-libc-dev:amd64 (6.4.5-1) ...
atman@kuhpuntu:~/kernel$ uname -a
Linux kuhpuntu 6.2.0-25-generic #25-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 16 17:05:07 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux Wie ist hierfür bitte der korrekte Befehl mit 6.4.5? verdooft schrieb: Checken, ob der Kernel nach einem Reboot läuft uname -a
Linux nb0 6.4.1-custombuild-001 #1 SMP PREEMPT_DYNAMIC Wed Jul 5 03:10:09 CEST 2023 x86_64 x86_64 x86_64 GNU/Linux
Und gibt es sonst noch etwas zu tun?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Der neue Kernel ist erst nach einem Neustart aktiv. Und dann Sound testen, ich hoffe, du hast korrekt gepatcht und dass das bei deiner Hardware überhaupt funktioniert. Bei mir schaut es so aus:
uname -a
Linux nb0 6.4.6-custombuild-001 #1 SMP PREEMPT_DYNAMIC Tue Jul 25 00:05:21 CEST 2023 x86_64 x86_64 x86_64 GNU/Linux
6.4.6 habe ich deswegen direkt kompiliert und installiert:
x86/cpu/amd: Add a Zenbleed fix
commit 522b1d69219d8f083173819fde04f994aa051a98 upstream.
Add a fix for the Zen2 VZEROUPPER data corruption bug where under
certain circumstances executing VZEROUPPER can cause register
corruption or leak data.
The optimal fix is through microcode but in the case the proper
microcode revision has not been applied, enable a fallback fix using
a chicken bit.
https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.4.6 Sehr aktuelles Thema:
https://www.heise.de/news/Zenbleed-Sicherheitsluecke-in-allen-Zen-2-CPUs-von-AMD-9226172.html
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Der neue Kernel ist erst nach einem Neustart aktiv. Und dann Sound testen, ich hoffe, du hast korrekt gepatcht und dass das bei deiner Hardware überhaupt funktioniert. Bei mir schaut es so aus:
Kernel sieht gut aus: atman@kuhpuntu:~$ uname -a
Linux kuhpuntu 6.4.5-custombuild-001 #1 SMP PREEMPT_DYNAMIC Tue Jul 25 20:03:44 CEST 2023 x86_64 x86_64 x86_64 GNU/Linux Und der Sound funktioniert endlich! Juhu! Herzlichen Dank nochmals für Deine tolle Unterstützung. Du bist spitze ☺ PS: würdest du empfehlen 6.4.6 direkt noch zu kompilieren und installieren?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Für unbedingt notwendig halte ich das nicht. Sind nur 2 Einträge im Changelog. Wenn du irgendwann wieder Lust hast, was zu kompilieren, nimmst du einfach den dann aktuellen Kernel. Ich habe eine Zen2 CPU, drum war das Changelog für mich relevant.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Für unbedingt notwendig halte ich das nicht. Sind nur 2 Einträge im Changelog. Wenn du irgendwann wieder Lust hast, was zu kompilieren, nimmst du einfach den dann aktuellen Kernel. Ich habe eine Zen2 CPU, drum war das Changelog für mich relevant.
Die CPU von diesem Gerät ist Zen 3 und damit dürfte es wohl ohnehin nicht relevant sein. verdooft schrieb: Der wichtigste Hinweis am Ende: Kernelupdates kommen auf die Art nicht mehr automatisch, baust du neue Kernel, musst du diese vorher solange patchen, bis der Originalsource entsprechend angepasst wurde, so dass bei dir die internen Lautsprecher auch so Ton ausgeben. In dem Fall könntest du ab dann (ab der Kernelversion) auch auf fertige Debianpakete zurückgreifen.
Was meintest du damit? Bei einem Update auf 23.10 ist der Kernel dann auch automatisch wieder up to date oder?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Ich hab vorhin gelesen, dass Buntu 23.10 mit Kernel 6.5 kommen soll. Standardkernel, also der welcher bootet, wenn man nichts anderes auswählt, ist meistens der aktuellste. Ich kann mir vorstellen, dass es durch verschiedene Versionierung sein kann, dass ein sicherheitstechnisch aktuellerer Kernel als älter gewertet werden kann (fiktives Beispiel: 6.5.0-55 vs. 6.5.1). Bisher ist dein Problem in den Vorabversionen des 6.5er Kernels nicht behoben (sofern das nicht völlig anders realisiert wurde als das was der Patch macht), drum kann es sein, dass du den weiter selbst patchen und bauen musst. Bei mir geht das relativ flott, drum kompiliere ich fleißig. ZEN3 ist nicht betroffen, genau. Entfernung von selbst installierten Kernels läuft bei mir so:
sudo apt purge linux-image-6.4.4-custombuild-001 linux-headers-6.4.4-custombuild-001
Das andere Paket (linux-libc-dev) lasse ich einfach, weils immer mit jeder Kompilierung/Installation aktualisiert wird.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Ich hab vorhin gelesen, dass Buntu 23.10 mit Kernel 6.5 kommen soll. Standardkernel, also der welcher bootet, wenn man nichts anderes auswählt, ist meistens der aktuellste. Ich kann mir vorstellen, dass es durch verschiedene Versionierung sein kann, dass ein sicherheitstechnisch aktuellerer Kernel als älter gewertet werden kann (fiktives Beispiel: 6.5.0-55 vs. 6.5.1). Bisher ist dein Problem in den Vorabversionen des 6.5er Kernels nicht behoben (sofern das nicht völlig anders realisiert wurde als das was der Patch macht), drum kann es sein, dass du den weiter selbst patchen und bauen musst. Bei mir geht das relativ flott, drum kompiliere ich fleißig. ZEN3 ist nicht betroffen, genau. Entfernung von selbst installierten Kernels läuft bei mir so:
sudo apt purge linux-image-6.4.4-custombuild-001 linux-headers-6.4.4-custombuild-001
Das andere Paket (linux-libc-dev) lasse ich einfach, weils immer mit jeder Kompilierung/Installation aktualisiert wird.
Alles klar, vielen Dank. Die Ergänzung für die Entfernung eines selbst installierten Kernels ist sehr hilfreich und dank deiner tollen Anleitung und Hilfestellung würde sich der Aufwand fürs Patchen in Grenzen halten, vor allem nachdem es bereits einmal geklappt hat. Spätestens mit 24.04 sollte es dann aber hoffentlich funktionieren, ohne selbst patchen zu müssen.
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4188
|
Ich lese grob die Changelogs, wenn ich was sehe, das das behebt, schreibe ich das hier in den Thread. Für 6.4.7 war was für Realtek Sound dabei, aber, soweit ich das überblicke, nicht mit Bezug zu deinem Notebook. Wenn es mal im Standardsource ist, kannst du die AMD64 Debian-Pakete von hier verwenden, wobei da manchmal nicht die aktuellsten sind: https://kernel.ubuntu.com/~kernel-ppa/mainline/
|