Newsgroup: it.comp.os.linux.sys
Titolo: Compilazione APIC nel kernel e emulazione SCSI cdrom.

Salve.
Ieri ho cambiato scheda madre passando da una ASUS P2B-F ad una ASUS A7V133. 
Con mia sorpresa ho notato che i lettori Cdrom (EIDE; uno un ASUS 52x e l'altro
masterizzatore Plextor 24/10/40A), che prima mi funzionavano in
emulazione scsi e quindi li avevo collegati ai dev /dev/scd0 e scd1, ora
sono invece collegati a hdc e hdd. Di conseguneza cdrecord non ne vuole
sapere di funzionare.
Ora, cercavo di capire perchè fosse successo una simile cosa. L'unica
cosa che ho fatto al kernel è quello di aver aggiunto il APIC (che non
so a cosa server e ne se mi migliora le prestazioni o meno) ma in base
alla doc letta ciò non dovrebbe creare problemi.
C'è però da dire che, dalla lettura di dmesg sembrerebbe che
l'emulazione scsi parte ma non rileva i cd. Forse perchè il kernel
assegna loro i dev eide prima che parta l'emulazione scsi?
C'è anceh da dire che ho aggiunto una scheda raid 3Ware eide che anche
lei viene vista dall'emulaizone scsi. Difatti lei funziona bene visto
che il sistema mi parte proprio da questa scheda e relativi dischi
collegati.
A questo punto non mi rimane che allegarvi parte del mio dmesg sperando
che mi possiate aiutare.
####################################################################
#### INIZIO OUTPUT KERNEL   #######################################
####################################################################
Linux version 2.4.19athlon (ro...@gaia.home) (gcc version
2.95.4 20011002 (Debian prerelease)) #1 sab mag 3 09:00:11 CEST 2003
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f400 (usable)
 BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000001ffec000 (usable)
 BIOS-e820: 000000001ffec000 - 000000001ffef000 (ACPI data)
 BIOS-e820: 000000001ffef000 - 000000001ffff000 (reserved)
 BIOS-e820: 000000001ffff000 - 0000000020000000 (ACPI NVS)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
511MB LOWMEM available.
Advanced speculative caching feature not present
On node 0 totalpages: 131052
zone(0): 4096 pages.
zone(1): 126956 pages.
zone(2): 0 pages.
rnel command line: auto BOOT_IMAGE=Linux_Athlon ro root=802
Local APIC disabled by BIOS -- reenabling.
Found and enabled local APIC!
Initializing CPU#0
Detected 1343.102 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 2680.42 BogoMIPS
Memory: 514404k/524208k available (1724k kernel code, 9416k reserved,
603k data, 120k init, 0k highmem)
Dentry cache hash table entries: 65536 (order: 7, 524288 bytes)
Inode cache hash table entries: 32768 (order: 6, 262144 bytes)
Mount-cache hash table entries: 8192 (order: 4, 65536 bytes)
Buffer-cache hash table entries: 32768 (order: 5, 131072 bytes)
Page-cache hash table entries: 131072 (order: 7, 524288 bytes)
CPU: Before vendor init, caps: 0183fbff c1c7fbff 00000000, vendor = 2
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 256K (64 bytes/line)
CPU: After vendor init, caps: 0183fbff c1c7fbff 00000000 00000000
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU:     After generic, caps: 0183fbff c1c7fbff 00000000 00000000
CPU:             Common caps: 0183fbff c1c7fbff 00000000 00000000
CPU: AMD Athlon(tm) Processor stepping 02
Enabling fast FPU save and restore... done.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Using local APIC timer interrupts.
calibrating APIC timer ...
..... CPU clock speed is 1343.0887 MHz.
..... host bus clock speed is 268.6176 MHz.
cpu: 0, clocks: 2686176, slice: 1343088
CPU0<T0:2686176,T1:1343088,D:0,S:1343088,C:2686176>
mtrr: v1.40 (20010327) Richard Gooch (
rgo...@atnf.csiro.au
)
mtrr: detected mtrr type: Intel
PCI: PCI BIOS revision 2.10 entry at 0xf1180, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
Unknown bridge resource 0: assuming transparent
PCI: Using IRQ router VIA [1106/0686] at 00:04.0
PCI: Found IRQ 5 for device 00:09.0
PCI: Sharing IRQ 5 with 00:04.2
PCI: Sharing IRQ 5 with 00:04.3
Applying VIA southbridge workaround.
PCI: Disabling Via external APIC routing
isapnp: Scanning for PnP cards...
isapnp: No Plug & Play device found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
apm: BIOS version 1.2 Flags 0x03 (Driver version 1.16)
Starting kswapd
Journalled Block Device driver loaded
Installing knfsd (copyright (C) 1996 
ok...@monad.swb.de
).
matroxfb: Matrox Millennium G200 (AGP) detected
matroxfb: MTRR's turned on
matroxfb: 640x480x8bpp (virtual: 640x13100)
matroxfb: framebuffer at 0xDF000000, mapped to 0xe0805000, size 8388608
Console: switching to colour frame buffer device 80x30
fb0: MATROX VGA frame buffer device
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ
SERIAL_PCI ISAPNP enabled
spurious 8259A interrupt: IRQ7.
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: IDE controller on PCI bus 00 dev 21
VP_IDE: chipset revision 6
VP_IDE: not 100% native mode: will probe irqs later
ide: Assuming 33MHz system bus speed for PIO modes; override with
idebus=xx
VP_IDE: VIA vt82c686b (rev 40) IDE UDMA100 controller on pci00:04.1
    ide1: BM-DMA at 0xd808-0xd80f, BIOS settings: hdc:DMA, hdd:DMA
