cant resolve root

Das Booten hält bei der Identifizierung der Festplatte an und gibt den Fehler : cant resolve root. Es wird evtl . eine Lange Zahl mit UUID angezeigt.

Dies kann mit der Angabe der Partition in der Datei /etc/fstab zusammenhängen.

UUID steht für Universally Unique Identifier und bezeichnet nach einem bestimmten Standard formatierte Identifikationsnummern. Diese sehen etwa so aus:

  • 6a12a4d5-e9e6-4568-afcc-34c70b24a668

Jedes Linux-Dateisystem besitzt einen UUID, über den es identifiziert werden kann. Zwar kann man das auch über die Geräte-Dateien /dev/sdaX tun, aber die Nummerierung kann sich hier ändern – z.B. beim Vertauschen von Kabeln. Andere Eigenschaften wie Label oder Größe des Dateisystems garantieren keine Eindeutigkeit. Vergleichen kann man den UUID also mit einer Personalausweisnummer: Zwei Personen können den gleichen Namen tragen, sie haben aber trotzdem unterschiedliche Ausweisnummern.

 

Eine Übersicht der Partitionen mit dazugehöriger UUID bekommt man über den Befehl

localhost # lsblk -o +fstype,label,uuid,partuuid

E sind folgende Kerneldateien hinterlegt:

localhost /home/fridolin # cd /boot/
localhost /boot # ls
grub
initramfs-genkernel-x86_64-4.12.12-gentoo
initramfs-genkernel-x86_64-4.14.8-gentoo-r1
initramfs-genkernel-x86_64-4.9.72-gentoo
kernel-genkernel-x86_64-4.12.12-gentoo
kernel-genkernel-x86_64-4.14.8-gentoo-r1
kernel-genkernel-x86_64-4.9.72-gentoo
System.map-genkernel-x86_64-4.12.12-gentoo
System.map-genkernel-x86_64-4.14.8-gentoo-r1
System.map-genkernel-x86_64-4.9.72-gentoo

 

 

Vergleich der Kerneldateien:

[table id=9 /]

ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing.

Die Kompilierung des Kernels schlägt fehl:

localhost /home/fridolin # less /var/log/genkernel.log

* Gentoo Linux Genkernel; Version 66
* Running with options: --menuconfig all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing. Maybe re-install the kernel sources.
*
* -- Grepping log... --
*
*
* -- End log... --
*
* Please consult /var/log/genkernel.log for more information and any
* errors that were reported above.
*
* Report any genkernel bugs to bugs.gentoo.org and
* assign your bug to genkernel@gentoo.org. Please include
* as much information as you can in your bug report; attaching
* /var/log/genkernel.log so that your issue can be dealt with effectively.
*
* Please do *not* report compilation failures as genkernel bugs!

Über die folgenden Befehle können Informationen abgerufen werden:

Vorhandene Kernelquellen suchen:

fridolin@localhost ~ $ equery list -i gentoo-sources
[IP-] [ ] sys-kernel/gentoo-sources-4.9.72:4.9.72

Name des verwendeten Kernels anzeigen:

fridolin@localhost ~ $ uname -r
4.14.8-gentoo-r1

Vorhandene kernel-Versionen anzeigen:

fridolin@localhost ~ $ eselect kernel list
Available kernel symlink targets:
[1] linux-4.9.72-gentoo

Eine Installation einer genauen Version der Kernel-Quellen kann über den Befehl

localhost /home/fridolin # emerge =gentoo-sources-4.9.72

erfolgen

Um sicher zu stellen, dass der Link auf die Kernel-Quellen korrekt gesetzt wird ist es sinnvoll mit dem USE-Flag symlink zu kompilieren.

localhost /home/fridolin # USE=symlink emerge -av gentoo-sources

Konflikt zwischen udev / eudev

Die Seite mit den Grundinfos zu udev / eudev gibt es hier

Ich bekam einen Konflikt zwischen eudev und udev bei einer gewünschten Installation.

Total: 12 packages (6 upgrades, 1 new, 1 in new slot, 4 reinstalls), Size of downloads: 102,483 kB
Conflict: 2 blocks (2 unsatisfied)


* Error: The above package list contains packages which cannot be
* installed at the same time on the same system.

