ago
25

Bash tips: Abilitare il completamento automatico per comandi già inseriti

 

Probabilmente senza un esempio concreto questo post è del tutto inutile :D

Supponiamo di essere da “root” e di aver lanciato una serie di comandi del genere:

aptitude update
aptitude install kate
aptitude install vim
aptitude remove gedit
aptitude purge nano
apt-get install nano
alsamixer

Molto spesso è comodo, per ragioni di velocità, richiamare certi comandi in base ad un “prefisso”.

Abilitando una certa funzionalità sarà possibile, utilizzando i tasti PAGE-UP e PAGE-DOWN, richiamare il completamento automatico dei comandi presenti nella history della shell.

Facciamo un esempio:

Inserendo da prompt “a” e PAGE-UP (PAGE-DOWN ha il comportamento opposto perché scorre indietro nella history) verrà proposto, mediante completamento, l’ultimo comando che inizia per “a“, in questo caso “alsamixer” (notare parte in grassetto). Premendo di nuovo PAGE-UP verrà mostrato il successivo, ossia “apt-get install nano“, e così via.

Se al posto di “a” fosse stato inserito “ap“, allora si avrebbe avuto “apt-get install nano“, successivamente “aptitude purge nano“, e così via.

Altro esempio con “aptitude i“: dopo PAGE-UP si avrebbe “aptitude install vim“, e così via.

Questo comportamento è comodo quando si hanno molti comandi nella history, anche per evitare di scorrere serialmente tutta la lista della history col tasto UP o DOWN :)

Ma come si abilita questa caratteristica? Semplice, bisogna editare il file /etc/inputrc e cercare una cosa del genere:

# alternate mappings for "page up" and "page down" to search the history
# "e[5~": history-search-backward
# "e[6~": history-search-forward

E quindi decommentare le ultime 2 righe (o aggiungerle se non ci sono) così:

# alternate mappings for "page up" and "page down" to search the history
"e[5~": history-search-backward
"e[6~": history-search-forward

Fatemi sapere :)

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

ago
23

Come sbloccare la GP2X Wiz

 

GP2X WizQualche mese fa avevo scritto della mia nuova console Linux, la GP2X Wiz, e proprio oggi mentre giocavo a un gioco si è bloccato tutto. Immaginando un problema del gioco l’ho spenta dal normale interruttore di sinistra ma alla riaccensione l’amara figura del logo iniziale su fondo arancio non andava più via.

Leggendo sul web qualcuno suggeriva di lasciarla stare per un’oretta con quel logo, potrebbe essere dovuto al fatto che è in corso un fsck (controllo del disco) e così ho fatto ma nonostante l’attesa la perfida schermata iniziale non andava via.

Togliere la batteria (bisogna svitare prima le viti sul lato sinistro del coperchio posteriore) non ha portato nessun beneficio. Neanche il minuscolo pulsantino di reset posto alla destra dell’ingresso della scheda SD sortisce effetto.

Preoccupato di averla brickata in maniera definitiva mi documento e tento la procedura di reinstallazione del firmware:

  1. Procurarsi il firmware più recente da questa pagina
  2. Decomprimere il file sul proprio computer
  3. Copiare nella radice (niente sottocartelle) della memoria SD i files estratti
  4. Inserire la SD nella console spenta
  5. Tenere premuto il pulsante R posto sul lato superiore destro della console
  6. Accendere la console mantenendo il pulsante R premuto
  7. Attendere l’apparizione della schermata Firmware Upgrade e quindi lasciare il pulsante R
  8. Attendere il completamento dell’operazione di aggiornamento
  9. Quando è mostrato il messaggio Firmware upgrade complete spegnere la console dal suo pulsante di accensione e riaccenderla
  10. Riconfigurare tutte le opzioni da capo

