L'uso di questo sito
autorizza anche l'uso dei cookie
necessari al suo funzionamento.
(Altre informazioni)

Tuesday, July 12, 2011

Xen hotplugging of USB devices in passthrough


Xen's management of USB devices in passthrough (especially for HVM guests, such as windows machines) sucks like a tornado. (kvm's does not shine either, for mostly the same reasons). Among other shortcomings, hotplugging does not work: unplug the device, or turn off your printer, and it disappears - for good. Plugging it in/turning it on will not bring it back into your domU.

The situation can be improved upon using udev rules and a script.

Udev file: /etc/udev/rules.d/99-zlocal:

  SUBSYSTEM=="usb", SYSFS{idVendor}=="0951", SYSFS{idProduct}=="1646", \ 
ENV{idDomU}="mosaico", ENV{idVendor}="0951", ENV{idProduct}="1646",\
RUN+="/usr/local/bin/xen-usb-hotplug mosaico 0951 1646"

(Translation:
if subsystem is usb, vendor 0951 and product 1646 - this numbers can be found with lsusb - put some stuff in the environment and insert a program in the run chain for this event)

The program goes like this::



#!/bin/bash

PROMPT="xen-usb-hotplug(ORION):"
XM=/usr/sbin/xm
logger "${PROMPT} HOTPLUGGING"
logger "${PROMPT} started with environment: $(env)"
DOMU=$1
VENDOR=$2
PRODUCT=$3
#if CLI parameters are unavailable, try to use environment

[[ x${DOMU:=$idDomU} == x ]] && { logger -p user.error "${PROMPT} DOMU is not set"; exit 0 ; }
[[ x${VENDOR:=$idVendor} == x ]] && { logger -p user.error "${PROMPT} VENDOR is not set"; exit 0 ; }
[[ x${PRODUCT:=$idProduct} == x ]] && { logger -p user.error "${PROMPT} PRODUCT is not set"; exit 0 ; }
if [[ x$ACTION != xadd ]]; then
logger "${PROMPT} ${XM} usb-del $DOMU host:${VENDOR}:${PRODUCT}"
${XM} usb-del $DOMU host:${VENDOR}:${PRODUCT}
else
logger "${PROMPT} ${XM} usb-add $DOMU host:${VENDOR}:${PRODUCT}"
${XM} usb-add $DOMU host:${VENDOR}:${PRODUCT}
fi


This sets some service variables, grabs parameters from the CLI, and - if action equals "add", uses "xm usb-add" to stuff the device in the approrpiate domU.
Note that the "remove" part is purely ornamental, because - when unplugged - the device has different information, and the rule is not triggered.
Also note that, to be complete, one would need to discriminate among devices with same vendor and prodID. This is left as an exercise to the reader.

Note: I owe part of what above (essentially the idea of using udev to run a script on usb insertion) to a - since disappeared - blog note by Lorenzo Simionato.

Thursday, June 16, 2011

Brunetta e un po' di igiene semantica

Siccome mi ostino a pensare che anche le parole abbiano un loro peso, ho messo un commento al post del ministro Renato Brunetta sull' "italia peggiore" :


"Buongiorno.


Dr. Brunetta, vorrei sapere cosa significa in concreto "Usare la rete come un manganello per agguati squadristici". Da ieri gliel'ho sentita ripetere diverse volte, ma mi pare che sia esclusivamente un espediente retorico volto a cercare di fare lo sgambetto al cosiddetto web-attivismo.


I manganelli e gli squadristi fanno morti e feriti. L'unica cosa che questo episodio ha transitoriamente ammaccato è la Sua immagine pubblica, e non avrebbe fatto nemmeno quello, se Lei avesse evitato di pronunciare la frase che, di fatto ha pronunciato. (Ci sarebbe stato un video intitolato "Brunetta non risponde etc.", e video così, ce ne sono tanti).


Tuttavia, non pronunciare frasi improvvide e gestire al meglio la propria immagine pubblica sono importanti componenti del mestiere di un politico. Così come lo sono il saper rispondere a domande scomode, anche in poco tempo e sotto pressione, e l'accettare di essere - anche duramente - contestati. O così almeno dovrebbe essere, visto che noto in tanti personaggi pubblici una crescente intolleranza alle platee critiche. Posso capire che le claque siano più gratificanti delle contestazioni, però sono anche associate a regimi che non vengono normalmente chiamati democratici.


Cordialmente,
Alessandro Forghieri
"

Wednesday, May 25, 2011

Fenomenologia di Jane Austen

Questo:

"It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife." - Jane Austen, Pride and Prejudice.

("E' un fatto universalmente riconosciuto che uno scapolo dotato di un buon patrimonio ha bisogno di una moglie")

è il passaggio "più pubblicamente sottolineato" dai possessori di Kindle. Mi chiedo se c'è una morale che mi sfugge (oltre a quella ovvia, che uno scapolo ricco è attraente oggi come ai tempi di Jane Austen)

Thursday, April 28, 2011

Non dire

"Non dire con dolore: non ci sono più, ma con riconoscenza: ci sono stati"

Riccardo Negrinelli, in memoria.





Uno sguardo al cielo


Volgendo lo sguardo a est
La luna a metà appare
Bianca di luce riflessa
Rischiara le tegole brune
Lo spazio di uno guardo accanto
Brilla di luce propria
Cintura su un tetto
Spettacolo del creato
Che ricolma lo sguardo mio



Wednesday, March 16, 2011

Ma conviene?

Da: Scienza in Rete