(sys-apps/systemd-215-r3::gentoo, installed) pulled in by
>=sys-apps/systemd-207 required by (sys-apps/gentoo-systemd-integration-4::gentoo, installed)
>=sys-apps/systemd-44-r1[pam] required by (sys-auth/pambase-20120417-r3::gentoo, installed)
sys-apps/systemd required by @selected

(sys-fs/eudev-1.9-r2::gentoo, ebuild scheduled for merge) pulled in by
>=sys-fs/eudev-1.3:0/0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?, abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,static-libs?] (>=sys-fs/eudev-1.3:0/0[abi_x86_64(-)]) required by (virtual/libudev-215::gentoo, ebuild scheduled for merge)
>=sys-fs/eudev-1.5.3-r1:0/0[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_ppc_32(-)?, abi_ppc_64(-)?,abi_s390_32(-)?,abi_s390_64(-)?,gudev,introspection?,static-libs?] (>=sys-fs/eudev-1.5.3-r1:0/0[abi_x86_64(-),gudev]) required by (virtual/libgudev-215::gentoo, ebuild scheduled for merge)
>=sys-fs/eudev-1.3 required by (virtual/udev-215::gentoo, ebuild scheduled for merge)

For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked

Durch den Wechsel auf ein Profil in dem automaitsch Systemd benötigt wird habe ich einen Konflikt zwischen den Geräteschnittstellenversionen udev und eudev bekommen, da diese schon installiert waren. Eine Hinterlegung in package.mask von systemd blieb daher erfolglos. Wenn man Systemd verwendet sollte man kein eudev aktivieren.

 

user@localhost ~ $ eselect profile list
Available profile symlink targets:
[1] default/linux/amd64/13.0
[2] default/linux/amd64/13.0/selinux
[3] default/linux/amd64/13.0/desktop
[4] default/linux/amd64/13.0/desktop/gnome
[5] default/linux/amd64/13.0/desktop/gnome/systemd*
[6] default/linux/amd64/13.0/desktop/plasma
[7] default/linux/amd64/13.0/desktop/plasma/systemd
[8] default/linux/amd64/13.0/developer
[9] default/linux/amd64/13.0/no-multilib
[10] default/linux/amd64/13.0/systemd
[11] default/linux/amd64/13.0/x32
[12] default/linux/amd64/17.0
[13] default/linux/amd64/17.0/selinux
[14] default/linux/amd64/17.0/hardened
[15] default/linux/amd64/17.0/hardened/selinux
[16] default/linux/amd64/17.0/desktop
[17] default/linux/amd64/17.0/desktop/gnome
[18] default/linux/amd64/17.0/desktop/gnome/systemd
[19] default/linux/amd64/17.0/desktop/plasma
[20] default/linux/amd64/17.0/desktop/plasma/systemd
[21] default/linux/amd64/17.0/developer
[22] default/linux/amd64/17.0/no-multilib
[23] default/linux/amd64/17.0/no-multilib/hardened
[24] default/linux/amd64/17.0/no-multilib/hardened/selinux
[25] default/linux/amd64/17.0/systemd
[26] default/linux/amd64/17.0/x32
[27] hardened/linux/amd64
[28] hardened/linux/amd64/selinux
[29] hardened/linux/amd64/no-multilib
[30] hardened/linux/amd64/no-multilib/selinux
[31] hardened/linux/amd64/x32
[32] default/linux/musl/amd64
[33] hardened/linux/musl/amd64
[34] default/linux/musl/amd64/x32
[35] hardened/linux/musl/amd64/x32
[36] default/linux/uclibc/amd64
[37] hardened/linux/uclibc/amd64

Das Profil wurde wieder auf eines ohne systemd gewechselt. Eine Aktualisierung der Profileinstellungen erfolgt über

root # env-update && sources /etc/profile

Da man mittlerweile selbst für Gnome die Unterstützung von Gnome systemd benötigt wollte ich es wieder aktivieren Ein Eintrag von systemd in die make.conf erfolgte und das System wurde auf neue Anpassungen durchsucht

root # nano -w /etc/portage/make.conf
USE="systemd"
root # emerge --update --newuse --deep @world

 

Ein Eintrag  in einem Forum zum Thema: https://forums.gentoo.org/viewtopic-t-997044-start-0.html

No screens found

No screens found – Dieser Fehler kommt, wenn die grafische Oberfläche nicht gefunden wurde / nicht gestartet werden kann Dies kann unterschiedliche Ursachen haben.

