Glade Gtk2: Soluzione drastica

Visto che anche Ubuntu Trusty non prende in considerazione chi sviluppa con gtk2, ho rimosso i pacchetti glade-gtk2, glade-gnome e tutte le dipendenze non più utilizzate:

apt-get remove --purge glade-gtk2 glade-gnome
apt-get autoremove

Ho scaricato i sorgenti della versione 3.8.4 di Glade e li ho compilati ed installati. Tutto ciò perchè passare a gtk3 (almeno fino ad Ubuntu 13.10) portava alle mie applicazioni più problemi che benefici.

Staremo a vedere con la nuova 14.04.

Ubuntu.. Stiamo perdendo colpi?

Ho abbandonato Windows da molti anni ormai… Più di dieci e senza rimpianti.

Inizialmente ho usato Linux Debian, poi  ho deciso di passare ad Ubuntu, che mi garantiva un sistema più aggiornato e “friendly”… E decisamente stabile, almeno per un uso casalingo.
Purtroppo nelle ultime releases, questa affermazione mi sembra sempre meno vera.

Unity ha portato una massa di problemi, errori, blocchi, che sono durati anni. Solo di recente si sono ridotti, ma non sono scomparsi.

Ad Ottobre 2013, con Ubuntu 13.10 ha smesso di funzionare Glade, il designer di interfaccie grafiche per GTK, molto diffuso tra gli sviluppatori Linux, non certo una applicazione esoterica per pochi eletti.
La cosa peggiore è che non si limita a qualche malfunzionamento, ma ha un SEGFAULT e crasha brutalmente.
Ci sono state segnalazioni di vari utenti sui forum Ubuntu, ma nessuna patch ufficiale ad oggi (almeno per la versione compatibile GTK2)! Eppure gli Sviluppatori di Glade a Settembre 2013 avevano già corretto il problema (ver. 3.8.4). Ubuntu 13.10 è uscita con la vecchia versione 3.8.0, e sembra che pure Trusty (Ubuntu 14.04)  sarà bloccata a questa versione.

Altro bug particolarmente odioso, sempre con Ubuntu 13.10, è il mancato riconoscimento della tastiera usb in fase di boot (non è presente il modulo OHCI adeguato nel ramdisk di boot).
Volevo aggiornare il mio mediacenter con una Ubuntu 13.10 “minimal” partendo da zero, ma ho preferito rinunciare ed aspettare la 14.04 LTS.

Ovviamente delle soluzioni si trovano, sia per il primo che per il secondo problema, ma sono ingarbugliate e fastidiose da implementare.

XBMC 10.1 e Ubuntu 11.04

Upgrade abbastanza indolore e un miglioramento a vista d’occhio in termini di velocità e fluidità.

Ho aggiornato i driver proprietari Nvidia alla versione stabile 270.41.06.

Finalmente nel nuovo kernel 2.6.38 sono stati risolti i problemi con imon.c e di conseguenza non serve più la patch che avevo indicato in questo post e non si presentano più alcuni problemini casuali di emulazione del telecomando RM200 con il Logitech Harmony.

Il bootsplash con plymouth e schede Nvidia che avevo segnalato in questo post ha smesso di funzionare.
Ho deciso di rimuoverlo (riducendo ulteriormente i tempi) dato che ormai risultava superfluo grazie ad un disco SSD OCZ Vertex 2 da 60gb per il sistema e un ulteriore alleggerimento del kernel (config per kernel 2.6.38) e dei servizi installati.

Ci sono stati alcuni cambiamenti per quanto riguarda le autorizzazioni di PolicyKit per reboot, shutdown, suspend etc.. “org.freedesktop.devicekit.power.*” è diventato “org.freedesktop.upower.*”.

/var/lib/polkit-1/localauthority/50-local.d/custom-actions.pkla:


[Actions for xbmc user]
Identity=unix-user:xbmc
Action=org.freedesktop.upower.*;org.freedesktop.consolekit.system.*
ResultActive=yes
ResultAny=auth_admin
ResultInactive=yes

PulseAudio continua (secondo me) a non funzionare bene con XBMC, perciò ho scelto di continuare ad ignorarlo e usare solo Alsa, che al contrario funziona perfettamente con uscita audio ottica digitale (passthrough iec985) verso il mio HT-AS5.

