Автор Тема: моля за насоки  (Прочетена 2811 пъти)

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« -: Aug 11, 2004, 09:34 »
искам да помоля да ме насочите какво да търся...

искам да науча повече за device-s в линукс, за proc..
примерно като се прави 'nod' в /dev/ как се разбира кой е minor и кой major номера? (хайде кога да е block и кога character или fifo да речем че съм разбрал (или поне са 2-3 възможности, ще се разбере'<img'>.
man mknod ми каза че като правя 'nod' с '-c' трябва да му дам и minor и major номер.
имам смътното усещане че тез работи зависят от posix / unifix (за unifix може и да бъркам)
доколкото разбрах при debian въпросните номера били по-различни (оттук и съмнениято че posix има нещо общо с това)

конкретния повод да се заинтересувам от тез неща (аз и от преди ми беше чудно и любопитно, но нещо с времето не се разбираме напоследък...) е опит за подкарване на alsa sound под archlinux (archlinux, защото има компилирани за i686 нещица, а на мойта машинка се компилират бавно и то доста бавно...)..

от http://www.alsa-project.org четох инструкции писах конфигурационни файлове'<img'>, после открих alsaconf '<img'>
alsaconf се мъчи да открие 'заместител' (явно според дистрибуцията) на rcalsactl (по-дълго беше името, но не го помня в моменте, btw ако някой се присети за начин на четене на resierfs под win2k? vmware и копиране на fat дял е работеща алтернатива), но доколкото разбрах то служи само за първоначална настройка на миксера, така че не е фатално за момента.
alsaconf правилно си описва модулите в modrpobe.conf (ядрото е 2.6.7), при зареждане на модула за мойта звукова карта си зарежда всички необходими му модули (aka soundcore, snd etc...)

в alsa-project.org имаше 'hint' да се променят permission-ите на /dev/dsp /dev/mixer etc..., за да може да се ползват и от друг освен от root-а, аз реших първо да подкарам нещата като root и после да донастройвам...
обаче се оказа впоследствие че въобще ги нямам тези 'nod'-ове...

проверих дали кернела открива звуковата карта, открива я (гледах на няколко места, dmesg, 'cat'-вах devices и си я имаше)

p.s. с удоволствие бих тръгнал да търся от нулата (така ще науча повече неща), но ще ми отнеме много повече време (имам скорошен опит с psmouse.prot...) затова искам да помоля за насоки при търсенето
Активен

mironcho

  • Напреднали
  • *****
  • Публикации: 495
    • Профил
моля за насоки
« Отговор #1 -: Aug 11, 2004, 10:06 »
Здравей,
В archlinux все още се използва devfs (има планове след време да се премине на udev). Погледни това в wiki -то на arch:

http://wiki.archlinux.org/index.php/Alsa%20setup

Ако не стане по този начин, може и по по "дървен" - да си направиш устройствата ръчно и после в devfsd.conf да укажеш че искаш да се запазва състоянието във файл и да се възстановява при рестартиране. За устройствата:

/bin/mknod -m 666 /dev/dsp c 14 3
/bin/mknod -m 666 /dev/mixer c 14 0

в /etc/devfsd.conf :

RESTORE         /dev-state
REGISTER ^sound/.* PERMISSIONS root.users 660
REGISTER ^snd/.*  PERMISSIONS root.users 660

и после презареди devfs:

killall -HUP devfsd

Това е само информация за "набързо" справяне. Има доста документация в нета за dev системите, така че потърси (нямам директни линкове подръка).

Успех
Активен

iko

  • Напреднали
  • *****
  • Публикации: 27
    • Профил
    • WWW
моля за насоки
« Отговор #2 -: Aug 11, 2004, 10:09 »
Не мога да ти помогна за /dev/ номерата, но за четене на reiserfs под win може да използваш Total Commander (ghisler.com). Има plug-in с който може да четеш ext2 и reiserfs. Аз съм го пробвал и работи, само че е само read-only.

HTH
Активен

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #3 -: Aug 11, 2004, 10:12 »
10x
тъкмо се бях зачел и мислех да пиша update:)

наистина съм с devfs , и звуковите неща трябва да ми бъдат в /dev/sound ...

благодаря за линка и инфото , сега знам как ще си уплътня обедната почивка'<img'>
Активен

souldead

  • Напреднали
  • *****
  • Публикации: 46
    • Профил
моля за насоки
« Отговор #4 -: Aug 11, 2004, 10:47 »
има и по-лесен начин за подкарване на alsa-та, в директорията на пакета има скрипт snddevices, слагасх си го да се изпълнява в началото на rc.alsa, или както се казва скрипта в твоята дисрибуция и всичко е ок
Активен

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #5 -: Aug 11, 2004, 10:59 »
Цитат (iko @ Авг. 11 2004,11:09)
Не мога да ти помогна за /dev/ номерата, но за четене на reiserfs под win може да използваш Total Commander (ghisler.com). Има plug-in с който може да четеш ext2 и reiserfs. Аз съм го пробвал и работи, само че е само read-only.

HTH

10x, верно бачка'<img'>
пишеше че е read-only поради security причини'<img'>
ми разбирам ги, с него си чета всичко, дори и да е само собственост на root, представям си какво щеше да е ако можеше и да пише'<img'>
Активен

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #6 -: Aug 11, 2004, 11:05 »
Цитат (souldead @ Авг. 11 2004,11:47)
има и по-лесен начин за подкарване на alsa-та, в директорията на пакета има скрипт snddevices, слагасх си го да се изпълнява в началото на rc.alsa, или както се казва скрипта в твоята дисрибуция и всичко е ок

10x,
Цитат
NB. If you are using drivers before 0.9.4 then you need to run
    ./snddevices

If you use devfs then you should not run the snddevices script


това е от alsa-project.org ...
а и не го намерих скрипта...
Активен

mironcho

  • Напреднали
  • *****
  • Публикации: 495
    • Профил
моля за насоки
« Отговор #7 -: Aug 11, 2004, 11:23 »
Проблема с devfs е че ако не се запазва и при стартиране възстановява (това с RESTORE дето ти го писах по горе) състоянието на /dev, то се губят устройствата създадени с mknod.
По рано пропуснах да кажа, че ако имаш source -а на ядрото, можеш да погледнеш файла Documentation/devices.txt . В него са описани номерата които да се ползват за различните устройства при създаването им с mknod.

btw,
Arch си има готови пакет за alsa* - с тях не е ли OK. Иначе аз си ги build -вам при нова версия с ABS.
Активен

  • Гост
моля за насоки
« Отговор #8 -: Aug 11, 2004, 22:24 »
ама явно няма да го бъде...:(

картата е neomagic 256 av (накуп с видеото е)

за kernel 2.4.x трябваше да се инсталира малко триково (чрез ad1848, opl3 i mpu401 ) и бачкаше...
ама сега и така неще'<img'>

няма ac97, като му дам modprobe snd-nm256 си признава че няма ac97 и ми казва опцията за force (btw, как се копира текст от xterm? ),
Активен

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #9 -: Aug 13, 2004, 13:14 »
готово'<img'>
и с алса-та 2.6 kernel пак става триково (демек с други модули...)

лошото е че пак не разбрах как и защо не ставаше и как и защо стана'<img'>

значи nm2200 е адуиото няма опции за портове и сие...
и упорито fail-va с грешка -6 при modprobe...

работи със:
Цитат
# ALSA portion
alias char-major-116 snd
alias snd-card-0 snd-cs4232
# module options should go here
options snd-cs4232 port=0x534 cport=0x538 mpu_port=-1 fm_port=0x388 irq=5 dma1=1 dma2=0 isapnp=0

# 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


тествано със xmms (predi това с aplay -l и за първи път показа device:), a pyk преди това и modprobe i dmesg ne се оплакваха от нищо...) и алса-та работи, oss-неще (щото няма /dev/dsp, ще пробвам със snddevice от алса-пакета, той прави и повече неща от /dev/dsp '<img'> )

това че осс-то не работи, не ме притеснява (надявам се да подкарам mplayer-a alsa-ta:) )