Es ist sehr wahrscheinlich, dass Ihre xorg.conf-Datei nicht den richtigen Treiber für den / die Chipsatz (e) in Ihrem System enthält oder dass Ihr Chipsatz von keinem der Treiber unterstützt wird. Sie können nach den erkannten Geräten in der Protokolldatei suchen (/var/log/Xorg.0.log), indem Sie nach folgenden Zeilen suchen:

(-) PCI: * (1: 0: 0) Neomagic Corporation NM2200 [MagicGraph 256AV] Version 32, Mem @ 0xfd000000 / 24, 0xfe800000 / 22, 0xfec00000 / 20

In diesem Beispiel ist das aktive Videogerät (das mit dem *) ein Neomagic NM2200 Videochip. Um diesen Chipsatz zum Laufen zu bringen, müssten Sie den neomagic Treiber verwenden.
Über das Tool xorgcfg, das grafische Tool, das mit Xorg ausgeliefert wird, kann die Konfigurations ausprobiert werden. Sie können den Server auch eine Konfigurationsdatei erzeugen lassen: Führen Sie als root einfach X -configure aus.

Als Erstes ist es wichtig zwischen einer Desktop Umgebung und einem Windowmanager zu unterscheiden. Eine Desktop-Umgebung (GUI – graphical User integrated) kann direkt installiert und gestartet werden. Falls ein Windowmanager installiert wird muss die grafische Oberfläche Xorg installiert werden. Durch das Script startx kann versucht werden die grafische Oberfläche zu laden. 

Es wird als Erstes in der Datei .xinitrc im Heimatverzeichnis nach der Angabe eines Desktop-Namens gesucht. In dieser Datei kann für den jeweiligen User die gewünschte grafische Oberfläche festgelegt werden. Beispieleinträge:

exec startfluxbox
exec gnome-session
exec mate-session

Andernfalls liest es den Wert der XSESSION-Variablen aus der Datei /etc/env.d/90xsession und führt die Sitzung entsprechend aus. Werte für XSESSION sind in / etc / X11 / Sessions / verfügbar. So legen Sie einen systemweiten Standardsitzungslauf fest:

root #echo XSESSION="Xfce4" > /etc/env.d/90xsession

Dadurch wird die 90xsession-Datei erstellt und die X-Standardsitzung auf Xfce festgelegt.

Die Sitzung (zu startendes Programm) könnte auch als Argument für startx angegeben werden:

michi $ startx /usr/bin/startfluxbox

Sound unter Firefox

Sollte der Sound in Firefox nicht funktionieren sind einige Überprüfungen erforderlich. In diesem Beitrag gehe ich davon aus, dass der Sound allgemein funktioniert. Nur im Firefox nicht.

Für Allgemeine Soundprobs gibt es den Beitrag http://edv-bildung.de/soundkarte-probs-mit-alsa

PulseAudio verwendet udev und ConsoleKit, um dynamisch Zugriff auf die Soundkarten der aktuell aktiven Nummer zu gewähren. Wenn Sie Systemd ausführen, wird dies ohne ConsoleKit ausgeführt. Ich verwende systemd und hatte Probs mit dem Sound. Nach der Konfiguration vom Pulseaudio mit Consolekit funktioniert der Sound. Daher stelle ich die Infos dazu hier ein.

 

Folgende Pakete sind erforderlich:

  1. Firefox
  2. Pulseaudio
  3. Consolekit

Ist Consolekit erfolgreich gestartet ?

sys-hier-in-kiel /home/michi # /etc/init.d/consolekit status
* status: started

Falls Nein, kann der Start über /etc/init.d/consolekit start nachgeholt werden.

ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing

Kernel Konfiguration überprüfen / aktualisieren.

Eine Installation bzw. Konfiguration des Kernel schlägt fehl. Sowohl über genkernel als auch manuell über make menuconfig .

localhost # genkernel --menuconfig all
* Gentoo Linux Genkernel; Version 65
* Running with options: --menuconfig all
* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* ERROR: Kernel Makefile (/usr/src/linux/Makefile) missing. Maybe re-install the kernel sources.
*
* -- Grepping log... --
*
*
* -- End log... --
*
* Please consult /var/log/genkernel.log for more information and any
* errors that were reported above.
*
* Report any genkernel bugs to bugs.gentoo.org and
* assign your bug to genkernel@gentoo.org. Please include
* as much information as you can in your bug report; attaching
* /var/log/genkernel.log so that your issue can be dealt with effectively.
*
* Please do *not* report compilation failures as genkernel bugs!
*

