Debian e un piccolo, vecchio, sporco portatile

Informatica
La schermata di login di xdm sul portatile "rigenerato"

Tempo ho recuperato un vecchio portatile Sony Vaio PCG-F801A (CPU AMD K6 500 MHz, 60 MB RAM), con l'intenzione di usarlo come terminale X del mio computer desktop con Mandriva Linux quando faccio riprese webcam in terrazzo. L'idea era di usarlo per le operazioni di puntamento e messa a fuoco, senza dover spostare l'ingombrante PC che ho sulla scrivania. Ma dopo avervi installato Debian Etch, devo ammettere che mi sono fatto prendere la mano e ho provato a "spremerlo" un po', con risultati sorprendenti!

Dunque, qualche dettaglio sulla "bestia": :-)

  • Modello: Sony Vaio PCG-F801A
  • Processore: AMD K6 III 500 MHz
  • RAM: 64 MB, di cui 4 condivisi con la scheda video :-( [aggiornamento: ho aggiornato al RAM a 256 MB, grazie ad ebay!] :-)
  • Scheda video: Trident Microsystems CyberBlade/i7d
  • Hard disk: 6GB
  • Scheda di rete PCMCIA: RealTek RTL 8139 :-)
  • Schermo: LCD 14''
  • Sistema operativo (?) originale: Windows Millennium Edition :-/

