PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : devfsd legt kein /dev/sound/ an (Slackware)



christophwth
02.03.04, 14:02
HI

ich komme einfach nicht drauf warum der devfsd unter slackware 9.1 keine sound devices
unter /dev anlegt.

gibt es hier jemanden der Slackware 9.1 mit devfs nutzt und alsa als soundtreiber verwendet.
ich wäre sehr dankbar wenn der betreffende den abschnitt der devfs.d conf hier posten würde

alsa ist eine version 1.0.3 aus den sourcen installiert kernel 2.4.25 aus vanilla-sources
die geladenen sound-module sind folgende :


snd-seq-midi 3584 0 (unused)
snd-seq-midi-event 3264 0 [snd-seq-midi]
snd-opl3-synth 9320 0 (unused)
snd-seq-instr 4864 0 [snd-opl3-synth]
snd-seq-midi-emul 4704 0 [snd-opl3-synth]
snd-seq 33488 0 [snd-seq-midi snd-seq-midi-event snd-opl3-synth snd-seq-instr snd-seq-midi-emul]
snd-ainstr-fm 1812 0 [snd-opl3-synth]
snd-als4000 4608 0 (unused)
gameport 1404 0 [snd-als4000]
snd-pcm 56488 0 [snd-als4000]
snd-page-alloc 6356 0 [snd-pcm]
snd-sb-common 6980 0 [snd-als4000]
snd-opl3-lib 5956 0 [snd-opl3-synth snd-als4000]
snd-hwdep 4836 0 [snd-opl3-lib]
snd-timer 13572 0 [snd-seq snd-pcm snd-opl3-lib]
snd-mpu401-uart 3200 0 [snd-als4000]
snd-rawmidi 12736 0 [snd-seq-midi snd-mpu401-uart]
snd-seq-device 3872 0 [snd-seq-midi snd-opl3-synth snd-seq snd-opl3-lib snd-rawmidi]
snd 30340 0 [snd-seq-midi snd-seq-midi-event snd-opl3-synth snd-seq-instr snd-seq snd-als4000 snd-pcm snd-sb-common snd-opl3-lib snd-hwdep snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device]
soundcore 3396 3 [snd]


wenn die devices manuell über ./snddevices erstellt werden funktioniert der
sound

hier mein problem fall


REGISTER .* MKOLDCOMPAT
UNREGISTER .* RMOLDCOMPAT


REGISTER .* MKNEWCOMPAT
UNREGISTER .* RMNEWCOMPAT

LOOKUP .* MODLOAD

REGISTER ^pty/s.* PERMISSIONS -1.tty 0620
REGISTER ^pts/.* PERMISSIONS -1.tty 0620


REGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL mksymlink $devname cdrom
UNREGISTER ^cdroms/cdrom0$ CFUNCTION GLOBAL unlink cdrom


REGISTER ^input/mouse0$ CFUNCTION GLOBAL mksymlink $devname usbmouse
UNREGISTER ^input/mouse0$ CFUNCTION GLOBAL unlink usbmouse
REGISTER ^input/mice$ CFUNCTION GLOBAL mksymlink $devname usbmouse
UNREGISTER ^input/mice$ CFUNCTION GLOBAL unlink usbmouse

und meine bisherigen versuche mit dem laden der module


LOOKUP sound MODLOAD snd-als4000
LOOKUP sound/mixer MODLOAD snd-mixer-oss
LOOKUP sound/sequencer MODLOAD snd-seq-oss
LOOKUP sound/dsp MODLOAD snd-pcm-oss
LOOKUP sound/audio MODLOAD snd-pcm-oss
LOOKUP sound/adsp MODLOAD snd-pcm-oss
LOOKUP mixer MODLOAD snd-mixer-oss
LOOKUP sequencer MODLOAD snd-seq-oss
LOOKUP dsp MODLOAD snd-pcm-oss
LOOKUP audio MODLOAD snd-pcm-oss
LOOKUP adsp MODLOAD snd-pcm-oss

