Bug 3044

Summary: sound-scripts are very rigid for now
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: sound-scriptsAssignee: Michael Shigorin <mike>
Status: CLOSED WONTFIX QA Contact: qa-sisyphus
Severity: enhancement    
Priority: P4 CC: ldv, shrek, sr
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 8212    

Description Michael Shigorin 2003-09-25 17:05:04 MSD
Date: Thu, 25 Sep 2003 12:52:40 +0300 (EEST)
From: Serge Ryabchun <sr osdn org ua>
To: Sisyphus altlinux ru
Subject: /etc/rc.d/init.d/sound, aumix, alsa, oss

Не совсем понятна наша политика со звуком:
Если есть ALSA, грузим ALSA, иначе грузим OSS. IMHO, очень жесткая
завязка. У меня 3 источника звука - es1371, на ней висят колонки, в
зависимости от задачи грузятся alsa или oss; via8235, воткнут в
телевизор вместе с tvout, грузится alsa; и tvtuner, но этим за
последний год я не пользовался, хотя он таки есть. Те меня совершенно
не устраивает имеющийся стартовый скрипт, пришлось заменить своим:

cat /adm/sound >>>>>>>>>>>>---

#!/bin/bash

function rm_sound_modules() {

    [ -f /etc/sysconfig/sound-0.alsa -o -f /etc/sysconfig/sound-0.oss ] &&
modprobe -r sound-slot-0
    [ -f /etc/sysconfig/sound-1.alsa -o -f /etc/sysconfig/sound-1.oss ] &&
modprobe -r sound-slot-1
    [ -f /etc/sysconfig/sound-2.alsa -o -f /etc/sysconfig/sound-2.oss ] &&
modprobe -r sound-slot-2
}

function probe_sound_modules() {

     [ -f /etc/sysconfig/sound-0.alsa -o -f /etc/sysconfig/sound-0.oss ] &&
modprobe sound-slot-0
     [ -f /etc/sysconfig/sound-1.alsa -o -f /etc/sysconfig/sound-1.oss ] &&
modprobe sound-slot-1
     [ -f /etc/sysconfig/sound-2.alsa -o -f /etc/sysconfig/sound-2.oss ] &&
modprobe sound-slot-2
}

case "$1" in
    start|restart|reload)
        rm_sound_modules
        probe_sound_modules
        ;;
    stop)
    	rm_sound_modules
        ;;
    set)
    	case "$2" in
            0|1|2)
            	case "$3" in
                    alsa|oss)
                        rm_sound_modules
                    	rm -f /etc/sysconfig/sound-$2.* 2> /dev/null
                        touch /etc/sysconfig/sound-$2.$3
                        probe_sound_modules
                    	;;
                esac
            	;;
            *)
            	;;
        esac
    	;;
    *)
    	;;
esac
exit 0


<<<<<<<<<<<<---

в quake3 зовется "sudo /adm/sound set 0 oss", а в winex "sudo /adm/sound set 0 alsa"

В modules.conf прописано:

alias char-major-116 snd
post-install sound-slot-0       /usr/bin/aumix -d /dev/mixer  -f /etc/.aumixrc 
-L >/dev/null 2>&1 || :
pre-remove sound-slot-0         /usr/bin/aumix -d /dev/mixer  -f /etc/.aumixrc 
-S >/dev/null 2>&1 || :
post-install sound-slot-1       /usr/bin/aumix -d /dev/mixer1 -f /etc/.aumixrc1
-L >/dev/null 2>&1 || :
pre-remove sound-slot-1         /usr/bin/aumix -d /dev/mixer1 -f /etc/.aumixrc1
-S >/dev/null 2>&1 || :

if     -f /etc/sysconfig/sound-0.oss
    alias sound-slot-0 es1371
    alias sound-service-0-0 es1371
elseif -f /etc/sysconfig/sound-0.alsa
    alias snd-card-0 snd-ens1371
    	below snd-card-0 snd-pcm-oss
    alias sound-slot-0 snd-card-0
    alias sound-service-0-0 snd-mixer-oss
    alias sound-service-0-1 snd-seq-oss
    alias sound-service-0-3 snd-pcm-oss
    alias sound-service-0-8 snd-seq-oss
    alias sound-service-0-12 snd-pcm-oss
endif
                                                                               
                                   
if     -f /etc/sysconfig/sound-1.oss
    alias sound-slot-1 via82cxxx_audio
    alias sound-service-1-0 via82cxxx_audio
elseif -f /etc/sysconfig/sound-1.alsa
    alias snd-card-1 snd-via82xx
    	below snd-card-1 snd-pcm-oss
    alias sound-slot-1 snd-card-1
    alias sound-service-1-0 snd-mixer-oss
    alias sound-service-1-1 snd-seq-oss
    alias sound-service-1-3 snd-pcm-oss
    alias sound-service-1-8 snd-seq-oss
    alias sound-service-1-12 snd-pcm-oss
endif
Comment 1 Michael Shigorin 2003-09-25 17:07:03 MSD
From: Serge Ryabchun <sr osdn org ua>
---

Btw, у меня есть initsripts.bin:

$ ./rc.service
Usage:
        rc.service --rc.sysinit [--log]
        rc.service --rc {0|1|2|3|4|5|6}
        rc.service {--clock|--random|--numlock|--setfont|--setsysfont} [parameter]
        rc.service {--network|--netfs} [parameter]
        rc.service {--ifup|--ifdown} <device>
        rc.service {--idetune}

специально делался для маломощных тачек, критичных к времени загрузки,
их есть у меня, полностью совместим с Альтовым initscripts по /etc/sysconfig/*,
собирается с dietlibc, не использует malloc()/*printf(), ip вместо ifconfig,
минимум форков, кое-какие скрипты форкаются в background, но это пока не
кофигурится, то, что после -- может быть именем типа clock, S??clock,
K??clock эквивалентно "rc.service --clock". Кое-что из этого пока в отключенном
состоянии.
Comment 2 Dmitry V. Levin 2004-01-11 19:21:25 MSK
changed maintainer 
Comment 3 Michael Shigorin 2004-08-14 00:52:04 MSD
Не совсем сюда, но по поводу двух+ звукокарт:
http://www.dzhi.sp.ru/drivers/four_sndcard.html
Comment 4 Michael Shigorin 2006-02-17 15:22:11 MSK
требуется пересмотр по текущим обстоятельствам
Comment 5 Michael Shigorin 2006-12-29 23:18:54 MSK
re
Comment 6 Michael Shigorin 2006-12-29 23:19:46 MSK
Боюсь, в рамках sound-scripts это не будет исправлено никогда.

2 sr: мож как-нить подумаем, что с этой бодягой теперь делать? ;-)