Slaytanic
17-11-2005, 13:28
Finalmente questa settimana sono riuscito a mettere le mani sul mio Santech X2110.. Spero di riuscire a pubblicare in questo thread un po' di informazioni utili su come configurarlo (soprattutto sotto GNU (http://www.gnu.org/gnu/why-gnu-linux.html) /Linux). Per il momento, non avendo minimamente tempo di fare una recensione come si deve, pubblico qualche suggerimento per risolvere alcuni problemi che mi hanno fatto perdere qualche ora.
DISCLAIMER
Premetto che non mi assumo nessuna responsabilità se cercando di fare cio' che segue vi incasinate il pc o avete problemi di qualsiasi tipo (potete sempre chiedere su questo thread se c'è qualcosa che non va o che non capite). Vi dico solamente che tutto cio' che segue l'ho già sperimentato sul mio Santech X2110 con risultati positivi.
GNU/LINUX
Impostare la risoluzione massima (1680x1050) in Xorg-X11: mi sono dovuto sbattere un po'. La soluzione è stata aggiungere una linea Modeline in Xorg per descrivere i parametri del "nostro" LCD. Tale linea è stata ricavata con il tool gtf tramite la seguente chiamata:
gtf 1680 1050 60 -x che restituisce:
# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
Invece di spiegarvi come modificare il vostro /etc/X11/xorg.conf vi faccio scaricare il mio (lo trovate più in basso) :D
Configurare il touchpad e il mouse esterno USB: una volta installati i driver synaptics per il touchpad, basta modificare lo xorg.conf come indicato nel mio file di configurazione.
AGGIORNAMENTO: il Touchpad del nostro bel Santech soffre di ipersensibilità e quando si sta scrivendo ciò può dare fastidio. Il problema può essere risolto facilmente con il comando synclient TouchpadOff=x mettendo 1 o 0 al posto di x per attivare o disattivare il touchpad! Date un'occhiata all'output di synclient -l se siete interessati a modificare altri parametri del vostro touchpad. Per rendere più comoda l'operazione, io ho assegnato il "compito" di attivare e disattivare il touchpad al tasto "*" del tastierino numerico (Fn+*, intendendo l'asterisco sul tasto dell'uguale). Per fare ciò ho creato un semplicissimo script ( change_touchpad_status.sh (http://ares.science.unitn.it/~gianni.costanzi/x2110/change_touchpad_status.sh)) che va posto in una directory all'interno del path di esecuzione (es: /usr/bin) e che va reso eseguibile tramite chmod +x /usr/bin/change_touchpad_status.sh; poi ho ricavato il codice del tasto "*" del tastierino numerico avviando xev e premendo Fn+*; infine, ho inserito la linea <userdef keycode="63" command="change_touchpad_status.sh">Change Touchpad Status</userdef> nel file santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def) che viene utilizzato da hotkeys come spiegato successivamente.
Configurare i tasti per il controllo del volume: installare il pacchetto hotkeys (per gli utenti Gentoo, installarlo con la USE flag xosd attivata: USE="xosd" emerge hotkeys), creare un nuovo file .def (es: santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def)) nella directory /usr/share/hotkeys/ e avviare hotkeys con hotkeys -t santech -o on -Z. Ora se premete i tasti funzione per alzare o abbassare il volume o per togliere il suono, dovrebbe apparirvi una indicazione sul monitor (come gli OSD delle televisioni). Se non volete che vi appaia nulla quando usate tali tasti, basta rimuovere l'opzione -o. Hotkeys va avviato ad ogni avvio di Kde, quindi create uno script per avviarlo e ponetelo nella directory Autostart di Kde (nel mio caso ~/.kde3.4/Autostart). Ecco il semplice script start_hotkeys.sh:
#!/bin/sh
/usr/bin/hotkeys -t santech -o on -Z
Rendetelo avviabile con chmod +x ~/.kde3.4/Autostart/start_hotkeys.sh e il gioco è fatto :D
Far sì che Linux riconosca tutti gli 1/2 Gb di ram e non 800/900Mb: basta attivare il supporto nel kernel alla voce "Processor type and Features => High Memory Support (4Gb) => 4Gb" (ok, non avete 4 giga di ram, ma questa opzione vi serve ^_^) nel .config del vostro kernel e poi ricompilate il tutto. In fondo utilizzate il mio .config se volete :D
Attivare il supporto ALSA per il suono nel kernel: Io ho attivato il supporto Intel HD Audio e Intel/SiS/nVidia/AMD/Ali AC97 Controller in "Device Drivers => Sound => Advanced Linux Sound Architecture => PCI Devices". Comunque, basta che utilizzate il mio .config :cool:
Eliminare il messaggio "PHY reset until link up": questo messaggio viene stampato nei log del kernel quando si avvia il pc senza un cavo nell'interfaccia di rete (la quale fa casino esaminando lo stato del collegamento, il LINK). Non ho trovato ancora una soluzione "come si deve" e quindi mi sono limitato a commentare le due linee nel file /usr/src/linux/drivers/net/r8169.c (http://ares.science.unitn.it/~gianni.costanzi/x2110/r8169.c) in modo da non avere messaggi "inutili" nei log.
Correggere/migliorare la gestione dell'ACPI: io e alcuni amici miei utilizziamo Gentoo GNU/Linux e tutti abbiamo dei problemi con la gestione della batteria e dei sensori di temperatura, insomma, di tutte le cose correlate con la gestione dell'ACPI (Advanced Configuration and Power Interface). Innanzitutto, vi do qualche informazione sulla gestione dell'ACPI (trovate informazioni sul sito ACPI su SourceForge (acpi.sourceforge.net): nel BIOS c'è una porzione di codice che serve per ottenere informazioni sul sistema (gestione sensori, batteria, stati del processore, ecc) e si chiama DSDT (Differentiated System Description Table). Talvolta questa tabella contiene degli errori che possono essere corretti da future versioni del BIOS. Fortunatamente è possibile correggere la tabella DSDT e farla caricare dinamicamente da file dai kernel del ramo 2.6 senza "flashare" il BIOS (cosa che non amo fare..). La nostra DSDT contiene qualche errore, ma abbiamo anche qualche problema con un altro componente, l'Embedded Controller. Ora vi spiego come ho corretto (almeno per quanto riguarda la lettura dei sensori della temperatura, per la batteria non ho ancora provato) il problema, spiegandovi passo passo, brevemente:
# Procuratevi il compilatore della intel IASL (http://www.intel.com/technology/iapc/acpi/)
emerge iasl # Per gli utenti Gentoo
# Recuperate la tabella DSDT del vostro BIOS e salvatela in una cartella temporanea
cat /proc/acpi/dsdt > /tmp/dsdt.dat
cd /tmp
# Decompilatela con iasl (ottenendo un file dsdt.dsl)
iasl -d dsdt.dat
# Provate a vedere se contiene errori o warnings ricompilandola, sempre con iasl
iasl -tc dsdt.dsl
# Se non ottenete errori, otterrete in output il file dsdt.hex. Se ci sono errori
# (ma anche se ci sono warnings, consiglio) bisogna provvedere a correggerli.
# Potete cercare un po' in Internet o osservare il codice all'interno del file
# dsdt.dsl e cercare di correggere gli errori. Io ho trovato due errori, dovuti a
# qualche riga di commento all'inizio del file, che ho rimosso, e a due blocchi IF
# in posizione non gradita al compilatore. Ho capito che bastava rimuovere l'IF,
# poiché c'era una porzione di codice così:
# Name (_S3, Package (0x04)
# {
# 0x05,
# Zero,
# Zero,
# Zero
# })
# IF (...) {
# Name (_S4, Package (0x04)
# {
# 0x06,
# Zero,
# Zero,
# Zero
# })
# }
#
# Ho notato blocchi simili a quello con Name _S4 senza l'IF intorno e quindi ho
# provveduto a rimuoverlo. Poi ho rimosso due warning dovuti a due istruzioni in
# posizione irraggiungibile: c'erano due istruzioni Store dopo due Return all'interno
# di funzioni ed è bastato invertirle per risolvere i warning.
#
# Una volta ottenuto un file dsdt.hex senza errori, bisogna farlo caricare al kernel.
mkdir /usr/src/dsdt
cp /tmp/dsdt.hex /usr/src/dsdt/dsdt_table.h
cd /usr/src/linux
make menuconfig
# Selezionate la seguente opzione:
#
# Power Management Options
# => ACPI
# => Include Custom DSDT
#
# Inserite /usr/src/dsdt/dsdt_table.h nel campo sottostante l'opzione precedente.
# Ricompilate il kernel.
# Ora quando utilizzerete questo kernel, la vostra nuova DSDT verrà caricata al
# posto di quella del BIOS.
Oltre a correggere la mia DSDT, ho aggiunto le opzioni seguenti al kernel nel file di configurazione di GRUB:
acpi_os_name="Microsoft Windows" ec_burst=1
La prima opzione serve per far credere all'ACPI che stiamo eseguendo WinZoZ, poichè alcune funzionalità vengono abilitate solo sotto tale sistema operativo. Questa opzione potrebbe non servire nel nostro caso. L'altra opzione dovrebbe servire (se non ricordo male) per cambiare la modalità in cui l'Embedded Controller chiede le informazioni al sottosistema ACPI, passando dalla modalità "polling" a quella gestita con interrupt (non garantisco che la spiegazione sia corretta, non ricordo bene). Aggiungo tra i files anche la mia DSDT, già corretta (vi ho spiegato comunque come correggerla, poichè qualcuno di voi potrebbe avere un santech di una serie diversa dalla mia e quindi con una DSDT differente) e aggiorno il kernel config con quello che ho adesso. Spero che questa lunga spiegazione possa esservi utile, io in 4 ore di uptime non ho ricevuto nessun errore in seguito alla lettura dei sensori di temperatura (speriamo risolva anche i problemi con la lettura della capacità della batteria :D).
Attivare la modalità UDMA per il lettore/masterizzatore DVD: purtroppo ci sono alcuni problemi e non si riesce ad abilitarlo:
# hdparm -d 1 /dev/hdc
/dev/hdc:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
La velocità data da hdparm -t /dev/hdc è di 2Mb/s circa, molto bassa. Sono riuscito ad avere velocità di 4Mb/s facendo gestire al sottosistema SCSI anche il masterizzatore, oltre che il disco SATA. Comunque ci sono lo stesso alcuni problemi, che forse saranno risolti dal kernel 2.6.15 (nel quale dovrebbe anche essere migliorata la gestione delle periferiche SATA). Non ho avuto ancora modo di sperimentarlo, poichè tale versione del kernel è disponibile solo tra i vanilla-sources sotto gentoo, e non è stata ancora integrata con le gentoo-patches dei gentoo-sources. L'uscita dovrebbe essere vicina, così se otterrò miglioramenti ve lo farò sapere :D. Vi spiego come far gestire il masterizzatore dal sottosistema SCSI: rimuovete completamente il supporto alle periferiche ATA/ATAPI (Device Drivers => ATA/ATAPI/MFM/RLL support => [ ] ATA/ATAPI/MFM/RLL support), commentate la linea #undef ATA_ENABLE_PATA nel file /usr/src/linux/include/linux/libata.h e aggiungete una linea #define ATA_ENABLE_PATA (potrebbe servire, navigando in rete ho visto consigliare tale sostituzione in più thread). Poi aggiungete alle opzioni del kernel nella configurazione di GRUB le seguenti opzioni:
libata.atapi_enabled=1 hdc=noprobe
Al riavvio il lettore CD sarà riconosciuto come seconda periferica SCSI, la prima è l'hard disk SATA, e il device node relativo sarà /dev/sr0 e non /dev/hdc. I link simbolici, come /dev/cdrom, dovrebbero essere aggiornati in automatico da UDEV. Se fate test con hdparm, eseguitelo più volte, la prima volta potrebbe dare risultati molto bassi poichè il lettore non era attivo.
Collegamenti utili
Kernel config 2.6.13: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/kernel-config-no-DSDT)
Kernel config 2.6.14-r5: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/kernel-config-2-6-14-r5-DSDT). La configurazione comprende anche i moduli necessari per utilizzare il Bluetooth (tramite il pacchetto BlueZ) e per acquisire da una videocamera MiniDV tramite FireWire.
Patched DSDT: ecco la mia dsdt (http://ares.science.unitn.it/~gianni.costanzi/x2110/dsdt_table.h), corretta e funzionante sul mio Santech X2110 (se avete un pc sempre Santech ma di un'altra serie, probabilmente avrete una dsdt differente e dovrete provvedere voi stessi a correggerla, come spiegato sopra.
File di configurazione di Xorg-X11: xorg.conf (http://ares.science.unitn.it/~gianni.costanzi/x2110/xorg.conf)
Script per cambiare lo stato del touchpad (attivato/disattivato): change_touchpad_status.sh (http://ares.science.unitn.it/~gianni.costanzi/x2110/change_touchpad_status.sh)
File di configurazione dei tasti per hotkeys: santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def).
Versione modificata del driver r8196: r8169.c (http://ares.science.unitn.it/~gianni.costanzi/x2110/r8169.c)
File di configurazione [utenti Gentoo]: make.conf (http://ares.science.unitn.it/~gianni.costanzi/x2110/make.conf). Commentate la riga SYNC (la utilizzo per effettuare un emerge --sync da un altro pc nella mia rete) e la riga features="distcc" che utilizzo per la compilazione distribuita (Gentoo Distcc Documentation EN (http://www.gentoo.org/doc/en/distcc.xml)/IT (http://www.gentoo.org/doc/it/distcc.xml))
File /etc/modules.autoload.d/kernel-2.6: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/modules-autoload-kernel-2-6). Contiene la lista dei moduli che carico all'avvio del sistema operativo.
.
Windows XP
Driver NVidia: io ho utilizzato la versione "moddata" presente su www.laptopvideo2go.com degli 81.98. La trovate nel forum di tale sito e più precisamente su http://www.laptopvideo2go.com/forum/index.php?showtopic=8382. Scaricate i driver, eseguite il file relativo (è un archivio autoestraente) e sovrascrivete nella directory dove avete estratto il tutto il file nv4_disp.inf con l'INF scaricato sempre dalla stessa pagina (scegliete il Performance INF o il Quality INF, a seconda di quello che volete). Io ho editato il Performance INF e ho decommentato la seconda delle seguenti linee:
;Enable this for Centrino/Dothan based CPU based laptops
;HKR,, MapOSD4ToNV, %REG_DWORD%, 3
Controllo del Centrino: utilizzo Centrino Hardware Control, pero' ad alcuni miei amici fa un po' di casino (rallenta l'avvio di Windows XP o ad un mio amico con il Sony Vaio lo blocca proprio).
Driver del Bluetooth aggiornati (compatibili con Nokia PC Suite 6.5): li trovate qui (http://www.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=607&kind=8).
Byez!
DISCLAIMER
Premetto che non mi assumo nessuna responsabilità se cercando di fare cio' che segue vi incasinate il pc o avete problemi di qualsiasi tipo (potete sempre chiedere su questo thread se c'è qualcosa che non va o che non capite). Vi dico solamente che tutto cio' che segue l'ho già sperimentato sul mio Santech X2110 con risultati positivi.
GNU/LINUX
Impostare la risoluzione massima (1680x1050) in Xorg-X11: mi sono dovuto sbattere un po'. La soluzione è stata aggiungere una linea Modeline in Xorg per descrivere i parametri del "nostro" LCD. Tale linea è stata ricavata con il tool gtf tramite la seguente chiamata:
gtf 1680 1050 60 -x che restituisce:
# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
Modeline "1680x1050_60.00" 147.14 1680 1784 1968 2256 1050 1051 1054 1087 -HSync +Vsync
Invece di spiegarvi come modificare il vostro /etc/X11/xorg.conf vi faccio scaricare il mio (lo trovate più in basso) :D
Configurare il touchpad e il mouse esterno USB: una volta installati i driver synaptics per il touchpad, basta modificare lo xorg.conf come indicato nel mio file di configurazione.
AGGIORNAMENTO: il Touchpad del nostro bel Santech soffre di ipersensibilità e quando si sta scrivendo ciò può dare fastidio. Il problema può essere risolto facilmente con il comando synclient TouchpadOff=x mettendo 1 o 0 al posto di x per attivare o disattivare il touchpad! Date un'occhiata all'output di synclient -l se siete interessati a modificare altri parametri del vostro touchpad. Per rendere più comoda l'operazione, io ho assegnato il "compito" di attivare e disattivare il touchpad al tasto "*" del tastierino numerico (Fn+*, intendendo l'asterisco sul tasto dell'uguale). Per fare ciò ho creato un semplicissimo script ( change_touchpad_status.sh (http://ares.science.unitn.it/~gianni.costanzi/x2110/change_touchpad_status.sh)) che va posto in una directory all'interno del path di esecuzione (es: /usr/bin) e che va reso eseguibile tramite chmod +x /usr/bin/change_touchpad_status.sh; poi ho ricavato il codice del tasto "*" del tastierino numerico avviando xev e premendo Fn+*; infine, ho inserito la linea <userdef keycode="63" command="change_touchpad_status.sh">Change Touchpad Status</userdef> nel file santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def) che viene utilizzato da hotkeys come spiegato successivamente.
Configurare i tasti per il controllo del volume: installare il pacchetto hotkeys (per gli utenti Gentoo, installarlo con la USE flag xosd attivata: USE="xosd" emerge hotkeys), creare un nuovo file .def (es: santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def)) nella directory /usr/share/hotkeys/ e avviare hotkeys con hotkeys -t santech -o on -Z. Ora se premete i tasti funzione per alzare o abbassare il volume o per togliere il suono, dovrebbe apparirvi una indicazione sul monitor (come gli OSD delle televisioni). Se non volete che vi appaia nulla quando usate tali tasti, basta rimuovere l'opzione -o. Hotkeys va avviato ad ogni avvio di Kde, quindi create uno script per avviarlo e ponetelo nella directory Autostart di Kde (nel mio caso ~/.kde3.4/Autostart). Ecco il semplice script start_hotkeys.sh:
#!/bin/sh
/usr/bin/hotkeys -t santech -o on -Z
Rendetelo avviabile con chmod +x ~/.kde3.4/Autostart/start_hotkeys.sh e il gioco è fatto :D
Far sì che Linux riconosca tutti gli 1/2 Gb di ram e non 800/900Mb: basta attivare il supporto nel kernel alla voce "Processor type and Features => High Memory Support (4Gb) => 4Gb" (ok, non avete 4 giga di ram, ma questa opzione vi serve ^_^) nel .config del vostro kernel e poi ricompilate il tutto. In fondo utilizzate il mio .config se volete :D
Attivare il supporto ALSA per il suono nel kernel: Io ho attivato il supporto Intel HD Audio e Intel/SiS/nVidia/AMD/Ali AC97 Controller in "Device Drivers => Sound => Advanced Linux Sound Architecture => PCI Devices". Comunque, basta che utilizzate il mio .config :cool:
Eliminare il messaggio "PHY reset until link up": questo messaggio viene stampato nei log del kernel quando si avvia il pc senza un cavo nell'interfaccia di rete (la quale fa casino esaminando lo stato del collegamento, il LINK). Non ho trovato ancora una soluzione "come si deve" e quindi mi sono limitato a commentare le due linee nel file /usr/src/linux/drivers/net/r8169.c (http://ares.science.unitn.it/~gianni.costanzi/x2110/r8169.c) in modo da non avere messaggi "inutili" nei log.
Correggere/migliorare la gestione dell'ACPI: io e alcuni amici miei utilizziamo Gentoo GNU/Linux e tutti abbiamo dei problemi con la gestione della batteria e dei sensori di temperatura, insomma, di tutte le cose correlate con la gestione dell'ACPI (Advanced Configuration and Power Interface). Innanzitutto, vi do qualche informazione sulla gestione dell'ACPI (trovate informazioni sul sito ACPI su SourceForge (acpi.sourceforge.net): nel BIOS c'è una porzione di codice che serve per ottenere informazioni sul sistema (gestione sensori, batteria, stati del processore, ecc) e si chiama DSDT (Differentiated System Description Table). Talvolta questa tabella contiene degli errori che possono essere corretti da future versioni del BIOS. Fortunatamente è possibile correggere la tabella DSDT e farla caricare dinamicamente da file dai kernel del ramo 2.6 senza "flashare" il BIOS (cosa che non amo fare..). La nostra DSDT contiene qualche errore, ma abbiamo anche qualche problema con un altro componente, l'Embedded Controller. Ora vi spiego come ho corretto (almeno per quanto riguarda la lettura dei sensori della temperatura, per la batteria non ho ancora provato) il problema, spiegandovi passo passo, brevemente:
# Procuratevi il compilatore della intel IASL (http://www.intel.com/technology/iapc/acpi/)
emerge iasl # Per gli utenti Gentoo
# Recuperate la tabella DSDT del vostro BIOS e salvatela in una cartella temporanea
cat /proc/acpi/dsdt > /tmp/dsdt.dat
cd /tmp
# Decompilatela con iasl (ottenendo un file dsdt.dsl)
iasl -d dsdt.dat
# Provate a vedere se contiene errori o warnings ricompilandola, sempre con iasl
iasl -tc dsdt.dsl
# Se non ottenete errori, otterrete in output il file dsdt.hex. Se ci sono errori
# (ma anche se ci sono warnings, consiglio) bisogna provvedere a correggerli.
# Potete cercare un po' in Internet o osservare il codice all'interno del file
# dsdt.dsl e cercare di correggere gli errori. Io ho trovato due errori, dovuti a
# qualche riga di commento all'inizio del file, che ho rimosso, e a due blocchi IF
# in posizione non gradita al compilatore. Ho capito che bastava rimuovere l'IF,
# poiché c'era una porzione di codice così:
# Name (_S3, Package (0x04)
# {
# 0x05,
# Zero,
# Zero,
# Zero
# })
# IF (...) {
# Name (_S4, Package (0x04)
# {
# 0x06,
# Zero,
# Zero,
# Zero
# })
# }
#
# Ho notato blocchi simili a quello con Name _S4 senza l'IF intorno e quindi ho
# provveduto a rimuoverlo. Poi ho rimosso due warning dovuti a due istruzioni in
# posizione irraggiungibile: c'erano due istruzioni Store dopo due Return all'interno
# di funzioni ed è bastato invertirle per risolvere i warning.
#
# Una volta ottenuto un file dsdt.hex senza errori, bisogna farlo caricare al kernel.
mkdir /usr/src/dsdt
cp /tmp/dsdt.hex /usr/src/dsdt/dsdt_table.h
cd /usr/src/linux
make menuconfig
# Selezionate la seguente opzione:
#
# Power Management Options
# => ACPI
# => Include Custom DSDT
#
# Inserite /usr/src/dsdt/dsdt_table.h nel campo sottostante l'opzione precedente.
# Ricompilate il kernel.
# Ora quando utilizzerete questo kernel, la vostra nuova DSDT verrà caricata al
# posto di quella del BIOS.
Oltre a correggere la mia DSDT, ho aggiunto le opzioni seguenti al kernel nel file di configurazione di GRUB:
acpi_os_name="Microsoft Windows" ec_burst=1
La prima opzione serve per far credere all'ACPI che stiamo eseguendo WinZoZ, poichè alcune funzionalità vengono abilitate solo sotto tale sistema operativo. Questa opzione potrebbe non servire nel nostro caso. L'altra opzione dovrebbe servire (se non ricordo male) per cambiare la modalità in cui l'Embedded Controller chiede le informazioni al sottosistema ACPI, passando dalla modalità "polling" a quella gestita con interrupt (non garantisco che la spiegazione sia corretta, non ricordo bene). Aggiungo tra i files anche la mia DSDT, già corretta (vi ho spiegato comunque come correggerla, poichè qualcuno di voi potrebbe avere un santech di una serie diversa dalla mia e quindi con una DSDT differente) e aggiorno il kernel config con quello che ho adesso. Spero che questa lunga spiegazione possa esservi utile, io in 4 ore di uptime non ho ricevuto nessun errore in seguito alla lettura dei sensori di temperatura (speriamo risolva anche i problemi con la lettura della capacità della batteria :D).
Attivare la modalità UDMA per il lettore/masterizzatore DVD: purtroppo ci sono alcuni problemi e non si riesce ad abilitarlo:
# hdparm -d 1 /dev/hdc
/dev/hdc:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
La velocità data da hdparm -t /dev/hdc è di 2Mb/s circa, molto bassa. Sono riuscito ad avere velocità di 4Mb/s facendo gestire al sottosistema SCSI anche il masterizzatore, oltre che il disco SATA. Comunque ci sono lo stesso alcuni problemi, che forse saranno risolti dal kernel 2.6.15 (nel quale dovrebbe anche essere migliorata la gestione delle periferiche SATA). Non ho avuto ancora modo di sperimentarlo, poichè tale versione del kernel è disponibile solo tra i vanilla-sources sotto gentoo, e non è stata ancora integrata con le gentoo-patches dei gentoo-sources. L'uscita dovrebbe essere vicina, così se otterrò miglioramenti ve lo farò sapere :D. Vi spiego come far gestire il masterizzatore dal sottosistema SCSI: rimuovete completamente il supporto alle periferiche ATA/ATAPI (Device Drivers => ATA/ATAPI/MFM/RLL support => [ ] ATA/ATAPI/MFM/RLL support), commentate la linea #undef ATA_ENABLE_PATA nel file /usr/src/linux/include/linux/libata.h e aggiungete una linea #define ATA_ENABLE_PATA (potrebbe servire, navigando in rete ho visto consigliare tale sostituzione in più thread). Poi aggiungete alle opzioni del kernel nella configurazione di GRUB le seguenti opzioni:
libata.atapi_enabled=1 hdc=noprobe
Al riavvio il lettore CD sarà riconosciuto come seconda periferica SCSI, la prima è l'hard disk SATA, e il device node relativo sarà /dev/sr0 e non /dev/hdc. I link simbolici, come /dev/cdrom, dovrebbero essere aggiornati in automatico da UDEV. Se fate test con hdparm, eseguitelo più volte, la prima volta potrebbe dare risultati molto bassi poichè il lettore non era attivo.
Collegamenti utili
Kernel config 2.6.13: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/kernel-config-no-DSDT)
Kernel config 2.6.14-r5: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/kernel-config-2-6-14-r5-DSDT). La configurazione comprende anche i moduli necessari per utilizzare il Bluetooth (tramite il pacchetto BlueZ) e per acquisire da una videocamera MiniDV tramite FireWire.
Patched DSDT: ecco la mia dsdt (http://ares.science.unitn.it/~gianni.costanzi/x2110/dsdt_table.h), corretta e funzionante sul mio Santech X2110 (se avete un pc sempre Santech ma di un'altra serie, probabilmente avrete una dsdt differente e dovrete provvedere voi stessi a correggerla, come spiegato sopra.
File di configurazione di Xorg-X11: xorg.conf (http://ares.science.unitn.it/~gianni.costanzi/x2110/xorg.conf)
Script per cambiare lo stato del touchpad (attivato/disattivato): change_touchpad_status.sh (http://ares.science.unitn.it/~gianni.costanzi/x2110/change_touchpad_status.sh)
File di configurazione dei tasti per hotkeys: santech.def (http://ares.science.unitn.it/~gianni.costanzi/x2110/santech.def).
Versione modificata del driver r8196: r8169.c (http://ares.science.unitn.it/~gianni.costanzi/x2110/r8169.c)
File di configurazione [utenti Gentoo]: make.conf (http://ares.science.unitn.it/~gianni.costanzi/x2110/make.conf). Commentate la riga SYNC (la utilizzo per effettuare un emerge --sync da un altro pc nella mia rete) e la riga features="distcc" che utilizzo per la compilazione distribuita (Gentoo Distcc Documentation EN (http://www.gentoo.org/doc/en/distcc.xml)/IT (http://www.gentoo.org/doc/it/distcc.xml))
File /etc/modules.autoload.d/kernel-2.6: eccolo qui (http://ares.science.unitn.it/~gianni.costanzi/x2110/modules-autoload-kernel-2-6). Contiene la lista dei moduli che carico all'avvio del sistema operativo.
.
Windows XP
Driver NVidia: io ho utilizzato la versione "moddata" presente su www.laptopvideo2go.com degli 81.98. La trovate nel forum di tale sito e più precisamente su http://www.laptopvideo2go.com/forum/index.php?showtopic=8382. Scaricate i driver, eseguite il file relativo (è un archivio autoestraente) e sovrascrivete nella directory dove avete estratto il tutto il file nv4_disp.inf con l'INF scaricato sempre dalla stessa pagina (scegliete il Performance INF o il Quality INF, a seconda di quello che volete). Io ho editato il Performance INF e ho decommentato la seconda delle seguenti linee:
;Enable this for Centrino/Dothan based CPU based laptops
;HKR,, MapOSD4ToNV, %REG_DWORD%, 3
Controllo del Centrino: utilizzo Centrino Hardware Control, pero' ad alcuni miei amici fa un po' di casino (rallenta l'avvio di Windows XP o ad un mio amico con il Sony Vaio lo blocca proprio).
Driver del Bluetooth aggiornati (compatibili con Nokia PC Suite 6.5): li trovate qui (http://www.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=607&kind=8).
Byez!