Buffalo LinkStation HD-H160LAN, instalación de aMule

Esto también ha costado lo suyo, pero después de un poco de google y de un mucho de ayuda por parte del foro de aMule, esto es lo que hay que hacer para tener a la mula funcionando en una Buffalo LinkStation HD-H160LAN.

Hay que descargar y descomprimir wxWidgets y aMule


$ wget http://prdownloads.sourceforge.net/wxwindows/wxGTK-2.8.10.tar.gz
$ wget http://download.berlios.de/amule/aMule-2.2.6.tar.bz2

$ tar xvzf wxGTK-2.8.10.tar.gz
$ tar xvjf aMule-2.2.6.tar.bz2

No vamos a usar interfaz gráfica de usuario (GUI) con aMule, así que compilamos wxWidgets sin las dependencias necesarias para GUI. Hay que tener presente que los make pueden tardar bastante tiempo (del orden de horas).

$ ./configure --disable-gui --enable-unicode --without-subdirs --without-expat
$ make

y ahora, como root

# make install
# ldconfig

y ahora compilamos aMule

$ ./configure --disable-monolithic --with-toolkit=base --enable-amule-daemon --enable-amulecmd --enable-webserver
$ make

también como root

# make install

Si aparece este error:

checking for crypto++ version >= 5.1... configure: error:
Could not find cryptopp header file "cryptlib.h".
Please check if the path "/usr" is valid.

tenemos que instalar libcrypto++-dev utilizando aptitude

y si al ejecutar aMule nos da este error

/usr/local/bin$ amuled --ec-config
amuled: error while loading shared libraries: libwx_baseu_net-2.8.so.0: cannot open shared object file: No such file or directory

podemos hacer dos cosas, o bien tecleamos:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:"/usr/local/lib"

o bien añadimos la línea /usr/lib al fichero /etc/ld.so.conf y a continuación ejecutamos

# ldconfig

Ahora queremos que amule se ejecute como un demonio, así que creamos un pequeño script y lo copiamos a /etc/init.d/ y lo configuramos para que se ejecute al arrancar con:

update-rc.d amule defaults

Este es nuestro script amuled

#!/bin/bash
NAME=$(basename "$0")
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/local/bin/amuled
DESC=amuled
USER=paquito #Un usuario que ya haya ejecutado aMule una vez para configurarlo.

test -x "$DAEMON" || exit 0

case "$1" in
 start)
   echo -n "Arrancando $DESC: "
     su "$USER" -c "$(printf "%q -f" "$DAEMON" )"
   echo "$NAME."
   ;;
 stop)
   echo -n "Parando $DESC: "
     killall --quiet "$DAEMON"
   echo "$NAME."
   ;;
 restart|force-reload)
   echo -n "Reniciando $DESC: "
     killall --quiet "$DAEMON"
   sleep 1
     su "$USER" -c "$(printf "%q -f" "$DAEMON" )"
   ;;
*)
 printf "Uso: %q {start|stop|restart|force-reload}\n" "$0" >&2
 exit 1
 ;;
esac

exit 0

Cuando se ha instalado correctamente amule hay que configurar External Connections

amuled --ec-config

Nos pedirá una contraseña y se creará el fichero de configuración de aMule en /home/"mi_usuario"/.aMule/amule.conf en el que habilitamos el amuleweb ([WebServer] Enabled=1), y entre otras opciones, cambiamos los directorios temporales o de descarga.

Hemos copiado los ficheros de configuración, créditos, etc de C:\Users\
"mi_usuario"\AppData\Roaming\aMule a /home/"mi_usuario";/.aMule/ (pero hay que tener cuidado de no sobrescribir amule.conf)

La contraseña para amuleweb se establece con amuleweb --admin-ass=mi_contraseña. Para manejar el aMule utilizaremos el navegador de internet, hay que poner la dirección IP de la LinkStation o su nombre y el puerto 4711 (que se puede cambiar en los ficheros de configuración).





