Que bueno es estar de vacaciones, solito en casa con mi hermana. Despertarse a las 11 y pico, hacerme un té y olvidármelo en la cocina mientas leo el correo, acordarme de él y traerlo junto con el paquete de cereales a mi mesa, y desayunar frente al portátil… que pena que la semana que viene se termina el chollo, pero aún me quedan dos días más de disfrute :-)

Esta tarde salgo de paseo, llevo desde el domingo que volví de la Ficit 2003? sin pisar la calle, creo que ni siquiera me he asomado por la ventana. Pero esta tarde tengo que salir, tengo el disco duro muy lleno con un par de backups de 2.5G y tengo que meter eso en CDs, pero ¿cómo?… jeje, pues con un scriptcito que me hice para dividir ficheros en partes con dd, partes que luego se pueden juntar de nuevo con cat. ¿Te gusta?, pues aquí lo tienes:

#!/bin/sh
#
# Script para dividir un fichero grande en
# partes pequeñas. Está pensado para meter
# backups gordos (un par de gigas) en CDs
# de 600 a 700 MBs.
#
# Miguel Ángel Vilela, Agosto 2003

bs=1024

if [ $# != 2 ]
then
        echo Uso: $0 file size, where size is in block of $bs size
        exit 1
fi

file=$1
size=$(($2*$bs))
fsize=$(ls -l $file | awk '{print $5}')
n=$((1+$fsize/$size))

echo El fichero $file tiene $fsize bytes
echo Cada parte tendrá $size bytes
echo Se descompondrá el fichero en $n partes

for i in `seq 1 $n`
do
        ofile=$file.part$i
        start=$((($i-1)*($size/$bs)))
        end=$(($i*($size/$bs)))
        if [ 1 == $(($end > $fsize)) ]
        then
                end=$fsize
        fi
        psize=$(($end-$start))
        echo Escribiendo parte $i:
        dd if=$file of=$ofile bs=$bs skip=$start count=$(($end-$start))
        echo Terminado
done

Como siempre este script es libre, haz con él lo que te dé la gana, menos poner mi código a tu nombre o tu código a mi nombre. Esto tenía que ponerlo en el día de ayer, pero ya me pareció bastante completito con lo del ACPI en el DELL Inspiron 5100. Además hice otra cosa ayer que me gustó bastante, relacionada con el portátil.

Resulta que los DELL Inspiron no tienen un control de volumen por hardware como el que tenía mi viejo IBM Thinkpad 390, sino que tienes que usar las teclas RePag, AvPag y Fin en combinación con la tecla Fn. Estas teclas normalmente son ignoradas en Linux, el kernel dice lo típico de unknown scancode pero no hace nada. Supuestamente el paquete i8kutils escucha estas teclas, pero con la BIOS de este modelo no funciona.

Primero probé con hotkeys pero no me dejaba redefinir los comandos de control de volumen (me dejaba, pero no me hacía caso) así que seguí buscando y encontré lineakd. El paquete lineakd está en Debian SID, junto con lineakconfig y klineakconfig (configuradores gráficos). Realmente es sencillo de configurar: ejecutar lineakd -c DI8K y editar el fichero $(HOME)/.lineak/lineakd.conf para poner estas líneas:


KeyboardType = DI8K
CdromDevice = /dev/cdrom
MixerDevice = /dev/mixer
Mute = mute
VolumeDown = aumix -w -5 -v -5
VolumeUp = aumix -w +5 -v +5

El comando mute es un script que posiblemente tengas que modificar, ya que este script el silenciado se hace con aumix -v 0 y eso sólo afecta a los altavoces integrados. Si quieres que se silencie también la salida de auriculares (yo la uso para altavoces, por lo que me interersa controlarla) cambia aumix -S -v 0 por aumix -S -v 0 -w 0 en /usr/bin/mute

Con esto ya tienes control del volumen, pero aún hay más ;-)

La tecla En Espera es pulsar Fn=+=Esc y tiene el código 223, la tecla de propiedades es la que está encima de Inicio y tiene el código 117, y el botón pequeño que hay a la derecha del botón de power, ese que tiene una i, tiene el código 129 que está asignado en la configuración a la acción Play. Para este último añade la línea correspondiente en $(HOME)/.lineak/lineakd.conf pero para las teclas En Espera y la de propiedades necesitas además editar /etc/lineakkb.def y añadir las líneas para estas teclas dentro de la configuración del teclado DI8K:

[DI8K]
   brandname = "Laptop/notebook"
   modelname = "Dell Inspiron 8xxx"
   [KEYS]
     Play                       = 129
     Previous                   = 131
     Next                       = 132
     Stop                       = 130
     VolumeUp                   = 176
     VolumeDown                 = 174
     Mute                       = 160
     Suspend                    = 223
     Properties                 = 117
   [END KEYS]
[END DI8K]

Ahora me queda averiguar si con este bicho se puede hacer el suspend por software, pero ahora no que ya llevo todo el día pegado al teclado. Ahora me largo a dar un paseo con mi hermana, que llevo tres días sin pisar la calle.