Un paio di consigli utili ai possessori di questa magnifica console:

  • L’aggiornamento del firmware cancella immediatamente e senza nessuna conferma tutti i files presenti nella memoria NAND interna
  • Per lo stesso motivo di sopra evitare di tenere premuto il pulsante R all’accensione della console se non si intende aggiornarla. Alcune versioni del firmware pare che azzerino subito la NAND anche se non sono presenti firmware nella memoria SD
  • Scaricare sin da subito tutti i firmware disponibili sul sito, anche quelli vecchi, invece di affrontare il rischio che un giorno potrebbero essere rimossi o il sito venga dismesso
  • Non avviare la procedura di aggiornamento se non si è assolutamente certi che la batteria sia carica, l’operazione normalmente richiede dai 10 ai 15 minuti
  • Se la procedura di aggiornamento del firmware non si avvia e appare soltanto il logo GPH su sfondo nero provare a formattare la scheda in FAT16: a me formattata in FAT32 non ha funzionato
  • Se nonostante la formattazione l’aggiornamento non dovesse avviarsi provare con una scheda SD da 1 o 2 GB e non una SDHC

Fortunatamente è andato tutto bene e il problema si è risolto col firmware 1.2.1.

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

gen
29

La mia nuova console Linux

 

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

gen
07

Schermo nero uscendo da Virtual console

 

Sensazione bellissima, passeggiare per la strada e sentirsi dire: “io leggo il tuo blog, posso chiederti una cosa?” :) [*]

Il problema esposto e il seguente: dopo essere passato sulla prima virtual console premendo CTRL-ALT-F1, non e possibile tornare all ambiente grafico con CTRL-ALT-F7 o con ALT-F7.

Non avendo personalmente questo problema posso dare due consigli per fare del buon vecchio troubleshooting:

1) provare a disabilitare gli effetti grafici (compiz)
2) provare a installare un kernel 2.6.32 (specialmente se si ha una scheda video Intel)

Avanti prodi lettori….se avete questo problema provate a seguire le due indicazioni, se invece l avete risolto precedentemente, fateci sapere cosi potremo dare la soluzione.

[*] L alce e notoriamente un animale schivo ma vanitoso….. 3:-)

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

dic
01

Tema Human per FileZilla

 

Logo UbuntuIn questi giorni ho cambiato client FTP: ho sostituito GFTP con FileZilla.

Non ho ancora avuto modo di provarlo a fondo, ma mi sembra gestire meglio il trasferimento di grandi quantità di file (che in genere mette in crisi GFTP).

Una delle cose che però proprio non mi piace di FileZilla è il discutibile set di icone del tema predefinito:

filezilla-classic-themeNon mi ritengo un maniaco del design (utilizzo il tema di default di Ubuntu!) ma queste icone proprio non riesco a guardarle :mrgreen: .

Cercando su google non si trova molto, però insistendo sono giunto a questa pagina, dove è possibile scaricare un tema ispirato allo Human di Ubuntu:

filezilla-human-themeTutta un’altra cosa :) .

Purtroppo, per quanto so io, FileZilla non consente l’installazione di temi direttamente sulla home dell’utente, pertanto si è costretti a copiare i files del tema nella directory /usr/share/filezilla/resources.

Per semplificare le cose ho scritto un piccolo script bash che installa automaticamente il tema:

#!/bin/bash

DIRDEST=/usr/share/filezilla/resources
DIRTHEME=humanity

if [[ $EUID -ne 0 ]]
then
    echo "Lo script richiede l'esecuzione con i permessi di root." 1>&2
    chmod 777 ./`basename $0`
    sudo ./`basename $0`
    exit 0
else
    echo "Permessi di root: OK"
fi

if [ ! -d "$DIRDEST" ]; then
    echo "Errore: la directory $DIRDEST non esiste"
    exit 1
fi

cp -vR $DIRTHEME $DIRDEST

echo "Installazione terminata"

exit 0

È possibile scaricarlo, assieme a tutti i files grafici, a questo indirizzo:

Scaricato il file si dovrà decomprimerlo e recarsi nella directory dove sono presenti i files estratti.

A questo punto per installarlo si può utilizzare lo script che ho creato:

./install.sh

o procedere con la semplice copia manuale dei files:

sudo cp -r humanity /usr/share/filezilla/resources

Copiati i files sarà possibile scegliere in FileZilla il nuovo tema cliccando su Modifica -> Impostazioni -> Temi e selezionando Humanity.

PS

A chi si domandasse come mai ho creato uno script per compiere un’azione così semplice rispondo che l’ho fatto per evitare di ricercare, ad ogni installazione del tema, il percorso in cui copiare i files.

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

nov
26

Ripristinare le icone nei menu e nei pulsanti in Karmic Koala

 