Y eso sería todo, de nuevo, muchas gracias al foro de aMule.org, especialmente a wuischke.

Buffalo LinkStation HD-H160LAN, instalación de Freelink

Tras dejar el portátil más bonito que un San Luis, nos ponemos manos a la obra con nuestro NAS, con más motivo ahora que dicen que se acaba la música.

La Biblia para estas operaciones es http://buffalo.nas-central.org y lo primero que tenemos que tener muy claro es nuestro modelo de LinkStation. Como vimos en la primera entrada acerca del NAS, el nuestro es el LS2, más exactamente HDHLAN MIPSel (LS2)

CPU: 400MHz IDT 79RC32434-400BC with MIPSel CPU core
RAM: 64MB Micron MT 46V32MI6-SBC SDRAM
Flash ROM: 4MB Macronix MX29LV320T. or ST M29W324DB
USB: 2 type A(rear - /dev/usb/lp0, front - /dev/usb/lp1) - NEC D720101GJ
NIC: 10/100Mb Realtek 8201CPPCI ethernet controller
IDE Controller: IT8211 PCI IDE disk controller.
Stock Firmware: 2.x

Para realizar la instalación de FreeLink (un firmware basado en Debian) hemos usado un portátil (nuestro flamante dv5), con Windows y un cable RJ45 (normal, no cruzado) para conectarlo a la LinkStation.

Descargamos FreeLink de http://downloads.nas-central.org/LS2_MIPSel/Distributions/Freelink/, concretamente el fichero freelink_mipsel-hdhlan-060810.zip y lo descomprimimos.