Nel migliore dei casi, smantellare una centrale costa (per un reattore raffreddato ad acqua da 1000 MW) circa 400 milioni di €, fino ad arrivare a circa 2 miliardi di € per i reattori inglesi raffreddati a gas. Per citare Maugeri [4], “La sottovalutazione iniziale e in itinere delle spese è stata talmente abnorme da sollevare problemi per la fiscalità di interi paesi al momento in cui, per esempio, è stata valutata la possibilità di privatizzare imprese pubbliche operanti nel nucleare, come è accaduto in Gran Bretagna e in Francia. Così, per esempio, nel 2001 la British Nuclear Fuels Limited (posseduta dallo Stato) aveva accumulato 38 miliardi di € di costi da sostenere, in gran parte dovuti a oneri di smantellamento dei suoi impianti di riprocessamento nucleare”.

Calculemus

Sento dire (e per pura carità di patria, lasciamo stare da chi):

"Smettere di fare centrali per via di Fukushima sarebbe come smettere di fare ponti tutte le volte che cade un ponte."

Nessuno di costoro ha ancora tentato di confrontare, in termini di danni, i costi di un crollo di un ponte con quello di contaminare per miglialia di anni un'area urbana abitata da 13 milioni di persone - diciamo i costi, umani e no, di evacuare per i prossimi 10,000 anni la prefettura di Tokyo dopo averla seppellita sotto una colata di cemento. (I numeri, si sa, sono scomodi).

Il primo evento è abbastanza frequente, i danni circoscritti. Il secondo rischio - dati alla mano e su base mondiale - è abbastanza raro - ma tende a presentarsi circa ogni 30 anni (Chernobyl, Fukushima). Facciamo una botta di conti?

Se pero' questo tipo di ragionamento e' ostico, vogliamo dedicare un attimo di attenzione al noto e irrazionale fazioso, nonché premio Nobel per la fisica Carlo Rubbia, che dichiarò in tempi non sospetti - e ha ripetuto in questi giorni, che il nucleare (anche di ennesima generazione) è una battagli di retroguardia, soprattutto se intrapresa oggi per coprire il 4% del nostro fabbisogno energetico fra 10 anni?

Bash script profiler

Sysadmins do not die - they just logoff.

Let's keep old tools alive.


#! /bin/bash
#
# shprof - a line profiler for shell scripts
# Usage:
# shprof.sh
# Executes and counts how many times each line is executed.
# converted and sparsely tested by Alessandro Forghieri ( alf (at) orion (dot) it) from:
# http://dev.gentoo.org/~dberkholz/scripts/shprof
# -- which did not really work and in turn claimed to come from:
# http://www.math.ias.edu/doc/bash-3.0/scripts.v2/shprof (which now 404's)
#
#
# That was in turn adapted from a similar program included in `The New KornShell' by
# Bolsky and Korn and posted to usenet by bsh20858@challenger.fhda.edu
#
# converted to bash v2 syntax by Chet Ramey
#
TMPFILE=${TMP:-/tmp}/shprof$$

trap 'rm -f $TMPFILE' EXIT

errexit()
{
echo $0: "$@" >&2
exit 1
}

# create script with profiling enabled
cat > $TMPFILE <<- \_EOF_
declare -a _line
_profend()
{
case "$1" in
/*|./*) file="$1" ;;
*) file=$(type -path "$1") ;;
esac

echo "*** line profile for $file ***"
i=1;
while read -r && [ $i -le $NLINE ]; do
count=${_line[$i]}
if [ "$count" -gt 0 ]; then
echo "[$count] $i: $REPLY"
fi
i=$((i + 1))
done <$file
_EOF_
# make the profiling script remove itself after printing line stats
echo "rm -f $TMPFILE" >> $TMPFILE
cat >> $TMPFILE <<- \_EOF_
}
_command=$1
shift
i=1
NLINE=$(wc -l < "$_command")
while [ $i -le $NLINE ]; do
_line[$i]=0
i=$((i + 1))
done
unset i
trap "_profend ${_command}" EXIT
BLN=999999
trap 'LN=$(( $LINENO - $BLN )) ; if [[ $LN -gt 0 ]]; then _line[$LN]=$(( ${_line[$LN]} + 1 )); fi;' DEBUG
BLN=$LINENO
_EOF_

case "$1" in
/*|./*) file=$1 ;;
*) file=$(type -p "$1") ;;
esac

cat "${file-$1}" >> $TMPFILE || errexit "${1}: cannot open"
chmod +x $TMPFILE

exec -a "$file" $TMPFILE "$@"

Tuesday, March 15, 2011

Caro H.G. Wells

Le vere macchine del tempo siamo noi.

"Al lago ho un vicino, uno dei sempre più numerosi pirati dell’etere, che si è fatto installare una parabola. Da noi le parabole sono fuorilegge, perché consentono di captare gratis un centinaio di canali americani a pagamento. Ma lui con un decoder da trenta dollari li becca tutti. Da un certo punto di vista mi trovo in una situazione molto simile: anch’io, nel mio crepuscolo, passo lunghe notti a ricevere dal passato un guazzabuglio di immagini cifrate, ma a differenza del mio vicino non riesco a decodificarle."
da Mordecai Richler "La Versione di Barney"

Thursday, February 3, 2011

Virtualbox and USB on Fedora 14 (FC14)

Briefly: with the indicaetd setup, all the usb devices appear to be unavailable,
as seen in:

$ VboxManage list usbhost

(they are also greyed out in all the pesky dialog boxens).

[...time passes...] Having spent several hours in the fascinating process of pulling hair out of my head, i found that you have to:
  1. add yourself to the vboxusers group that VirtualBOx creates
  2. disregard notices abour mounting usbfs and whatnot (that's for old systems apparently)
  3. run
    $ sg vboxusers VirtualBox
    or
    $ newgrp vboxusers
    $ VirtualBox

It appears that VirtualBox sets everything for the vboxusers group to work, however, it does not bother to newgrp into it. How's that for great fun.