PDC20265: IDE controller on PCI bus 00 dev 88
PCI: Found IRQ 10 for device 00:11.0
PCI: Sharing IRQ 10 with 00:0b.0
PDC20265: chipset revision 2
PDC20265: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x7800-0x7807, BIOS settings: hda:pio, hdb:DMA
    ide2: BM-DMA at 0x7808-0x780f, BIOS settings: hde:pio, hdf:pio
hdc: ASUS CD-S520/A, ATAPI CD/DVD-ROM drive
hdd: PLEXTOR CD-R PX-W2410A, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hdc: ATAPI 52X CD-ROM drive, 128kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.12
hdd: ATAPI 40X CD-ROM CD-R/RW drive, 4096kB Cache, UDMA(33)
floppy0: no floppy controllers found
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
8139too Fast Ethernet driver 0.9.25
PCI: Enabling device 00:0a.0 (0004 -> 0007)
PCI: Assigned IRQ 9 for device 00:0a.0
eth0: RealTek RTL8139 Fast Ethernet at 0xe1806000, 00:a0:a2:00:b8:9e,
IRQ 9
eth0:  Identified 8139 chip type 'RTL-8139C'
Linux agpgart interface v0.99 (c) Jeff Hartmann
agpgart: Maximum main memory to use for agp memory: 439M
agpgart: Detected Via Apollo Pro KT133 chipset
agpgart: AGP aperture is 128M @ 0xe0000000
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
3ware Storage Controller device driver for Linux v1.02.00.025.
PCI: Found IRQ 10 for device 00:0b.0
PCI: Sharing IRQ 10 with 00:11.0
scsi1 : Found a 3ware Storage Controller at 0x9400, IRQ: 10, P-chip: 1.3
scsi1 : 3ware Storage Controller
  Vendor: 3ware     Model: 3w-xxxx           Rev: 1.0 
  Type:   Direct-Access                      ANSI SCSI revision: 00
Attached scsi disk sda at scsi1, channel 0, id 0, lun 0
SCSI device sda: 160084480 512-byte hdwr sectors (81963 MB)
Partition check:
 sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 >
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 4096 buckets, 32Kbytes
TCP: Hash tables configured (established 32768 bind 32768)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 120k freed
Adding Swap: 489940k swap-space (priority -1)
....
.....
###############################################################
Tutto ciò che segue in dmesg (non riportato sopra) è relativo alla rete
e a usb quindi ho ritenuto non importante.
Pensate che possa dipendere dal fatto di non aver compilato l'ACPI nel
kernel? Una volta sul portatile APIC e ACPI mi andavano in conflitto e
quindi riomossi APIC. Dovrei fare lo stesso? Non credo visto che di
portatile non si tratta.
Pensate che sia un probelma di irq nel senso che tutto cade sui pochi
disponibili. Ad esempio ritengo che il controler RAID dovrebbe avere un
irq tutto suo considerando la mole di dati che deve gestire.
Visto che non uso le porte seriali pensate che disabilitando nel bios
una di queste riesca a rendere un irq in più disponibile al sistema?
Saluti

 Saluti
ciao e se hai bisogno d'aiuto son qui

 con un semplice ln -s /dev/hdc /dev/scd0 e hdd a scd1
Ahhh, quindi quando si ha u controller RAID viene annulato il
rilevamento dello scsi generic? E allora qui che si spiega il tutto. Ma
io non sapevo che cdrecord andava semplicemente alla ricerca dei device
scd0 o scd1 (sr0 sr1). Quindi mi basta levare gli scd0 e scd1 e creare
dei link simbolici da hdc(hdd) a scd0(scd1)???
Grazie e saluti

modifica lilo.conf e aggiungi alla riga append :
hdc=ide-scsi hdd=ide-scsi
fine.
ciao.

irq tutto suo considerando la mole di dati che deve gestire.
no, sei sotto apic quindi non ti preoccupare della gestione irq.
--
    (iao!!oai)                                    (ICQ: 10860566)
    //.aurizio
[WARNING!: togliete _nessuno_ per rispondere]
    Il segreto per essere considerato un creativo sta nel non fare
    mai riconoscere le proprie fonti [A. Einstein]

 
Grazie mille. Era proprio la soluzione che cercavo. Tutto č filato lisco
come l'olio e cdrecord rivede il masterizzatore. Mi chiedevo
semplicemente perchč ciň č successo. E' stato il controller scsi a far
si che il kernel non passasse piů i cdrom all'emulazione scsi?
Ciao

 riesce a "mostrare" correttamente questa cosa.
