Bug 25537 - completely breaks sound on kernels without CONFIG_SOUND_OSS_CORE
Summary: completely breaks sound on kernels without CONFIG_SOUND_OSS_CORE
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ossp (show other bugs)
Version: unstable
Hardware: all Linux
: P3 critical
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-30 19:58 MSK by Sergey Vlasov
Modified: 2011-05-06 23:46 MSK (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Vlasov 2011-04-30 19:58:28 MSK
На ядрах с выключенным CONFIG_SOUND_OSS_CORE (например, 2.6.38-std-def-alt3) при установленном пакете ossp не загружаются звуковые модули из-за ошибки при загрузке модуля soundcore:

  soundcore: Unknown parameter `preclaim_oss'

(далее в dmesg куча ошибок Unknown symbol по всей цепочке модулей).

Причина в том, что в /etc/modprobe.d/osspd содержится строка:

  options soundcore preclaim_oss=0

Однако параметр preclaim_oss у модуля soundcore присутствует только в том случае, если поддержка OSS в ядре включена (CONFIG_SOUND_OSS_CORE=y, сам по себе этот параметр не присутствует в меню конфигурации ядра, включается только через CONFIG_SOUND_PRIME).  В текущей конфигурации ядра std-def поддержка OSS выключена полностью, в результате параметр preclaim_oss не определяется.  С другой стороны, в Сизифе также присутствует ядро el-smp, в котором поддержка OSS включена, и CONFIG_SOUND_OSS_CORE_PRECLAIM=y - для работы на таком ядре как раз потребуется параметр preclaim_oss=0.

Для совместимости со всеми вариантами конфигурации ядер можно попробовать заменить "options soundcore preclaim_oss=0" на что-то типа

install soundcore modprobe --ignore-install -q soundcore preclaim_oss=0 || modprobe --ignore-install -q soundcore

Правда, ошибка "soundcore: Unknown parameter `preclaim_oss'" при этом всё равно будет появляться в dmesg.

Заодно стоит переименовать /etc/modprobe.d/osspd в /etc/modprobe.d/osspd.conf для совместимости с более свежими версиями module-init-tools.
Comment 1 Sergey Vlasov 2011-04-30 21:03:13 MSK
(В ответ на комментарий №0)
> install soundcore modprobe --ignore-install -q soundcore preclaim_oss=0 ||
> modprobe --ignore-install -q soundcore

Это не работает - надо явно писать /sbin/modprobe, иначе запущенные вручную тесты проходят, а вот при запуске из udevd /sbin не попадает в $PATH.

install soundcore /sbin/modprobe --ignore-install -q soundcore preclaim_oss=0 || /sbin/modprobe --ignore-install -q soundcore

> Правда, ошибка "soundcore: Unknown parameter `preclaim_oss'" при этом
> всё равно будет появляться в dmesg.

Можно починить и это - вот рабочий вариант:

install soundcore /sbin/modinfo -F parmtype soundcore | /bin/grep -q '^preclaim_oss:' && /sbin/modprobe --ignore-install soundcore preclaim_oss=0 || /sbin/modprobe --ignore-install soundcore

(modinfo -F parm тут тоже не работает).
Comment 2 Repository Robot 2011-04-30 23:16:02 MSK
ossp-1.3.2-alt4 -> sisyphus:

* Sat Apr 30 2011 Denis Smirnov <mithraen@altlinux> 1.3.2-alt4
- fix modprobe (ALT #25537) thanks to vsu@
- start from root (starting with _osspd user not work correctly now)
- update from upstream

* Fri Apr 29 2011 Denis Smirnov <mithraen@altlinux> 1.3.2-alt3
- fix initscript
Comment 3 Denis Smirnov 2011-05-06 23:46:53 MSK
Все нормально, можно закрыть багу?