{title}
{published}
{createImage(thumbnails[0].url,thumbnails[0].width,thumbnails[0].height)}
{youtube(link)}
{user.nickname}, liked this
{body}
{createImage(avatar,64,64,null,nick,nick)}
{nick}
{createImage(avatar,null,null,null,nick,nick)}
{nick}
friendfeed google profile facebook profile blogger profile linkedin profile last fm profile home
{description}



 
{youtube(path)}
Visualizzazione post con etichetta ubuntu. Mostra tutti i post
Visualizzazione post con etichetta ubuntu. Mostra tutti i post

Se usate Ubuntu e avete una scheda grafica intel, passando da Intrepid Ibex (Ubuntu 8.10) a Jaunty Jakalope (Ubuntu 9.04) potreste avere un'amara sorpresa come quella che ho avuto io:
compiz disabilitato e interfaccia grafica leeeeeeentaaaaaaa... o quantomeno più lenta del solito.



A quanto ho capito girando sui forum di ubuntu la soluzione definitiva non arriverà presto tramite un semplice update del sistema, ma fortunatamente ci sono almeno 5 vie che potete provare per riportare alla "normalità" il vostro ambiente.

Come verificare se in un modo piuttosto che nell'altro le prestazioni migliorano (si, a parte i vostri occhi)? Sempre grazie ai forum ho scoperto che PlanetPenguin Racer ha una comoda opzione che permette di vedere a quanti FPS sta girando il gioco ( configuration -> graphics -> show FPS ). Questo sarà il vostro termometro (ovviamente + FPS meglio è). Il gioco è nei repository di ubuntu.


Ed ecco i 5 metodi in questione, ovviamente non mi metto a riportare tutte le soluzioni, mi limito a linkarvele:
  1. Usare "greedy" migration heuristic (è il punto 1 della lista). 
  2. Usare AccelMethod UXA
  3. Usare i vecchi driver
  4. Usare un nuovo kernel e driver differenti
  5. Usare i prossimi driver + UXA

Con la mia scheda grafica ha funzionato il metodo 4, i metodi 1 3 e 5 non hanno sortito alcun effetto mentre col metodo 2 ho ottenuto solo uno schermo nero...

Questo è il mio hardware (ottenuto tramite un "lspci -nn | grep VGA"):
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller [8086:2a02] (rev 0c)
 
Se a questo punto ancora siete a piedi leggetevi con molta pazienza i thread dei metodi 4 e 5 (si, son tante pagine), magari troverete qualche consiglio adatto alla vostra scheda.

Invece se la fluidità è ristabilita ma compiz è ancora disabilitato (com'è successo a me) possibilmente il problema è che la vostra scheda grafica è finita nella blacklist di compiz. Per accertarvene chiamate semplicemente compiz da terminale e osservatene l'output. Se c'ho preso è sufficiente dire a compiz di ignorare la blacklist per farlo partire. Ovviamente non è garantito che funzioni, a me è andata bene.
Per disabilitare il check della blacklist aprite il file /etc/xdg/compiz/compiz-manager e aggiungete in fondo un riga contenente SKIP_CHECKS=yes. La blacklist è visionabile online.


A questo punto, a seconda della via intrapresa il vostro sistema sarà più o meno stabile. Io ieri ho avuto un solo freeze completo mentre ero con le mani in pasta nelle varie modifiche, spero non me ne ricapitino. In ogni caso tenere d'occhio i thread linkati, può essere utile a sapere quando la soluzione definitiva sarà disponibile.
Ovviamente il consiglio per i possessori di scheda video intel non ancora aggiornati a Jaunty è quello di tenersi stretto Intrepid per ora.


Io nonostante avessi letto l'avviso nelle release notes ho voluto provare e me ne sono pentito... fino a quando non ho risolto ovviamente :D

 

Stavo cercando un software per il mio nokia che facesse partire il lettore musicale automaticamente all'aggancio con le mie cuffie o il mio stereo bluetooth.

Beh non l'ho trovato, in compenso ho trovato questo script che permette di bloccare e sbloccare il mio ubuntu a seconda della distanza del mio cellulare. Non c'entra nulla, ma è utile lo stesso :)

Lo script così com'era non mi soddisfaceva così ho deciso di dargli un ritocco: il mio primo ritocco a uno script bash!

Le differenze con lo script originale:

  • Lo script "attiva" l'algoritmo di lock-unlock solo dopo la prima connessione, in questo modo accendendo il pc senza il cellulare vicino non ci si trova subito lockati.
  • Ho aggiunto 2 chiamate a festival in modo che il pc mi accolga e mi saluti parlando (ovviamente richiede festival ).
  • Siccome davanti al pc ho sempre la musica accesa ho aggiunto una chiamata al tasto multimediale play/pause al blocco e allo sblocco (richiede xte dal pacchetto xautomation). NB Teoricamente può dare dei problemi se il player è in pausa mentre ci si allontana, ma sperimentalmente sembrerebbe non darne.
  • Ho rimosso il dialog che usciva allo sblocco del pc.
  • Ho aggiunto un po' di permissività, a volte la connessione a me fallisce anche se telefono e pc sono appiccicati, per cui blocco il pc solo dopo N tentativi falliti.
  • Ho rimosso FAR_CMD e NEAR_CMD in favore di due funzioni far_execution e near_execution, qui è dove ho aggiunto il play/pause e la chiamata a festival. Dovrebbe essere facile ritoccare i metodi in base ai propri gusti.
  • Ho dato un tocco di refactoring...gusti personali :)
