Bug 37757 - Снова ошибка - alsactl: sysfs_init:48: sysfs path '/sys' is invalid
Summary: Снова ошибка - alsactl: sysfs_init:48: sysfs path '/sys' is invalid
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: alsa-utils (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Michael Shigorin
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-01-10 18:23 MSK by Vyacheslav Dikonov
Modified: 2020-01-13 18:57 MSK (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vyacheslav Dikonov 2020-01-10 18:23:44 MSK
Похоже, что опять вылезает ошибка 32065 или похожая на нее.

Есть 2 аудиоустройства встроенный звук intel и HDMI out через видеокарту:

$ lspci
00:1b.0 Audio device: Intel Corporation 9 Series Chipset Family HD Audio Controller
01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Turks HDMI Audio [Radeon HD 6500/6600 / 6700M Series]
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Turks XT [Radeon HD 6670/7670]

Опция модуля radeon audio=1 установлена в параметрах загрузки ядра.

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 2: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 3: HDMI [HDA ATI HDMI], device 3: HDMI 0 [HDMI 0]
  Subdevices: 0/1
  Subdevice #0: subdevice #0


ЗВУК ЕСТЬ, но:

1) Видим ошибку
$ sudo alsactl init
alsactl: sysfs_init:48: sysfs path '/sys' is invalid

Found hardware: "HDA-Intel" "Realtek ALC892" "HDA:10ec0892,1043860b,00100302" "0x1043" "0x860b"
Hardware is initialized using a generic method

2) 
$aplay -L ничего не показывает!
При воспроизведении многоканального PCM (по HDMI) перепутана раскладка каналов. Для исправления нужно виртуальное устройство ALSA, где модуль ttable переназначает каналы да раскидывает центр на передние колонки (у меня нет центральной). В /etc/asound.conf есть соответствующая запись 

pcm.hdmiremapvc {
    type route
    hint.show on
    hint.description "HDMI Remap Channels L+vC-R+vC-SL-SR-x-LF"
    slave.pcm "plughw:0,8"

    ttable.0.0= 1
    ttable.1.1= 1
    ttable.2.0= 0.5
    ttable.2.1= 0.5
    ttable.3.5= 1
    ttable.4.2= 1
    ttable.5.3= 1
}


(Она работает на другой машине с видеокартой nvidia). Однако ни одна программа не видит это устройство, а alplay -L выводит пустоту. 

3) 
alsamixer не запускается, зато работает alsamixer-qt4


4) Во время написания этой жалобы в chromium под apulse запустил alsactl init (конфигурация не менялась) и неожиданно получил другой набор аппаратных аудиоустройств:

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Это точно ерунда.


Вся эта проблема возникла после обновлений Сизифа (сейчас версия сегодняшняя).
Comment 1 Vyacheslav Dikonov 2020-01-10 18:34:50 MSK
Я видел https://bugzilla.altlinux.org/show_bug.cgi?id=32065, но те исправления были давно и в моей системе должны быть.

alsa-utils-1.1.0-alt1.1
sysfsutils-2.1.0-alt8
udev-alsa-0.3-alt3.x86_64

$ systemctl status alsa-restore.service
● alsa-restore.service - Save/Restore Sound Card State
     Loaded: loaded (/lib/systemd/system/alsa-restore.service; enabled; vendor >
     Active: active (exited) since Fri 2020-01-10 17:53:19 MSK; 37min ago
    Process: 1434 ExecStart=/usr/sbin/alsactl restore (code=exited, status=0/SU>
   Main PID: 1434 (code=exited, status=0/SUCCESS)
        CPU: 3ms

$ systemctl status alsa-state.service
● alsa-state.service - Manage Sound Card State (restore and store)
     Loaded: loaded (/lib/systemd/system/alsa-state.service; static; vendor pre>
     Active: active (running) since Fri 2020-01-10 17:53:19 MSK; 37min ago
   Main PID: 1435 (alsactl)
      Tasks: 1 (limit: 18874)
     Memory: 588.0K
        CPU: 4ms
     CGroup: /system.slice/alsa-state.service
             └─1435 /usr/sbin/alsactl -s -n 19 -c rdaemon

(я блокировал проверку наличия /etc/alsa/state-daemon.conf. Это ничего не меняет)
Comment 2 Ivan A. Melnikov 2020-01-13 14:35:54 MSK
alsactl проверяет доступ к /sys по файлу /sys/kernel/uevent_helper, которого в последних ядрах уже нет, так как CONFIG_UEVENT_HELPER deprecated. Так что теперь alsactl не стоит так делать.

Debian, например, просто выкинул несколько строчек:

https://sources.debian.org/patches/alsa-utils/1.1.9-1/do-not-check-for-sys-kernel-uevent_helper.patch/

Апстрим, предсказуемо, поступил аккуратнее и переехал на другой файлик:

https://github.com/alsa-project/alsa-utils/commit/3c740d90490abe64c86c667934ba5d990817b873

Релиза с этим изменением, как я понимаю, пока не было.
Comment 3 Vyacheslav Dikonov 2020-01-13 18:31:25 MSK
Спасибо за объяснение!
А почему может быть всегда пустой вывод aplay -L?

Мне важно иметь виртуальные устройства alsa, но что-то мешает их видеть. Это связано с /sys?
Comment 4 Michael Shigorin 2020-01-13 18:38:20 MSK
Иван, спасибо за расследование!
Comment 5 Repository Robot 2020-01-13 18:57:05 MSK
alsa-utils-1:1.2.1-alt3 -> sisyphus:

 Mon Jan 13 2020 Michael Shigorin <mike@altlinux> 1:1.2.1-alt3
 - cherry-picked upstream commit 3c740d90490abe64c86c667934ba5d990817b873
   (closes: #37757)