sociedad horizontal

Openwrt and Livebox (howto)

HOWTO UPDATED IN THIS LINK
Openwrt and LIVEBOX, openwrt forum


This is an old howto, please use the link above.
In this post i will bring you the clues to convert your inventel Livebox (Inventel DV4210) into an Openwrt machine. First of all you will need a telnet command line access to your Livebox, there are several howtos on internet to do this. Also you will need access over your serial port in the Livebox, this is done with special cable, a serial TTL (most routers have one serial port and Openwrt is loaded sending commands through this device). I use an old usb to serial cable data phone (a Sony Ericcsson one), many people use a Nokia one, the most important is to identify the pinout: TX, RX and GND. The software I use to control this serial port is CuteCom.

This is a schema of our target SoC BCM6348



This is how I connected the serial port to a cellphone data cable.
Livebox Pin-out:
1       data in (3V)
2       data out (3V)
3       button "2" input
4       button "1" input
5       +5V
6       ground
Parameters: 115200 baud, 8 databits, no parity, 1 stopbit
(I needed to plug the phone because this crap cable does not transmit if the phone is not plugged, probably you don't will need to do this with your cable)

First we need access via telnet because we will need to change the Redboot loader with another one that let us to break into the command line while the Livebox boots.

This is the redboot that we will flash to mtd0:
redboot.20040719 from my.opera server
redboot.20040719 from andyp webpage

Check these files and be sure the file is not corrupted, it is very important, you can make a brick with an improper Redboot loader.
Telnet you livebox load (wget) the redboot file and flash it (cross fingers):
# fcp -v redboot.20040719 /dev/mtd0
Erasing blocks: 3/3 (100%)
Writing data: 192k/192k (100%)
Verifying data: 192k/192k (100%)
#
# reboot
Sending SIGTERM to adsld and pppd.

Another thing you will need of course is a GNU-Linux environment. I use kubuntu karmic-koala. And a tftp server installed. You can install it simply with:
sudo apt-get install atftp

The directory where atftp works serving files is in my system located at /var/lib/tftpboot. That is where you will put yor openwrt image. Make it writeable:
sudo chmod ugo+rwx /var/lib/tftpboot


Be sure you use an ip that the Redboot of your livebox will understand, default is 10.7.58.114, you can make a virtual interface in your pc with this ip:
sudo ifconfig eth0:10 10.7.58.114

Once you have flashed the new Redboot check that you can break into it, conect the serial port, start CuteCom and press Ctrl+C while the livebox boots up, you must see the redboot command line. Review the config
fconfig -l -n

You can change the ip of redboot, if you need to do so, this is an example:
fconfig bootp_my_ip 10.7.58.1
fconfig bootp_server_ip 10.7.58.114


Before start building the OpenWrt image for livebox you will need some stuff:
svn gcc g++ binutils patch make automake gettext pkg-config unzip bzip2 flex bison libz-dev quilt gawk flex libghc6-zlib-dev...

Make a directory somewhere called "kamikaze" and open a terminal there. Enter this comand
svn -r r18708 co svn://svn.openwrt.org/openwrt/trunk/

Put the ruff's kernel patch 046-cramfs_endianness.patch to enable cramfs endiannes in:
/trunk/target/linux/brcm63xx/patches-2.6.30
Open another terminal in trunk subdirectory and enter the command:
make menuconfig

Then search in the menus the following stuff and check it.
   ┌────────────────────────── Target System ───────────────────────────┐
   │  Use the arrow keys to navigate this window or press the hotkey of │
   │  the item you wish to select followed by the <SPACE BAR>. Press    │
   │  <?> for additional information about this option.                 │
   │ ┌───────────────────^(-)─────────────────────────────────────────┐ │
   │ │               ( ) Atheros AR231x/AR5312                        │ │
   │ │               ( ) Atheros AR71xx/AR7240/AR913x                 │ │
   │ │               ( ) Atmel AVR32                                  │ │
   │ │               (X) Broadcom BCM63xx                             │ │
   │ │               ( ) Broadcom BCM947xx/953xx                      │ │
   │ │               ( ) Broadcom BCM947xx/953xx [2.4]                │ │
   │ └───────────────────v(+)─────────────────────────────────────────┘ │
   ├────────────────────────────────────────────────────────────────────┤
   │                       <Select>      < Help >                       │
   └────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────── Target Images ──────────────────────────┐
│ ┌───────────────────────────────────────────────────────────────────── │
│ │ [ ] ramdisk (NEW)                                                  │ │
│ │ [ ] jffs2                                                          │ │
│ │ [*] squashfs (NEW)                                                 │ │
│ │ [*] tgz                                                            │ │
│ │ [ ] cpiogz (NEW)                                                   │ │
│ │ [ ] ext2 (NEW)                                                     │ │
│ └─v(+)───────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────┤
│                      <Select>    < Exit >    < Help >                  │
└────────────────────────────────────────────────────────────────────────┘

disable the switch, livebox doesn't have one

┌───────────────────────────────── Other modules ────────────────────────────┐
│ ┌─^(-)───────────────────────────────────────────────────────────────────┐ │
│ │ < > kmod-ledtrig-netdev.............................. LED NETDEV Trigge│ │
│ │ < > kmod-mmc........................................ MMC/SD Card Suppor│ │
│ │ < > kmod-mmc-over-gpio.................... MMC/SD card over GPIO suppor│ │
│ │ <*> kmod-pcmcia-core............................ PCMCIA/CardBus support│ │
│ │ <*>   kmod-pcmcia-bcm63xx.............. Broadcom BCM63xx PCMCIA support│ │
│ │ < >   kmod-pcmcia-serial.................. Serial devices support (NEW)│ │
│ │ < >   kmod-pcmcia-yenta...................... yenta socket driver (NEW)│ │
│ │ < > kmod-pcspkr...................................... PC speaker suppor│ │
│ │ < > kmod-softdog............................... Software watchdog drive│ │
│ │ < > kmod-switch.......................................... Switch driver│ │
│ │ < > kmod-textsearch.............Textsearch support is selected if neede│ │
│ └────────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────────┤
│                   <Select>    < Exit >    < Help >                         │
└────────────────────────────────────────────────────────────────────────────┘

Select modules that you need for usb. Note that bcm6348 has usb 1.1 then it uses OHCI drivers
┌───────────────────────────── USB Support ──────────────────────────────┐
│ ┌────────────────────────────────────────────────────────────────────┐ │
│ │ <*> kmod-usb-core................................... Support for US│ │
│ │ < >   kmod-usb-acm................ Support for modems/isdn controll│ │
│ │ < >   kmod-usb-atm......................... Support for ATM on USB │ │
│ │ <*>   kmod-usb-audio.................... Support for USB audio devi│ │
│ │ < >   kmod-usb-cm109......................... Support for CM109 dev│ │
│ │ < >   kmod-usb-hid................ Support for USB Human Input Devi│ │
│ │ < >   kmod-usb-net...... Kernel modules for USB-to-Ethernet convert│ │
│ │ <*>   kmod-usb-ohci...................... Support for OHCI controll│ │
│ │ < >   kmod-usb-phidget............................. USB Phidget Dri│ │
│ │ < >   kmod-usb-printer........................... Support for print│ │
│ │ < >   kmod-usb-serial............ Support for USB-to-Serial convert│ │
│ │ <*>   kmod-usb-storage............................ USB Storage supp│ │
│ │ < >   kmod-usb-uhci...................... Support for UHCI controll│ │
│ │ < >   kmod-usb-video.................... Support for USB video devi│ │
│ │ < >   kmod-usb-yealink......................... USB Yealink VOIP ph│ │
│ │ < >   kmod-usb2.......................... Support for USB2 controll│ │
│ └────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────┤
│                    <Select>    < Exit >    < Help >                    │
└────────────────────────────────────────────────────────────────────────┘

Exit and save, next do:
make kernel_menuconfig

┌────────────────────────────── CPU support ───────────────────────────────┐
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │    [ ] support 6338 CPU                                              │ │
│ │    [ ] support 6345 CPU                                              │ │
│ │    [*] support 6348 CPU                                              │ │
│ │    [ ] support 6358 CPU                                              │ │
│ │                                                                      │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────────────────┤
│                     <Select>    < Exit >    < Help >                     │
└──────────────────────────────────────────────────────────────────────────┘

  ┌────────────────────────── Board support ───────────────────────────┐
  │ ┌────────────────────────────────────────────────────────────────┐ │
  │ │               ( ) Generic Broadcom 963xx boards                │ │
  │ │               (X) Inventel Livebox(es) boards                  │ │
  │ │                                                                │ │
  │ └────────────────────────────────────────────────────────────────┘ │
  ├────────────────────────────────────────────────────────────────────┤
  │                       <Select>      < Help >                       │
  └────────────────────────────────────────────────────────────────────┘

I enabled this option, i don't know why, but i did it.
[*] Force read-only for RedBoot system images

     
┌──────────────────── Memory Technology Device (MTD) support ────────────────┐
│ ┌────────────────────────────────────────────────────────────────────────┐ │
│ │    --- Memory Technology Device (MTD) support                          │ │
│ │    [ ]   Debugging                                                     │ │
│ │    <*>   MTD concatenating support                                     │ │
│ │    [*]   MTD partitioning support                                      │ │
│ │    < >   MTD tests support                                             │ │
│ │    [*]   Automatically set 'rootfs' partition to be root filesystem    │ │
│ │    [*]   Automatically split 'rootfs' partition for squashfs           │ │
│ │    <*>   RedBoot partition table parsing                               │ │
│ │    (-1)    Location of RedBoot partition table                         │ │
│ │    [*]     Include unallocated flash regions                           │ │
│ │    [ ]     Force read-only for RedBoot system images                   │ │
│ │    [*]   Command line partition table parsing                          │ │
│ │    < >   TI AR7 partitioning support                                   │ │
│ │          *** User Modules And Translation Layers ***                   │ │
│ │    <*>   Direct char device access to MTD devices                      │ │
│ │    -*-   Common interface to block layer for MTD 'translation layers   │ │
│ │    <*>   Caching block device access to MTD devices                    │ │
│ │    < >   FTL (Flash Translation Layer) support                         │ │
│ │    < >   NFTL (NAND Flash Translation Layer) support                   │ │
│ │    < >   INFTL (Inverse NAND Flash Translation Layer) support          │ │
│ │    < >   Resident Flash Disk (Flash Translation Layer) support         │ │
│ │    < >   NAND SSFDC (SmartMedia) read only translation layer           │ │
│ │    < >   Log panic/oops to an MTD buffer                               │ │
│ │          RAM/ROM/Flash chip drivers  --->                              │ │
│ │          Mapping drivers for chip access  --->                         │ │
│ │          Self-contained MTD device drivers  --->                       │ │
│ │    < >   NAND Device Support  --->                                     │ │
│ │    < >   OneNAND Device Support  --->                                  │ │
│ │          LPDDR flash memory drivers  --->                              │ │
│ │          UBI - Unsorted block images  --->                             │ │
│ └────────────────────────────────────────────────────────────────────────┘ │
├────────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                    │
└────────────────────────────────────────────────────────────────────────────┘

  ┌────────────────────── RAM/ROM/Flash chip drivers ───────────────────────┐
  │ ┌─────────────────────────────────────────────────────────────────────┐ │
  │ │    <*> Detect flash chips by Common Flash Interface (CFI) probe     │ │
  │ │    <*> Detect non-CFI AMD/JEDEC-compatible flash chips              │ │
  │ │    [*] Flash chip driver advanced configuration options             │ │
  │ │          Flash cmd/query data swapping (NO)  --->                   │ │
  │ │    [*]   Specific CFI Flash geometry selection                      │ │
  │ │    [*]     Support  8-bit buswidth                                  │ │
  │ │    [*]     Support 16-bit buswidth                                  │ │
  │ │    [ ]     Support 32-bit buswidth                                  │ │
  │ │    [ ]     Support 64-bit buswidth                                  │ │
  │ │    [ ]     Support 128-bit buswidth                                 │ │
  │ │    [ ]     Support 256-bit buswidth                                 │ │
  │ │    [*]     Support 1-chip flash interleave                          │ │
  │ │    [ ]     Support 2-chip flash interleave                          │ │
  │ │    [ ]     Support 4-chip flash interleave                          │ │
  │ │    [ ]     Support 8-chip flash interleave                          │ │
  │ │    [ ]   Protection Registers aka one-time programmable (OTP) bits  │ │
  │ │    < > Support for Intel/Sharp flash chips                          │ │
  │ │    <*> Support for AMD/Fujitsu/Spansion flash chips                 │ │
  │ │    <*> Support for ST (Advanced Architecture) flash chips           │ │
  │ │    < > Support for RAM chips in bus mapping                         │ │
  │ │    <*> Support for ROM chips in bus mapping                         │ │
  │ │    < > Support for absent chips in bus mapping                      │ │
  │ └─────────────────────────────────────────────────────────────────────┘ │
  ├─────────────────────────────────────────────────────────────────────────┤
  │                    <Select>    < Exit >    < Help >                     │
  └─────────────────────────────────────────────────────────────────────────┘




This is the most important:
┌────────────────────── Mapping drivers for chip access ───────────────────┐
│ ┌──────────────────────────────────────────────────────────────────────┐ │
│ │    [*] Support non-linear mappings of flash chips                    │ │
│ │    <*> Flash device in physical memory map                           │ │
│ │    [*]   Physmap compat support                                      │ │
│ │    (0x1e400000) Physical start address of flash mapping              │ │
│ │    (0x00800000) Physical length of flash mapping                     │ │
│ │    (2)     Bank width in octets (NEW)                                │ │
│ │    < > BCM963xx Flash device                                         │ │
│ │    < > PCI MTD driver                                                │ │
│ │    < > NOR flash on Intel Vermilion Range Expansion Bus CS0          │ │
│ │    < > Map driver for platform device RAM (mtd-ram)                  │ │
│ └──────────────────────────────────────────────────────────────────────┘ │
├──────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                  │
└──────────────────────────────────────────────────────────────────────────┘



here we will enable usb for our board
┌───────────────────────────────── USB support ─────────────────────────────┐
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │    --- USB support                                                    │ │
│ │    <*>   Support for Host-side USB                                    │ │
│ │    [ ]     USB verbose debug messages                                 │ │
│ │    [ ]     USB announce new devices                                   │ │
│ │            *** Miscellaneous USB options ***                          │ │
│ │    [*]     USB device filesystem                                      │ │
│ │    [ ]     USB device class-devices (DEPRECATED)                      │ │
│ │    [ ]     Dynamic USB minor allocation                               │ │
│ │    [ ]     Rely on OTG Targeted Peripherals List                      │ │
│ │    [ ]     Disable external hubs                                      │ │
│ │    < >     USB Monitor                                                │ │
│ │    < >     Enable Wireless USB extensions (EXPERIMENTAL)              │ │
│ │    < >     Support WUSB Cable Based Association (CBA)                 │ │
│ │            *** USB Host Controller Drivers ***                        │ │
│ │    < >     Cypress C67x00 HCD support                                 │ │
│ │    < >     EHCI HCD (USB 2.0) support (NEW)                           │ │
│ │    < >     OXU210HP HCD support                                       │ │
│ │    < >     ISP116X HCD support                                        │ │
│ │    < >     ISP 1760 HCD support                                       │ │
│ │    <*>     OHCI HCD support                                           │ │
│ │    [ ]       OHCI support for Broadcom SSB OHCI core                  │ │
│ │    < >     UHCI HCD (most Intel and VIA) support (NEW)                │ │
│ │    < >     SL811HS HCD support                                        │ │
│ │    < >     R8A66597 HCD support                                       │ │
│ └────v(+)───────────────────────────────────────────────────────────────┘ │
├───────────────────────────────────────────────────────────────────────────┤
│                        <Select>    < Exit >    < Help >                   │
└───────────────────────────────────────────────────────────────────────────┘

Kernel hacking, this is very important too
┌───────────────────── Default kernel command string ─────────────────────────────────────┐
│  Please enter a string value. Use the <TAB> key to move from the input                  │
│  field to the buttons below it.                                                         │
│ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │
│ │root=/dev/mtdblock1 rootfstype=cramfs,squashfs init=/etc/preinit console=ttyS0,115200│ │
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│                                                                                         │
├─────────────────────────────────────────────────────────────────────────────────────────┤
│                         <  Ok  >      < Help >                                          │
└─────────────────────────────────────────────────────────────────────────────────────────┘

now exit and save changes, and make the world
dani@NEXUS:/media/ext4/kamikaze/trunk$ make V=99

Next step is to convert our stuff into a cramfs image to flash the Livebox
Download the ruff's script to your kamikaze directory, mkcramfs binary, etccramfs and network (edit this to your preferences). Change permisions of these files (chmod ugo+rwx file). Make the cramfs image.
dani@NEXUS:/media/ext4/kamikaze$ ./kamk.sh

We will get openwrt.cramfs image ready to flash. This is mine http://files.myopera.com/danitool/linux/openwrt.cramfs (use it only for testing purpose)
put openwrt.cramfs into the atftp server directory /var/lib/tftpboot. Plug an ethernet cable from your computer to the yellow port in the livebox.

Open cutecom and flash it
Plug your serial interface to the livebox, an power on the livebox, push control+c to break into redboot
First check your partition table. This is mine:
RedBoot> fis list
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0xBE400000  0xBE400000  0x00030000  0x00000000
user_fs           0xBE430000  0xBE430000  0x00720000  0x80545FB0
jffs_system       0xBEB50000  0xBEB50000  0x000A0000  0x80545FB0
FIS directory     0xBEBF0000  0xBEBF0000  0x0000F000  0x00000000
RedBoot config    0xBEBFF000  0xBEBFF000  0x00001000  0x00000000

As you see I have jffs_system with flash adress=0xBEB50000 and length=0x000A0000. Then:
erase jffs_system
fis erase -f 0xBEB50000 -l 0x000A0000

load openwrt.cramfs
load -r -v -b 0x80800000 openwrt.cramfs

flash openwr.cramfs
fis create -b 0x80800000 user_fs



Reboot your device, and telnet it in your computer
telnet 10.7.58.1

This is my log
Linux version 2.6.30.9 (dani@NEXUS) (collect2: ld returned 1 exit status) #17 Thu Nov 19 21:18:34 CET 2009
Detected Broadcom 0x6348 CPU revision b0                                                                  
CPU frequency is 256000000 Hz                                                                             
16MB of RAM installed                                                                                     
registering 37 GPIOs                                                                                      
console [early0] enabled                                                                                  
CPU revision is: 00029107 (Broadcom BCM6348)                                                              
board_livebox: board name: Livebox                                                                        
Determined physical RAM map:                                                                              
 memory: 01000000 @ 00000000 (usable)                                                                     
Initrd not found or empty - disabling initrd                                                              
Zone PFN ranges:                                                                                          
  Normal   0x00000000 -> 0x00001000                                                                       
Movable zone start PFN for each node                                                                      
early_node_map[1] active PFN ranges                                                                       
    0: 0x00000000 -> 0x00001000                                                                           
On node 0 totalpages: 4096                                                                                
free_area_init_node: node 0, pgdat 80283910, node_mem_map 802e7000                                        
  Normal zone: 32 pages used for memmap                                                                   
  Normal zone: 0 pages reserved                                                                           
  Normal zone: 4064 pages, LIFO batch:0                                                                   
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064                                
Kernel command line: root=/dev/mtdblock1 rootfstype=cramfs,squashfs init=/etc/preinit console=ttyS0,115200
Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.                                           
Primary data cache 8kB, 2-way, VIPT, no aliases, linesize 16 bytes                                        
NR_IRQS:128                                                                                               
PID hash table entries: 64 (order: 6, 256 bytes)                                                          
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)                                              
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)                                               
Memory: 13268k/16384k available (2088k kernel code, 3116k reserved, 428k data, 124k init, 0k highmem)     
Calibrating delay loop... 252.41 BogoMIPS (lpj=504832)                                                    
Mount-cache hash table entries: 512                                                                       
net_namespace: 332 bytes                                                                                  
NET: Registered protocol family 16                                                                        
registering PCI controller with io_map_base unset                                                         
bio: create slab <bio-0> at 0                                                                             
usbcore: registered new interface driver usbfs                                                            
usbcore: registered new interface driver hub                                                              
usbcore: registered new device driver usb                                                                 
pci 0000:00:01.0: reg 10 32bit mmio: [0x000000-0x001fff]                                                  
Switched to high resolution mode on CPU 0                                                                 
PCI: Enabling device 0000:00:01.0 (0000 -> 0002)                                                          
PCI: Setting latency timer of device 0000:00:01.0 to 64                                                   
ssb: Sonics Silicon Backplane found on PCI device 0000:00:01.0                                            
NET: Registered protocol family 2                                                                         
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                                            
TCP established hash table entries: 512 (order: 0, 4096 bytes)                                            
TCP bind hash table entries: 512 (order: -1, 2048 bytes)                                                  
TCP: Hash tables configured (established 512 bind 512)                                                    
TCP reno registered                                                                                       
NET: Registered protocol family 1                                                                         
audit: initializing netlink socket (disabled)                                                             
type=2000 audit(0.650:1): initialized                                                                     
squashfs: version 4.0 (2009/01/31) Phillip Lougher                                                        
Registering mini_fo version $Id$                                                                          
JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.                                            
msgmni has been set to 25                                                                                 
alg: No test for stdrng (krng)                                                                            
io scheduler noop registered                                                                              
io scheduler deadline registered (default)                                                                
bcm63xx_uart.0: ttyS0 at MMIO 0xfffe0300 (irq = 10) is a bcm63xx_uart                                     
console handover: boot [early0] -> real [ttyS0]                                                           
bcm63xx_enet MII bus: probed                                                                              
physmap platform flash device: 00800000 at 1e400000                                                       
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
 Amd/Fujitsu Extended Query Table at 0x0040
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
Searching for RedBoot partition table in physmap-flash.0 at offset 0x7f0000
5 RedBoot partitions found on MTD device physmap-flash.0
Creating 5 MTD partitions on "physmap-flash.0":
0x000000000000-0x000000030000 : "RedBoot"
0x000000030000-0x000000750000 : "user_fs"
0x000000750000-0x0000007f0000 : "jffs_system"
0x0000007f0000-0x0000007ff000 : "FIS directory"
0x0000007ff000-0x000000800000 : "RedBoot config"
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
bcm63xx_ohci bcm63xx_ohci.0: BCM63XX integrated OHCI controller
bcm63xx_ohci bcm63xx_ohci.0: new USB bus registered, assigned bus number 1
bcm63xx_ohci bcm63xx_ohci.0: irq 20, io mem 0xfffe1b00
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
bcm63xx_wdt started, timer margin: 30 sec
TCP westwood registered
NET: Registered protocol family 17
VFS: Mounted root (cramfs filesystem) readonly on device 31:1.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
mini_fo: using base directory: /jffs/etc-ro
mini_fo: using storage directory: /jffs/etc
bcm63xx_enet bcm63xx_enet.0: attached PHY at address 1 [Broadcom BCM63XX (1)]
device eth0 entered promiscuous mode
eth0: link UP - 100/full - flow control off
br-lan: port 1(eth0) entering forwarding state
eth1: link forced UP - 100/full - flow control off/off
cfg80211: Calling CRDA to update world regulatory domain
SCSI subsystem initialized
b43-phy0: Broadcom 4318 WLAN found (core revision 9)
phy0: Selected rate control algorithm 'minstrel'
Registered led device: b43-phy0::tx
Registered led device: b43-phy0::rx
Registered led device: b43-phy0::radio
Broadcom 43xx driver loaded [ Features: PL, Firmware-ID: FW13 ]
Driver 'sd' needs updating - please use bus_type methods
usbcore: registered new interface driver snd-usb-audio
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
b43 ssb0:0: firmware: requesting b43/ucode5.fw
b43 ssb0:0: firmware: requesting b43/pcm5.fw
b43 ssb0:0: firmware: requesting b43/b0g0initvals5.fw
b43 ssb0:0: firmware: requesting b43/b0g0bsinitvals5.fw
b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
BusyBox v1.14.4 (2009-11-17 12:55:07 CET) built-in shell (ash)
Enter 'help' for a
 list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 KAMIKAZE (bleeding edge, r18440) ------------------
  * 10 oz Vodka       Shake well with ice and strain
  * 10 oz Triple sec  mixture into 10 shot glasses.
  * 10 oz lime juice  Salute!
 ---------------------------------------------------
