Come copiare testo da terminale agli appunti di X

A volte è necessario o comodo copiare del testo dal terminale agli appunti (clipboard) di X – ad esempio per incollare il testo su una chat o forum con un semplice CTRL+V. Si può fare facilmente con il programma xclip. Per installarlo su Debian, Ubuntu e derivate, bisogna eseguire:

sudo aptitude install xclip

Il suo utilizzo e molto semplice: basta mandare in pipe a xclip il testo che si desidera. Ad esempio per copiare le informazioni relative a dhclient presenti nei log, si può eseguire:

grep dhclient /var/log/syslog | xclip -selection c

In questo modo tutte le linee in /var/log/syslog contenenti dhclient vengono copiate negli appunti e possono essere incollate con CTRL+V.

Resettare i pannelli di Gnome

Capita abbastanza spesso che su IRC qualcuno chieda come riportare alle loro impostazioni iniziali i pannelli di Gnome dopo averli completamente rimossi, danneggiati o comunque resi inaccessibili. La soluzione fortunatamente è semplicissima. Basta aprire un terminale ed eseguire il seguente comando:

gconftool --recursive-unset /apps/panel && killall gnome-panel

In questo modo i pannelli di Gnome verranno riportati alle loro impostazioni predefinite.

Linux on Dell Studio 15 1557

This is my new laptop: a Dell Studio 15 1557 with a Intel i7 720QM CPU.

Short review

Here’s a very short review. First, the cons:

  • There are no LEDs on the keyboard. No LED for caps lock, no LED for HD activity, nothing;
  • by default the function keys (F1..F12) work as multimedia key (switch off WiFi, mute, volume up and so on), but this setting can be changed in the BIOS;
  • there is no numeric keypad. Usually on 15” laptops using the Fn key some keys can be used as numeric keypad, but this is not the case: there is simply no way to have a numeric keypad. This baffled me and it is annoying, especially on Windows. On the italian keyboard layout there is no “~” or “È” key, so we type them using the numeric keypad and tapping Alt+0126 or Alt+0200. Since there is no numeric keypad I have to copy&paste those characters. I’ll look for an explanation from Dell;
  • the fast CPU and graphic card mean a lot of heat: the system idles at 50 °C and can easily reach 70 °C under stress.

Pros:

  • the chassis is sturdy;
  • the touchpad supports multitouch, allowing for some cool gestures when using Windows;
  • the HD is huge (500GB);
  • the i7 CPU is as fast as it can get on laptops, looking at 8 columns for CPU load in the task manager gives a warm fuzzy feeling (the i7 720QM is a quad-core CPU with hyperthreading, so  the OS thinks that there are 8 CPUs);
  • the graphic card isn’t the fastest one available for laptops, but still I was able to play Mirror’s Edge with high settings;
  • I can virtualize Windows XP (and use IBM DB2 on it) on Windows Vista while browsing with Firefox and chatting and installing OpenOffice and still the average CPU load is at 30%;
  • the DDR3 RAM is fast;
  • did I say that it is fast?

Linux on Dell Studio 15 1557

I wanted to install Linux on it, my distro of choice being Kubuntu 9.10 Karmic Koala, but plain Ubuntu should run flawlessy too. The good news is that all the hardware is supported: WiFi, SD reader, ATI card, audio, everything. The bad news is that you have to fiddle a little to make it work. Here’s some gotchas:

  1. Don’t install any proprietary driver while using the Live CD. The Broadcom STA driver, needed to make the wireless work, made my system freeze. And if it freezes while it’s modifying the partition table you’ll be very, very sorry. Just install the system without doing anything fancy.
  2. The wireless card is reported by lspci as 05:00.0 Network controller: Broadcom Corporation BCM4312 802.11b/g (rev 01). If you have internet access via Ethernet just use the Hardware Drivers manager to install the Broadcom STA wireless driver. If you don’t have internet access use Synaptic (on Ubuntu) or KPackageKit (on Kubuntu) or apt-cdrom (everywhere) to add the installation cd-rom as software source and then use the Hardware Drivers manager.
  3. To make the audio work edit as root /etc/modprobe.d/alsa-base.conf and add this line:
    options snd-hda-intel model=dell-m6

    and then execute:

    sudo alsa force-reload

And that’s it, enjoy your Linux :)