Logo UbuntuKarmic Koala ha adottato la versione 2.28.1 di GNOME. In questa release le icone di menu e pulsanti sono disabilitate di default. Il motivo ufficiale è che questa modifica rende l’interfaccia utente standard e più pulita. Mah, de gustibus et coloribus non est disputandum.

In ogni caso è possibile riabilitarli semplicemente eseguendo in un terminale questi due comandi:

gconftool-2 –set /desktop/gnome/interface/buttons_have_icons –type bool true
gconftool-2 –set /desktop/gnome/interface/menus_have_icons –type bool true

Le immagini seguenti illustrano le differenze tra prima e dopo l’esecuzione dei due comandi:

Menu senza icone

Menu con icone

Schermata-Preferenze dell'aspetto-Senza icone

Schermata-Preferenze dell'aspetto-Con Icone

Come potete notare con le icone attive l’interfaccia è molto meno pulita e standard :lol: .

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

nov
21

Highlight e vim – anche su Mac OSX

 

Sono molto legato ai colori della bash di linux. Con i file colorati in base al loro tipo.

In oltre programmando spesso via ssh con vim, ormai mi sono affezionato a questo semplice e free editor.

Quindi ho voluto mettere anche sul mio mac le stesse caratteristiche.

Iniziamo dal principio:

Come colorare la nostra bash

il file in questione è

/private/etc/bashrc

Questo file è il file base che viene letto ogni volta che apriamo una shell.

E le caratteristiche che troviamo al suo interno vengono applicate ad ogni utente.

A meno di creare un file ~/.bash_profile all’interno della home dell’utente che vuole delle caratteristiche aggiuntive o comunque diverse da quelle di default.

Se non esiste (di default non c’è) creiamolo:

touch ~/.bash_profile

e all’interno mettiamo:

LSCOLORS= ExFxCxDxBxegedabagacad
export LSCOLORS
export CLICOLOR=1

(NB: se avessimo voluto applicare gli highlight a tutti gli utenti, sarebbe bastato aggiungere queste righe al file /private/etc/bashrc)

Adesso riavviamo bashrc:

. ~/.bash_profile

C’è differenza? :)

PS: se volete cambiare i colori consultate il manuale di “ls” con il comando “man ls” e cercate CLICOLOR

Andiamo ora ad aggiungere qualche funzionalità a vim

Come per bashrc c’è un file base anche per vim:

/usr/share/vim/vimrc

e un file che appartiene ad un utente specifico (che di default non esiste, ma lo sappiamo creare con il comando touch):

~/.vimrc

Noi modificheremo quest’ultimo, creandolo e aggiungendo al suo interno:

set tabstop=4           " spazi del tab
set number              " mostra i numeri di riga
set cindent shiftwidth=4    "indenta in automatico
                            "dopo una parentesi
                            "graffa di 4 spazi
set background=dark     " così si vede meglio il colore
set ai                  " auto indenting
set history=100         " tiene 100 linee di history
set ruler               " mostra la posizione del cursore
syntax on               " highlighting per la sintassi
set hlsearch            " illumina l ultima parola cercata
filetype plugin on      " use the file type plugins
" Quando editiamo un file, salta sempre all'ultima
" posizione del cursore
autocmd BufReadPost *
 if ! exists("g:leave_my_cursor_position_alone") |
 if line("'"") > 0 && line ("'"") <= line("$") |
 exe "normal g'"" |
 endif |
 endif

Provate ora ad aprire un file sorgente con vim… notate differenze?

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

nov
08

Ripristinare rapidamente GRUB2 dopo aver reinstallato Windows

 

Logo UbuntuOggi ho reinstallato Windows sul mio portatile e, come da tradizione, il bootloader di Ubuntu è stato piallato.
In passato ripristinare GRUB era un gioco da ragazzi: era sufficiente avviare il LiveCD e digitare in un terminare sudo grub, root (hd0,4), setup (hd0) ed tutto tornava alla normalità.
Con GRUB2 le cose si sono apparentemente complicate un poco ed essendo ancora una novità le guide che si trovano in rete spesso sono lunghe e inutilmente complicate. Questo perché le guide, anziché spiegare come ripristinare GRUB2 dopo una reinstallazione di Windows, spiegano come configurarlo da zero come se non fosse mai stato installato.

In questo articolo spiegherò come riabilitare GRUB2 dando per scontato che prima dell’installazione di Windows fosse già perfettamente configurato e funzionante.

Il primo passo è identico a quello del vecchio GRUB: avviare il LiveCD di Ubuntu 9.10 Karmic Koala (o successive).

A questo punto si deve aprire un terminale e digitare i seguenti comandi sostituendo la X di sdaX con il numero della partizione di root della vostra installazione1:

sudo mount /dev/sdaX /mnt

Opzionale: Se avete una partizione di boot separata montate anche quella:

sudo mount /dev/sdaY /mnt/boot

Ora per ripristinare GRUB2 è sufficiente lanciare questo comando (purtroppo non molto facile da ricordare):

sudo grub-install --root-directory=/mnt/ /dev/sda

A questo punto riavviando il PC dovreste riavere GRUB2 come bootloader ;) .