root@OpenWrt:/# 


You can probe this steps if you are sure enough. I hope this howto will be outdated soon, and developers from Openwrt will make images ready to flash in a easier way.

Be care, and of course don't blow me if you make a brick.

enjoy
(danitool)


external links: andyp website
                      dbzoo
                      darkfader
                      kamikaze latest trunk br63xx
                      pinouts






An easier way to flash without serial connection, but more dangerous:
You can flash the built image of Kamikaze without serial, simply in your telnet command line with the old original firmware working you can do this:
fcp -v openwrt.cramfs /dev/mtd1

I didn't try this yet, and i don't know if it is possible with original redboot. Maybe less dangerous because if it doesn't work, always you will be able to load the original firmware again using the button 1.

I'm sure that is possible with the old redboot but if you do not have serial access you can make a brick with a wrong openwrt.cramfs (a simple error in network configuration in the image is catastrofic). The button 1 to load firmwares will not work, openwrt.cramfs needs to be encrypted, and an original firmware will not load neither.
As always be care
Regards.


La medicina del abueloNO a las patentes de software

Comments

Unregistered user Saturday, February 12, 2011 2:57:45 PM

Javier writes: Va mas rapido en el sentido del arranque. Antes a mi me tardaba cerca de 3 minutos, y luego si entraba por SSH era lentiiisimo. Ahora tarda mucho menos en arrancar (deberias parar servicios de samba, snmp y algun otro que he puesto de mas) y la conexion por SSH es inmediata. Luego Luci lo sigo notando algo mas espeso.

