Lineak on Dell Inspiron 5100
Publicado por Miguel Ángel a las 19:11
Archivado en: Programación, Cacharreo, Software Libre, Linux, Hardware, Geek.
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.



Manuel Gonzalez a las 00:01 del 10 de Abril de 2006.
Te felicito, no se desde cuando tendras este programa pero te da la idea de entrnder otros que hacen lo mismo.Es un honor que pueda uno comunicarse con gente preparada en esto del software.
miguev a las 09:38 del 10 de Abril de 2006.
Gracias, un honor recibirte aqui