michi@localhost ~ $ su
Password:
localhost /home/michi # cd /usr/src/linux
localhost /usr/src/linux # make menuconfig
make: *** No rule to make target 'menuconfig'. Stop.

Hier wird die Konfigurationsdatei gesucht. Durch oldconfig kann eine Datei erstellt werden.

localhost /usr/src/linux-4.9.72-gentoo # make
 HOSTCC scripts/basic/fixdep
 HOSTCC scripts/kconfig/conf.o
 SHIPPED scripts/kconfig/zconf.tab.c
 SHIPPED scripts/kconfig/zconf.lex.c
 SHIPPED scripts/kconfig/zconf.hash.c
 HOSTCC scripts/kconfig/zconf.tab.o
 HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
***
*** Configuration file ".config" not found!
***
*** Please run some configurator (e.g. "make oldconfig" or
*** "make menuconfig" or "make xconfig").
***
make[2]: *** [scripts/kconfig/Makefile:39: silentoldconfig] Fehler 1
make[1]: *** [Makefile:541: silentoldconfig] Fehler 2
 SYSTBL arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_32.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_64.h
 SYSHDR arch/x86/entry/syscalls/../../include/generated/uapi/asm/unistd_x32.h
 HOSTCC arch/x86/tools/relocs_32.o
 HOSTCC arch/x86/tools/relocs_64.o
 HOSTCC arch/x86/tools/relocs_common.o
 HOSTLD arch/x86/tools/relocs
make: *** Keine Regel vorhanden, um das Ziel „include/config/auto.conf“, 
 benötigt von „include/config/kernel.release“, zu erstellen. Schluss.


 

Bevor „Maybe re-install the kernel sources.“  durchgeführt wird ist es sinnvoll auf evtl Fehler zu recherchieren. Wie angezeigt kann unter /var/log/genkernel.log geschaut werden, ob etwas interessantes aufgeführt ist.

Aktionen zur Fehlerdiagnose:

Das Paket des genkernels kann beim Update dessen deinstalliert werden. Dann ist es nur erforderlich das Paket gentoo-sources und evtl. genkernel neu zu installieren.
Als Erstes wird überprüft, ob der Kernel einen Link gesetzt bekommen hat. eselect kernel list zeigt die vorhandenen Kernel an. Durch eselect kernel set x wird der Link gesetzt.

localhost /usr/src/linux # eselect kernel list
Available kernel symlink targets:
[1] linux-4.12.12-gentoo

oder durch den Aufruf des Verzeichnisses /usr/src/linux

localhost /usr/src/linux # ls -l /usr/src
total 8
lrwxrwxrwx 1 root root 19 Sep 3 12:00 linux -> linux-4.12.5-gentoo
drwxr-xr-x 25 root root 4096 Sep 15 13:36 linux-4.12.12-gentoo
drwxr-xr-x 22 root root 4096 Sep 14 19:16 linux-4.12.5-gentoo

Der Link ist auf den Kernel linux-4.12.5-gentoo gesetzt.

In der /etc/fstab muss überprüft werden, ob das Root-Verzeichnis korrekt festgelegt ist.
Ein Beispiel:

localhost # nano -w /etc/fstab
#LABEL=boot /boot ext4 noauto,noatime 1 2
#UUID=58e72203-57d1-4497-81ad-07655bd51111/ ext4 noatime 0 1
LABEL=swap none swap sw 0 0
#/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
/dev/sda2 / ext4

Falls keine Besserung eintritt kann Gentoo-Sources und genkernel neu kompiliert werden:

localhost /usr/src/linux # emerge -av genkernel-next
* IMPORTANT: 15 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-kernel/genkernel-next-65::gentoo USE="-cryptsetup -dmraid -gpg -iscsi -mdadm -plymouth (-selinux)" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]

localhost /usr/src/linux # emerge -av gentoo-sources
* IMPORTANT: 15 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild R ] sys-kernel/gentoo-sources-4.12.12:4.12.12::gentoo USE="-build -experimental -symlink" 0 KiB

Total: 1 package (1 reinstall), Size of downloads: 0 KiB

Would you like to merge these packages? [Yes/No]
Ein emerge der Gentoo-Souces wird erfolgreich gestartet

Bitte beachten: auf einem System darf nicht genkernel und genkernel-next gemeinsam installiert sein.