danitool Saturday, February 26, 2011 4:36:20 PM

Cierto que Luci es lento, aunque también habría que ver si tiene mayor fluidez en otros dispositivos de similares características (el feedback siempre es bienvenido). Webif lo noto más rápido, me gusta más, aunque casualmente puede fallar, o inutilizar el sistema, por lo que lo descarto al menos en la rama trunk.

Un par de apuntes acerca del rendimiento:
- Timer: si lo bajamos nos dará un ligero aumento de rendimiento ya que causa menos interrupciones, aunque la respuesta si queremos ejecutar otra tarea aumentará. En general reducir el timer en las opciones del kernel hasta 100MHz aumentará el rendimiento aunque a primera impresión parezca que no, ya que el tiempo de respuesta aumenta cuando queremos interactuar con el dispositivo. Digamos que bajando el timer el procesador se centra más en realizar una sola tarea, por lo que gana en rendimiento al no estar continuamente creando interrupciones en el procesador para ver si existen otras tareas pendientes.

- Netfilter modules: estos son los módulos principalmente de iptables. En cuanto a rendimiento el impacto es terrorífico. Una vez que se cargan los módulos del kernel que usa iptables, el rendimiento baja, usemos o no usemos iptables. Aunque no estemos transfiriendo ningún paquete por NAT o ruta alguna, en transferencia directa, los modulos de iptables machacan el rendimiento. Por defecto Openwrt carga todos lo módulos de iptables que hemos compilado. Por ello si no vamos a usar Iptables recomiendo deshabilitar iptables en la compilación así como todos los netfilter modules. O bien "por si acaso" queremos compilar iptables, además de que luci nos arrastra el paquete queramos o no, una solución mejor será hacer esto:
root@OpenWrt:/# mkdir /etc/backup
root@OpenWrt:/# mv /etc/modules.d/*ipt* /etc/backup/
root@OpenWrt:/# ls -l /etc/backup/
-rw-r--r--    1 root     root           128 Jan  1 00:45 40-ipt-core
-rw-r--r--    1 root     root            78 Jan  1 00:46 41-ipt-conntrack
-rw-r--r--    1 root     root            34 Jan  1 00:46 42-ipt-nat
root@OpenWrt:/# reboot