Ritieni che disabilitare "Plug & Play OS installed" sotto BIOS sia
saggio e possa servir a qualcosa? Ho notato che durante il boot l'APIC
dice "APIC diabled by BIOS", "renabiling APIC" ...
QUesto è dovuto al fatto che il bios cerca di assegnare gli irq e quindi
APIC prende in mano la situazione??
Ma se APIC e ACPI servono entrambi a gestire gli irq (conosco ACPI anche
come gestore avanzato dell'energia ..) non entrono in conflitto fra di
loro? VA bene attivarli entrambi in kernel?
Ricordo di averlo fatto con il portatile e puntualmente si piantava
all'avvio. Giacchè mi serviva la gestione dell'energia, optai per ACPI
diabilitando APIC. Non so se è stato solo un caso o c'è una spiegazione
logica, ma dubito che nel mondo dell'informatica le cose avvengono "per
caso" ...... :-)
Saluti

 (conosco ACPI anche come gestore avanzato dell'energia ..)
infatti "č" il gestore del powersaving e basta...non c'entra assolutamente
nulla con gli irq

 nulla con gli irq
Non e` proprio esatto.
ACPI definisce, in qualche modo, anche come
il sistema operativo debba gestire gli irq.
bye,
-- 
piergiorgio

 si che il kernel non passasse piů i cdrom all'emulazione scsi?
uhmmm mi pare strano ... magari qualche aggiornamento del kernel che ti ha
modificato lilo.
ciao.

 il sistema operativo debba gestire gli irq.
be' sul mio portatile nuovo definisce che tutto il mondo sta' sull' irq 11
;-)

 bye,
ACPI is an open standard describing how computer components work together 
to manage system hardware. Unlike previous standards, ACPI activities are 
initiated at the operating system rather than firmware level. This enables
more sophisticated and flexible approaches towards power management. For
example, on a platform implementing ACPI, the OS can direct a cpu to turn
itself off to conserve energy, and quickly return to a working state when needed.
The ACPI specification was released in 1996, the latest version is 2.0b
and available at 
http://www.acpi.info/
. The latest version includes
extensions for platforms with 64 and 36 bit addressing. Sections 2,3,8 and
9 are recommended for the first-time reader.
While ACPI can be used for more than power management, this has been the
focus of the ACPI4Linux team to date. Also note that ACPI defines
interfaces for both hardware and software, so most power management
activities, such as the system sleep states, require ACPI support from the
BIOS, motherboard, and operating system kernel.
non mi pare si parli di irq e cosi è su tutte le documentazioni
riguardanti l'acpi :)

 riguardanti l'acpi :)
dal mio dmesg:
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: PCI Interrupt Link [LNKA] (IRQs 9 10 *11)
ACPI: PCI Interrupt Link [LNKB] (IRQs 5 7, enabled at IRQ 11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 9 10 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 5 7 9 10 *11)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11 12 14 15, disabled)
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11 12 14 15)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIE._PRT]
sul mio portatile li gestisce lui , tra l' altro mette tutto su irq 11 ....
ciao.

 ciao.
bonnesoire

 irq all'avvio
Nelle specifiche dell'ACPI sta anche scritto
come il SO deve gestire gli irq.
In particolare ACPI porta la "grande" innovazione
(per i PC) della condivisione degli irq.
Che poi questo sia una conseguenza del power
management, puo` essere, sta di fatto che ACPI
mette il naso anche in quel contesto.
bye,
-- 
piergiorgio

  
no grazie , non leggo documenti microsoft .
ciao.

 hdd a scd1
Ecco, questo non e` da  fare. Le interfaccie sono completamente diverse.
I device IDE non supportano gli ioctl SCSI e viceversa.
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Se non puoi convincerli, confondili.

In quanto al discorso ACPI<-->IRQ sono certo del loro legame. Ho
frequantato per diverso tempo la ML del kernel relativa all'ACPI e ti
assicuro che ACPI gestisce anche gli IRQ. Quella documentazione che hai
esposto, evidentemente non è completa.....
Bye.



ahemm, ti faccio notare la differenza fra "apic" ed "acpi" - non sono
anagrammi e non a caso ho specificato "apic" nella mia risposta...
l'apic (advanced processor irq controller) e' un gestore avanzato di
irq, nato per gestire il multiprocessing su sistemi X86 si e' evoluto
in un sistema capace di superare il limite dei 15 irq sotto x86.
l'acpi e' un protocollo formale per gestire le funzioni avanzate di
una mb, quali i pulsanti "speciali" (ad esempio puo' registrare la
pressione del pulsante di alimentazione ed avviare il soft-off oppure
andare in sospensione), eventuali sensori sulla mb (lm-sensors dipende
dall'acpi), la gestione energetica e l'apic (nelle mb single, nelle mb
smp la cosa e' gestita a livello piu' basso visto che l'apic fa anche
da "arbitro" fra le cpu quindi deve avere piu' liberta' d'azione,
comunque il dialogo fra apic e s.o. passa comunque dall'acpi di
norma).
l'apic nei sistemi recenti viene gestito tramite acpi, ma le due cose
non sono necessariamente collegate.