localhost / # emerge -av genkernel-next      

 * IMPORTANT: 10 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N     ] sys-kernel/genkernel-next-69::gentoo  USE="-cryptsetup -dmraid -gpg -iscsi -mdadm -plymouth (-selinux)" 0 KiB
[blocks B      ] sys-kernel/genkernel ("sys-kernel/genkernel" is blocking sys-kernel/genkernel-next-69)

Total: 1 package (1 new), Size of downloads: 0 KiB
Conflict: 1 block (1 unsatisfied)

 * Error: The above package list contains packages which cannot be
 * installed at the same time on the same system.

  (sys-kernel/genkernel-3.5.3.3:0/0::gentoo, installed) pulled in by
    sys-kernel/genkernel required by @selected

  (sys-kernel/genkernel-next-69:0/0::gentoo, ebuild scheduled for merge) pulled in by
    genkernel-next


For more information about Blocked Packages, please refer to the following
section of the Gentoo Linux x86 Handbook (architecture is irrelevant):

https://wiki.gentoo.org/wiki/Handbook:X86/Working/Portage#Blocked_packages

Nun zum Verzeichniss des Kernel wechseln.

localhost /usr/src/linux-4.19.72-gentoo # cd /usr/src/
localhost /usr/src # ls -all
total 16
drwxr-xr-x 4 root root 4096 Sep 17 17:10 .
drwxr-xr-x 12 root root 4096 Aug 28 22:08 ..
-rw-r–r– 1 root root 0 Aug 28 21:52 .keep
lrwxrwxrwx 1 root root 20 Aug 31 18:07 linux -> linux-4.19.66-gentoo
drwxr-xr-x 23 root root 4096 Sep 20 17:13 linux-4.19.66-gentoo
drwxr-xr-x 26 root root 4096 Oct 3 14:23 linux-4.19.72-gentoo

Hier wird der Kernel linux-4.19.66-gentoo verwendet, da der Link von linux dorthin verweist. Nun wird make menuconfig aufgerufen. Somit kann die Konfiguration des Kernel gestartet werden.

localhost /usr/src # cd /usr/src/linux
localhost /usr/src/linux #

localhost /home/michi # genkernel –menuconfig all

Gentoo Linux Genkernel; Version 3.5.3.3
Running with options: –menuconfig all
Using genkernel.conf from /etc/genkernel.conf
Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

Nach der Konfiguration des Kernel wird durch make die Kompilierung gestartet.

localhost /usr/src/linux # make
make: *** No targets specified and no makefile found. Stop.

Bei dieser Fehlermeldung bitte überprüfen ob man im richtigen Installationsverzeichnis ist. Wechseln nach /usr/src/linux-kernelversion also zum Beispiel: /usr/src/linux-4.19.72-gentoo

make wurde erfolgreich abgeschlossen

Nun werden die Module installiert. Der Behfel lautet make modules_install

make modules_install

Infos / Meldungen von USE

 Zur Konfigurationsseite der USE-Flags

The following REQUIRED_USE flag constraints are unsatisfied: Diese Meldung weist auf einen Konflikt in der Installation eines Paketes mit den dazugehörigen USE-Flag hin. Diese müssen angepasst werden.

Ein Beispiel:

localhost /home/michi # emerge -avuND @world

* IMPORTANT: 12 news items need reading for repository 'gentoo'.
* Use eselect news read to view new items.

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! The ebuild selected to satisfy "sys-fs/lvm2" has unmet requirements.
- sys-fs/lvm2-2.02.145-r2::gentoo USE="readline systemd thin (-clvm) (-cman) -corosync -device-mapper-only -lvm1 -lvm2create_initrd -openais (-selinux) (-static) (-static-libs) -udev" ABI_X86="(64)"

The following REQUIRED_USE flag constraints are unsatisfied:
systemd? ( udev )

The above constraints are a subset of the following complete expression:
device-mapper-only? ( !clvm !cman !corosync !lvm1 !lvm2create_initrd !openais !thin ) systemd? ( udev ) clvm? ( !systemd )

(dependency required by "sys-kernel/genkernel-next-65::gentoo" [installed])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

The following REQUIRED_USE flag constraints are unsatisfied: systemd? ( udev )  – Diese Aussage besagt, dass wenn USE = systemd ist, dann auch USE = udev gesetzt werden muss. Verwenden Sie die Datei /etc/portage/package.use um ein use-Flag für ein Paket zu setzen. Die einmalige Verwendung bei der Kompilierung mit USE= wird beim nächsten Update  überschrieben. Soll ein Use-Flag für das gesamte System gesetzt werden geschieht das in der Datei /etc/portage/make.conf

