Xubuntu e Dropbox: come visualizzare correttamente l’icona nell’area di notifica

Dropbox su Xubuntu soffre di un fastidioso bug che impedisce la corretta visualizzazione dell’icona del programma nell’area di notifica (compare una icona quadrata con “divieto di accesso”).

dropbox

Per risolvere il problema, è sufficiente:

  1. chiudere Dropbox da riga di comando con dropbox stop
  2. editare come root il file /usr/bin/dropbox (magari fatevi una copia di backup prima)
  3. creare una nuova riga dopo import os
  4. inserire nella nuova riga os.environ['DBUS_SESSION_BUS_ADDRESS'] = ""
  5. salvare e lanciare nuovamente Dropbox, ora l’icona sarà visualizzata correttamente

 

VMware Workstation su Linux host: come ricompilare i moduli da riga di comando

Primo post del 2016!

Perdonate la lunga assenza, ma sono stato lontano dal blog causa lavoro | mancanza di ispirazione a scrivere | vita privata.
Riprendo, spero in maniera più assidua, con un piccolo appunto: come ricompilare, su VMware Workstation in un host Linux, i moduli (vmnet, vmbridge, vmmon) VMware da riga di comando, cosa utile quando viene aggiornato il kernel.

Collegandosi come root è sufficiente lanciare:

[email protected]:/home/albertoscotti# vmware-modconfig --install-all --console

Al termine della breve compilazione, se tutto è andato a buon fine, i servizi di VMware verranno avviati senza errori.

 

Ubuntu: crash di upowerd quando si collega un iPhone via USB

Sul mio portatile, ho notato che con tutte le ultime release di Ubuntu, quando si collega via USB un iPhone, smettono di funzionare le funzionalità di risparmio energetico: la luminosità del display e della tastiera retroilluminata non diminuisce di intensità, non è più possibile consultare lo stato della batteria, e così via.
Questo è causato dal crash, con relativo core dump, del demone upowerd:

Dec 23 11:25:44 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:46 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:49 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:51 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:53 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:56 mizar systemd[1]: upower.service: Failed with result 'core-dump'.
Dec 23 11:25:59 mizar systemd[1]: upower.service: Failed with result 'core-dump'.

Per risolvere il problema è sufficiente installare tramite apt-get una libreria parte del progetto libimobiledevice:

[email protected]:/home/utente# apt-get install libimobiledevice-utils

Che strano che nella distro sia presente di default libimobiledevice ma senza il pacchetto “utils”… Mah!

 

Ubuntu, CentOS e Intel: eliminare lo screen tearing nella riproduzione video

Uno dei difetti su Linux e schede video Intel che mi danno più fastidio è la mancanza di fluidità nella riproduzione video, causato dallo screen tearing.
Sebbene sia un problema molto diffuso, è anche relativamente facile risolverlo.

Per distribuzioni Red Hat, CentOS e derivate è sufficiente creare in /etc/X11/xorg.conf.d un file di configurazione “20-intel.conf“, o con il nome che più vi aggrada purché l’estensione sia .conf, con il seguente contenuto:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod" "sna"
   Option      "TearFree" "true"
EndSection

e riavviare il server grafico.

Per Ubuntu e derivate il file, con il medesimo contenuto, va creato in /usr/share/X11/xorg.conf.d/

 

Ubuntu 15.10 e VMware Workstation 12: risolvere il problema del mancato avvio del programma

Su Ubuntu 15.10 ho riscontrato un curioso bug di VMware Workstation 12: nonostante l’installazione avvenga correttamente, semplicemente non si avvia 😀

Il problema è causato dal fatto che in Ubuntu 15.10 non sono referenziate in path alcune librerie necessarie a VMware.
Per risolvere il problema è sufficiente:

  1. editare il file /usr/bin/vmware (richiesto diritti di root)
  2. creare una nuova linea dopo la linea 17 (dopo export PRODUCT_NAME="VMware Workstation")
  3. aggiungere: export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libglibmm-2.4.so.1/:$LD_LIBRARY_PATH
  4. salvare

VMware finalmente si avvierà correttamente.

 

CentOS 7: come installare VMware Workstation 10 e risolvere il problema di compilazione di “vmnet”