(Not so) fun fact: when rebooting the system the first time, after installing Kubuntu, the system didn’t boot, even the BIOS screen didn’t show up. It just beeped four times and then turned off. Dell’s manual says that “four beeps = possible motherboard damage”, which just doesn’t make sense. However I tried again after a couple of minutes and it worked. I don’t know why and I hope it doesn’t happen again.

Chi sta accedendo al disco? Monitorare l’uso dell’I/O.

HardDisk icon by everaldo.com Una feature molto comoda del task manager di Windows è quella che permette di visualizzare quali processi stanno scrivendo su disco e in quale misura. È possibile ottenere queste informazioni anche su Linux. Un metodo rapido per ottenere un’informazione del genere è eseguire da root:

echo 1 > /proc/sys/vm/block_dump

Eseguendo dmesg sarà possibile avere un colpo d’occhio di quali processi stiano effettuando burst di scritture, con un output simile a questo:

[  409.805443] firefox-bin(4288): WRITE block 25335048 on sda7
[  409.805468] firefox-bin(4288): WRITE block 25335112 on sda7
[  409.805493] firefox-bin(4288): WRITE block 25335136 on sda7
[  409.805520] firefox-bin(4288): WRITE block 25335176 on sda7
[  409.805589] kjournald2(729): WRITE block 17053608 on sda7
[  409.805608] kjournald2(729): WRITE block 17053616 on sda7
[  409.805620] kjournald2(729): WRITE block 17053624 on sda7
[  409.805631] kjournald2(729): WRITE block 17053632 on sda7
[  409.805642] kjournald2(729): WRITE block 17053640 on sda7
[  409.810454] kjournald2(729): WRITE block 17053648 on sda7
[  409.963898] firefox-bin(4288): dirtied inode 3198 (places.sqlite-journal) on sda7
[  410.004105] pdflush(23): WRITE block 16922864 on sda7
[  410.004257] pdflush(23): dirtied inode 10220 (plasma_theme_default.data) on sda7
[  410.004291] pdflush(23): WRITE block 36789872 on sda7
[  410.004310] pdflush(23): WRITE block 36789880 on sda7

Piccola nota: pdflush è il demone che si occupa di scrivere su disco le scritture rinviate dal kernel per motivi di performance, kjournald(2) si occupa di mantenere aggiornato il journal del filesystem ed è normale che siano spesso presenti. Questo output tuttavia non è di comoda lettura. Una alternativa è data dal software iotop, installabile con Synaptic, aptitude o il packet manager della distribuzione che preferite. Avviandolo con:

iotop -o

Si otterrà un output di questo tipo:
che mostra i quattro processi che hanno effettuato operazioni di I/O nel periodo di campionamento. In questo caso sono il già citato pdflush e wget che hanno effettuato delle scritture, mentre svn ha effettuato una lettura.

Le colonne di iotop mostrano nell’ordine:

  • il PID del processo;
  • la velocità di lettura nel periodo di campionamento (di default 1 secondo);
  • la velocità di scrittura nel periodo di campionamento;
  • il tempo impiegato per lo swapping;
  • il tempo atteso per l’accesso all’I/O;
  • il nome del processo e i suoi argomenti.

Il manuale di iotop indica gli switch utili per un uso più mirato di questo ottimo strumento.

Kubuntu 9.04 Jaunty Jackalope

Desktop icon by everaldo.com Il 23 Aprile è stato rilasciato Ubuntu 9.04 Jaunty Jackalope. Le novità introdotte sono elencate sul wiki di Ubuntu e su quello di Kubuntu. Le principali condivise da tutti i “gusti” di (X/K/Ed)Ubuntu sono:

Per quanto riguarda Kubuntu le novità principali sono:

Problemi

Vi sono però già una serie di bug noti, elencati sulla pagina di rilascio di Kubuntu e su quella di Ubuntu. Quelli che mi hanno toccato direttamente sono due (forse tre).

Connessione alla rete (bug 330811, 339313 e 348275)

Il widget per la connessione di rete è sostanzialmente rotto: litiga con il software per la gestione delle password KWallet, non permette di connettersi alle reti WPA2, non accetta le password per le reti WEP.

La rete che sto utilizzando al momento utilizza WEP (e ammetto che sia male, evitate di farlo anche voi!). Il widget per la connessione di rete si rifiutava di accettare la password. Il “trucco” è stato quello di inserire la password in formato esadecimale invece che ASCII. Per convertire una stringa da ASCII in esadecimale aprite un terminale e eseguite:

