Router casero con Debian en el fit-PC 1.0
El fit-PC es un computador basado en el chip Geode con un tamaño realmente pequeño (12×12×4 cm) pero con características muy interesantes. Esta receta explica como instalar Debian para sacarle el máximo rendimiento al pequeño de la casa.
Características
Como puedes ver en las especificaciones de fit-PC 1.0 tiene:
- Procesador Geode LX800 (CS5536) a 500 MHz
- Tarjeta de vídeo Geode LX con una resolución máxima de 1920×1440 (conector VGA DB-15)
- 256 MiB de RAM DDR 333MHz
- 60 GB (IDE de 2,5")
- 2 x RJ45 Ethernet 100Mbps
- 2 x USB 2.0
- 1 x RJ11 RS-232
- Tarjeta de sonido con entrada y salida
Esto es lo que dice lspci
:
# lspci
00:01.0 Host bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] Host Bridge (rev 33)
00:01.1 VGA compatible controller: Advanced Micro Devices [AMD] Geode LX Video
00:01.2 Entertainment encryption device: Advanced Micro Devices [AMD] Geode LX AES Security Block
00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:0f.0 ISA bridge: Advanced Micro Devices [AMD] CS5536 [Geode companion] ISA (rev 03)
00:0f.2 IDE interface: Advanced Micro Devices [AMD] CS5536 [Geode companion] IDE (rev 01)
00:0f.3 Multimedia audio controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] Audio (rev 01)
00:0f.4 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] OHC (rev 02)
00:0f.5 USB Controller: Advanced Micro Devices [AMD] CS5536 [Geode companion] EHC (rev 02)
Es cierto que no es el último alarido en prestaciones pero es poco mayor que una disquetera de 3.5", es muy silencioso (no tiene ventilador), no se calienta nada y consume 10W en total. Aunque en principio se puede usar como PC doméstico sin muchas pretensiones, yo voy a contar cómo montar un router casero de lo más coqueto.
Instalación
Aunque según el wiki de fit-PC se puede arrancar el instalador desde un pendrive USB o con un CD-ROM externo, yo aconsejo seguir la receta Instalar Debian desde red con PXE. Eso requiere otro PC y conexción a Internet, pero no creo que sea mucho pedir en estos días.
Para activar el arranque por red entra en la BIOS pulsado “del” durante el arranque. Una vez dentro activa la opción “Etherboot” que está en la sección “Custom Configuration”.
Ingredientes
Una vez terminada la instalación, instala los siguientes paquetes
- iptables
- dnsmasq
- ifplugd
- lm-sensors
- hddtemp
- smartmontools
Configurando el router
Para eso, lo mejor es seguir la receta router doméstico con GNU/Linux
ifplugd
Es un demonio que vigila las interfaces de red para saber cuando consiguen o pierden link y ejecuta ifup/ifdown respectivamente sobre la interfaz correspondiente. De ese modo al conectar los cables de red, las interfaces de activan automáticamente, al así como el network-manager pero bien hecho. :-P
Sensores
Añade al fichero etc/modules
:
lm90
scx200_acb
Para probar que funciona, cárgalos con modprobe
(o reinicia) y ejecuta:
# sensors
lm99-i2c-0-4c
Adapter: CS5536 ACB0
G/C Temp: +40.0°C (low = +0.0°C, high = +70.0°C)
(crit = +85.0°C, hyst = +75.0°C)
GPU Temp: +61.6°C (low = +16.0°C, high = +86.0°C)
(crit = +126.0°C, hyst = +116.0°C)
X Windows
Aunque no es muy necesario que digamos para un router, quizá te venga bien tener un entorno gráfico. Yo recomiendo xfce4
(sin gdm
). El paquete del driver geode que hay en “sid” da un rendimiento penoso por alguna razón que desconozco. Instala el de etch que va mucho mejor. Ejecuta lo siguiente:
# wget http://ftp.de.debian.org/debian/pool/main/x/xserver-xorg-video-geode/xserver-xorg-video-geode_2.10.1-2_i386.deb
# dpkg -i xserver-xorg-video-geode_2.10.1-2_i386.deb
# echo 'xserver-xorg-video-geode hold' | dpkg --set-selections
El último comando es para bloquear el paquete y evitar que se actualice cuando hagas un “upgrade”.
El siguiente fichero xorg.conf
funciona razonablemente:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection
Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
EndSection
Section "Module"
Load "xtrap"
Load "extmod"
Load "dbe"
Load "dri"
Load "glx"
Load "record"
Load "freetype"
EndSection
Section "Device"
Identifier "Configured Video Device"
Driver "geode"
BusId "PCI:0:1:1"
BoardName "Geode LX Video"
VendorName "Advanced Micro Devices [AMD]"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
HorizSync 20 - 90
VertRefresh 50 - 75
UseModes "Custom"
EndSection
Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 16
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1680x1050"
EndSubSection
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
EndSection
Section "Modes"
Identifier "Custom"
Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 +hsync +vsync
EndSection