E’ possibile installare VMware Workstation 10 su CentOS 7, pur non essendo al momento una distribuzione supportata ufficialmente, a patto di installare un paio di package extra e smanettare un po’ con i sorgenti del modulo vmnet di VMware.

In particolare, anche se l’installazione di VMware viene completata correttamente, non è possibile avviare il programma poiché il modulo kernel “vmnet”, necessario per il funzionamento della virtual network, non viene compilato a causa di una incompatibilità tra i sorgenti di vmnet ed i sorgenti del kernel.

Per installare WMware Workstation su CentOS 7 dobbiamo (come root):

  1. aggiornare il sistema:
    yum update kernel
  2. riavviare
  3. installare i sorgenti del kernel e l’ambiente base per compilare:
    yum install gcc kernel-headers kernel-devel
  4. installare VMware

Completata l’installazione, avviando VMware partirà il task di compilazione del modulo vmnet da inserire nel kernel, ma la compilazione fallirà e verrà creato un log con i dettagli dell’errore.

A questo punto viene il bello: bisognerà editare un file dei sorgenti di vmnet per correggere un paio di errori:

  1. andare in:
    /usr/lib/vmware/modules/source
  2. scompattare l’archivio dei sorgenti di vmnet:
    tar -xvf vmnet.tar
  3. portarsi nella directory estratta:
    cd vmnet-only
  4. editare il file filter.c:
    vi filter.c
  5. alle righe 206 e 259 modificare la stringa:
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
    in
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)
  6. tornare in:
    cd /usr/lib/vmware/modules/source
  7. aggiornare l’archivio vmnet.tar con il file modificato:
    tar -uvf vmnet.tar vmnet-only

Con questa semplice modifica ora sarà possibile avviare VMware Workstation e far compilare correttamente vmnet.

 

Linux: come individuare la frequenza del kernel timer degli interrupt

Per individuare nel kernel in esecuzione la frequenza del timer degli interrupt va usato il comando:

[email protected]:~$ grep HZ /boot/config-`uname -r`
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
CONFIG_NO_HZ_IDLE=y
# CONFIG_NO_HZ_FULL is not set
CONFIG_NO_HZ=y
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_MACHZ_WDT=m

I valori che ci interessano sono quelli di CONFIG_HZ= e CONFIG_HZ_valore=, che nel mio caso sono settati a 1000.
Qualora sia presente la voce CONFIG_NO_HZ allora siamo in presenza di un kernel tickless dove la generazione degli interrupt avviene on-demand e non ad intervalli predefiniti di tempo.
Nel mio caso, essendo definito anche il valore CONFIG_NO_HZ_IDLE, ho un kernel in cui la generazione degli interrupt è mista: on-demand se il processore è idle e ogni 1000Hz se il processore è sotto carico.

 

Linux e XFS: come controllare la frammentazione del filesystem e deframmentarlo

Per gestire le partizioni XFS in Linux è necessario il pacchetto xfsprogs, mentre il pacchetto opzionale xfsdump contiene alcune preziose utility per controllare la frammentazione del filesystem e dei file.

Per verificare lo stato di frammentazione di un filesystem XFS lanciare il comando xfs_db e verificare il valore fragmentation factor:

# xfs_db -c frag -r mount_point
actual 288787, ideal 286616, fragmentation factor 0,75%

Nel mio caso il valore è molto basso, non è quindi necessario riorganizzare il filesystem.

E’ possibile controllare la frammentazione anche solo di singoli file, tramite il comando xfs_db:

# xfs_bmap -v nome_file_frammentato
nome_file_frammentato:
 EXT: FILE-OFFSET          BLOCK-RANGE          AG AG-OFFSET                 TOTAL
   0: [0..524159]:         499404728..499928887  1 (134240184..134764343)   524160
   1: [524160..2097023]:   504064368..505637231  1 (138899824..140472687)  1572864
   2: [2097024..27320671]: 542998144..568221791  1 (177833600..203057247) 25223648

In questo caso nome_file_frammentato ha 3 frammenti (extents).

Nel caso in cui invece il fragmentation factor sia consistente, io considero consistenti valori >= 20%, per deframmentare un filesystem XFS lanciare il comando:

# xfs_fsr -v -t 600 mount_point

oppure per deframmentare un singolo file:

# xfs_fsr -v nome_file_frammentato