Antigament Wanadoo i actualment Orange està enviant als clients d’ADSL en la modalitat Todo en uno un router anomenat Livebox, fabricat per Inventel. Fa un temps que ja sóc client seu i per tant, m’ha arribat a les meves mans la Livebox. I per casualitats de la vida, me n’ha arribat una segona unitat i com tot bon informàtic amb ganes d’aprendre, l’he desmuntada i l’he hackejat una mica per poder accedir al seu cor: Un Linux!A la Livebox no li falta gairebé res: té dos ports USB, xarxa ethernet, bluetooth, port Mini PCI (amb una Wireless), port sèrie i sortida de telèfon per telefonia VoIP. Està governada per un CPU Broadcom BCM6348 pensada per aquest tipus d’activitats, 16 MB de memòria de les quals 9.6 contenen el sistema només lectura, 640K de memòria amb possibilitat d’escriptura (user-space) i pel que entenc, 6 MB de memòria d’intercanvi (RAM, podriem dir, tot i que prové de la mateixa Flash).
El millor del cas és el seu sistema operatiu: Un Linux especial per aquest CPU i el sistema gestor de la flash i arranc, el mateix que la Fonera, anomenat RedBoot.
Malauradament els senyors d’Orange han limitat el router impossibilitant-ne l’accès a la cònsola, tot i que aprofitant un defecte d’un firmware antic de Wanadoo i un petit procés, podrem alliberar-la. En aquesta web expliquen el procés i detalls: Liberar Livebox.
Un cop alliberada tindrem accés a la cònsola, destapant tot un món de possibilitats, gràcies a Linux! De moment, poc podrem fer (excepte investigar) però al ser programari lliure i al ser un CPU present a diversos dispositius actuals, esperem que d’aquí poc des de’l projecte Broadcom 6345 Linux distribution ens ofereixin un firmware lliure.
Ja per acabar, us ofereixo la sortida del DMESG i unes imatges de la placa del Livebox (on s’hi veuen les antenes, la placa MiniPCI wireless, el CPU i per darrera, el mòdul Bluetooth: Livebox per dintre.
0 pages. zone(2): 0 pages. Kernel command line: boot_loader=RedBoot root=1F01 mem=16M hwversion=BLUE5G.9-WITHOUT_OPTION redbootversion="release-wanadoo-fr-Jun 20 2006-16:25:10" bcm_console_setup Calibrating delay loop... 254.77 BogoMIPS Memory: 13812k/16000k available (1429k kernel code, 2188k reserved, 96k data, 60k init, 0k highmem) Dentry-cache hash table entries: 2048 (order: 2, 16384 bytes) Inode-cache hash table entries: 1024 (order: 1, 8192 bytes) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) Buffer-cache hash table entries: 1024 (order: 0, 4096 bytes) Page-cache hash table entries: 4096 (order: 2, 16384 bytes) Checking for 'wait' instruction... unavailable. POSIX conformance testing by UNIFIX mpi: No Card is in the PCMCIA slot PCI: Fixing up bus 0 Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB. pty: 256 Unix98 ptys configured brcmboard: brcm_board_init entry New led 8, mask : 0x00000001 New led 0, mask : 0x00000002 New led 9, mask : 0x00000004 New led 6, mask : 0x00000008 New led 1, mask : 0x00000010 Module bcm63xx_cons.c v1.0 date: Sep 14 2005 time: 13:37:40 - FPERIPH:50000000 block: 64 slots per queue, batch=16 PPP generic driver version 2.4.1 DBW flash: probing 16-bit flash bus Physically mapped flash: Probing for AMD compatible flash... mfr_id 0x00000001, dev_id 0x0000227E, dev_id2 0x00002210, dev_id3 0x00002200 Found AMD AM29BDS643D table[i] : mfr_id 0x00000001, dev_id 0x0000227E, dev_id2 0x00002202, dev_id3 0x00002200, long_dev_id 1 Found AMD AM29LV640MB table[i] : mfr_id 0x00000001, dev_id 0x0000227E, dev_id2 0x00002210, dev_id3 0x00002200, long_dev_id 1 Found AMD AM29LV640MB Physically mapped flash: Found 1 x 8MiB AMD AM29LV640MB at 0x0 mtd_info : type 3, size 0x00800000, erasesize 0x00010000, name Physically mapped flash, index 0, numeraseregions 3 mtd_info->priv : amd_flash_private : device_type 2, interleave 1, numchips 1, chipshift 23 mymtd is : 80f52120 Support for extended flash memory size : 0x00800000 ; ONLY 64MBIT SUPPORT RedBoot partition for 64MBit non aligned Flash RedBoot partition for 64MBit non aligned Flash RedBoot partition for 64MBit non aligned Flash RedBoot partition for 64MBit non aligned Flash RedBoot partition for 64MBit non aligned Flash Using RedBoot partition definition Creating 5 MTD partitions on "Physically mapped flash": 0x00000000-0x00030000 : "RedBoot" 0x00030000-0x00750000 : "user_fs" 0x00750000-0x007f0000 : "jffs_system" 0x007f0000-0x007ff000 : "FIS directory" 0x007ff000-0x00800000 : "RedBoot config" usb.c: registered new driver usbdevfs usb.c: registered new driver hub NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 512 bind 1024) Linux IP multicast router 0.06 plus PIM-SM NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. Ebtables v2.0 registeredNET4: Ethernet Bridge 008 for NET4.0 VFS: Mounted root (cramfs filesystem) readonly. Freeing unused kernel memory: 60k freed Algorithmics/MIPS FPU Emulator v1.5 atmapi: init_module entry 0xc00ad060 Sep 14 2005 13:40:08 adsl: adsl_init entry blaadd: blaa_detect entry Resetting DSP and 2nd eth .. GPIOio : 0xe9ffffc1 GPIOio : 0xe9fff180 bcm6348enet: bcmenet_module_init bcm6348enet: bcm6348_net_probe EnetInfo[1].ucPhyType = 3 EnetInfo[1].ucPhyAddress = 31 Broadcom BCM6348B0 Ethernet Network Device v0.1 Sep 14 2005 13:40:11 Internal PHY bcm6348enet: bcm6348_init_dev bcm6348enet: init_buffers bcm6348enet: init_dma bcm6348enet: init_emac mii_AutoConfigure BMCR : 0x3000 BMCR : 0x3100 mii_GetConfig BCM6348_ENET: Auto-negotiation timed-out BCM6348_ENET: 10 MB Half-Duplex (assumed) eth0: MAC Address: 00:07:3A:FF:FF:FF Broadcom BCM6348B0 Ethernet Network Device v0.1 Sep 14 2005 13:40:11 External PHY bcm6348enet: bcm6348_init_dev bcm6348enet: init_buffers bcm6348enet: init_dma bcm6348enet: init_emac BMCR : 0x3000 BMCR : 0x3100 BCM6348_ENETMAC2 : AutoConfiguration Start mii_AutoConfigure BMCR : 0x3100 BMCR : 0x3100 mii_GetConfig BCM6348_ENET MAC2 : 100 MB Full-Duplex (auto-neg) BCM6348_ENET MAC2 : Configuring for FULL DPLX eMiiConfig : 0x0007 eth1: MAC Address: 00:07:3A:FF:FF:FF USB MAC ADDRESS belongs to 00:1D:68:BD:B3:9A USB HOST MAC ADDRESS belongs to 00:1D:68:BD:B3:9B Broadcom BCM6348B0 USB Network Device v0.3 usb0: MAC Address: 00 1D 68 BD B3 9A usb0: Host MAC Address: 00 1D 68 BD B3 9B PCI: Enabling device 00:01.0 (0004 -> 0006) wl0: Broadcom BCM4318 802.11 Wireless Controller 3.91.7.0 Switch module creating proc entry Watchdog init Build: Sep 14 2005 13:42:42 BcmAdsl_Initialize=0xC00BC418, g_pFnNotifyCallback=0xC00D0B90 kerSysGetSdramSize : 0x00FE0000 AdslCoreHwReset: AdslOemDataAddr = 0xA0FE504C kerSysGetSdramSize : 0x00FE0000 eth0: bcm6348_net_open eth0: bcm_set_multicast_list: 00001003 eth0: bcm_set_multicast_list: 00001003 eth0: bcm_set_multicast_list: 00001003 eth0: bcm_set_multicast_list: 00001003 eth1: bcm6348_net_open eth1: bcm_set_multicast_list: 00001003 eth1: bcm_set_multicast_list: 00001003 eth1: bcm_set_multicast_list: 00001003 eth1: bcm_set_multicast_list: 00001003 eth1 Link UP. device usb0 entered promiscuous mode eth0: bcm_set_multicast_list: 00001103 device eth0 entered promiscuous mode eth1: bcm_set_multicast_list: 00001103 device eth1 entered promiscuous mode br0: port 3(eth1) entering listening state br0: port 2(eth0) entering listening state br0: port 1(usb0) entering listening state br0: port 3(eth1) entering learning state br0: port 2(eth0) entering learning state br0: port 1(usb0) entering learning state br0: port 3(eth1) entering forwarding state br0: topology change detected, propagating br0: port 2(eth0) entering forwarding state br0: topology change detected, propagating br0: port 1(usb0) entering forwarding state br0: topology change detected, propagating device wl0 entered promiscuous mode br0: port 4(wl0) entering listening state br0: port 4(wl0) entering learning state br0: port 4(wl0) entering forwarding state br0: topology change detected, propagating BlueZ Core ver 2.4 Copyright (C) 2000,2001 Qualcomm Inc Written 2000,2001 by Maxim Krasnyansky BlueZ L2CAP ver 2.3 Copyright (C) 2000,2001 Qualcomm Inc Written 2000,2001 by Maxim Krasnyansky BlueZ RFCOMM ver 1.1 Copyright (C) 2002 Maxim Krasnyansky Copyright (C) 2002 Marcel Holtmann BlueZ BNEP ver 1.2 Copyright (C) 2001,2002 Inventel Systemes Written 2001,2002 by Clement Moreau Written 2001,2002 by David Libault Copyright (C) 2002 Maxim Krasnyanskiy BlueZ HCI UART driver ver 2.1 Copyright (C) 2000,2001 Qualcomm Inc Written 2000,2001 by Maxim Krasnyansky BlueZ SCO ver 0.3 Copyright (C) 2000,2001 Qualcomm Inc Written 2000,2001 by Maxim Krasnyansky usage: insmod tty_spi spi_cs=N CS=0 date: Sep 14 2005 time: 13:42:42, speed 1 usage: insmod tty_spi spi_cs=N CS=0 date: Sep 14 2005 time: 13:42:42, speed 2 PCI: Enabling device 00:09.0 (0000 -> 0002) usb-ohci.c: USB OHCI at membase 0xc018ab00, IRQ 20 usb-ohci.c: usb-00:09.0, PCI device 14e4:6300 usb.c: new USB bus registered, assigned bus number 1 hub.c: USB hub found hub.c: 2 ports detected Status : 0 CDCEther.c: CDCEther.c: v0.98.5 22 Sep 2001 Brad Hards and another usb.c: registered new driver CDCEther rtl8150.c: rtl8150 based usb-ethernet driver v0.4.1 (2002/07/22) usb.c: registered new driver rtl8150



