Standard OSI e DMI - Maggiore compatibilita’ bios-kernel

Ho scovato di recente una di quelle opzioni da passare al boot (o da rendere permanenti in /boot/grub/menu.lst) che potrebbe apportare dei benefici in termini di compatibilita' bios-kernel, e sistemare cosi' alcune lacune lasciate dal diverso comportamento dei driver e dei firmware quando viene caricato un sistema operativo, in questo caso, diverso da Windows.
acpi_osi="Linux"
Con questo parametro, in poche parole, viene "parsato" un file (OSI string) alla ricerca di informazioni sul nostro laptop, mettendo in condizioni il bios di eseguire un "triggering" piu' accurato e di modificare il proprio comportamento sulla base di queste specifiche. In realta' non si tratta di un meccanismo "pulito", ma alcuni produttori (Lenovo in primis) rimangono saldamente ancorati a questa linea di pensiero per l'abilitazione di alcune funzioni come il suspend, il backlight restore, la mappatura dei tasti speciali etc..
Per controllare la predisposizione alla DMI-Table e' sufficiente recuperare i messaggi che il kernel scrive nei log:
dmesg | grep osi
dyve@n200:~$ dmesg | grep osi [0.000000] Kernel command line: root=/dev/sda1 acpi_osi="Linux" ro quiet splash dyve@n200:~$
dmesg | grep DMI
dyve@n200:~$ dmesg | grep DMI [20.973698] ACPI: DMI System Vendor: LENOVO [20.973699] ACPI: DMI Product Name: 0769BFG [20.973701] ACPI: DMI Product Version: 3000 N200 [20.973703] ACPI: DMI Board Name: IEL10 [20.973705] ACPI: DMI BIOS Vendor: LENOVO [20.973706] ACPI: DMI BIOS Date: 10/17/2007 [20.973708] ACPI: Please send DMI info above to linux-acpi@vger.kernel.org dyve@n200:~$
Vale la pena di provare ad inserire acpi_osi=Linux nella command-line del nostro kernel via /boot/grub/menu.lst. Nel caso in cui non si dovessero notare dei significativi cambiamenti possiamo sempre cancellarla e tentare altre strade.
kdesudo kate /boot/grub/menu.lst
Aggiungiamo il parametro come nell'esempio e salviamo il file:
title Ubuntu hardy (hardening), kernel 2.6.24.4-dharma root (hd0,0) kernel /boot/vmlinuz-2.6.24.4-dharma root=/dev/sda1 acpi_osi="Linux" ro quiet splash initrd /boot/initrd.img-2.6.24.4-dharma quiet
In aggiunta a quanto detto fin qui, segnalo un tool che e' in grado di leggere nella memoria RAM ogni tipo di informazione che il BIOS imprime sin dal primo avvio (biosdecode). Dal momento che queste informazioni non sono in formato leggibile da un essere umano, utilizzeremo dmidecode per il dumping del contenuto della DMI-table. Dmidecode e' gia' incluso nelle core-utility della nostra distribuzione (Ubuntu) percio' non dobbiamo fare altro che aprire un terminale e seguire questi esempi:
- Dmidecode -
- Dispositivi IPMI:
sudo dmidecode --type 38
# dmidecode 2.9 SMBIOS 2.4 present.
- Informazioni su slots PCI / PCIe:
sudo dmidecode --type 9
Handle 0x0009, DMI type 9, 13 bytes System Slot Information Designation: PCI Slot J8B1 Type: 32-bit PCI Current Usage: Unknown Length: Long ID: 0 Characteristics: 5.0 V is provided 3.3 V is provided
- Informazioni sul BIOS:
sudo dmidecode --type 0
- Informazioni sul power-supply:
sudo dmidecode --type 39
________________________
Le opzioni sono tante. Ecco una tabella riassuntiva:
dmidecode --type {KEYWORD / Number } KEYWORD:
- bios, system, baseboard, chassis, processor, memory, cache, connector, slot
Number:
| # numero | Breve descrizione |
| 0 | BIOS |
| 1 | System |
| 2 | Base Board |
| 3 | Chassis |
| 4 | Processor |
| 5 | Memory Controller |
| 6 | Memory Module |
| 7 | Cache |
| 8 | Port Connector |
| 9 | System Slots |
| 10 | On Board Devices |
| 11 | OEM Strings |
| 12 | System Configuration Options |
| 13 | BIOS Language |
| 14 | Group Associations |
| 15 | System Event Log |
| 16 | Physical Memory Array |
| 17 | Memory Device |
| 18 | 32-bit Memory Error |
| 19 | Memory Array Mapped Address |
| 20 | Memory Device Mapped Address |
| 21 | Built-in Pointing Device |
| 22 | Portable Battery |
| 23 | System Reset |
| 24 | Hardware Security |
| 25 | System Power Controls |
| 26 | Voltage Probe |
| 27 | Cooling Device |
| 28 | Temperature Probe |
| 29 | Electrical Current Probe |
| 30 | Out-of-band Remote Access |
| 31 | Boot Integrity Services |
| 32 | System Boot |
| 33 | 64-bit Memory Error |
| 34 | Management Device |
| 35 | Management Device Component |
| 36 | Management Device Threshold Data |
| 37 | Memory Channel |
| 38 | IPMI Device |
| 39 | Power Supply |
Alcune di queste fonti sono state prese da:
AGGIUNTA: Un ottimo tool grafico che lista gran parte di queste informazioni si chiama Info-sistema, gia' recensito sul Blog e realizzato da Davide Garatti.
- Blog di divilinux
- 1480 letture
Versione stampabile


