insisto en descargar los módulos ipt, ya que la ganancia de rendimiento en una transferencia es brutal, o bien, aunque nuestras transferencias tengan baja velocidad, el consumo de cpu no se elevará tanto, dejando cpu libre para otros procesos si es que los tenemos.

Aunque Luci no cargará más rápido, ya que los datos que transfiere por red son mínimos, por lo que este no parece ser el problema de la interfaz web. Mi última compilación con luci: http://files.myopera.com/danitool/livebox/openwrt25727.cramfs (ip de acceso 192.168.1.1)

Todo depende como siempre, y finalmente, de las necesidades de cada uno.

Unregistered user Monday, February 28, 2011 6:57:20 PM

seraser writes: Voy finalmente a dejarlo con open-wrt, y le voy a meter esta imagen que cuelgas danitool, pero tengo un cacao de redboots, a ver si me aclaro. Saludos y gracias por tus aportes.

Unregistered user Sunday, March 6, 2011 8:45:09 PM

seraser writes: Bueno danitool, he metido este firm que cuelgas tanto aqui como en la pagina de openwrt, metiendo el redboot02, carga bien, el problema es que no me aparecen los ficheros network ni wireless, creo que era problema de rootfs_data, tenia esta particion y al ver que no iba pues la he borrado, pero ni por esas, la verdad estoy confuso, con los avances que haces con el trasto este no se si he de meter una particion de mas para configuraciones, en el howto de openwrt no indicas nada al respecto, te adjunto mi tabla de particiones: RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0xBE400000 0xBE400000 0x00030000 0x00000000 user_fs 0xBE430000 0x80800000 0x00720000 0x80800000 FIS directory 0xBEBF0000 0xBEBF0000 0x0000F000 0x00000000 RedBoot config 0xBEBFF000 0xBEBFF000 0x00001000 0x00000000

