Recientemente adquirí un módem ADSL (el D-Link DSL 300T, estaba harto del router ZyXEL y su límite de 256 conexiones) para hacerlo funcionar en una máquina que tengo de gateway.
Después de configurarlo y tal, me da por hacerle un escaneo de puertos y veo que además de la configuración web tiene telnet. Consulto Google, veo cuál es la contraseña por defecto y entro.
Investigo un poco y averiguo que corre Linux con BusyBox (un único ejecutable con versiones minimalistas de las utilidades GNU). Lo vería normal en un AP WiFi, o en un router... ¿pero en un modem? Esta información he sacado:
Kernel:
# cat /proc/version
Linux version 2.4.17_mvl21-malta-mips_fp_le ([email protected]) (gcc version 2.95.3 20010315 (release/MontaVista)) #60 Fri Jun 18 10:34:59 CST 2004
CPU:
# cat /proc/cpuinfo
processor : 0
cpu model : MIPS 4KEc V4.8
BogoMIPS : 149.91
wait instruction : no
microsecond timers : yes
extra interrupt vector : yes
hardware watchpoint : yes
VCED exceptions : not available
VCEI exceptions : not available
Va a 160MHz, según lo que he leído de algunas webs. Creo que es una versión sin coma flotante del MIPS R4000.
Memoria:
# cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 6709248 6615040 94208 0 147456 495616
Swap: 0 0 0
MemTotal: 6552 kB
MemFree: 92 kB
MemShared: 0 kB
Buffers: 144 kB
Cached: 484 kB
SwapCached: 0 kB
Active: 644 kB
Inactive: 3180 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 6552 kB
LowFree: 92 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Son 8MB, lo restante se lo come la partición /var, que se monta en un ramdisk.
BusyBox:
# busybox
BusyBox v0.61.pre (2004.06.18-02:39+0000) multi-call binary
Usage: busybox [function] [arguments]...
or: [function] [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use, and BusyBox
will act like whatever it was invoked as.
Currently defined functions:
[, ash, busybox, cat, chgrp, chmod, chown, cp, date, dd, df, echo,
false, free, grep, hostname, id, ifconfig, init, insmod, kill,
ln, login, ls, lsmod, mkdir, modprobe, mount, mv, nslookup, passwd,
ping, ps, pwd, reboot, rm, rmmod, route, sh, sleep, sync, tar,
test, tftp, touch, traceroute, true, tty, umount, wget, whoami,
yes[/i]
Interfaces de red:
# ifconfig -a
br0 Link encap:Ethernet HWaddr 00:0D:88:F5:03:2C
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4129711 errors:0 dropped:0 overruns:0 frame:0
TX packets:4568335 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:553185840 (527.5 Mb) TX bytes:1554441121 (1482.4 Mb)
eth0 Link encap:Ethernet HWaddr 00:0D:88:F5:03:2C
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4129714 errors:0 dropped:0 overruns:0 frame:0
TX packets:4568334 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:611002016 (582.6 Mb) TX bytes:1554439607 (1482.4 Mb)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
ppp0 Link encapoint-Point Protocol
inet addr:xxx.xxx.xxx.xxx P-t-P:xxx.xxx.xxx.xxx Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:4545005 errors:0 dropped:0 overruns:0 frame:0
TX packets:3921188 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1484702761 (1415.9 Mb) TX bytes:527768929 (503.3 Mb)
Ahí vemos el bridging que hace entre la conexión ppp y el interfaz ethernet.
Procesos:
# ps aux
PID Uid VmSize Stat Command
1 root 1284 S init
2 root S [keventd]
3 root S [ksoftirqd_CPU0]
4 root S [kswapd]
5 root S [bdflush]
6 root S [kupdated]
7 root S [mtdblockd]
26 root D [adsl]
32 root 1648 S /usr/bin/cm_pc
34 root 1280 S /usr/sbin/thttpd -g -d /usr/www -u root -p 80 -c /cg
35 root 1288 S /usr/sbin/diap
37 root 1284 S init
39 root 4720 S /usr/bin/cm_logic -m /dev/ticfg -c /etc/config.xml
41 root 1276 S /usr/bin/cm_monitor
346 root 2344 S /usr/sbin/pppd plugin pppoa 8.35 user xxxxxxx passw
1122 root 684 S /usr/sbin/udhcpd /var/tmp/udhcpd.conf
11121 root 616 S /sbin/utelnetd
11122 root 1292 S -sh
11141 root 1284 R ps aux
Cuatro cositas corriendo, vamos.
Ahora viene el dilema: ¿valdrá la pena trastear con él? El sistema de ficheros está en memoria flash, si me la cargo me la he cargado... x(
¿Qué otros dispositivos empotrados conocéis que corran GNU/Linux?