#USE=systemd emerge -av  sys-fs/lvm2

 

!!! The following installed packages are masked:
- net-fs/samba-4.5.10-r1::gentoo (masked by: package.mask)
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.

Vorwort zu den Beiträgen / Blog

Die Beiträge sind ausführliche Aufzeichnungen von Fehlern mit der Suche nach der Lösung.  Es existiert eine zeitliche Sortierung im Beitrag. So kann nachvollzogen werden, welcher Fehler vorlag und womit recherchiert wurde und welche Aktionen eine Besserung oder Lösung brachten.

Ich freue mich über Anregungen / Verbesserungsvorschläge und  Hinweise auf evtl. Fehler auf der Homepage.

Soundkarte – Probs mit Alsa

Symptom: Der Sound funktioniert nicht.

Die Anleitung zur Installation und Konfiguration gibt es hier

Dieser Beitrag beschäftigt sich mit Problemen im Soundbereich
Eine Überprüfung der Funktion der Soundkarte kann über den Speakertest durchgeführt werden.  Es erfolgt eine Fehlermeldung mit verschiedenen Infos. Hauptpunkt ist die Aussage „(parse_card) cannot find card ‚0‘“  – also die Karte wird vom Alsa nicht gefunden bzw. erkannt.

Speaker Test

Speaker-Test ist ein util des Paketes alsa-utils.

michi-kiste /home/michi # speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4850:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM default
Playback open error: -2,No such file or directory

 Die grafische Ansicht der Alsakonfiguration kann über den alsamixergui gestartet werden. Das Paket alsamixer muss installiert sein.  Leider wird auch hier keine Karte angezeigt.

 

Das häufigste Problem bei der Konfiguration der Hardware besteht in der Konfiguration / Aktivierung der Module. Unter Windows sind es die Treiber , unter Linux die Module …
Die Module werden entweder manuell über lsmod und Angabe des Modulnamens  oder durch im Kernel aktivierte Module konfiguriert.

Über lspci -v kann die Hardware detailliert aufgelistet werden. Es werden 2 Soundkarten erkannt:

Auszug lspci -v :

00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)
Subsystem: ASUSTeK Computer Inc. FCH Azalia Controller
Flags: bus master, slow devsel, latency 32, IRQ 5
Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Kernel modules: snd_hda_intel

00:01.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Trinity HDMI Audio Controller
Subsystem: ASUSTeK Computer Inc. Trinity HDMI Audio Controller
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at feb44000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 3
Capabilities: [58] Express Root Complex Integrated Endpoint, MSI 00
Capabilities: [a0] MSI: Enable- Count=1/1 Maskable- 64bit+
Capabilities: [100] Vendor Specific Information: ID=0001 Rev=1 Len=010 <?>
Kernel modules: snd_hda_intel

In beiden Versionen wird das Kernel Modul snd_hda_intel angezeigt. Nun kann überprüft werden, ob die Module im Kernel aktiviert sind.  Bei der Angabe =m sind die Module eingestellt. Bei y wurden die Komponenten fest in den Kernel eingebunden. Eine Filterung der Kerneldatei nach SND_HDA erfolgt:

michi-kiste /home/michi # cat /usr/src/linux/.config | grep SND_HDA
CONFIG_SND_HDA=m
CONFIG_SND_HDA_INTEL=m
CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
# CONFIG_SND_HDA_INPUT_BEEP is not set
CONFIG_SND_HDA_PATCH_LOADER=y
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
CONFIG_SND_HDA_CODEC_VIA=m
CONFIG_SND_HDA_CODEC_HDMI=m
CONFIG_SND_HDA_CODEC_CIRRUS=m
CONFIG_SND_HDA_CODEC_CONEXANT=m
CONFIG_SND_HDA_CODEC_CA0110=m
CONFIG_SND_HDA_CODEC_CA0132=m
# CONFIG_SND_HDA_CODEC_CA0132_DSP is not set
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_GENERIC=m
CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
CONFIG_SND_HDA_CORE=m
CONFIG_SND_HDA_I915=y
CONFIG_SND_HDA_PREALLOC_SIZE=64

 

Ein Test unter Linux -Mint