Come si può notare, se non si ha una partizione di boot separata, sono sufficienti due soli comandi per ripristinare GRUB2, naturalmente dando per scontato che il file grub.cfg sia già presente e correttamente configurato.

Opzionale: Se si è aggiornata o aggiunta una nuova versione di Windows sarà necessario aggiornare anche il menu di GRUB2.
Essendo sconsigliata la modifica manuale del grub.cfg conviene utilizzare il tool os-prober:

sudo os-prober

Lanciando questo comando os-prober rileverà i vari sistemi operativi disponibili sul vostro computer. Una volta terminata la scansione si dovrà procedere con la rigenerazione del file grub.cfg utilizzando questo comando:

sudo update-grub

Note all articolo:

  1. Per visualizzare l’elenco delle partizioni potete utilizzare il comando sudo fdisk -l

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

nov
07

Generare password casuali da console

 

Tango TerminalMi è capitato diverse volte di avere la necessità di generare una password casuale e in passato la soluzione più veloce che utilizzavo di solito era digitare in Google “random password generator”. Questa soluzione però oltre ad essere scomoda (richiede una connessione ad internet ed un browser web) non è neanche molto sicura.
In Ubuntu, e in genere in qualunque altra distribuzione GNU/Linux, esistono metodi molto più sicuri e pratici per generare una password.

Il più comodo e veloce consiste nell’installare il pacchetto pwgen:

sudo apt-get install pwgen

Questo software permette di generare password facili da ricordare, pur mantenendo alto il livello di sicurezza. Se invece non interessa generare password facilmente memorizzabili e si preferisce avere delle password completamente random si può utilizzare l’opzione -s. Sono presenti molte altre opzioni che permettono ad esempio di evitare caratteri simili (1 e l, 0 e O) e di impostare la lunghezza e il numero delle password generate. Per l’elenco di tutte le opzioni disponibili consiglio la lettura della manpage di pwgen:

man pwgen

Se non è possibile/non si vuole installare il pacchetto pwgen è possibile generare delle buone password casuali sfruttando i tools messi a disposizione dalla console.

Ad esempio per generare 4 password di 8 caratteri alfanumerici sarà sufficiente digitare in un terminale la seguente stringa:

cat /dev/urandom | tr -dc  a-zA-Z0-9  | fold -w 8 | head -n 4

Per aumentare il livello di sicurezza della password è possibile aggiungere altri caratteri non alfanumerici, come ad esempio _!@#$%^&*()+[]|:<>?=:

cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()+[]|:<>?=' | fold -w 8 | head -n 4

Se si vuole essere sicuri che la password contenga almeno un carattere speciale è necessario aggiungere un grep al comando precedente:

cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()+[]|:<>?=' | fold -w 8 | grep -i '[_!@#$%^&*()+|:<>?=]' | head -n 4

Perché urandom al posto di random?

Qualcuno potrebbe domandarsi perché utilizzo il “meno sicuro” urandom al posto di random. Prima di spiegare il motivo riporto la manpage dei due dispositivi kernel:

I file speciali a caratteri /dev/random e /dev/urandom (presenti sin da
Linux 1.3.30) forniscono un'interfaccia al  generatore  del  kernel  di
numeri aleatori. Il file /dev/random ha numero primario 1 e numero sec?
ondario 8. Il file /dev/urandom ha numero primario 1  e  numero  secon?
dario 9.
 
Il  generatore  di numeri aleatori raccoglie rumore di fondo dai device
driver e da altre sorgenti nel pozzo d'entropia. Il generatore mantiene
anche  una  stima del numero di bit di rumore nel pozzo di entropia. Da
questo pozzo di entropia vengono creati i numeri aleatori.
 
Quando viene letto, /dev/random restituisce  solo  un  numero  di  byte
aleatori  compatibili  con  la  stima  dei  bit  di  rumore  nel  pozzo
d'entropia. /dev/random dovrebbe essere adatto ad usi che richiedono un
alto  grado  di  aleatorietà,  come la generazione di chiavi. Quando il
pozzo d'entropia è vuoto, le letture di  /dev/random  vengono  bloccate
finché non viene raccolto abbastanza rumore ambientale.
 
Quando  viene letto, /dev/urandom restituisce tanti byte quanti ne sono
stati richiesti. Di conseguenza, se non  c'è  abbastanza  entropia  nel
pozzo  d'entropia, i valori restituiti sono teoricamente vulnerabili ad
un attacco criptografico sull'algoritmo usato  dal  dispositivo.  Nella
letteratura  (non coperta da segreto militare) non c'è conoscenza di un
metodo per fare ciò, ma è in teoria  possibile  che  esista  un  simile
metodo.  Se questo è fonte di problemi per il proprio programma, si usi
invece /dev/random.

Leggendo la manpage si intuisce che urandom è più veloce perché «restituisce tanti byte quanti ne sono stati richiesti» a discapito del grado di aleatorietà, ma quanto è più veloce? Scopriamolo con un test pratico.

Prima proviamo a generare una password di 10 caratteri sfruttando urandom:

$ time cat /dev/urandom | tr -dc 'a-zA-Z0-9-_!@#$%^&*()+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
bzNHI}6w:h
 
real	0m0.024s
user	0m0.004s
sys	0m0.024s

E ora facciamo la stessa cosa con random:

$ time cat /dev/random | tr -dc 'a-zA-Z0-9-_!@#$%^&*()+{}|:<>?=' | fold -w 10 | grep -i '[!@#$%^&*()_+{}|:<>?=]' | head -n 1
^C
 
real	131m14.400s
user	0m0.012s
sys	0m0.036s

La differenza è abissale: urandom ha impiegato solamente 24 millesimi di secondo (0.024 secondi) mentre random dopo 2 ore 11 minuti e 14 secondi non aveva ancora terminato! Ho interrotto manualmente con un CTRL+C. E il test non è stato fatto su un 486SX a 25MHz, ma su un Intel Core2 Quad Processor Q9450.
Considerando che «nella letteratura (non coperta da segreto militare) non c’è conoscenza di un metodo» per effettuare un attacco criptografico sui valori generati da urandom, mi sento di consigliare urandom per la generazione di password :) .

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

ott
06

Abilitare un lettore biometrico ThinkFinger compatibile in Ubuntu 9.10 Karmic Koala

 

Logo UbuntuFinalmente, dopo il regresso introdotto in Intrepid e Jaunty, è nuovamente possibile abilitare un lettore biometrico ThinkFinger compatibile senza ricorrere a repository esterni.

La procedura torna ad essere la stessa che si utilizzava in Hardy. È sufficiente infatti digitare in un terminale il seguente comando:

sudo apt-get install thinkfinger-tools libpam-thinkfinger

Riavviare il PC e registrare le proprie impronte tramite il comando:

tf-tool --acquire
Per effetturare l’enroll1 delle vostre impronte non digitate sudo prima di tf-tool

Potete poi testare la corretta acquisizione delle impronte tramite il comando:

tf-tool --verify

A questo punto, se si è superato senza problemi la verifica, è possibile aggiornare la configurazione PAM, così da poter utilizzare la scansione biometrica al posto della password nel login grafico, in quello testuale, con il comando sudo e per l’unlock dello schermo. Per procedere si deve semplicemente digitare:

sudo /usr/lib/pam-thinkfinger/pam-thinkfinger-enable

Questa procedura è stata testata con successo su un portatile Dell M1330 con Ubuntu 9.10 Beta.

Note all articolo:

  1. la registrazione, l’acquisizione

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