python -c 'print "lamiapassword".encode("hex")'

Sostituendo alla stringa “lamiapassword” la stringa da convertire. Questo però è solo un workaround temporaneo e non risolve altri problemi. Una soluzione – speriamo temporanea in attesa di Kubuntu 9.04.1 – è installare il vecchio KNetworkManager o Wicd. I bug rilevanti su launchpad sono il 330811, 339313 e 348275.

Blocco del sistema

Saltuariamente il sistema si blocca completamente: mouse bloccato, schermo bloccato, qualunque attività sull’hard disk è interrotta. Putroppo la descrizione di questo problema comprende un po’ di tutto dai raggi cosmici ai riti voodoo avversi passando per server X che fa le bizze, kernel con bug, driver con bug, * con bug.

Nel mio caso gli imputati maggiori sono due.

Server X 1.6 e scheda video ATI (bug 348332)

Qui confluiscono due eventi:

  • Ubuntu utilizza il nuovo server X 1.6;
  • i recenti driver fglrx (proprietari) di ATI non supportano i chipset più datati.

Risultato netto:  X non parte o si blocca. Il problema è stato riportato da David Faure nel suo blog, il bug di riferimento è il 348332. Le possibili soluzioni sono effettuare il downgrade xserver-xorg alla versione 1.5, oppure si potrebbe aggiornare alle ultime release utilizzando i pacchetti sperimentali di Tormod Volder, disponibili sul suo PPA; ulteriori informazioni a riguardo sono disponibili sul wiki https://wiki.ubuntu.com/XorgOnTheEdge. Si faccia bene attenzione al fatto che in questo caso la pezza potrebbe essere peggiore del buco, quindi non lanciatevi in sperimentazioni strane se non sapete quello che state facendo. Nota a piè di pagina: probabilmente questo non è il mio problema, dato che chi ha questo bug riporta blocchi quasi immediati del sistema, mentre io posso utilizzarlo anche per ore. In effetti più leggo i bug report e più mi convinco che una volta tanto, almeno nel mio caso, la scheda ATI è innocente.

Soft lockup del kernel 2.6.28 su EXT4 (bug 330824)

Questo non è bello. Diversi utenti hanno riportato che durante le operazioni su una grande quantità di file il kernel ci può essere un soft lockup: il kernel non crasha ma non schedula nessuna operazione. Il risultato è un kernel vivo, ma in coma irreversibile. La causa precisa del bug non è chiara, ma chi ha effettuato i test riporta che è stato risolto da qualche parte tra la versione 2.6.29-rc6 e la 2.6.29-rc8. In generale sembra che il bug non sia più presente a partire dalla versione 2.6.29.

Per controllare se il bug è effettivamente questo sto utilizzando il kernel 2.6.29 pacchettizzato dal Kernel Team di Ubuntu. Si possono scaricare i .deb da questo indirizzo: http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.29.1/, scegliendo la versione a 32 o 64 bit. Una volta installato il kernel si aggiungera alle voci disponibili su grub all’avvio. Incrociamo le dita.

Aftermath

Questa release di Ubuntu, e in particolare di Kubuntu, ha qualche bug di troppo che si potrebbe considerare uno show-stopper. Adesso lo sto utilizzando senza problemi rilevanti, ma per un neofita forse è conveniente attendere che sui repository proposed e backport vengano aggiunti i pacchetti che risolvono i bug sopra esposti.

Webcam con driver gspca non funzionano su Intrepid Ibex

Oggi è stato rilasciato Ubuntu 8.10 Intrepid Ibex e non ho potuto fare a meno di aggiornare la mia Kubuntu. L’installazione è stata indolore come al solito. L’unico neo è che la mia webcam, una Trust wb 1200p, ha smesso di funzionare, mentre non aveva alcun problema su Hardy Heron 8.04. La webcam è identificata da lsusb come:

Bus 002 Device 004: ID 093a:2468 Pixart Imaging, Inc. Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye WebCam