danitool Sunday, March 6, 2011 9:07:37 PM

Sí, para las configuraciones hace falta una partición escribible. El motivo es que las otras son de solo lectura por ser particiones en formato comprimido. Veo que te falta jffs_system. Recrear el particionado original es muy fácil:
fis init
fis create -f 0xBE430000 -r 0xBE430000 -l 0x00720000 -n user_fs
fis create -f 0xBEB50000 -r 0xBEB50000 -l 0x000A0000 -n jffs_system

Este es el particionado que de momento estoy usando para el livebox.

Bien es cierto que sería más correcto para openwrt usar rootfs_data, en lugar de jffs_system, pero aumentando el tamaño de partición, y ajustando las otras particiones al tamaño mínimo posible para poder instalar paquetes. El trabajo que queda por hacer, y más correcto todavía sería usar la primera partición sólo para el kernel, en formato cramfs, una segunda para los archivos de sistema (o sea la raíz) en formato squashfs (mayor compresión), y una tercera para las configuraciones y paquetes (rootfs_data sin formato especial alguno, jffs2). Para hacer un trabajo completo en este sentido estoy intentando crear imágenes que se puedan flashear mediante luci, o más propiamente con el comando sysupgrade. Sysupgrade en teoría nos recrearía las particiones automáticamente ajustándolas para tener el mayor tamaño posible en la partición escribible para poder instalar paquetes. Aunque me resulta muy complicado saber como funciona, he abierto un hilo en el foro, pero sin respuesta alguna:
https://forum.openwrt.org/viewtopic.php?id=28849