LOOKUP dmfm MODLOAD snd-als4000
LOOKUP dmmidi MODLOAD snd-als4000
LOOKUP midi00 MODLOAD snd-als4000
REGISTER ^sound$ PERMISSIONS root.audio 750
REGISTER ^sound/.* PERMISSIONS root.audio 660
REGISTER ^snd$ PERMISSIONS root.audio 750
REGISTER ^snd/.* PERMISSIONS root.audio 660


kann hier jemand erkennen warum das auf gar keinen fall funktionieren kann ?

gruss
christoph

Skipper
02.03.04, 17:21
Hallo,
so funktioniert das bei mir:


LOOKUP snd MODLOAD ACTION snd
LOOKUP dsp MODLOAD
LOOKUP mixer MODLOAD
LOOKUP midi MODLOAD
LOOKUP sequencer MODLOAD
REGISTER sound/.* PERMISSIONS root.audio 660
REGISTER snd/.* PERMISSIONS root.audio 660


Das Zuordnen der Soundmodule zu den Devices wird mit alias in der Alsakonfiguration erledigt.

christophwth
02.03.04, 20:15
HI

danke, ich habe es noch mal bei mir eingetragen und es funktioniert leider auch nicht.



Das Zuordnen der Soundmodule zu den Devices wird mit alias in der Alsakonfiguration erledigt.


meinst du /etc/modules.conf ?


# --- BEGIN: Generated by ALSACONF, do not edit. ---
# --- ALSACONF verion 1.0.3 --
alias char-major-116 snd
alias snd-card-0 snd-card-als4000
alias char-major-14 soundcore
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
alias snd-card-0 snd-als4000
alias sound-slot-0 snd-als4000
# --- END: Generated by ALSACONF, do not edit. ---
#### den teil habe ich testweise hinzugefügt ######

alias /dev/sound/mixer snd-mixer-oss
alias /dev/sound/sequencer* snd-seq-oss
alias /dev/sound/dsp* snd-pcm-oss
alias /dev/sound/audio* snd-pcm-oss
alias /dev/sound/adsp* snd-pcm-oss
alias /dev/sound* snd-card-0

gruss
christoph

christophwth
02.03.04, 20:37
Hi

ich habe es noch mal debuggt : devfsd /dev -t 4 -fg


Looking for "snd" (4)
Process "snd" (0)
Process "snd" (1)
Process "snd" (0)
Process "snd" (1)
Process "snd" (4)
/lib/modutils.so load failure: /lib/modutils.so: cannot open shared object file: No such file or directory
Executing modprobe with name: "/dev/snd"
modprobe: Can't locate module /dev/snd
Process "snd" (0)
Process "snd" (0)
Process "snd" (0)
Process "snd" (1)
Process "snd" (0)
Process "snd" (1)
Process "snd" (0)
Process "snd" (1)
Process "snd" (4)
Executing modprobe with name: "/dev/snd"
modprobe: Can't locate module /dev/snd

/lib/modutils.so
was ist das ?

gruss
christoph

christophwth
03.03.04, 17:19
Hi

ich bin immer noch nicht viel weiter gekommen.
nur soviel, die meldung aus dem trace-vorgang wird wohl durch eine änderung im
modutils package ausgelöst. hier der aufruf in devfsd.c



first_time = FALSE;
if ( ( lib = dlopen ("/lib/modutils.so", RTLD_NOW) ) != NULL )
{
if ( ( modprobe = dlsym (lib, "modprobe") ) == NULL )
SYSLOG(LOG_ERR, "/lib/modutils.so doesn't contain modprobe()");
}
else if (trace_level > 1)
fprintf (stderr, "/lib/modutils.so load failure: %s\n",dlerror() );
}


und zwar wurde der teil wohl mal geändert.
siehe : http://packages.debian.org/changelogs/pool/main/d/devfsd/devfsd_1.3.25-1/changelog


devfsd (1.3.14-2) unstable; urgency=medium

* Changed the function name called in /lib/modutils.so to modprobe_main()
from modprobe(). Also added some extra debugging.


in wie weit das jetzt mit meinem problem zusammenhängt
weiss ich nicht.

ich bin jetzt so weit, dass ein teil der devices erzeugt wird. wenn ich das snd-als4000 modul lade