Ahora vamos a flashear la LinkStation, siguiendo estas instrucciones (http://buffalo.nas-central.org/wiki/The_LinkStation_firmware_flasher). Por mucho que se queje Windows, hay que desconectar cualquier firewall que tengamos. No nos gustaría que nuestra LinkStation se convierta en un bonito ladrillo. Conectamos la LinkStation y el portátil con el cable de red y ejecutamos el fichero HD-HLAN FWUpdater.exe, y debería mostrarnos esta pantalla:



Nos aseguramos de que está todo bien conectado, de que no hay firewalls de Windows que puedan cortar la comunicación en un momento dado y pulsamos Renew Firmware.



Nos pide la contraseña de Administrador para comenzar, si no hemos tocado previamente la LinkStation, la contraseña de Administrador por defecto está vacía así que basta con pulsar OK.

Ahora irán saliendo pantallas con una barrita verde, hay que tener paciencia y no tocar nada. Iba a haber cronometrado el proceso, pero me encontré con está última pantalla y apareció el miedo...



No pasa nada, no hay que dejarse llevar por el pánico, cosa que yo no hice. Después de documentarse un poco vemos que la LinkStation con su nuevo FirmWare tiene la IP 192.168.11.150, así que editamos las propiedades del adaptador de red del portátil y le ponemos una dirección IP del mismo rango, por ejemplo 192.168.11.151 y utilizando un programa que se llama PuTTY nos conectamos a la LinkStation, usuario root, contraseña freelink.



No pueden Vds imaginarse el alivio que uno siente cuando estas cosas funcionan.

Antes de debianizar el sistema hay que hacer alguna modificación debido a que usamos IPs fijas en nuestra red. Hay que editar los ficheros /etc/network/interfaces (para IP, gateway, etc) y /etc/resolv.conf (para los DNS).

Es conveniente cambiar la contraseña de root:

# passwd

Para reiniciar la LinkStation usamos el comando

# shutdown -r now

Volvemos a conectarnos a través de PuTTy, antes de actualizar el sistema hay que tener en cuenta que hemos instalado Sarge, (Debian 3.01) y que el núcleo que tenemos es el 2.4.20. La última versión estable es Lenny (Debian 5.03) y ésta sólo arranca con versiones de núcleo 2.6.x, así que tenemos que editar nuestros repositorios,

# vi /etc/apt/sources.list

y a falta de documentarnos mejor hay que añadir esta línea

deb http://archive.debian.org/debian/dists/sarge/ stable main contrib non-free

Guardamos y cerramos, y para que no os pase como a mi y se os llene la partición hda1, vamos a mover algunos directorios a hda3. Hemos seguido estas indicaciones: http://buffalo.nas-central.org/wiki/Freeing_up_space_on_hda1

Vamos a mover /home y /usr y dejar enlaces en /

# DIR="$(mount | grep hda3 | awk '{print $3}')"
# cp -Rdp /home ${DIR}
# rm -R /home
# ln -s ${DIR}/home /home

# DIR="$(mount | grep hda3 | awk '{print $3}')"
# cp -Rdp /usr ${DIR}
# rm -R /usr
# ln -s ${DIR}/usr /usr

Ahora podemos usar aptitude sin peligro

root@LINKSTATION:/etc/apt# aptitude update
Reading Package Lists... Done
Building Dependency Tree
Initializing package states... Done
Reading task descriptions... Done
Get:1 http://archive.debian.org sarge/main Packages [4353kB]
Get:2 http://archive.debian.org sarge/main Release [100B]
Get:3 http://archive.debian.org sarge/contrib Packages [59.6kB]
Get:4 http://archive.debian.org sarge/contrib Release [103B]
Get:5 http://archive.debian.org sarge/non-free Packages [43.6kB]
Get:6 http://archive.debian.org sarge/non-free Release [104B]
Fetched 4457kB in 48s (91.7kB/s)
Reading Package Lists... Done
Building Dependency Tree
Initializing package states... Done
Reading task descriptions... Done

root@LINKSTATION:/etc/apt# aptitude upgrade
Reading Package Lists... Done
Building Dependency Tree
Initializing package states... Done
Reading task descriptions... Done
The following packages will be upgraded:
base-config bsdutils dhcp-client gzip info libc6 libc6-dev libgcc1
libgnutls11 libpcre3 libperl5.8 libssl0.9.7 login man-db mount passwd
perl-base ppp ssh tar unzip util-linux
22 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 14.2MB of archives. After unpacking 156kB will be used.
Do you want to continue? [Y/n/?] Y


Y siempre que terminemos de usar aptitude (o apt-get), hay que usar

# aptitude autoclean
# aptitude clean

para eliminar los paquetes que hemos descargado (y que ya no nos hacen falta porque se han instalado). Ahora seguimos con esta guía: http://buffalo.nas-central.org/wiki/Freelink_-_Convert_the_LinkStation_into_a_Full-fledged_Debian_Linux_Server (podemos irnos directamente al punto 11)

Debian, Wi-Fi

Esta ha sido, hasta el momento, la parte que más ha costado. Desde aquí quiero dar las gracias a la gente de esdebian.org y de LinuxQuestions.org por su ayuda.

La solución está en este enlace: http://wiki.debian.org/wl.

El modelo de chip se puede comprobar con:

# lspci -vnn | grep 14e4

02:00.0 Network controller [0280]: Broadcom Corporation BCM4312 802.11b/g [14e4:4315] (rev 01)

que de acuerdo con linuxwireless.org, se corresponde con BCM4312 802.11b/g - low power.

Así que nos ponermos manos a la obra, recordemos que nuestro repositorio tiene la rama non-free añadida.

# aptitude update
# aptitude install build-essential debhelper module-assistant quilt wireless-tools

Bajamos a mano los paquetes broadcom-sta-common_* y broadcom-sta-source* de http://ftp.us.debian.org/debian/pool/non-free/b/broadcom-sta/

$ wget http://ftp.us.debian.org/debian/pool/non-free/b/broadcom-sta/broadcom-sta-source_5.10.91.9.3-1_all.deb
$ wget http://ftp.us.debian.org/debian/pool/non-free/b/broadcom-sta/broadcom-sta-common_5.10.91.9.3-1_all.deb

Utilizando el usuario administrador instalamos los paquetes:

$ su
# dpkg -i broadcom-sta-*deb

Construimos los módulos, m-a es module assistant, si no lo tenemos lo podemos instalar con aptitude, como casi siempre.

# m-a a-i broadcom-sta

Cargamos el módulo wl

# modprobe wl

Y ahora comprobamos si la interfaz inalámbrica está disponible

# iwconfig

lo        no wireless extensions.

eth0      no wireless extensions.

eth2      IEEE 802.11bg  ESSID:"OpenWrt"  Nickname:""
      Mode:Managed  Frequency:2.447 GHz  Access Point: 00:18:84:10:35:D1
      Bit Rate=54 Mb/s   Tx-Power:32 dBm
      Retry min limit:7   RTS thr:off   Fragment thr:off
      Power Managementmode:All packets received
      Link Quality=5/5  Signal level=-36 dBm  Noise level=-77 dBm
      Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
      Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Ya tenemos Wi-Fi. Ahora necesitamos un gestor para que nos sea más cómodo configurar las conexiones (también las que usan cable). Vamos a utilizar wicd.

Wicd no se encuentra en los repositorios de Lenny (recordad que estamos usando la última versión estable de Debian) así que añadimos esta línea a nuestro fichero /etc/apt/sources.list:

deb http://apt.wicd.net lenny extras

y después

# aptitude update

# aptitude install wicd

En caso de que tengamos instalado el paquete network-manager-gnome se lo llevará por delante.

Por último, para tener un icono en la barra de tareas vamos a crear un ficherito que dejaremos en nuestro home, en .kde/Autostart, y que no se nos olvide darle permisos de ejecución:

#!/bin/bash
sleep 10 && wicd-client;

Y este es el resultado:


Actualización 18 de septiembre de 2010: Parece ser que en squezee, wicd estará en los repositorios de debian y se podrá instalar con aptitude.

Conky

Conky es un programa de monitorización que puede mostrarnos información sobre prácticamente cualquier componente de nuestro equipo, tanto hard como soft. Podemos ver desde los procesos que más consumen hasta la temperatura de los discos duros pasando por el ancho de banda que estamos ocupando. Todo esto se maneja desde el fichero de configuración, que se sitúa en nuestro directorio home (/home/paquito) y que se llama .conkyrc. Lo más normal es que no lo veais, porque todos los ficheros cuyo nombre empieza con un . están ocultos. Conky se instala con el procedimiento habitual, es decir:

# aptitude install conky

Y este es mi .conkyrc

# THIS CONFIG RELIES ON 2 SCRIPTS, CPUSPEED AND CPUTEMP
# YOUR SYSTEM MAY NOT REQUIRE THEM, REPLACE AS DESIRED

# maintain spacing between certain elements
use_spacer yes

# set to yes if you want tormo to be forked in the background

background yes
use_xft yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono-7
#xftfont Andale Mono-9
#xftfont Clean-8
#xftfont cubicfive10:pixelsize=8
#xftfont squaredance10:pixelsize=14
#xftfont swf!t_v02:pixelsize=10

# Text alpha when using Xft
xftalpha 1
mail_spool $MAIL

# Update interval in seconds
update_interval 10.0

# Create own window instead of using desktop (required in nautilus)
own_window no
# own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
# own_window_type normal

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer no

# Minimum size of text area
minimum_size 280 5

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# amplifies text

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 0

# border margins
border_margin 9

# border width
border_width 1

# Default colors and also border colors, grey90 == #e5e5e5
default_color grey90
default_shade_color black
default_outline_color DarkGrey

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text
gap_x 24
gap_y 24

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# stuff after 'TEXT' will be formatted on screen
# ${color #98c2c7}Batt:$color   ${battery}
# Temperatura micro, necesita el script Cputemp
# ${execi 5 cputemp}°C
# Velocidad micro, necesita el script Cpuspeed
# ${color #ffff00}PROCESSING$color
#  ${color #98c2c7}CPU:$color ${execi 5 cpuspeed}MHz $cpu%
# Networking
# ${color #98c2c7}Upload:$color ${upspeed eth0}kb/s
# ${color #98c2c7}Download:$color ${downspeed eth0}kb/s
# ${color #98c2c7}NAME             PID       CPU%      MEM%
#    ${color #f8f8ff}${top_mem name 1} ${top_mem pid 1}   ${top_mem cpu 1}    ${top_mem mem 1}
#    ${color #f5f5f5}${top_mem name 2} ${top_mem pid 2}   ${top_mem cpu 2}    ${top_mem mem 2}
#    ${color #dcdcdc}${top_mem name 3} ${top_mem pid 3}   ${top_mem cpu 3}    ${top_mem mem 3}
#    ${color #c0c0c0}${top_mem name 4} ${top_mem pid 4}   ${top_mem cpu 4}    ${top_mem mem 4}
# Mis lineas para un segundo disco duro
# ${color #98c2c7}hdb:$color ${fs_free_perc /mnt/hdb1}% - ${fs_free /mnt/hdb1} - ${execi 300 nc localhost 7634 | cut -c 51-52}�C
# ${color #ffd700}${fs_bar 6 /mnt/hdb1}$color

TEXT
${color #ffff00}$nodename$color ${color #828282}$sysname $kernel on $machine$color

${color #ffff00}PROCESSING$color
   ${color #98c2c7}CPU:$color $cpu%
   ${color #ffd700}$cpubar
   ${color #ffd700}${cpugraph #ffa500 a3a3a3}
   ${color #98c2c7}RAM:$color $memperc%
   ${color #ffd700}${membar 6}${color}

   ${color #98c2c7}NAME             PID       CPU%      MEM%
   ${color #f8f8ff}${top name 1} ${top pid 1}   ${top cpu 1}    ${top mem 1}
   ${color #f5f5f5}${top name 2} ${top pid 2}   ${top cpu 2}    ${top mem 2}
   ${color #dcdcdc}${top name 3} ${top pid 3}   ${top cpu 3}    ${top mem 3}
   ${color #c0c0c0}${top name 4} ${top pid 4}   ${top cpu 4}    ${top mem 4}

${color #ffff00}DATA$color

   ${color #98c2c7}hda:$color ${fs_free_perc /}% - $fs_free - ${execi 300 nc localhost 7634 | cut -c 26-27}ºC
   ${color #ffd700}${fs_bar 6 /}$color  
   ${color #98c2c7}Swap:$color $swapperc%
   ${color #ffd700}${swapbar 6}$color

${color #ffff00}NETWORKING$color
   ${color #98c2c7}Down:${color #f5f5f5} ${downspeed eth0} k/s ${color #98c2c7}Up:${color #f5f5f5} ${upspeed eth0} k/s
   ${color #006400}${downspeedgraph eth0 32,150 7cfc00 006400} $alignr ${color #8b0000}${upspeedgraph eth0 32,150 ff0000 8b0000}


y así es como queda



Por último, para que conky arranque con KDE hay que dejar este pequeño script (con el nombre que queramos) en /home/paquito/.kde/Autostart

#!/bin/bash
sleep 15 && conky;

Debian, aceleración nVidia

La instalación de Debian y KDE ha reconocido la tarjeta de vídeo y hace uso de la máxima resolución que ofrece nuestro equipo (la pantalla es WXGA y proporciona 1280 x 800 píxeles). Para utilizar la aceleración gráfica de nVidia hay un tutorial estupendo en esdebian.

Hemos optado por instalar el driver privativo de nVidia mediante module-assistant. Siguiendo el punto 2.3.1 del enlace anterior todo va como la seda y al reiniciar el equipo, veremos un enorme logo de nVidia al arrancar el equipo. Para confirmar que tenemos aceleración 3D hay dos formas, desde consola con el comando glxinfo




y nos fijamos en la línea que dice direct rendering, o bien ejecutando desde KDE (botón KDE, ejecutar orden) glxgears



y si salen unos bonitos engranajes girando, todo está correcto.