Lo stesso identico bug, che impedisce di utilizzare la webcam con skype o ekiga, afflige molte webcam come la Logitech QuickCam, ClickSmart, OrbiCam e Zoom, Vimicro ZS0301, Philips SPC900NC. C’è una lunga discussione a riguardo su launchpad (bug 260918) dall’eloquente titolo: “needed: libv4l and associated application patches (or “gspca stopped working in 2.6.27″)”. In breve: con l’aggiornamento del kernel alla versione 2.6.27 il driver gspca, utilizzato da moltissime webcam, ha smesso di funzionare. Per risolvere il problema è necessario installare una versione di v4l uguale o successiva alla 0.5.2. Per evitare di compilarseli a mano, so possono aggiungere questi repository:

deb http://ppa.launchpad.net/lool/ubuntu intrepid main
deb-src http://ppa.launchpad.net/lool/ubuntu intrepid main

E eseguire sudo aptitude update e sudo aptitude upgrade.

Pimp My MPlayer

MPlayer è il player per video che uso di più in assoluto. Non è amichevole come Kaffeine o VLC, ma fa benissimo il suo lavoro. Martin Ankerl ha pubblicato sul suo blog un po’ di trucchi per personalizzare MPlayer. Riporto qui quelli che ho trovato più interessanti:

Evitare i salti

Se la CPU è sotto sforzo, il video di MPlayer potrebbe non essere fluido. La situazione è segnalata da questo messaggio:

Linux RTC init error in ioctl (rtc_irqp_set 1024): Permission denied
Try adding "echo 1024 > /proc/sys/dev/rtc/max-user-freq" to your system startup scripts.

Per risolvere il problema si può eseguire da una console di root (ottenuta con sudo -i su Ubuntu e derivate o con su su altre distribuzioni):

echo 1024 > /proc/sys/dev/rtc/max-user-freq

o, per mantenere permanentemente l’impostazione, modificate il file /etc/sysctl.conf e aggiungete questa riga:

dev.rtc.max-user-freq=1024

dopodiché eseguite:

sudo sysctl -p

o riavviate per usare le nuove impostazioni.

Streaming fluido

Guardando video in streaming o da DVD può capitare che il playback salti. Per rimediare si può istruire MPlayer affinché mantenga una cache più grande per il buffering. Modificate il file ~/.mplayer/config e aggiungete le seguenti righe:

cache=8192
cache-min=4

La prima riga specifica un buffer di 8MiB, la seconda indica a MPlayer che il buffer deve essere pieno almeno al 4% (circa 327KiB) prima di eseguire la riproduzione dello stream audio/video.

Output video

Usate xv come output video, è quello che permette una visualizzazione a schermo più veloce. Per farlo aggiungete al file ~/.mplayer/config:

vo=xv

Se non dovesse funzionare provate vo=gl2 oppure, se avete una scheda ATI con driver proprietari fglrx, fate riferimento a questo mio post: Problemi con MPlayer e ATI.

Aspect ratio

Se avete un monitor 16:10 aggiungete al solito file di configurazione la riga

monitoraspect=16:10

anche se in genere non dovrebbe essercene bisogno e MPlayer dovrebbe individuare correttamente l’aspect ratio del monitor.

Volume troppo alto o troppo basso

Si può fare in modo che MPlayer normalizzi il volume dello stream audio, utile quando la traccia è troppo bassa o troppo alta. Per farlo aggiungere a ~/.mplayer/config la riga:

af=volnorm

Font dei sottotitoli

Per cambiare il font dei sottotitoli, copiate il file .ttf del font che desiderate in ~/.mplayer/subfont.ttf. Ad esempio per usare DejaVu Sans eseguite:

cp /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf ~/.mplayer/config

Dimensione dei sottotitoli

Per cambiare la dimensione dei sottotitoli modificate ~/.mplayer/subfont.ttf aggiungendo:

subfont-text-scale=3

Provate valori diversi per trovare l’impostazione più di vostro gusto.

Tasti rapidi

Per l’uso comune:

  • f: attiva/disattiva la modalità fullscreen
  • ESC,q: termina MPlayer
  • barra spaziatrice,p: mette in pausa/riattiva il playback
  • j: cicla tra i sottotitoli
  • o: mostra/nasconde l’OSD (On Screen Display) con la posizione corrente
  • +,-: anticipa/ritarda lo stream audio rispetto al video, utile nei filmati con audio non in sync
  • [,]: diminuisce/aumenta la velocità di playback