странно ми е че в биос-а са нагласени:
sb -> 0x220
wss -> 0x530
adlib -> 0x388 (това явно е ms_port-а)
irq -> 5 (хайде то съвпада'<img'> както и dma-тата)

т.е. хич не ми е ясно защо работи с нагласени портове 0x534 (каот главен) и 0x538 (като контролен), нито пък ми е ясно откъде са рабрали какви да бъдат alias-ите.... а пък предполагам точно в портовете и alias-ите е разковничето, защото на alsaconf-a mu казвах да търси cs4232 i go намираше, ама не го конфигурираше както трябва....
Активен

Филип Бонев

  • Напреднали
  • *****
  • Публикации: 517
  • Distribution: Debian
  • Window Manager: KDE
    • Профил
моля за насоки
« Отговор #10 -: Aug 13, 2004, 13:54 »
Здравей,

Номерцата на всички devices в и дали да бъдат c,b  и другото в  момента не си го спомням може да видиш в сорса на кърнела в Documentation/devices.txt има описани всичките устройства с техните мажорни,минорни номера и типове.
Активен

Поздрави,
Филип Бонев

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #11 -: Aug 13, 2004, 14:32 »
10x
(10x на mironcho, too:) )
http://www.kernel.org/pub/linux/docs/device-list/devices.txt

Цитат
116 char   Advanced Linux Sound Driver (ALSA)


и
Цитат
14 char   Open Sound System (OSS)
        0 = /dev/mixer   Mixer control
        1 = /dev/sequencer   Audio sequencer
        2 = /dev/midi00   First MIDI port
        3 = /dev/dsp      Digital audio


значи ако искам да си направя /dev/dsp
трябва да направя така:
mknod /dev/dsp c 14 3

явно още доста трябва да чета'<img'> след като тези неща са фиксирани, не може ли приложенията да си се обръщат директно към char major 14 minor 3, вместо към /dev/dsp (или може би правилния върпос е защо не е по-добре) ?

п.с. хайде разбрах защо не е добра идея да се направят всички възможни'<img'> (това докато четох за devfs)
Активен

july

  • Напреднали
  • *****
  • Публикации: 324
    • Профил
моля за насоки
« Отговор #12 -: Aug 16, 2004, 10:27 »
решено'<img'>
работи и алса и осс и като root и като user от групата sound
само че /dev/dsp /dev/mixer и /dev/sequencer
ги правя ръчно (сложих ги в rc.sysinit, след демона devfsd)

преди да ги забода ръчна, се пробвах да кажа на devfsd да си ги прави, обаче имах завиден неуспех'<img'>
слагах REGISTER, порбвах и RESTORE (в man страницата пишеше че ще ми направи като device файловете, които са symbolic връзки, или които имат sticky bit, ама не стана, слагах и COPY, в интерес на истината, ми направи връзки примерно ls -al /dev/dsp даваше като резулат:
..... dev/dsp -> dev/dsp

като директория от която да прави RESTORE му бях казал
~/dev_rest
ls -al ~/dev_rest

dsp -> /dev/dsp
)...

след промените по devfsd.conf, давах: killall -SIGHUP devfsd
обаче ефект нямаше..
предварително бях правил някои от нодовете, без да им оправям permission-ите, за да видя дали демона ще ги оправи, обаче дори и при съществуващ нод, не искаше да му промени permission-ите, съгласно REGISTER dsp PERMISSION root.sound 660
Активен