Ho aggiunto un singolo parametro di configurazione ( FAILURES_THRESHOLD ) per impostare il numero di tentativi falliti prima di bloccare il pc.

Eccoci finalmente allo script:

#!/bin/bash
#set -o verbose sh -v
# Copied from Steven on http://gentoo-wiki.com/Talk:TIP_Bluetooth_Proximity_Monitor
# Modified By Jamie Paton
# Modified By Michele Marcucci http://www.michelem.org
# Modified By Mone http://www.simonefabiano.com

# These are the sections you'll need to edit

# You'll need to use the MAC address of your phone here
# Use "hcitool scan" to find the MAC of your device
DEVICE="00:00:00:00:00:00"

# How often to check the distance between phone and computer in seconds
CHECK_INTERVAL=5

# The RSSI threshold at which a phone is considered far or near
THRESHOLD=-8

# Number of failed connections before declaring the device "far"
FAILURES_THRESHOLD=2

# The commands to run when your phone gets too far away
function far_execution {
#click the play/pause button
xte "key XF86AudioPlay" > /dev/null 2>&1

#tell me bye bye
festival -b "(SayText \"bye bye master\")" > /dev/null 2>&1

#lock the pc
/usr/bin/gnome-screensaver-command --activate -l > /dev/null 2>&1
}

# The command to run when your phone is close again
function near_execution {
#show the login window
#/opt/gnome/bin/gnome-screensaver-command --poke > /dev/null 2>&1

#unlock the pc
/usr/bin/gnome-screensaver-command --deactivate > /dev/null 2>&1

#tell me welcome
festival -b "(SayText \"Welcome back master\")" > /dev/null 2>&1

#click the play/pause button
xte "key XF86AudioPlay" > /dev/null 2>&1
}



HCITOOL="sudo /usr/bin/hcitool"
DEBUG="/tmp/btproximity.log"

connected=0
state="near"
failures=0



function msg {
echo "$1" >> "$DEBUG"
# Uncomment line below if you want debug on console too instead only to file $DEBUG
#echo "$1"
}

function check_connection {
connected=0;
found=0
for s in `$HCITOOL con`; do
if [[ "$s" == "$DEVICE" ]]; then
found=1;
fi
done
if [[ $found == 1 ]]; then
connected=1;
else
msg 'Attempting connection...'
if [ -z "`$HCITOOL cc $DEVICE 2>&1`" ]; then
msg 'Connected'
connected=1;
else
if [ -z "`l2ping -c 1 -t 2 -i $DEVICE 2>&1`" ]; then
if [ -z "`$HCITOOL cc $DEVICE 2>&1`" ]; then
msg 'Ping is good!'
connected=1;
else
msg "ERROR: Could not connect to device $DEVICE."
connected=0;
fi
fi
fi
fi
}

function is_far {
if [[ "$state" == "near" ]]; then
let "failures += 1"
msg "*** Device \"$name\" [$DEVICE] has left proximity, failures = $failures"
if [[ $failures -ge FAILURES_THRESHOLD ]]; then
#i had problems because sometimes the connection fails even if the mobile is near. Let the connection fail more times before declaring the mobile as "far"
state="far"
far_execution
fi
fi
}

function is_near {
#reset the number of failures
failures=0
if [[ "$state" == "far" ]]; then
msg "*** Device \"$name\" [$DEVICE] is within proximity"
state="near"
near_execution
fi
}


#don't start the lock-unlock mechanism until we don't connect for the first time
while [[ $connected -eq 0 ]]; do
msg "init loop"
check_connection
sleep $CHECK_INTERVAL
done

#TODO why doesn't always work?
name=`$HCITOOL name $DEVICE`

msg "Monitoring proximity of \"$name\" [$DEVICE]";

while /bin/true; do
msg "execution loop"
check_connection

if [[ $connected -eq 1 ]]; then
#we're connected
rssi=$($HCITOOL rssi $DEVICE | sed -e 's/RSSI return value: //g')

if [[ $rssi -le $THRESHOLD ]]; then
#we're connected but far
is_far
else
#we're connected and near
is_near
fi
msg "state = $state, RSSI = $rssi"
else
#we're no more connected
is_far
msg "not connected"
fi
sleep $CHECK_INTERVAL
done




PS: come detto è la prima volta che ritocco uno script bash e non mi son messo a studiare prima di lavorare per cui potrei avere fatto c*****e... nel caso ne vedeste fatemi un fischio (cmq funziona...)