Unregistered user Sunday, March 6, 2011 9:39:01 PM

Anonymous writes: Pues muchisimas gracias por la pronta respuesta, ya esta funcionando, conclusion inicial: fantastico trabajo danitool, el firm carga velocisimo, y ademas luci ya no es desesperante, tan solo lento que es mucho mejorar. Pena no te ayuden en nada los chicos de openwrt, pero bueno tu solo te bastas, sigo tus avances, sysupgrade suena fantastico. Un saludo y gracias, y a seguir dandole duro a las chicas, que valor tienes jajaja

danitool Sunday, March 6, 2011 9:43:07 PM

bigsmile

Unregistered user Monday, March 21, 2011 6:11:12 PM

jar229 writes: 'nas: Solo unas líneas para agradecer el esfuerzo y tiempo que has empleado en llevar a 'buen puerto' la instalación en este router de openwrt. Yo lo he 'flasheado' con tu versión openwrt25727.cramfs y lo cierto es que funciona bastante bien (si luCi fuera algo más rápido ya sería una maravilla). Tengo el router con un hub usb y me hace de servidor de impresión para casa. Como el espacio de memoria es muy limitado ando intentando meter alguna partición en un pen usb de 1 giga. Pero aún se me resiste la configuración. Pero ya se andará ... Saludos y gracias de nuevo