Auf einer anderen Partition nutze ich Linux-Mint. Darunter wird die Karte erkannt und die Lautsprecher (extern) funktionieren.  Es brachte folgendes Gerät als korrekt heraus:

00:14.2 Audio device: Advanced Micro Devices, Inc. [AMD] FCH Azalia Controller (rev 01)
Subsystem: ASUSTeK Computer Inc. FCH Azalia Controller
Flags: bus master, slow devsel, latency 32, IRQ 16
Memory at feb40000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [50] Power Management version 2
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel

Hier wird auch das Kernel – Modul snd_hda_intel genutzt. Die Anzeige des Alsamixer Gui ist korrekt und funktioniert.

 

Somit versuche ich in Gentoo das Modul manuell zu laden. Dies ist erfolgreich.

michi-kiste /home/michi # modprobe -vv snd_hda_intel
modprobe: INFO: custom logging function 0x40a030 registered
modprobe: INFO: context 0x623260 released

Um das Modul standardmäßig zu aktivieren habe ich es in die Datei /etc/conf.d/modules hinzugefügt:

# You should consult your kernel documentation and configuration
# for a list of modules and their options.
modules="snd_hda_intel"
modules lines 1-28/28 (END)

In der Systemmeldung werden Informationen zum Abruf angezeigt:

Auszug dmesg:

[ 1085.374817] snd_hda_intel 0000:00:01.1: Force to non-snoop mode
[ 1085.384298] input: HDA ATI HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.1/sound/card1/input4
[ 1085.387403] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC887-VD: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:line
[ 1085.387405] snd_hda_codec_realtek hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 1085.387407] snd_hda_codec_realtek hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
[ 1085.387407] snd_hda_codec_realtek hdaudioC0D0: mono: mono_out=0x0
[ 1085.387408] snd_hda_codec_realtek hdaudioC0D0: dig-out=0x11/0x0
[ 1085.387409] snd_hda_codec_realtek hdaudioC0D0: inputs:
[ 1085.387411] snd_hda_codec_realtek hdaudioC0D0: Front Mic=0x19
[ 1085.387412] snd_hda_codec_realtek hdaudioC0D0: Rear Mic=0x18
[ 1085.387413] snd_hda_codec_realtek hdaudioC0D0: Line=0x1a
[ 1085.400047] input: HD-Audio Generic Front Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input5
[ 1085.400099] input: HD-Audio Generic Rear Mic as /devices/pci0000:00/0000:00:14.2/sound/card0/input6
[ 1085.400147] input: HD-Audio Generic Line as /devices/pci0000:00/0000:00:14.2/sound/card0/input7
[ 1085.400203] input: HD-Audio Generic Line Out as /devices/pci0000:00/0000:00:14.2/sound/card0/input8
[ 1085.400247] input: HD-Audio Generic Front Headphone as /devices/pci0000:00/0000:00:14.2/sound/card0/input9

Nach der Aktivierung des snd Moduls in Gentoo werden Komponenten erfolgreich gestartet. Leider höre ich keinen Sound. Die Verkabelung und Lautstärke habe ich überprüft.

michi-kiste /etc/conf.d # speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
0 - Front Left
Time per period = 2.836984
0 - Front Left
Time per period = 2.986638
0 - Front Left

 
Es stellte sich heraus, dass der Masterkanal auf mute (stumm) geschaltet ist. Durch Drücken der Taste m kann man die soundausgabe aktivieren oder deaktivieren.

Nun ist eine Nutzung als root vollständig ok. Bei dem Versuch als User bekomme ich einen Fehler.

michi@michi-kiste ~/Downloads $ aplay audiocheck.net_hdsweep_1Hz_44000Hz_-3dBFS_30s.wav
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:767:(parse_card) cannot find card '0'
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/confmisc.c:1246:(snd_func_refer) error evaluating name
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4371:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/conf.c:4850:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm.c:2450:(snd_pcm_open_noupdate) Unknown PCM default
aplay: main:786: audio open error: No such file or directory

 

Wichtig ist die Überprüfung, ob der User in der Gruppe audio ist. Durch id werden die zum User gehörenden Gruppen angezeigt:

michi@michi-kiste ~/Downloads $ id
uid=1000(michi) gid=18(audio) groups=18(audio),10(wheel),100(users),235(plugdev)

Die Festlegung erfolgt über die Datei /etc/groups

 