ott
06

Aggiungere un repository PPA su Karmic Koala in modo semplice e veloce

 

Logo UbuntuCon Ubuntu 9.10 “Karmic Koala” è stato introdotto un nuovo modo molto più semplice e veloce per aggiungere un repository PPA alle sorgenti software. Anziché editare manualmente gli indirizzi deb nel source.list e importare la chiave di autenticazione del progetto sarà sufficiente digitare in console:

sudo add-apt-repository ppa:nome_repository

Andando ovviamente a sostituire nome_repository con il nome del PPA che si vuole aggiungere.

Ad esempio, si vuole aggiungere il PPA di Ubuntu Tweak? Sarà sufficiente digitare in console:

sudo add-apt-repository ppa:tualatrix/ubuntu-tweak

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

ago
21

CHMOD ricorsivo di directory o files

 

Tango TerminalIl mese scorso, in occasione dell’uscita di Jaunty Jackalope, mi è capitato di dover migrare il filesystem del mio portatile da ReiserFS a Ext4.
Non avendo sufficiente spazio libero sul fisso per un backup della partizione ho chiesto in prestito a mio padre il suo box USB da 500GB suddiviso in 2 partizioni da 250GB, una ReiserFS e una NTFS.
Non riuscendo a salvare tutto sulla Reiser ho dovuto copiare alcune directory sulla partizione NTFS per poi trasferirle sulla nuova partizione Ext4 del portatile.
Il problema è che nel passaggio da Raiser a NTFS sono andati persi tutti i permessi di files e directory, sostituiti con pessimo 777.

Fortunatamente la console, come sempre accade, ci viene in aiuto:

find . -type d -exec chmod 755 {} ;

Con il comando soprastante si vanno a cambiare in modo ricorsivo tutti i permessi delle sole directory.

Se invece si vogliono cambiare i permessi dei files è sufficiente sostituire il tipo da d a f:

find . -type f -exec chmod 644 {} ;

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

ago
08

PCSX-df: un emulatore per PlayStation

 

Senza farla troppo lunga, vediamo come è possibile emulare la PlayStation (la 1 ovviamente).

psx

Cercando in giro, ho trovato un favoloso programmino (chiamato PCSX-df) che permette di giocare con i “vecchi” giochi della PSX nel proprio PC. Vediamo quindi come fare:

Innanzitutto, bisogna scaricare il pacchetto, con:

# apt-get install pcsx-df

Poi è necessario scaricare un file chiamato SCPH1001.BIN (Google è vostro amico in questo caso).

Appena fatto, lanciate da shell il programma:

$ pcsx

A questo punto, settate tutte le impostazioni a vostro piacimento. Le mie impostazioni, sono riportate nella galleria di immagini che segue.

Non vi resta che inserire il CD (o avere a disposizione la ISO) e giocare :)









Popularity: 1% [?]



Puoi visualizzare il post originale qui.

mag
23

Guake un terminale a scomparsa per il desktop GNOME

 

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

mar
26

Archeologia del pinguino: Serial Terminal as Console

 


Quella raffigurata sopra e la copertina del numero di Aprile 1997 del Linux Journal.
L ho tirata fuori perche gironzolando in rete ho ritrovato un articolo che avevo pubblicato in quel numero della prestigiosa rivista.

L articolo mostrava come modificare la gestione della console nel kernel di Linux (se non ricordo male erano i tempi della versione 2.0.x) per consentire di usare un terminale seriale come console al posto di un monitor collegato ad una scheda video.

Ecco il testo originale dell articolo (perdonate la mia pigrizia ma non lo tradurro in italiano…almeno non oggi):

Serial Terminal as Console by Francesco Conti

A frequently asked, but never completely answered, question in the comp.os.linux.* newsgroups and other Linux mailing lists, is the one about cheap, headless Linux boxes. It seems that many people need to install Linux boxes without a video card, a monitor or a keyboard.

A cheap response to this problem is to use a serial terminal (Wyse or Ampex, for example) as the main Linux console. This cuts the cost of a keyboard, a video card and a monitor. I ve done this very thing on my second computer, an old 486 VLB, by using a Wyse 60 terminal.

Linking a terminal to your computer s serial port is not at all difficult. You can easily follow the instructions in the Serial-HOWTO and in the inittab(5) and agetty(8) man pages. Here s a short summary.