Per spostarsi nello stream:

  • sinistra: indietro di 10 secondi
  • destra: avanti di 10 secondi
  • su: avanti di un minuto
  • giù: indietro di un minuto
  • PgUp (o Pag Su): avanti di 10 minuti
  • PgDn (o Pag Giù): indietro di 10 minuti
  • .: avanti di un frame (p per tornare al playback normale)

Chiavi OpenSSL deboli per Debian e derivate

Qualche giorno fa il bollettino di sicurezza di Debian dsa-1571 ha pubblicato un bug scoperto da Luciano Bello. Per evitare che i programmi che utilizzano OpenSSL venissero riportati come buggati da Valgrind, i packager di Debian hanno rimosso una istruzione dal codice di md_rand.c, con il risultato di inficiare pesantemente sul seeding del PRNG che genera le chiavi asimmetriche.

LA conseguenza è che data una certa dimensione di chiave OpenSSL non riesce a generare tutte le chiavi possibili, ma solo una tra 32768. Questo vuol dire che i server amministrabili via SSH sono suscettibili agli attacchi brute force anche se autorizzano l’accesso solo con chiavi asimmetriche (metodo storicamente considerato più robusto di semplici passphrase).

Le chiavi generate tra Settembre 2006 e il 13 Maggio 2008 sono da considerarsi vulnerabili e devono essere rigenerate. Sono deboli le chiavi SSH, OpenVPN, DNSSEC, le chiavi nei certificati X.50 e le chiavi di sessione in connessioni SSL/TLS.

H. D. Moore (il creatore di Metasploit) ha scritto un ottima panoramica tecnica sull’argomento: http://metasploit.com/users/hdm/tools/debian-openssl/.

Quick tip: sbloccare il database di apt dopo un crash

package icon by everaldo.comÈ possibile che un’interfaccia grafica per apt come Synaptic o Adept crashi durante l’installazione di pacchetti. Questo lascia il database di apt in uno stato inconsistente. Il messaggio di errore rivelatore del problema è questo:

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

Che nella versione in italiano è tradotto come:

E: Impossibile ottenere il lock /var/lib/apt/lists/lock - open (11 Risorsa temporaneamente non disponibile) E: Impossibile creare un lock sulla directory di list

Per risolvere questo problema in genere è sufficiente eseguire in un terminale:

sudo fuser -vki /var/lib/dpkg/lock;sudo dpkg --configure -a

Attivare USB su VirtualBox

Desktop icon by everaldo.comUsando VirtualBox su host Linux può accadere che il sistema operativo guest non possa accedere alle porte USB. Il problema è segnalato dal fatto che accedendo ai settings di una macchina virtuale VirtualBox mostri un messaggio di questo tipo:

Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND).
The service might be not installed on the host computer.
Result Code: 0x80004005
Component: Host
Interface: IHost {81729c26-1aec-46f5-b7c0-cc7364738fdb}
Callee: IMachine {31f7169f-14da-4c55-8cb6-a3665186e35e}

Il problema è dovuto al fatto che VirtualBox non riesce a accedere all’USB filesystem (usbfs).

Supponiamo che il gruppo di utenti abilitati all’uso di VirtualBox sia vboxusers (nome di default). Per risolvere il problema aprite un terminale e eseguite questo comando:

cat /etc/group | grep vboxusers | cut -d: -f3

Attenzione: se sul vostro sistema il gruppo degli utenti che possono usare VirtualBox si chiama diversamente, dovrete specificarlo al posto di "vboxusers".

Vi verrà restituito un numero, ad esempio 1001 (se non vi viene restituito alcun valore la vostra installazione di VirtualBox è corrotta, oppure il gruppo degli utenti sul vostro sistema non si chiama vboxusers).

Aprite il file /etc/fstab con il vostro editor di testo preferito da root. Per GNOME su Ubuntu:

gksu gedit /etc/fstab

oppure per KDE (su Kubuntu!):

kdesu kate /etc/fstab

E aggiungete in coda al file questa riga:

none /proc/bus/usb usbfs devgid=1001,devmode=664 0 0

Salvate le modifiche e eseguite:

mount -a

In questo modo VirtualBox potrà accedere alle informazioni sulle periferiche USB e permetterà di utilizzarle all’interno dei sistemi operativi ospiti. Chiudete VirtualBox (se era aperto) e apritelo: potrete ora gestire le periferiche USB.