lr-xr-xr-x 1 root root 10 2004-03-03 18:05 dmfm -> sound/dmfm
lr-xr-xr-x 1 root root 10 2004-03-03 18:05 midi -> sound/midi
lr-xr-xr-x 1 root root 12 2004-03-03 18:05 dmmidi -> sound/dmmidi
crw-rw-rw- 1 root root 5, 2 2004-03-03 18:05 ptmx


sound/
|-- [root audio ] dmfm
|-- [root audio ] dmmidi
`-- [root audio ] midi


warum werden aber nur diese devices erzeugt
die sind weder in der modules.conf noch in devfsd.conf erwähnt. einziges vorkommen unter /etc/
ist in der datei ./init.d/alsasound
in der funktion


#
# Kill processes holding open sound devices
#
# DEVS=`find /dev/ -follow -type c -maxdepth 1 -print 2>/dev/null | xargs ls -dils | grep "1*1[46
]," | cut -d: -f2 | cut -d" " -f2; echo /proc/asound/dev/*`
fuser -k /dev/admmidi? /dev/adsp? /dev/amidi? /dev/audio* /dev/dmfm* \
/dev/dmmidi? /dev/dsp* /dev/dspW* /dev/midi0? /dev/mixer? /dev/music \
/dev/patmgr? /dev/sequencer* /dev/sndstat >/dev/null 2>&1
if [ -d /proc/asound/dev ]; then
fuser -k /proc/asound/dev/* >/dev/null 2>&1
fi
if [ -d /dev/snd ]; then
fuser -k /dev/snd/* >/dev/null 2>&1
fi
#
# remove all sequencer connections if any
#
if [ -f /proc/asound/seq/clients -a -x $aconnect ]; then
$aconnect --removeall
fi
}



was , nun.
ich bin für jede anregung dankbar.

gruss
christoph

Skipper
03.03.04, 17:43
Hallo,
heisst das Modul jetzt snd-card-als4000 oder snd-als4000? Nicht, dass ein dummer Tippfehler Probleme verursacht. Ab einer bestimmten Alsa-Version wurde das "card" im Modulnamen weggelassen.

Ansonsten weiss ich leider auch nicht weiter.

Edit: Ach ja, und ich meinte natürlich die /etc/modules.conf. Der Eintrag "alias snd-card-0" ist dort übrigend doppelt, mit unterschiedlichen Modulnamen.

christophwth
03.03.04, 20:02
Hi

danke, für den hinweis. ich dachte immer das hätte einen anderen sinn mit dem snd-card-xxx weil
das ja nur ein namensalias für ein modul ist. (ich habe es jetzt aber einheitlich gemacht mit snd-als4000 und doppelte einträge entfernt)

genau so kann ich ja auch eingeben: modprobe sound-slot-0 und bekomme dann :
FATAL: Module snd_als4000 already in kernel.

wie sieht deine /etc/modules.conf aus ?

der sound funktioniert jetzt irgendwie :ugly: ich habe aber keine ahnung wieso
siehe:

cat /dev/sndstat


Sound Driver:3.8.1a-980706 (ALSA v1.0.2c emulation code)
Kernel: Linux slacky 2.6.3 #1 Tue Mar 2 23:38:20 CET 2004 i686
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
Avance Logic ALS4000 at 0xd800, irq 10

Audio devices: NOT ENABLED IN CONFIG

Synth devices: NOT ENABLED IN CONFIG

Midi devices:
0: Avance Logic ALS4000 MPU-401

Timers:
7: system timer

Mixers: NOT ENABLED IN CONFIG
bei kde start wird auch ein fehlendes /dev/dsp angemeckert
aber unter kmix lasst sich der sound einstellen
und der artsd läuft aber funktioniert nicht

unter xmms wird sound abgespielt aber anscheinend viel zu leise. zumindest macht die selbe karte
unter sid(knoppix) bei den mixereinstellungen einen heidenlärm.

mir ist aufgefallen, dass kein mixer geladen ist! wieso bin ich so blind ??? :o
modprobe snd-mixer-oss

jetzt meldet der
/dev# devfsd /dev
Started device management daemon v1.3.25 for /dev
error calling: "symlink" in "GLOBAL"



gruss
christoph

Skipper
03.03.04, 21:27
Original geschrieben von christophwth
FATAL: Module snd_als4000 already in kernel.
Ah, Du benutzt einen 2.6 Kernel. Ist das Soundmodul fest einkompiliert? Dann braucht es natürlich nicht extra geladen werden. Die Alsa-Driver müssen nicht mehr extra installiert werden, die anderen Sachen wie Alsa-Lib usw. in einer passenden Version.

Meine /etc/modules.conf:


#-------------- Sound Blaster 4.1 Digital -----------
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-ens1371
# module options should go here
options snd-ens1371 joystick_port="1"

# Joystick
alias char-major-13 sound

# OSS/Free portion
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

# card #1
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

options snd cards_limit=1
alias /dev/mixer snd-mixer-oss
alias /dev/dsp snd-pcm-oss
alias /dev/midi snd-seq-oss


Die Ausgabe von sndstat:


Sound Driver:3.8.1a-980706 (ALSA v1.0.2c emulation code)
Kernel: Linux hal9000.local 2.4.24 #1 Sat Feb 14 10:26:55 CET 2004 i686
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
Ensoniq AudioPCI ENS1371 at 0xb800, irq 10

Audio devices:
0: ES1371 DAC2/ADC (DUPLEX)

Synth devices: NOT ENABLED IN CONFIG

Midi devices:
0: ES1371

Timers:
7: system timer

Mixers:
0: eMicro 28028


Diese Module sind geladen (wird bei Gentoo durch ein Initscript beim Booten erledigt):


snd-pcm-oss 38116 0
snd-mixer-oss 13712 0 [snd-pcm-oss]
snd-seq-midi 4064 0 (autoclean) (unused)
snd-ens1371 12576 1 (autoclean)
snd-pcm 61504 0 (autoclean) [snd-pcm-oss snd-ens1371]
snd-page-alloc 6676 0 (autoclean) [snd-pcm]
snd-rawmidi 13728 0 (autoclean) [snd-seq-midi snd-ens1371]
snd-ac97-codec 48620 0 (autoclean) [snd-ens1371]
snd-seq-oss 29216 0
snd-seq-midi-event 3328 0 [snd-seq-midi snd-seq-oss]
snd-seq 37264 2 [snd-seq-midi snd-seq-oss snd-seq-midi-event]
snd-timer 14852 0 [snd-pcm snd-seq]
snd-seq-device 4224 0 [snd-seq-midi snd-rawmidi snd-seq-oss snd-seq]
snd 33860 2 [snd-pcm-oss snd-mixer-oss snd-seq-midi snd-ens1371 snd-pcm snd-rawmidi snd-ac97-codec snd-seq-oss snd-seq-midi-event snd-seq snd-timer snd-seq-device]
analog 7904 0 (unused)
joydev 6016 0
input 3360 0 [analog joydev]
gameport 1468 0 [snd-ens1371 analog]

christophwth
04.03.04, 17:21
Hi

es läuft jetzt mit dem kernel-2.6.3 und alsa. :)
ich habe die /etc/devfsd.conf nochmal angepasst und die /modules.conf etwas bereinigt.

das problem ist, dass einstellungen in der modules.conf nicht berücksichtigt werden
so sind sachen wie
alias sound-service-0-0 snd-mixer-oss oder #alias sound-service-0-1 snd-seq-oss ohne einfluss sind .

ich musste deshalb die module
snd-pcm-oss
snd-mixer-oss
snd-seq-oss
snd-seq-midi

über /etc/rc.d/rc.local manuell laden.

das ganze funktioniert leider nur mit dem kernel 2.6.3. deshalb habe ich die versuche mit dem 2.4.25
erstmal aufgegeben.


nochmal danke für deine hilfe

gruss
christoph

bsel
04.07.04, 14:02
[...]
das problem ist, dass einstellungen in der modules.conf nicht berücksichtigt werden
so sind sachen wie
alias sound-service-0-0 snd-mixer-oss oder #alias sound-service-0-1 snd-seq-oss ohne einfluss sind .
[...]


Mit den neuen *utils, die der 2.6er benötigt, ist die modules.conf in die modprobe.conf übergegangen. Die Syntax in beiden ist identisch, soviel ich weis, daher müsste ein SymLink von modules.conf auf modprobe.conf, oder anders herum, ausreichen.