Michi gehört zur Gruppe audio. Sollte dies nicht der Fall sein, kann über den Befehl  gpasswd -a username audio der User der Gruppe hinzugefügt werden.

Ein Start des alsamixer ist als root erfolgreich. Als User kommt ein Fehler.

michi-kiste ~ # alsamixer
michi-kiste ~ # su michi
michi@michi-kiste /root $ alsamixer
cannot open mixer: No such file or directory

Ich bekam die Anregung die Rechte des Audio-Devices zu überprüfen. Dies erfolgt über den Abruf im Verzeichnis /dev/snd

michi-kiste /dev/snd # ls -all
total 0
drwxr-xr-x 3 root root 260 Nov 18 13:22 .
drwxr-xr-x 16 root root 3640 Nov 18 13:38 ..
drwxr-xr-x 2 root root 80 Nov 18 13:22 by-path
crw-rw---- 1 root root 116, 5 Nov 18 13:22 controlC0
crw-rw---- 1 root root 116, 2 Nov 18 13:22 controlC1
crw-rw---- 1 root root 116, 10 Nov 18 13:22 hwC0D0
crw-rw---- 1 root root 116, 4 Nov 18 13:22 hwC1D0
crw-rw---- 1 root root 116, 7 Nov 18 17:03 pcmC0D0c
crw-rw---- 1 root root 116, 6 Nov 18 17:03 pcmC0D0p
crw-rw---- 1 root root 116, 8 Nov 18 17:03 pcmC0D1p
crw-rw---- 1 root root 116, 9 Nov 18 13:22 pcmC0D2c
crw-rw---- 1 root root 116, 3 Nov 18 17:03 pcmC1D3p
crw-rw---- 1 root root 116, 33 Nov 18 13:22 timer

Hier wurden die Dateien nur mit Recht root root angezeigt. Nicht mit root audio. Durch Hinzufügen von udev in den Runlevel sysinit wurde dies Problem gelöst.

michi-kiste /dev/snd # rc-update add udev sysinit

michi-kiste /dev/snd # ls -all
total 0
drwxr-xr-x 3 root root 260 Nov 18 13:22 .
drwxr-xr-x 16 root root 3640 Nov 18 13:38 ..
drwxr-xr-x 2 root root 80 Nov 18 13:22 by-path
crw-rw---- 1 root audio 116, 5 Nov 18 13:22 controlC0
crw-rw---- 1 root audio 116, 2 Nov 18 13:22 controlC1
crw-rw---- 1 root audio 116, 10 Nov 18 13:22 hwC0D0
crw-rw---- 1 root audio 116, 4 Nov 18 13:22 hwC1D0
crw-rw---- 1 root audio 116, 7 Nov 18 17:03 pcmC0D0c
crw-rw---- 1 root audio 116, 6 Nov 18 17:03 pcmC0D0p
crw-rw---- 1 root audio 116, 8 Nov 18 17:03 pcmC0D1p
crw-rw---- 1 root audio 116, 9 Nov 18 13:22 pcmC0D2c
crw-rw---- 1 root audio 116, 3 Nov 18 17:03 pcmC1D3p
crw-rw---- 1 root audio 116, 33 Nov 18 13:22 timer


michi@michi-kiste /dev/snd $ speaker-test

speaker-test 1.1.2

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 2048 to 8192
Period size range from 1024 to 1024
Using max buffer size 8192
Periods = 4
was set period_size = 1024
was set buffer_size = 8192
0 - Front Left
Time per period = 2.836924
0 - Front Left

Problem gelöst. Der Sound funktioniert jetzt auch als User

Sollte der Sound unter Firefox Probleme machen muss evtl. das passende Plugin installiert werden. Ausführliche Infos gibt es unter https://support.mozilla.org/de/kb/Video-oderAudiodateien-koennen-nicht-abgespielt-werden

 

Weitere Fehlermeldung aus dem Bereich:

localhost# speaker-test

speaker-test 1.1.2

Wiedergabe-Gerät ist default
Stream-Parameter sind 48000 Hz, S16_LE, 1 Kanäle
Verwende 16 Oktaven rosa Rauschen
ALSA lib /var/tmp/portage/media-libs/alsa-lib-1.1.2/work/alsa-lib-1.1.2/src/pcm/pcm_dmix.c:1041:(snd_pcm_dmix_open) unable to open slave
Fehler beim Öffnen des Gerätes: -2, Datei oder Verzeichnis nicht gefunden