Commenti
ciao Divi, a me compare un
ciao Divi, a me compare un log cosi:
robiw72@robiw72-laptop:~$ dmesg | grep DMI
[ 0.000000] DMI present.
robiw72@robiw72-laptop:~$ kdesudo kate /boot/grub/menu.lst
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,4)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=3cfa61af-23bc-463b-9546-48ff4157424e ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic
quiet
sono dubbioso se applicare le modifiche consigliate, da questi pochi dati puoi darmi un consiglio?
e gia' che ci sono ti segnalo questo:
http://wiki.ubuntu-it.org/AmministrazioneSistema/VelocizzareBoot
magari lo conosci gia' ma nel dubbio...
ciao
Robi
@robiw72 ciao, Si lo
@robiw72
ciao,
Si lo conosco..ma non c'entra con l'articolo. Non si tratta di velocizzare il boot ma una cosa totalmente diversa
Se hai per caso dei tasti multimediali che non funzionano, se il suspend si riprende senza abilitare le porte usb..e tutte queste piccole magagne..aggiungere acpi_osi="Linux" potrebbe risolverle. Naturalmente non c'e' nessuna controindicazione..al massimo non funziona..ma scenari del tipo non si avvia piu' il kernel o non funziona piu' nulla...non sono realizzabili
;)
ok grazie, in effetti le
ok grazie, in effetti le porte usb non leggono piu' chiavi e dischi dopo la sospensione o al riavvio e devo rimontarle in manuale.
ciao
ciao allora veramente
ciao allora veramente interessante questa cosa
ho dato i due dmsg
ma al primo non ottengo nulla
mentre al secondo ho questo output
max@max-portatile:~$ dmesg | grep DMI[ 0.000000] DMI present.
[ 0.000000] ACPI: DMI detected: Toshiba
[ 24.233780] ACPI: BIOS _OSI(Linux) query ignored via DMI
ot
spero di averci preso ad inserire i tags :)
@maxfact col primo grep non
@maxfact
col primo grep non compare nulla nell'output perche' prima va inserito il parametro nella riga di boot..comunque, vale il discorso che ho fatto per robiw72..acpi_osi="Linux" puo' servire oppure no..bisogna solamente provare.
Nel mio caso, dove tutto funziona alla perfezione, e' inutile aggiungerlo..anzi se lo aggiungo la sospensione non funziona bene. Se ti manca qualche tasto multimediale..non partono gli acpi_sleep (ibernazione..sospensione) o hai qualòche problema in generale con l'acpi ..forse e' il caso di provare (prima di mettersi a ricostruire la tabella DSDT ad esempio..)
ciao a tutti io ho questo
ciao a tutti
io ho questo problema:
enrico@kernel:~$ dmesg | grep osi
[ 91.432000] hda-intel: Invalid position buffer, using LPIB read method instead.
questo il mio menu.lst
title Ubuntu 7.10, kernel 2.6.22-14-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.22-14-generic root=UUID=d5cf15d8-b6b5-451a-a54b-0a9f1f13550e acpi_osi="Linux" ro quiet splash
initrd /boot/initrd.img-2.6.22-14-generic
quiet
in effetti a me servirebbe, perchè alcuni tasti multimediali non vengono riconosciuti
Il mio computer è un Asus F5R
grazie
a proposito,Divi, mi sa che
a proposito,Divi, mi sa che devi aggiornare il sito con l'ora legale perchè il messaggio l'ho inviato alle 16:03
@rayunix Ciao Dunque non
@rayunix
Ciao
Dunque non saprei esattamente cosa possa essere quell'errore del dmesg, ma sicuramente niente a che fare con l'acpi o questo articolo
Hai per caso piu' di una scheda audio?..
I tasti multimediali vengono in parte mappati dal modulo asus_acpi ora asus_laptop..quindi controlla la presenza di questo driver aggiuntivo..e poi magari spiega quali sono esattamente i tasti che non funzionano (e modello di notebook)
ps. l'ora e' un metodo (funzione) all'interno del comment.php. Probabilmente non utilizza alcuna formattazione standard..solo che se mi metto a modificare una cosa del genere probabilmente saremo gia' arrivati di nuovo all'ora solare
:)
Ciao Divi, volevo provare la
Ciao Divi, volevo provare la tua soluzione sul mio (il "suspend" non ha mai funzionato..), solo che quando ho installato la beta di Hardy "K" Grub non ne ha voluto sapere di installarsi, Lilo si è caricato al primo colpo, il prob è che non so dove infilare l'opzione in /etc/lilo.conf, da cosa credo di aver capito dovrei modificare questa sezione:
# Kernel command line options that apply to all installed images go
# here. See: The `boot-prompt-HOWTO' and `kernel-parameters.txt' in
# the Linux kernel `Documentation' directory.
#
# append=""
in questa maniera:
# Kernel command line options that apply to all installed images go
# here. See: The `boot-prompt-HOWTO' and `kernel-parameters.txt' in
# the Linux kernel `Documentation' directory.
#
append=acpi_osi=”Linux”
comunque il secondo comando ora mi dice:
yves@Hardy:~$ dmesg | grep DMI
[ 0.000000] DMI present.
niente a che vedere con l'output di Maxfact
Grazie per tutto.
@yves si va inserito cosi'
@yves
si va inserito cosi' oppure lo passi come parametro direttamente dal menu di Lilo.
Apparentemente sul mio non
Apparentemente sul mio non lo carica:
yves@Hardy:~$ dmesg | grep DMI
[ 0.000000] DMI present.
yves@Hardy:~$ dmesg | grep osi
yves@Hardy:~$
insisto o desisto :D
@yves Se non funziona
@yves
Se non funziona significa che il bios non supporta l'opzione acpi_osi="Linux".
Non sembra pero' che questo parametro funzioni con Lilo..perche' nel dmesg non si vede, comunque puo' essere relativo..
Ok, desisto, più avanti
Ok, desisto, più avanti proverò ad installare Grub, vedo se ho più fortuna.
Ciao e grazie per la tua disponibilita.
Ciao divi! :) Domanda
Ciao divi! :)
Domanda stupida: ho inserito l'opzione "acpi_osi=âLinuxâ" in /boot/grub/menu.lst, ma quando dò il comando:
dmesg | grep osimi risulta:
[ 0.000000] Kernel command line: root=UUID=bb9ec85a-4d92-4901-b77c-f617eef5bf14 acpi_osi=âLinuxâ roTemo ci sia qualche problema di matching dei caratteri...come fare? I doppi apici li visualizzo correttamente, dovrebbe essere il solo kernel ad interpretarli male...e così dubito che riesca ad interpretarli correttamente abilitando (sempre se mi è possibile) l'opzione...
Domanda extra...avrai notato che mi piace leggere i messaggi del kernel al boot...sai dirmi come poterli vedere ad una risoluzione più bassa rispetto allo standard *ubuntu? Alla gentoo/suse style per intenderci :)
Grazie e ciao! :)
@Daniele Ciao.. acpi_osi=”
@Daniele
Ciao..
acpi_osi=”Linux”
Probabilmente è il copia/incolla da Wordpress che cambia la formattazione del testo..anzi meno male che non ha influito sul boot normale del sistema..hehe
La risoluzione, purtroppo, è standard perche' durante il boot sono attivi i driver generici vesa (1024x768)
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
Invia nuovo commento