debian

Toshiba M30-154 & Debian


Ultimo Aggiornamento: 11-07-07

Questa sezione spiega come ho configurato il mio laptop con Debian Gnu/Linux. Spero che questa mini guida possa essere di aiuto a qualcuno.

Sommario

  1. Specifiche Tecniche Toshiba M30-154
  2. Compatibilità con linux (kernel 2.6.x)
  3. Configurazione del Kernel
  4. Far variare la frequenza della cpu
  5. Il Driver Nvidia
  6. Configurazione del server X
  7. Framebuffer
  8. Scheda Wireless
  9. Risolvere il conflitto della tastiera con il touchpad
  10. Migliorare le funzionalità del touchpad mediante il driver Synaptics
  11. Utilizzare i tasti multimediali e funzione
  12. Undervolt della Cpu (A proprio rischio e pericolo)
  1. Specifiche Tecniche Toshiba M30-154 :

    # CPU: Intel Pentium M 1400 MHz - Banias (600-1400Mhz)
    # Frequenza bus : 400 MHz
    # Cache di secondo livello : 1 MB
    # Chipset Intel 855PM 
    # Audio: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller
    # Scheda Grafica:  nVidia Corporation NV34M [GeForce FX Go 5200] 32/64 Mb Ram
    # Scheda di Rete: Intel Corp. 82801BD PRO/100 VE (MOB) Ethernet Controller
    # Scheda di Rete Wireless: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter
    # Modem: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Modem Controller
    # FireWire (IEEE 1394): Texas Instruments TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link)
    # Controller USB: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller
    # Memoria di Sistema: 512 MB DDR RAM espandibilità : 2,048 MB
    # Hard disk: 40 GB certificazione S.M.A.R.T. 
    # BIOS Phoenix 
    
  2. Compatibilità con linux (kernel 2.6.x):

    Intel Centrino Mobile Technology Ok
    Ram 512 MB DDR Ok
    Hdd 40Gb Toshiba Ok
    DVD-R/-RW Toshiba Ok
    Schermo 15,4 Wide Screen TFT 1280x800 Ok (necessita qualche modifica del file xf86config-4/xorg.conf)
    NVIDIA GeForce FX Go5200 Ok
    ACPI Ok (Non funziona il Suspend to Ram per problemi con il driver Nvidia)
    USB 2.0 Ok
    Intel 10/100 MBit ethernet card Ok
    Wireless LAN 802.11 Ok
    Audio Ac97 Ok
    Synaptics touch pad Ok
    PCMCIA Ok
    Slot per memorie SD Non Funziona (Utilizza un controller proprietario Toshiba, difficile che sarà supportato)
    V.92 Modem Non Testato (dovrebbe funzionare)
    Porta Firewire (IEEE 1394) Non Testata (dovrebbe funzionare)
    Porta Parallela Non Testata (dovrebbe funzionare)
    Tastiera Ok (C'è un bug che crea un conflitto con il touchpad synaptics ma è risolvibile)
  3. Configurazione del Kernel

    Questa è la mia configurazione del kernel aggiornata alla versione 2.6.19.1 dove puoi controllare le impostazioni per le varie periferiche: config2619.1

  4. Utility per la variazione automatica della frequenza del processore

    Se vogliamo che il nostro centrino non vada sempre a pieno regime ma cambi dinamicamente la velocità a seconda delle esigenze basta installare powernowd.
    Naturalmente è importante che il kernel sia compilato con le giuste voci abilitate (guarda la mia configurazione del kernel come riferimento).

    Da root eseguiamo il comando:

    apt-get install powernowd

  5. Il driver Nvidia

    Il driver si può scaricare dal sito ufficiale: driver Nvidia. L'installazione non dovrebbe creare problemi, se ne dovessi avere controlla le Faq ed il forum sul sito Nvidia.

  6. Configurazione del server X

    Dopo aver installato i driver, prima di tutto ti consiglio di fare una copia del file di configurazione /etc/X11/xorg.conf (o XF86Config-4 se usate xfree al posto di xorg) e poi edita il file.

    E' necessario commentare alcune righe, se presenti, nella Section "Module" ed assicurasi invece che sia presente Load "glx":

    Section "Module"
     		 Load           "bitmap"
    		 Load           "dbe"
       	  	 Load           "ddc"
    	  #	 Load	    	"dri" 
    	  #	 Load	        "GLCore"
       	   	 Load           "extmod"
       		 Load           "freetype"
       		 Load           "glx"  
      		 Load           "int10"
      		 Load           "record"
       		 Load           "type1"
       		 Load           "v4l"
      		 Load           "vbe"
    EndSection
    
    e scrivere nvidia come driver in Section "Device" come nell'esempio sotto:
    Section "Device"
    	Identifier	"GeForceFxGo5200"
    	Driver		"nvidia"
    	Option "DPMS"
    	VideoRam	65536
    EndSection
    

    X se non configurato adeguatamente non andrà mai alla risoluzione di 1280x800. La soluzione sta nelle seguenti righe da aggiungere/modificare in xorg.conf o XF86Config-4.

    Modifica l'interno della Section "Monitor" con:
    	
    	
    	ModeLine "1280x800" 80.58 1280 1344 1480 1680 800 801 804 827
     	
    (vedi il mio file xorg.conf per maggiori dettagli)
    
    Modifica l'interno della Section "Screen" aggiungendo la risoluzione "1280x800": Section "Screen" SubSection "Display" Depth 8 Modes "1280x800" "1024x768" EndSubSection SubSection "Display" Depth 15 Modes "1280x800" "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1280x800" "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1280x800" "1024x768" EndSubSection EndSubSection
    Ora X è pronto per partire con la nuova risoluzione e l'accelerazione video.
  7. Framebuffer

    Per utilizzare il framebuffer alla risoluzione di 1280x800x16bit basta modificare il solito file di configurazione di Grub o Lilo.

    Grub: modificare la riga dell'immagine del kernel con il comando vga=0x360 come nell'esempio.

    Lilo: modificare la riga vga=... con vga=0x360 come nell'esempio.

  8. Scheda Wireless


    1. Prima di tutto bisogna verificare che siano abilitate nel kernel le voci che interessano la scheda wireless, se non lo sono bisogna attivarle e ricompilare il kernel:

      
      Device Drivers ->
                      Networking support ->
                              Network device support ->
                                      Wireless LAN (non-hamradio) ->
                                              Wireless LAN drivers (non-hamradio) & WE
      Device Drivers ->
                      Generic Driver Options ->
                              Hotplug firmware loading support
                              
      Cryptographic options ->
                      ARC4 cipher algorithm
                      
      Library routines ->
                      CRC32 functions
                      
      Cryptographic options ->
                      Michael MIC keyed digest algorithm
                      AES cipher algorithms (i586)
      
      
    2. Attenzione! Nel caso vuoi compilare i drivers compresi direttamente nel kernel attiva anche queste voci
      (se vuoi compilarli a parte passa alla sezione c)

      
      Networking ->
                      Networking support (NET [=y]) ->
                              Generic IEEE 802.11 Networking Stack
                              
      Device Drivers ->
                      Network device support ->
                              Network device support (NETDEVICES [=y]) ->
                                      Wireless LAN (non-hamradio) ->
                                              Intel PRO/Wireless 2100...
      
      

      Ora ricompila il kernel e passa alla sezione d

    3. Compilazione dei drivers a parte: Compila ed installa l'IEEE80211 subsystem seguendo le istruzioni contenute nel file INSTALL http://ieee80211.sourceforge.net/.
      I driver per la scheda li trovi a questo indirizzo http://ipw2100.sourceforge.net/#downloads vanno compilati ed installati anche questi (segui le info nei file inclusi nella cartella).

    4. Ora non resta altro da fare che copiare nella giusta cartella i file del firmware che trovi qui http://ipw2100.sourceforge.net/firmware.php.
      Una volta estratti copiali nella cartella /usr/share/hotplug/firmware/.

      Il modulo della scheda wireless si chiama ipw2100 e lo puoi caricare con modprobe ipw2100.

  9. Risolvere il conflitto della tastiera con il touchpad

    Se la tastiera del vostro toshiba fa i capricci quando digitate qualcosa è venuto il momento di rimettere le cose a posto. La soluzione sta in un modulo che si chiama psmouse. Se psmouse è stato compilato nel kernel tutto quello che bisogna fare per ovviare al problema è passare come parametro al kernel la seguente linea:

    psmouse.rate=40

    Se usi Grub come bootloader devi modificare il file /boot/grub/menu.lst. Puoi vedere come esempio la mia configurazione di Grub.

    Se usi Lilo al posto di Grub devi modificare il file /etc/lilo.conf e aggiungere il comando append = "psmouse.rate=40" all'interno del file nella riga dopo l'immagine del kernel Esempio lilo.conf (Ricordati di lanciare lilo dopo aver salvato il file).

    Se invece hai caricato psmouse come modulo inserisci in /etc/modules:

    modprobe psmouse rate=40

  10. Migliorare le funzionalità del touchpad mediante il driver Synaptics

    Dopo aver scaricato ed installato il driver synaptics aggiungiamo alcune righe nel file di configurazione xorg.conf/Xf86Config-4.

    Aggiungiamo una riga nella section "Modules":

     
    Section "Module"
        Load           "bitmap"
        Load           "dbe"
        Load           "ddc"
    #   Load		     	"dri"
    #   Load	       "GLCore"
        Load           "extmod"
        Load           "freetype"
        Load           "glx"
        Load           "int10"
        Load           "record"
        Load           "type1"
        Load           "v4l"
        Load           "vbe"
        Load           "synaptics"
    EndSection
    

    Poi modifichiamo la sezione "input Device" relativa al touchpad con le seguenti righe:

    
    Section "InputDevice"
        Identifier     "Touchpad"
        Driver         "synaptics"
        Option         "CorePointer"
        Option         "Device" "/dev/psaux"
        Option         "Protocol" "auto-dev"
        Option         "LeftEdge" "1900"
        Option         "RightEdge" "5400"
        Option         "TopEdge" "1900"
        Option         "BottomEdge" "4000"
        Option         "FingerLow" "25"
        Option         "FingerHigh" "30"
        Option         "MaxTapTime" "180"
        Option         "MaxTapMove" "220"
        Option         "VertScrollDelta" "100"
        Option         "MinSpeed" "0.02"
        Option         "MaxSpeed" "0.18"
        Option         "AccelFactor" "0.0010"
        Option         "SHMConfig" "on"
    EndSection
    
    

    Per maggiori dettagli fare riferimento al mio file di configurazione xorg.conf.

    Ora invece modifichiamo le impostazioni relative al mouse usb come nell'esempio riportato sotto:

    Section "InputDevice"
        Identifier     "Generic Mouse"
        Driver         "mouse"
        Option         "SendCoreEvents" "true"
        Option         "Device" "/dev/input/mice"
        Option         "Protocol" "ImPS/2"
        Option         "Emulate3Buttons" "false"
        Option         "ZAxisMapping" "4 5"
    EndSection
    

    Ed infine modifichiamo la section "Server Layout". E' importante aggiungere "AlwaysCore" all'InputDevice relativo al nostro mouse usb:

    Section "ServerLayout"
        Identifier     "Layout[all]"
        Screen      0  "Screen-DFP" 0 0
        InputDevice    "Generic Keyboard"
        InputDevice    "Touchpad" "CorePointer"
       InputDevice    "Generic Mouse" "AlwaysCore"
    EndSection
    
  11. Utilizzare i tasti multimediali e funzione

    C'è un'ottimo tool fatta proprio per questo e si chiama fnfx. Si potranno personalizzare i tasti multimediali per lanciare le applicazioni volute, aumentare/diminuire la luminosità dello schermo, accendere/spegnere la ventola del processore ed altro. L'installazione da Debian è molto semplice, basta dare da terminale il classico apt-get install ed installare i pacchetti:

    fnfxd e fnfx-client

    ed il gioco è fatto. Ora si devono solo configurare i vari tasti come si preferisce attraverso il file di configurazione .fnfxrc presente nelle directory utente e root (naturalmente sono configurazioni separate). Come esempio metto a disposizione il mio file di configurazione: fnfx-esempio

    Dopo aver configurato il tutto basta lanciare fnfx-client ed il programma sarà attivo.

  12. Undervolt della Cpu

    ATTENZIONE - ATTENTION

    A proprio rischio e pericolo, non mi assumo alcuna responsabilità per ogni problema/danneggiamento che dovesse venire a crearsi.

    At your own risk, i take no responsibility for any problems or damage.

    Linux Processor Hardware Control à una patch per il kernel Linux che rende disponibile un'interfaccia in userspace per controllare il voltaggio del core del processore.



    Quali sono i vantaggi:
    • Una maggiore durata delle batterie, dato che ad un voltaggio minore la cpu richiede meno energia per funzionare.

    • Un minor surriscaldamento della cpu, visto che con l'undervolt si abbassa la temperatura del processore a parità di clock (e questo significa anche minor rumore dato che la ventola di raffreddamento verrà attivata meno frequentemente).

    Gli svantaggi:
    • L'undervolt può portare ad una instabilità di sistema e può farlo bloccare

    • Nei casi peggiori può danneggiare irrimediabilmente l'hardware!!!

    Iniziamo con lo scaricare l'ultima versione di Linux PHC

    Ora estraiamo l'immagine ed andiamo nella directory con le patch per le varie versioni del kernel. Naturalmente nell'esempio le varie x.y.z sono da sostituire con la versione del kernel che vi interessa.

    tar xzvf linux-phc-x.y.z.tar.gz

    cd linux-phc-x.y.z/kernel-patch

    Copiamo la patch che corrisponde alla nostra versione del kernel in /usr/src/linux

    cp linux-phc-x.y.z-kernel-vanilla-2.6.x.patch /usr/src/linux

    poi ci spostiamo nella directory /usr/src/linux ed effettuiamo la patch del kernel

    patch -p1 < linux-phc-x.y.z-kernel-vanilla-2.6.x.patch

    Ora andiamo nella configurazione del kernel.

    Ci spostiamo nella sezione -> Power management options (ACPI, APM) -> CPU Frequency scaling ed impostiamo le opzioni come segue:

    [*] CPU Frequency scaling
    [*]   Enable CPUfreq debugging
    <*>   CPU frequency translation statistics
    [*]     CPU frequency translation statistics details
          Default CPUFreq governor (userspace)  --->
    <*>   'performance' governor
    <*>   'powersave' governor
    ---   'userspace' governor for userspace frequency scaling
    <*>   'ondemand' cpufreq policy governor
    <*>   'conservative' cpufreq governor
    ---   CPUFreq processor drivers
    <*>   ACPI Processor P-States driver
    < >   AMD Mobile K6-2/K6-3 PowerNow!
    < >   AMD Mobile Athlon/Duron PowerNow!
    < >   AMD Opteron/Athlon64 PowerNow!
    < >   Cyrix MediaGX/NatSemi Geode Suspend Modulation
    <*>   Intel Enhanced SpeedStep
    [*]     Userspace control of CPU frequency/voltage table
    [*]     Built-in tables
    [*]       Built-in tables for Banias CPUs
    [ ]       Built-in tables for Dothan CPUs
    [ ]       Built-in tables for Sonoma CPUs
    < >   Intel Speedstep on ICH-M chipsets (ioport interface)
    < >   Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
    < >   Intel Pentium 4 clock modulation
    < >   nVidia nForce2 FSB changing
    < >   Transmeta LongRun
    < >   VIA Cyrix III Longhaul

    Salviamo e ricompiliamo il kernel e siamo pronti per il passo successivo

    Andiamo a controllare le impostazioni dei voltaggi per le varie frequenze del nostro precessore con cat /sys/devices/system/cpu/cpu0/cpufreq/op_points_table

    Le impostazioni di default dovrebbero essere 600000:956,800000:1180,1000000:1308,1200000:1436,1400000:1484

    che in partica corrispondono a 600mhz 0,956v - 800mhz 1,180v - 1ghz 1,308v - 1,2ghz 1,436v - 1,4ghz 1,484v

    Bene ora modifichiamo questi valori con delle impostazioni che ho rilevato personalmente e che sto utilizzando senza problemi da circa 6 mesi:

    Come root diamo il comando

    echo "600000:732,800000:780,1000000:860,1200000:956,1400000:1068" > /sys/devices/system/cpu/cpu0/cpufreq/op_points_table

    Come potete notare, i voltaggi sono ben più bassi del normale e questo ha permesso di abbassare la temperatura della cpu di circa 6-8 gradi e di allungare la durata delle batterie.

    Se il pc dovesse andare in blocco basta riavviare il pc per portare il tutto ai valori di default.

    Se il pc è stabile e volete mantenere le impostazioni, ho modificato lo script undervolt che si trova nella cartella /linux-phc-x.y.z/debian/etc/init.d in modo da avere le impostazioni viste sopra ad ogni avvio di linux.

    Lo script si chiama uvolt e va copiato (da root) nella directory /etc/init.d

    Nel caso vogliate riportare temporaneamente le impostazioni ai valori di default basta dare (come root) /etc/init.d/uvolt default.

    Il comando /etc/init.d/uvolt start ricaricherà le impostazioni ottimizzate.



Torna Su