First, you must use a null modem cable.

Second, insert the following line in your /etc/inittab file, if you re using agetty. Other getty programs, like getty_ps, use a different syntax.

ID:RUNLEVELS:respawn:/sbin/agetty -L SPEED TTY TERM

where:

  • ID = a two character identifier, e.g., s1 or s2

  • RUNLEVELS = Runlevels in which the terminal must be active

  • SPEED = serial port speed

  • TTY = tty port name relative to the /dev directory

  • TERM = value to be used for the TERM environment variable

My machine s /etc/inittab has the following line:

s2:12345:respawn:/sbin/agetty -L 9600 ttyS1 vt100

for a serial terminal on the /dev/ttyS1 port (COM2 for DOS users), with a port speed of 9600 BPS and vt100 terminal emulation (which seems to run better than native Wyse 60 mode).

Finally, restart init with the command init q.

If you correctly followed these three simple steps, you should see the login prompt on your terminal screen. You can log in and work on your machine in the same way you can when you re actually on the console or telneting from a remote host.

Kernel Messages

The messages the kernel shows at boot time are always directed to your main console (tty1). If you turn on your headless box, you can only wait for the login on the terminal, which means losing those precious messages. You can see them by using the dmesg command, but usually you need them before the login shell comes up.

There are other messages on your console: those generated by the scripts in the /etc/rc.d directory, and from scripts run at boot and shutdown time. How can you really know that “the system is halted” if you can t read it on a monitor?

You must patch the /usr/src/linux/drivers/char/console.c program in your kernel source tree. It s not a complex kernel hack. You can follow these three simple steps.

First, define the CONFIG_SERIAL_ECHO symbol at program start:

#define CONFIG_SERIAL_ECHO

Second, modify the address of the terminal serial port (only if you re using a port different from that defined by default) looking for the following line:

#define SERIAL_ECHO_PORT        0x3f8   /* COM1 */

In my machine I ve changed that line to:

#define SERIAL_ECHO_PORT        0x2f8   /* COM2 */

Third, rebuild your kernel and reboot: you should see on your terminal screen the kernel messages during your system s hardware devices probe.

Please note that these steps work for a 2.0.0 kernel, not on 1.2.13. I haven t yet had time to try other kernels. The console.c patch is necessary for all Linux ports except the one for Alpha, which contains it in the make config with the following option:

Echo console messages on /dev/ttyS1
Messages from /etc/rc.d/rc.*

To show these messages on your terminal, you can append > TTY to every line of these files that contains the command echo. TTY is the terminal serial port (the same one used in /etc/inittab serial terminal line).

LILO Configuration

If you want to choose among more than two kernel images, you have to modif the LILO configuration file, /etc/lilo.conf.

Complete instructions for seeing the LILO prompt on serial terminals can be found in the /usr/doc/lilo/README file (look for the SERIAL option). Here are two steps to do that correctly.

First, edit the /etc/lilo.conf file and insert a SERIAL option line after the BOOT option line:

serial=SERIAL_LINE,SPEED PARITY BITS

where:

SERIAL_LINE = 0 (com1)             1 (com2)             2 (com3)             3 (com4)SPEED = serial port speedPARITY = n (= none)        o (= odd)        e (= even)BITS = bits in a character (8 or 7)

Please note that there are no spaces between the SPEED, PARITY and BITS parameters. These must be equal to the ones defined in your terminal setup. Here s the line used by my machine s LILO:

serial=1,9600n8

This line means COM2 at 9600 BPS, no parity, 8 bits per character.

Second, execute the lilo command to update your system s configuration.

Using the SERIAL option, LILO sets a two second delay (the same as when you put a delay = 20 line in the lilo.conf file) before booting the default kernel image. During this pause, you can interrupt the boot process and get the LILO prompt by sending a break to the terminal as you press the SHIFT key on your main console.

Conclusion

At last, your serial terminal can be used as a real system console. I think that the only thing you can t do is the CTRL-ALT-DEL reset—except, perhaps, with certain terminal emulations. If you re lucky, you can find one of these terminals cheaply, maybe even free, from a company upgrading its hardware.

Popularity: 1% [?]



Puoi visualizzare il post originale qui.

top