Unregistered user Wednesday, April 20, 2011 4:43:46 PM

Anonymous writes: Enhorabuena por el curre!... la cosa avanza. Te comento... yo había compilado alguna imagen en cramfs y el USB iba perfectamente. He cambiado el redboot, estructura de particiones e instalado la imagen que has dejado en el foro de openwrt y todo va de cine (AP, modo cliente, etc...) sin embargo, en cuanto pinchas una llave USB el Livebox se queda colgado. También me llama la atención que, sin pinchar nada en el usb, ejecutas lsusb (instalando usbutils) y se queda parado, no hace nada. Por otro lado, he intentado compilar mi propia imagen y me da un error en "make kernel_menuconfig" aplicando el parche de livebox que indicas que se debe descargar... y de ahí no pude pasar. Ya por pedir... ¿sabes por qué los leds no encienden?... sólo uno que está fijo desde que lo enchufas. Lo dicho, eres un crack.

danitool Thursday, April 21, 2011 8:55:03 PM

Esta es la última imagen que he compilado. Usando dos particiones para el firmware y con luci incorporado.
http://files.myopera.com/danitool/livebox/openwrt26748.zip
con el boot script tal y como se detalla en el último tutorial de esta forma
fconfig boot_script_data
fis load -b 0x80010000 -d kernel
exec -c "noinitrd mem=16M" 0x80010000

Los comandos para flashear están dentro del zip.

He probado a montar un pendrive con sistema de archivos FAT, lo monta perfectamente sin problema alguno. Si no te funciona con tu pendrive quizás sea problema del propio pendrive, o quizás te hagan falta los usb-storage-extras.

make kernel_menuconfig también me funciona perfectamente en mi sistema. Revisa que tengas todas las utilidades necesarias para compilar, en especial quilt ya que normalmente quilt no se indica en ningún sitio que sea necesario para compilar openwrt, pero realmente yo lo necesito, sin quilt también obtengo errores en esa fase. Aunque si el error es del propio parche del livebox, descárgalo de nuevo ya que lo he actualizado para el kernel 2.6.37 que han incorporado no hace mucho.

En cuanto a los leds, es cierto, no funcionan. Lo revisaré.

Unregistered user Thursday, September 1, 2011 1:30:57 PM

Anonymous writes: Alguien sabe como configurar un dispositivo wifi por usb con chispet rt2500? He instalado los siguientes paquetes pero me sigue sin detectar el dispositivo... kernel_2.6.39.2-1_brcm63xx.ipk kmod-crc-itu-t_2.6.39.2-1_brcm63xx.ipk kmod-rt2x00-lib_2.6.39.2+2011-06-22-2_brcm63xx.ipk kmod-rt2x00-usb_2.6.39.2+2011-06-22-2_brcm63xx.ipk kmod-rt2500-usb_2.6.39.2+2011-06-22-2_brcm63xx.ipk

ALoALoGeNo Saturday, December 31, 2011 11:19:30 AM

Buenas peña, pues nada q le puesto un pigtail UFL a RP-SMA para poder poner una antena externa a la livebox, y va de perlas, asiq me gustaria compartir esta info con votros por si os diera por ponerle unas antenitas bigsmile (le podriamos poner un par de ellas.., yo le puse una sola).

Bien pues empezamos el tema esq lleva dos antenas "mini" dos alambrillos conectados a la minipci wifi por fos cables con conector UFL, bien pues el tema seria desconectar los dos cablecitos y anular las antenas "onboard" y ponerle dos pigtails UFL a RP-SMA bueno para q lo veais os pongo un link y ya buscais vosotros mejores precios yo cuando los compre me costaron 9€ cada uno, http://www.ciudadwireless.com/pigtail_rp-sma_bulkhead_-cuerpo_hembra_macho--p-614.html

Poniendo eso en el router, tendriamos la posibilidad de poner unas antenitas externas en nuestra livebox, la verdad nose como viene configurado por defecto pq en el config no pone nada, pero las opciones serian estas:

Modo Diversity:

Usa las dos antenas (para recibir y transmitir)

option 'diversity' '1'

1 on 0 off

Ahora bien, si usasemos las antenas internas recordar q tenemos 2 o las externas con el pigtail y demas, tambien podriamos decirle q use la antena 0 "main" para recibir y la antena 1 "aux" para transmitir eso lo hariamos asi..:

