mitAnanda
Anmeldungsdatum: 12. Oktober 2015
Beiträge: Zähle...
|
Guten Abend, nach der Installation der aktuellen Kubuntu-Version auf einem neuen Notebook (HP ENVY x360 15-ey0157ng) funktioniert der Sound nicht. Vielleicht müssen zusätzliche Treiber installiert werden oder ähnliches, allerdings stellt HP für dieses Gerät nur Treiber für Windows 11 zur Verfügung. Habt ihr bitte Tipps, wie dieses Thema gelöst werden kann? Die Sound Problembehebung im Wiki brachte bedauerlicherweise keinen Erfolg und die Ausgabe lautet wie folgt: cat /proc/asound/cards
0 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xd05c8000 irq 91
1 [Generic_1 ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xd05c0000 irq 92
2 [acp ]: acp - acp
HP-HPENVYx3602_in_1Laptop15_ey0xxx-Type1ProductConfigId-8A31
aplay /usr/share/sounds/alsa/Front_Center.wav
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
aplay: main:831: audio open error: No such file or directory
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
ALSA lib pcm_dmix.c:999:(snd_pcm_dmix_open) unable to open slave
aplay: main:831: audio open error: No such file or directory
echo normal:; aplay -l; echo sudo:; sudo aplay -l
normal:
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC245 Analog [ALC245 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
sudo:
**** List of PLAYBACK Hardware Devices ****
card 0: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: Generic [HD-Audio Generic], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic_1 [HD-Audio Generic], device 0: ALC245 Analog [ALC245 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0 Viele Grüße
mitAnanda
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: Zähle...
|
PS: Die zuletzt beschriebene Vorgegehnsweise bei einem ähnlichen Gerät hat das Problem leider auch nicht behoben: https://forum.ubuntuusers.de/topic/hp-envy-x360-15-sound-nach-update-auf-ubuntu-2-2/ Es sind nun plötzlich auch keine Einträge unter "Audio" in den Systemeinstellungen mehr vorhanden. Hoffentlich lässt sich dieses Thema lösen. Danke schon einmal für Eure Unterstützung.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: Zähle...
|
Es wurden nun auch andere Derivative und Distributionen mit einem aktuelleren Kernel probiert, wie z.B. Fedora KDE, EndeavourOS und Pop!_OS. Aber kein Live ISO hat bislang funktioniert. Hat jemand von Euch noch Ideen wie man das Gerät zum Laufen bringen könnte?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Hast du ganz konkret den Kernel probiert: 6.4-rc7 ? Ich kenne die Hardware nicht, vielleicht kommt man irgendwie an die Device IDs und kann gezielter recherchieren. Falls es mit dem aktuellsten Kernel nicht klappt, es gibt einen Patch:
https://lore.kernel.org/lkml/20220811053950.11810-1-faenkhauser@gmail.com/ der jemandem mit ähnlicher Hardware half:
Even after the release of Linux 6.1, the problem is not solved yet. But I solved it by applying this patch and recompiling the kernel: ...
https://unix.stackexchange.com/questions/722205/hp-envy-x360-2022-ryzen-edition-speakers-not-working Ich habe nicht recherchiert, ob das spezifisch bei deiner Hardware hilfreich sein kann, jedenfalls ist in der Mailingliste davon die Rede:
This patch fixes speaker output on the HP Envy x360 ey0xxx
The mic/speaker mute LEDs are still non-functional but they aren't required for basic funtionality
Viel Glück.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Hast du ganz konkret den Kernel probiert: 6.4-rc7 ? Ich kenne die Hardware nicht, vielleicht kommt man irgendwie an die Device IDs und kann gezielter recherchieren. Falls es mit dem aktuellsten Kernel nicht klappt, es gibt einen Patch:
https://lore.kernel.org/lkml/20220811053950.11810-1-faenkhauser@gmail.com/ der jemandem mit ähnlicher Hardware half:
Even after the release of Linux 6.1, the problem is not solved yet. But I solved it by applying this patch and recompiling the kernel: ...
https://unix.stackexchange.com/questions/722205/hp-envy-x360-2022-ryzen-edition-speakers-not-working Ich habe nicht recherchiert, ob das spezifisch bei deiner Hardware hilfreich sein kann, jedenfalls ist in der Mailingliste davon die Rede:
This patch fixes speaker output on the HP Envy x360 ey0xxx
The mic/speaker mute LEDs are still non-functional but they aren't required for basic funtionality
Viel Glück.
Vielen Dank für Deine Rückmeldung. Gibt es überhaupt Live Images mit Kernel 6.4? Man muss ja schon froh sein, wenn man welche mit zumindest 6.3.x findet. Wie lassen sich die Device IDs herausfinden? Und gibt es für den Patch bitte genauere Anleitungen? Ist das auch mit wenig technischem Linux Know-How möglich?
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Aktuell habe ich keine Kernels mehr kompiliert, man braucht wohl jetzt auch Rust dazu. Ansonsten lese ich den Mailinglistenartikel so, dass man nach dem Laden des Sources die beiden Dateien wie angegeben bearbeiten muss, das geht sogar grafisch:
sound/pci/hda/cs35l41_hda.c
sound/pci/hda/patch_realtek.c
Welcher Kernel ist denn in Kubuntu 23.04 gerade installiert? Möglich dass per "sudo apt build-dep" schon alles, was man zum Bauen eines neueren/gepatchten Kernels braucht - inklusive Rust, installiert wird. 6.4 ist noch nicht fertig, habe ich nur genannt, weil jeder neue Kernel Verbesserungen mit sich bringt und ich davon ausging, dass du 6.3 bereits getestet hast. Zum technischen KnowHow: 2012 hab ich keinerlei Ahnung von Linux gehabt, aber unter Debian nach Anleitung schon Kernels kompiliert. Man kann da die Konfiguration eines vorhandenen Kernels übernehmen, dann werden nur die neuen Optionen abgefragt, oder mit dem Standardwert abgenickt. Wenn du eh patcht, kannst du vermutlich auch den Source vom gerade installierten Kernel laden und entsprechend bearbeiten. 6.4 war nur eine Idee, um ungepatcht noch zu testen, ob damit die Soundausgabe funktioniert. Ich hab mir eben eine zu patchende Datei angesehen: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/pci/hda/patch_realtek.c?h=v6.4-rc7 Da ist die Zeile
SND_PCI_QUIRK(0x103c, 0x8a31, "HP ENVY x360 2-in-1 Laptop 15-ey0xxx", ALC287_FIXUP_CS35L41_I2C_2),
aus dem Diff nicht enthalten, also entweder geht die Audioausgabe auch nicht im aktuellen 6.4 RC Kernel, oder das wurde anders gelöst.
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Ich hab was wichtiges vergessen:
Also the quirk is labeled ALC287_FIXUP_CS35L41_I2C_2 however it does not only apply to ALC287
Its function is the generic cs35l41 fixup telling the driver that there's 2 i2c speakers. It isn't actually specific to ALC287
https://lore.kernel.org/lkml/20220811053950.11810-1-faenkhauser@gmail.com/
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Aktuell habe ich keine Kernels mehr kompiliert, man braucht wohl jetzt auch Rust dazu. Ansonsten lese ich den Mailinglistenartikel so, dass man nach dem Laden des Sources die beiden Dateien wie angegeben bearbeiten muss, das geht sogar grafisch:
sound/pci/hda/cs35l41_hda.c
sound/pci/hda/patch_realtek.c
Welcher Kernel ist denn in Kubuntu 23.04 gerade installiert? Möglich dass per "sudo apt build-dep" schon alles, was man zum Bauen eines neueren/gepatchten Kernels braucht - inklusive Rust, installiert wird. 6.4 ist noch nicht fertig, habe ich nur genannt, weil jeder neue Kernel Verbesserungen mit sich bringt und ich davon ausging, dass du 6.3 bereits getestet hast. Zum technischen KnowHow: 2012 hab ich keinerlei Ahnung von Linux gehabt, aber unter Debian nach Anleitung schon Kernels kompiliert. Man kann da die Konfiguration eines vorhandenen Kernels übernehmen, dann werden nur die neuen Optionen abgefragt, oder mit dem Standardwert abgenickt. Wenn du eh patcht, kannst du vermutlich auch den Source vom gerade installierten Kernel laden und entsprechend bearbeiten. 6.4 war nur eine Idee, um ungepatcht noch zu testen, ob damit die Soundausgabe funktioniert. Ich hab mir eben eine zu patchende Datei angesehen: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/sound/pci/hda/patch_realtek.c?h=v6.4-rc7 Da ist die Zeile
SND_PCI_QUIRK(0x103c, 0x8a31, "HP ENVY x360 2-in-1 Laptop 15-ey0xxx", ALC287_FIXUP_CS35L41_I2C_2),
aus dem Diff nicht enthalten, also entweder geht die Audioausgabe auch nicht im aktuellen 6.4 RC Kernel, oder das wurde anders gelöst.
Herzlichen Dank für deine Antwort. "Source vom gerade installierten Kernel laden und entsprechend bearbeiten" klingt leider etwas zu technisch für reine Anwender. Eine Anleitung für noobs gibt es wahrscheinlich nicht, oder? 🤣 Kopfhörer funktionieren übrigens, falls dies relevant ist.
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Im Web gibts zahlreiche Anleitungen, wie man Kernels unter Debian baut und Deb-Pakete erhält. Da ich keine mehr getestet habe, möchte ich keine empfehlen. In meinem System muss ich auch erstmal Paketquellen für Sourcepakete aktivieren, sonst klappt schon der Anfang nicht. Mittlerweile im Archiv, vielleicht bringt dich das trotzdem weiter, vergiss aber nicht, vor dem Bau, die notwendigen Änderungen am Source vorzunehmen, die aus der Mailingliste. https://wiki.ubuntuusers.de/Archiv/Kernel/Kompilierung/
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Wenn der Kopfhörer funktioniert, kannst du auch einfach externe Boxen anschließen. Ist vermutlich dann auch besserer Ton. Irgendwann funktioniert dann vielleicht auch ein aktueller Standardkernel, so dass die internen Lautsprecher Ton ausgeben. Kernek 6.4 ist draussen, ich hab jetzt nicht geschaut, ob der Patch schn drin ist. Im RC 7 war er nicht.
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
Alles klar, danke. Dann heißt es wohl warten oder in der Zwischenzeit Windows nutzen ☹
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Sollte 6.4.2 oder gar noch neuer verfügbar sein (siehe https://www.kernel.org/), wenn du das hier liest/probierst, nimm ruhig den neuen Kernel. Ich hab gerade mal 6.4.1 gebaut, erst heute, weil ich auf ein Update von tuxedo-keyboard gewartet habe, damit ich nichts für 6.4x Kompatibilität patchen musste ☺), ist kein Hexenwerk, allerdings kann es sein, dass bei mir schon Zeugs, das notwendig ist, drauf war. Zudem hatte ich vorher den Mainline Kernel 6.4 drauf, so dass sich nicht viel an der Konfiguration geändert hat. Grob habe ich mich an dem Artikel orientiert, allerdings ohne git zu verwenden: https://saveriomiroddi.github.io/A-precise-guide-to-build-a-custom-linux-kernel/ Benötigtes installieren sudo apt install build-essential libncurses5 libncurses5-dev libncurses-dev qtbase5-dev-tools flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf 3 Linksklicks markieren bei mir die ganze Zeile.
Kernel laden (habs in einem neuen Ordner abgelegt, gegebenenfalls vorher mkdir neuerordner, cd neuerordner) wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.4.1.tar.xz
Ich weiß nicht, ob das notwendig ist, geschadet hat es bei mir nicht (siehe Artikel) scripts/config --set-str SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str SYSTEM_REVOCATION_KEYS ""
Optional weitere Anpassungen hier vornehmen make menuconfig Ich habs nicht angepasst, damit, wenn wieder von der Konfiguration des laufenden Kernels ausgegangen wird, alles ungefähr so ist und ich nicht meine Verschlimmbesserung übernehme.
Den Kernel patchen (Quelle: https://lore.kernel.org/lkml/20220811053950.11810-1-faenkhauser@gmail.com/), damit bei dir Sound geht, dazu öffnest du die Datei in einem Editor: linux-6.4.1/sound/pci/hda/ 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.1/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.
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.
Den neuen, gepatchten Kernel installieren sudo dpkg -i *.deb Auf meinem System wurde das Paket linux-libc-dev von einer Uraltversion auf den aktuellen Stand gebracht, ich hoffe, dass das keine Nachteile hat (bei den fertigen Mainlinekerneln gab es das Paket nicht, weshalb es immer auf dem 5.15er Stand von Buntu 22.04 blieb).
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
Viel Erfolg. Wenn es nicht klappt, kannst du den vorherigen Kernel booten und diesen hier entfernen. 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.
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Ah, ich habe wichtiges vergessen: das Source Tar-Archiv kann man per pgp prüfen verwendest du irgendwelche Hardware mit manuell installierten Treibern/Kernelmodulen, kann das zu Problemen führen ich habe das ganze unter Tuxedo OS durchgeführt, es ist nicht gesagt, dass das 1:1 auch unter deiner Distribution so funktioniert ein Rustcompiler war bei mir bereits installiert, falls der benötigt wird, könnte es reichen, das Paket zu installieren: rustc
|
mitAnanda
(Themenstarter)
Anmeldungsdatum: 12. Oktober 2015
Beiträge: 204
|
verdooft schrieb: Ah, ich habe wichtiges vergessen: das Source Tar-Archiv kann man per pgp prüfen verwendest du irgendwelche Hardware mit manuell installierten Treibern/Kernelmodulen, kann das zu Problemen führen ich habe das ganze unter Tuxedo OS durchgeführt, es ist nicht gesagt, dass das 1:1 auch unter deiner Distribution so funktioniert ein Rustcompiler war bei mir bereits installiert, falls der benötigt wird, könnte es reichen, das Paket zu installieren: rustc
Wow! Herzlichen Dank. Das sieht nach einem Projekt für das Wochenende aus und da werden sicher noch Fragen auftreten. Aber einen Versuch ist es auf alle Fälle wert und das Notebook wird schon nicht in die Luft fliegen wenn man Mist baut 🤣
|
verdooft
Anmeldungsdatum: 15. September 2012
Beiträge: 4286
|
Ja, im Makefile steht das: HOSTRUSTC = rustc Also wird Rust wohl wirklich benötigt, ich bin die Anleitung hier eben für 6.4.2 durchgegangen, es hat funktioniert. Was ich nicht hinbekomme, den Kernel mit gcc-13 und g++13 zu bauen, trotz
HOSTCC = gcc-13
HOSTCXX = g++-13
in der Makefile, kommt wieder das raus:
cat /proc/version
Linux version 6.4.2-custombuild-001 (linux@nb0) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #1 SMP PREEMPT_DYNAMIC Wed Jul 5 20:40:44 CEST 2023
Da müsste ich die gcc und g++ Versionen scheinbar doch in das Alternativen-System einpflegen und auf 13 setzen. Weil mir der Thread später als Dokumentation dient, ging doch, und zwar so:
make CC=/usr/bin/gcc-13 CXX=/usr/bin/g++-13 KCFLAGS="-march=native" -j 16 bindeb-pkg LOCALVERSION=-"custombuild-003"
Du kannst ohne Weiteres Standard gcc und g++ lassen. 23.04 ist sowieso aktueller.
|