kernel 2.4.x a isapnp
Miroslav BENES
mbenes na tenez.cz
Pondělí Říjen 22 13:45:31 CEST 2001
Preji krasny den !
Posilam tento dotaz na vyvojare podpory ISA PnP v kernelu 2.4.
(Jaroslav Kysela) i do konference. Pokud najdeme reseni, mozna se
bude hodit i nekomu dalsimu.
Nynejsi stav : Mam ISA kartu, ktera podporuje PnP. Konkretne jde o
zvukovku SB64AWE, ale v principu je to jedno.
Po zavedeni modulu isa-pnp se ohlasi v /proc/isapnp takto (kraceno) :
Card 1 'CTL00c5:Creative SB AWE64 PnP' PnP version 1.0 Product version
1.0
Logical device 0 'CTL0045:Audio'
Device is active
Active port 0x220,0x330,0x388
Active IRQ 5 [0x2]
Active DMA 1,5
Resources 0
Priority preferred
Port 0x220-0x220, align 0x0, size 0x10, 16-bit address decoding
Port 0x330-0x330, align 0x0, size 0x2, 16-bit address decoding
Port 0x388-0x3f8, align 0x0, size 0x4, 16-bit address decoding
IRQ 5 High-Edge
DMA 1 8-bit byte-count compatible
DMA 5 16-bit word-count compatible
Alternate resources 0:1
... (nasleduji ruzne dalsi kombinace IO, IRQ ..)...
Logical device 1 'CTL7002:Game'
Compatible device PNPb02f
Device is not active
Resources 0
Priority preferred
Port 0x200-0x200, align 0x0, size 0x8, 16-bit address decoding
Alternate resources 0:1
Priority acceptable
Port 0x200-0x208, align 0x7, size 0x8, 16-bit address decoding
Logical device 2 'CTL0022:WaveTable'
Device is not active
Resources 0
Priority preferred
Port 0x620-0x620, align 0x0, size 0x4, 16-bit address decoding
Port 0xa20-0xa20, align 0x0, size 0x4, 16-bit address decoding
Port 0xe20-0xe20, align 0x0, size 0x4, 16-bit address decoding
Alternate resources 0:1
Priority acceptable
Port 0x620-0x680, align 0x1f, size 0x4, 16-bit address
decoding Port 0xa20-0xa80, align 0x1f, size 0x4, 16-bit
address decoding Port 0xe20-0xe80, align 0x1f, size 0x4,
16-bit address decoding
-- konec --
Jak se da zmenit konfigurace pridelenych prostredku ?
a) samotna zvukovka - docela dobre. Podle navodu v
/usr/src/linux/Documentation/isapnp.txt jsem poslal do /proc/isapnp
tyto udaje :
cat > /proc/isapnp <<EOF
card 0 CTL00c5
dev 0 CTL0045
port 0 0x220
port 1 0x330
port 2 0x388
irq 0 9
dma 0 1
dma 1 5
activate
EOF
Karta se prepnula a obsadila IRQ 9.
Dotaz : To je pekne, ale jak to zautomatizovat ? Nepocita se (aspon
do budoucna) s tim, ze by se tyto hodnoty nacitaly z nejakeho
konfiguraku (distribuce RH) ? Urcite by to slo nastavit i jinak -
napada me napr. nastaveni klauzule "pre-install sb .." v
/etc/modules.conf, ale to neni zrovna ciste reseni.
b) dalsi zarizeni - nejde menit !
Podle zmineneho navodu jsem doplnil nastavovaci skript na (pisu ho
pro poradek cely) :
cat > /proc/isapnp <<EOF
card 0 CTL00c5
dev 0 CTL0045
port 0 0x220
port 1 0x330
port 2 0x388
irq 0 9
dma 0 1
dma 1 5
activate
dev 1 CTL7002
port 0 0x208
activate
dev 2 CTL0022
port 0 0x640
port 1 0xa40
port 2 0xe40
activate
EOF
Ocekaval bych, ze se zmeni adresa portu pro joy na 0x208 (takto to
byl nastaveno drive pomoci balicku isapnp a /etc/isapnp.conf). Stejne
tak bych cekal, ze se zmeni obsazeni io portu pro wave-table
jednotku. Ale misto toho se v logu objevi :
isapnp: device 'CTL7002' order 1 not found
isapnp: device 'CTL0022' order 2 not found
Zkousel jsem nastavovat samostatne druhou, resp. treti cast, ale se
stejnym vysledkem.
Dotaz : Jak se daji nastavit parametry pro jinou nez "hlavni"
jednotku na PnP karte ? Jake je spravne "adresovani" - oznaceni
CTLxxxx ktere se objevi ve vypisu program zda se nerozumi.
Dotaz : Je nekde k nalezeni k tomuto podrobnejsi navod nez zmineny
soubor z dokumentace kernelu ?
Predem diky za odpoved.
--------------------------
Miroslav BENES
E-mail : mbenes na tenez.cz
TENEZ Chotebor, a.s
--------------------------
Další informace o konferenci Linux