option 'txantenna' '1'
option 'rxantenna' '0'

Con eso tambien agilizaremos el trafico de la wifi.

Hasta ahi el modo diversity ON (1), ahora vamos con el modo diversity OFF (0), este es el caso q ami me interesa pq tengo una antena en un mastil y quiero q el router use la externa solo, no la interna, y la externa porq aki dentro ya tengo otro router q da servicio wifi, asiq quiero anular la antena interna "main" y dejar solo la externa "aux",
de este modo cuando haga un escaneo de redes el router mostrara las q entran por la antena externa.

Conclusion, si ponemos una sola antena externa y no configuramos esto el router no mostrara las redes q le entran por la antena externa sino q hara un MIX de los AP q lleguen mejor y yasta, diferencias en mi caso?, pues antes solo veia 4 redes dos de mi casa y dos de los vecinos del bloke, ahora veo unos 17, y porsupuesto el ap de mi cuñado al q quiero conectar para hechar unas partis en LAN bigsmile

Bueno espero no haber metido mucho royo y q a alguien le sea de ayuda esto.. aki pego mi /etc/config/wireless para q veais como lo he puesto.

config 'wifi-device' 'radio0'
option 'type' 'mac80211'
option 'channel' '11'
option 'macaddr' '00:1f:3a:3f:00:00'
option 'hwmode' '11g'
option 'txpower' '20'
option 'country' 'AU'
option 'distance' '1000'
option 'diversity' '0'
option 'txantenna' '1'
option 'rxantenna' '1'
option 'antenna' '1'

config 'wifi-iface'
option 'device' 'radio0'
option 'network' 'lan'
option 'mode' 'ap'
option 'ssid' 'SCW_v0rt3x'
option 'key' 'miwifipass'
option 'encryption' 'psk-mixed'


Weno pues como podeis ver modo diversity off para q solo use la antena q yo quiero q es la "AUX" envia y recive por la antena AUX tambien, una cosa, cuando el modo diversity esta en 0 las opciones rx y tx antena no se usan.

Ahi entra el parametro option 'antenna' '1' q es con el q elijes la antena q quieras.

Bien y sin mas rollo espero haberme explicado bien y q sirva de ayuda o inspiracion a alguien para modear su livebox bigsmile

Porsupuesto gracias a danitool por sus relases y su curre smile


Posteo de nuevo q salio un ladrillo y la config no se veia, a ver si asi habiendo logineado se ve mas decente si eso luego borra el comentario anterior dani, sorry bye smile

danitool Saturday, December 31, 2011 11:46:08 AM

Gracias por la info sobre todo por la configuración del /etc/config/wireless

Decir que de las dos salidas de antena que llevan la mayoría de adaptadores 11b/g, solo se usa una, la que obtiene mejor señal (en teoría), y esa es para transmitir y recibir, en ningún caso se usa una para transmitir y la otra para recibir en el mismo lapso de tiempo. Por tanto dos antenas solo será útil en entornos "dispersos" donde la señal rebota y hace extraños, donde se conmuta de una antena a otra para cojer la mejor señal posible, por ejemplo con nuestro portátil conectándose al wifi en el interior de nuestra casa. En enlaces a larga distancia en exteriores donde la señal seguramente tendrá siempre la misma dirección, con una antena externa es suficiente, poner dos antenas en este caso resultaría inútil seguramente.

El uso de dos antenas para transmitir datos al mismo por tiempo y en ambas a la vez se conseguirá con radios wifi 11b/g/n aunque para ello tendríamos que tener una infraestructura 11b/g/n, con esta tecnología presente en todos los puntos de acceso/clientes de nuestra red.

ALoALoGeNo Sunday, January 1, 2012 9:57:05 AM

Muy buena aclaracion smile

Feliz Año a tod@s wink

Unregistered user Friday, January 20, 2012 6:14:19 PM

DrBoom writes: Buenas DaniTool estoy intentando instalar kmod-video-gspca-ov534_2.6.32.10-1_brcm63xx.ipk y mjpg-streamer_r84-2_brcm63xx.ipk pero no lo consigo, uso la ultima version que compilaste para openwrt con luci es la 29366. Estoy conectado a Internet e intento hacerlo via web actualizando los packages y luego dandole a instalar lo que necesito,pero se queda ahi pensando,pierdo la conexion y al volver a reiniciarlo cortandole la alimentacion al rato vuelvo a entrar para ver que si se ha instalado,pero nada,todo sigue igual,no consigo instalarlo. Alguien puede ayudarme? Estoy iniciandome en el mundo de openwrt y la verdad me gusta,le sacas todo el potencial al aparato. Un saludo

Unregistered user Friday, January 27, 2012 2:03:19 AM

DrBoom writes: Ahora estoy consigo instalarlo desde SSH pero me dice que hay dos kernel instalados y que no puede seguir.¿Que puedo hacer? Un saludo

danitool Tuesday, January 31, 2012 2:56:47 PM

kmod-video-gspca-ov534_2.6.32.10-1_brcm63xx.ipk, es para un kernel 2.6.32, mientras que la imagen que he colgado en el sitio de openwrt es para la última revisión con kernel 2.6.39,

O bien puedes obtener los paquetes si los hay para este kernel, o compilarlos tu mismo fijándote en la revisión que ha de ser 29366, o una que use el mismo kernel.

Write a comment

New comments have been disabled for this post.