Bene, ora andiamo alle cose che non vanno: lettore CD e batteria guasta (funziona solo se collegato all'alimentazione di rete) [ho fortunosamente trovato una batteria funzionante, e adesso questo aggeggio ha un'autonomia di circa un'ora e mezzo].

Inizialmente avevo pensato di installare un semplice Xserver per windows sul portatile e usarlo per collegarmi al mio PC tramite XDMCP, ma non ho trovato Xserver che funzionassero con Windows ME. Allora ho pensato di provare a installare un server NX sul mio PC, e poi accedervi con un client NX per Windows, ma neanche questo andava con Windows Me. L'ultimo tentativo è stato VNC, che sì andava, ma dava prestazioni veramente mediocri, considerato che non era in grado di aggiornare le immagini della webcam con una frequenza migliore di 2-3 fps...

Confermate le pessime opinioni che già avevo di Windows Millennium, ho deciso di installare una distribuzione linux, ovviamente Debian Stable; ma come avviare l'installazione su un computer senza lettore CD, e che è anche incapace di avviarsi via rete o USB?

La risposta è UNetbootin. UNetbootin è un'utilità, sviluppata dall'autore del più noto wubi, per scaricare via rete i file necessari per avviare l'installazione via rete di molte distribuzioni linux. Quel che fa è scaricare i file necessari, configurare il boot loader di Windows, e poi, al riavvio, lanciare l'installer della distribuzione desiderata. In questo modo basta una connessione ad internet per installare linux su qualsiasi computer, basta che ci sia l'accesso ad internet.

Ma chiaramente, era troppo bello per funzionare subito! Al primo riavvio, scopro che non mi compare la schermata del boot loader di Windows. Sulle prime sono disorientato, poi, interrogando google, scopro che per una (come sempre) discutibile scelta, Microsoft aveva modificato e disabilitato alcune funzioni dell'avvio di Windows Millennium, che per il resto era (a basso livello) tale e quale a Windows 98.

Fortunatamente, non sono il solo che ha trovato questa cosa problematica: qualcuno infatti si è già adoperato per preparare delle patch per ripristinare il normale comportamento. Ecco dove trovare la patch e le istruzioni di installazione:
http://www.geocities.com/mfd4life_2000/

Ho seguito le istruzioni nella pagina, curando di tenere un backup dei file originali, ho provato a riavviare Windows, e ho verificato che tutto andasse come mi aspettavo.

Sono poi tornato a installare UnetBootIn (ecco una guida con screenshot http://howtoforge.com/unetbootin_windows_ubuntu_fedora ), ho riavviato e scelto al boot UnetBootIn, ed ho seguito l'installazione di Debian via rete, installando un sistema minimo, con il supporto per laptop, dimezzando l'unica partizione del portatile ed eseguendo il partizionamento guidato, con un'unica partizione per sistema e dati, e una partizione di swap. Configurato grub, sono tornato a controllare che Windows si avviasse correttamente e ho rimosso UnetBootIn (ce lo chiede automaticamente al primo avvio di Windows).

Da questo momento in poi, ho lavorato solo con linux.

Per cominciare, ho impostato i parametri di rete in modo statico (agendo su /etc/network/interfaces, e su /etc/hosts), installato la localizzazione italiana, il server xorg (xserver-xorg), aptitude (un gestore di pacchetti), mc (un file manager per la console), htop (un comodo monitor di sistema) e vim (L'Editor di testo), sudo, ssh, xdm e fluxbox (un window manager leggero e gradevole), links2 (un browser web testuale che supporta immagini e javascript).
apt-get install xserver-xorg xterm aptitude mc htop sudo vim ssh xdm fluxbox links2

Dopo aver sistemato la configurazione di root e del mio utente, in modo da avere un ambiente confortevole e "comodo" da usare, ho configurato sudo con il comando visudo, in modo da consentire al mio utente di eseguire comandi amministrativi e di riavviare/spegnere il computer, e sono passato alla configurazione di sistema.

La prima cosa che ho notato, ovviamente, è che i 60 MB di RAM sono pochi, e che di tanto in tanto il sistema swappa [non più, da quando ho portato la RAM a 256 MB]. Per ridurre queste operazioni sulla swap, ho aggiunto al file /etc/sysctl.conf la riga:
vm.swappiness=20

Per alleggerire il sistema ho rimosso alcuni pacchetti che mi sembravano inutili (che me ne faccio del servizio bluetooth su questo sistema?), e ho ridotto il numero delle console virtuali da 6 a 3, aprendo il file /etc/inittab e commentando (aggiungendo un # all'inizio della riga) le ultime 3 righe del gruppo:
# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:23:respawn:/sbin/mingetty tty2
3:23:respawn:/sbin/mingetty tty3
4:23:respawn:/sbin/mingetty tty4
5:23:respawn:/sbin/mingetty tty5
6:23:respawn:/sbin/mingetty tty6

Per rendere effettiva questa modifica è una buona idea riavviare il computer.

Ho poi rigenerato la localizzazione italiana (durante l'installazione un problema di memoria insufficiente aveva lasciato le cose a metà) usando il comando:
dpkg-reconfigure locales

Poi ho rigenerato la configurazione del server X usando il comando:
dpkg-reconfigure xserver-xorg
Ho risposto alle domande lasciando per lo più le impostazioni predefinite. Ho solo abilitato il frame buffer e scelto VESA come driver video. La procedura ha anche attivato l'uscita VGA del portatile, "clonando" su di essa quel che veniva visualizzato sul monitor (non so se la cosa è conseguenza del fatto che ha rilevato il mio monitor che avevo lasciato collegato...).

Ho copiato la configurazione di fluxbox che ho sul mio PC desktop (si trova in ~/.fluxbox), e l'ho adeguata al portatile (ad esempio cambiando la dimensione predefinita del testo), e poi ho fatto il primo login grafico. Ho notato che i comandi in ~/.fluxbox/startup non sono stati eseguiti. Per me non ha molta importanza, ma è comunque una cosa di cui tener conto.

Dopo il primo avvio e le prime prove, ho notato subito che, nonostante la poca RAM, il sistema era comunque ben utilizzabile [con 256 MB di RAM va ancora meglio], ma il touchpad era estremamente lento. Una ricerca su google mi ha indirizzato su alcune pagine interessanti, di cui questa è forse la più completa:
http://www.debuntu.org/2006/06/18/67-how-to-setting-up-touchpad-on-a-lap...
Seguendo le indicazioni di questa guida ho reso più veloce il puntatore e abilitato molte funzionalità aggiuntive del touchpad (come l'immancabile tasto centrale, utilissimo nei copia-incolla!).

Bene, constatato che il sistema è usabile e ben più reattivo dell'originale Windows Millennium (per non parlare di stabilità), ho ben pensato che avrei potuto utilizzarlo anche per altri scopi, come ad esempio per proiettare le diapositive PDF delle mie presentazioni didattiche per l'ORSA. Per questo ho installato un file manager grafico, browser web più serio, un lettore di file PDF, un visualizzatore di immagini, un lettore multimediale, dei tool per l'elaborazione delle immagini, un client testuale di instant messaging ed un monitor di sistema, (quasi) tutti orientati al risparmio di risorse:
apt-get install rox-filer firefox xpdf gqview mplayer imagemagick centericq conky

Per rendere più gradevole il login, ho modificato la configurazione di xdm aggiungendo al file /etc/X11/xdm/Xsetup queste righe:
xsetroot -solid rgb:50/58/70
conky -d -c /etc/conkyrc

La prima imposta un colore di sfondo gradevole, mentre la seconda avvia il monitor di sistema conky con la mia configurazione preferita (che potete scaricare e usare voi stessi, cliccando qui o in fondo alla pagina), derivata da questa:
http://conky.sourceforge.net/conkyrc-brenden

Ho poi aggiunto una immagine alla schermata di grub. La procedura semplicissima (spiegata qui http://ruslug.rutgers.edu/~mcgrof/grub-images/) consiste nel convertire un'immagine a nostra scelta, e poi richiamarla dalla configurazione di grub inserendo una riga come questa
splashimage=(hd0,1)/boot/grub/debian.xpm.gz
nel file /boot/grub/menu.lst

Ho poi creato uno script per avviare xpdf a schermo intero, per le presentazioni:
#!/bin/bash
xpdf -bg black -mattecolor black -fullscreen "$@"

Ed ho configurato rox in modo da usare i programmi indicati per aprire i vari file.

Ormai tutti usiamo pendrive usb per scambiarci dati, e visto che fluxbox non prevede alcun modo per gestire le periferiche rimovibili, ho voluto cercare un'altra soluzione per usare rapidamente questi dispositivi.
La risposta è UsbMount, e l'ho trovata in questa utile guida:
http://guide.debianizzati.org/index.php/UsbMount:_Gestione_automatizzata...

Per sfogliare le condivisioni SMB sul mio desktop Linux e su computer Mac o Windows, ho ovviamente installato e configurato fusesmb, come ho già spiegato in questa pagina (scritta per Xubuntu, ma perfettamente applicabile a Debian):
http://gerlos.altervista.org/blog/2008-01-09-sfogliare-condivisioni-wind...

Ero inoltre curioso di vedere se il portatile supporta la sospensione su RAM e la sospensione su disco. Con soddisfazione ho scoperto che tutto il necessario era già installato e funzionante, e bastava usare le scorciatoie da tastiera predefinite per eseguire con successo la sospensione su RAM, mentre bastava usare il comando hibernate per effettuare la sospensione su disco. Devo dire con piacere che entrambi i comandi funzionano egregiamente, ed dunque ho configurato uno script in /etc/acpi per mandare in sospensione su disco il computer quando si chiude lo schermo.

E per il nostro scopo originale, usare il portatile come terminale per il PC desktop?
Facilissimo! facciamo il login tramite ssh abilitando il port-forwarding:
ssh -X utente@pcdesktop
Ovviamente "utente" è il nome dell'utente con cui ci vogliamo connettere (si può omettere se sono uguali), mentre pcdesktop è il nome (se abbiamo un file hosts) o l'indirizzo IP del pc a cui ci vogliamo collegare.
La "magia" è nell'opzione "-X": ogni programma grafico che lanciamo verrà visualizzato sullo schermo del portatile (chiaramente, sto assumendo che su pcdesktop sia attivo un server ssh... se non lo è, attivalo!).

In questo modo le connessioni sono criptate. Questo garantisce la massima sicurezza, ma per me che devo vedere le immagini fornite dalla webcam, è un problema, perché carica troppo il processore del portatile.

Una soluzione per trasmettere in chiaro le informazioni è questa: prima mettiamo in ascolto il server X del portatile rimuovendo la stringa "-listen tcp" dal file /etc/X11/xdm/Xservers, riavviamo il server (Ctrl-Alt-BackSpace) e rifacciamo il login sul portatile.
Poi apriamo un terminale e digitiamo "xhost +pcdesktop", dove "pcdesktop" è ancora il nome o l'IP del pc a cui vogliamo collegarci. Successivamente, rifacciamo il login tramite ssh, ma con il comando:
ssh utente@pcdesktop
e una volta collegati, informiamo il terminale del display da utilizzare con il comando:
export DISPLAY=pclaptop:0
Dove pclaptop è il nome o l'IP del portatile. Da questo momento in poi, qualsiasi programma grafico lanciato da questo terminale verrà aperto sullo schermo del portatile.

Ve l'avevo detto che non era difficile? :-)

Una schermata ripresta dal "nuovo" portatile

Trackback URL for this post:

http://gerlos.altervista.org/trackback/344
AllegatoDimensione
conkyrc10.98 KB

commenti

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <strong> <del> <cite> <code> <img> <ul> <ol> <li> <dl> <dt> <dd> <pre>
  • Linee e paragrafi vanno a capo automaticamente.
  • Insert Flickr images: [flickr-photo:id=230452326,size=s] or [flickr-photoset:id=72157594262419167,size=m].
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Per provare che sei un visitatore umano, rispondi a questa domanda. È per evitare l'inserimento di messaggi spam.
Image CAPTCHA
Enter the characters shown in the image without spaces, also respect upper and lower case.