Standard OSI e DMI - Maggiore compatibilita’ bios-kernel

Image Hosted by ImageShack.us

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.

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 osi
mi risulta:
[ 0.000000] Kernel command line: root=UUID=bb9ec85a-4d92-4901-b77c-f617eef5bf14 acpi_osi=âLinuxâ ro
Temo 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

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.
  • Internal paths in double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or relative path.

Ulteriori informazioni sulle opzioni di formattazione

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
Image CAPTCHA
Scrivi ció che vedi nella immagine.