Per il resto sembra tutto ok…

Antec Rm200 possibile disabilitare la modalità mouse?

Da quando son passato ad Ubuntu Maverick, il telecomando RM200 è sempre in “modalità mouse”, cosa piuttosto noiosa con un mediacenter come XBMC.

Ho scoperto che esiste il parametro nomouse=1 da passare al modulo imon (che adesso è stato integrato a tutti gli effetti nel kernel) per inizializzare il telecomando in modalità “tastiera”  non emulazione mouse come è impostato per default.

Perciò ho aggiunto nella directory /etc/modprobe.d un file imon.conf con la seguente riga:


options imon nomouse=1

Peccato che questo parametro non venga preso in considerazione :-(. Il telecomando non ne vuole proprio sapere..

Mi stavo rassegnando, quando ho scoperto di non essere il solo ad avere questo problema e qualcuno più bravo di me aveva pubblicato una patch al file imon.c presente nel kernel 2.6.35 di Ubuntu Maverick:


--- imon.c	2010-10-23 23:10:43.953353773 +1100
+++ imon-new.c	2010-10-23 23:10:12.240848330 +1100
@@ -1013,7 +1013,7 @@
 	case IR_TYPE_UNKNOWN:
 	case IR_TYPE_OTHER:
 		dev_dbg(dev, "Configuring IR receiver for iMON protocol\n");
-		if (pad_stabilize)
+		if (pad_stabilize && !nomouse)
 			pad_mouse = true;
 		else {
 			dev_dbg(dev, "PAD stabilize functionality disabled\n");
@@ -1025,7 +1025,7 @@
 	default:
 		dev_warn(dev, "Unsupported IR protocol specified, overriding "
 			 "to iMON IR protocol\n");
-		if (pad_stabilize)
+		if (pad_stabilize && !nomouse)
 			pad_mouse = true;
 		else {
 			dev_dbg(dev, "PAD stabilize functionality disabled\n");

A questo punto avevo una scusa valida per ricompilare il tutto e rimuovere un po’ di cosette che non mi servivano..

apt-get install build-essential fakeroot kernel-package
apt-get install linux-source
apt-get install libncurses-dev

CONCURRENCY_LEVEL=3 fakeroot make-kpkg –append-to-version -xbmc kernel_image –initrd

Ricordo che il mio sistema è così composto e questo è il mio file .config personalizzato.

XBMC “Dharma” con Ubuntu 10.10 “Maverick Meerkat”

Ok, non potevo aspettare, volevo fare una installazione “pulita” di XBMC su una nuova Ubuntu 10.10 (è una RC ma mancano solo 4 giorni al rilascio ufficiale).
Oggi mi sono lanciato nell’impresa, che non credo terminerà con un solo post.
Per il boot automatico di XBMC in precedenza usavo Upstart con mingetty e poi .bash_profile per lanciare Xorg e quindi XBMC.
Ho scoperto un’interessante alternativa, che consente un miglioramento estetico e non ha bisogno di .bash_profile.

/etc/init/tty1.conf:


# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
exec /bin/openvt -fwc 1 -- /bin/su - xbmc -c '/usr/bin/startx -- -br>& /dev/null'
console none

home/xbmc/.xinitrc:


xset -dpms s off

while true
do
    xbmc-standalone
    
    # 0 - Quit, 64 - Shutdown, 65 - Warm reboot, 66 - Reboot
    if [ $? -eq 0 -o $? -eq 64 -o $? -eq 65 -o $? -eq 66 ]; then
	break
    fi
done

In ogni caso, sono presenti tty2 e tty3 per la manutenzione.
Ho avuto qualche problema con i driver proprietari NVIDIA. Utilizzando quelli pacchettizzati da Ubuntu con il nome nvidia-current (la versione beta 260.19.06) il tutto sembra funzionare, ma preferirei usare la versione stabile, non mi fido molto.
XBMC funziona piuttosto bene per essere una beta, anche il telecomando (RM 200) del mio Antec è riconosciuto.
Purtroppo solo come vuole lui :-(
Non sono ancora riuscito a impostare la configurazione “custom” del telecomando come avevo prima.

Mediacenter, Ubuntu e XBMC

Ho scelto una Ubuntu 9.10 per il mio mediacenter, un compromesso tra stabilità e novità dei pacchetti installati.
Ho eliminato subito gran parte del software non necessario (per esempio Openoffice e gran parte dei componenti accessori di Gnome).

Per velocizzare il più possibile la fase di boot ho eliminato anche GDM, quindi ho modificato gli script per le console di Upstart e .bash_profile
per avere un login automatico dell’utente xbmc, che si occuperà poi di lanciare Xorg e XBMC.

/etc/init/tty1.conf:


# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
#exec /sbin/getty -8 38400 tty1
exec /sbin/mingetty --autologin=xbmc tty1

/home/xbmc/.bash_profile:


#!/bin/bash
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty1 ]; then
    startx
fi

/home/xbmc/.xinitrc:


#!/bin/bash

xset -dpms s off
xsetroot -solid black

dbus-launch --exit-with-session xbmc --standalone

Naturalmente ho modificato usplash per dare al sistema un tocco ancora più “professionale”:

svn checkout http://usplash-theme-xbmc.googlecode.com/svn/trunk/ usplash-theme-xbmc-read-only

A questo punto ho prelevato e compilato i sorgenti di XBMC:

svn co http://xbmc.svn.sourceforge.net/svnroot/xbmc/trunk

Xbmc screenshot

Per ottenere l’accelerazione H264 per i video HD ho dovuto scaricare i driver proprietari NVIDIA per la GeForce 9400 integrata sulla motherboard:

Driver Linux 32bit 256.35

Ho configurato il display LCD del case Antec editando il file /etc/LCDd.conf e impostando come driver=imonlcd, come si può capire da questo esempio:

LCDd.conf.tar.gz.

Ho fatto funzionare, non senza difficoltà, il telecomando Veris RM200 in dotazione, ecco un esempio dei files di configurazione che dovranno andare in /etc/lirc:

lirc.tar.gz

Quindi va preparato il mapping tra lirc e XBMC, di seguito un esempio dei due files necessari.

~/.xbmc/userdata/Lircmap.xml:



    
	KEY_LEFT
	KEY_RIGHT
	KEY_UP
	KEY_DOWN
	KEY_ENTER
	KEY_BACKSPACE
	KEY_PAUSE
	KEY_STOP
	KEY_NEXT
	KEY_PREVIOUS
	KEY_PLAY
	KEY_POWER
	KEY_MUTE
	KEY_VOLUMEUP
	KEY_VOLUMEDOWN
	KEY_DVD
	KEY_VIDEO
	KEY_AUDIO
	KEY_PHOTO
	Go
	KEY_REWIND
	KEY_FASTFORWARD
	Star
	KEY_CHANNELUP
	KEY_CHANNELDOWN
	KEY_EJECTCD
	AppLauncher
	KEY_BACKSPACE
	KEY_ESC
    

~/.xbmc/userdata/keymaps/Keymap.xml:



    
	
	    Left
	    Right
	    Up
	    Down
	    Select
	    PreviousMenu
	    Pause
	    Stop
	    SkipNext
	    SkipPrevious
	    Play
	    XBMC.ShutDown()
	    Mute
	    VolumeUp
	    VolumeDown
	    PlayDVD
	    XBMC.ActivateWindow(MyVideos)
	    XBMC.ActivateWindow(MyMusic)
	    XBMC.ActivateWindow(MyPictures)
	    XBMC.ActivateWindow(Home) 
	    AnalogSeekBack
	    AnalogSeekForward 
	    Rotate
	    ZoomIn 
	    ZoomOut
	    XBMC.EjectTray()
	    ContextMenu
	    ParentDir
	    Close
	
    


Progetto gestione ordini Tabacchi ver 1.0

E’ pronto per essere usato il mio primo progetto in Python + librerie PyGtK, dopo aver preparato l’ordine, viene regolarmente generato un file Excel pronto per essere importato sul portale Logista.

L’interfaccia è moderna e gradevole grazie alle librerie GTK 2.0 e tutto gira perfettamente su un netbook (Acer Aspire One D250) con una Ubuntu Netbook Remix!