Tags

bin_sh blocage blosxom bsdfrance cblog chroot cluster dg834 dhcp dns dnsmasq fail-over fail2ban firefox freebsd ftp git install ipv6 jail kernel kimsufi libre linutop makefile netbook netbsd nginx ntp ntp.org openntpd openwrt proxy python reverse rmll route rrdcgi sl2009 ssd symon update usb var_empty vimperator world xen zfs

Powered by

blOg
maRkdown
awK
shEll

20/04/2010

[ openwrt xen route ipv6 ]

201004202206 openwrt xen route ipv6

OpenWRT, Xen et ipv6

Dans un précédent billet, je décrivais ma configuration xen. Il ne me manquait qu'une seule chose: l'ipv6. Je dois bien avouer que ça ne s'est pas fait en un jour.

J'ai commencé par configurer mon routeur:

root@fonera# route -A inet6 add 2001:470:ca75:100::/64 gw 2001:470:ca75:20:224:1ff:fe0f:f84c

2001:470:ca75:100::/64 est le réseau dédié aux hosts xen et 2001:470:ca75:20:224:1ff:fe0f:f84c l'ipv6 du dongle wifi du portable. Qui dit routage dit forwarding:

root@d531# grep forwarding= /etc/sysctl.conf
net.ipv6.conf.all.forwarding=1

Et pour éviter un message désagréable au boot:

root@d531# echo 'ipv6' >> /etc/modules

J'ai cru avoir une bonne idée en utilisant eth0 (qui me sert très peu) mais c'est vraiment une très mauvaise idée:

root@d531# tail -n 8 /etc/network/interfaces
auto eth0
iface eth0 inet static
    address 192.168.1.116
    netmask 255.255.255.0
iface eth0 inet6 static
    address 2001:470:ca75:100::1
    netmask 64

root@d531# ifconfig eth0 | grep inet6
      adr inet6: 2001:470:ca75:100::1/64 Scope:Global

root@d531# ping6 -c 1 -W 1 2001:470:ca75:100::1
PING 2001:470:ca75:100::1(2001:470:ca75:100::1) 56 data bytes

--- 2001:470:ca75:100::1 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

L'absence d'adresse lien-local ne doit pas être innocente dans cette affaire. Une (lllooonnnggggguuuuueeee) série de ping, reboot, man, google, ifup/ifdown plus tard, une idée me traverse la tête: pourquoi ne pas utiliser une interface virtuelle ?

root@d531# tail -n 8 /etc/network/interfaces
auto dummy0
iface dummy0 inet static
  address 10.0.0.1
  netmask 255.255.255.0
iface dummy0 inet6 static
  address 2001:470:ca75:100::1
  netmask 64

root@d531# ifconfig dummy0 | grep inet6
      adr inet6: 2001:470:ca75:100::1/64 Scope:Global
      adr inet6: fe80::9082:a4ff:fe06:92bc/64 Scope:Lien

root@d531# ping6 -c 1 -W 1 2001:470:ca75:100::1
PING 2001:470:ca75:100::1(2001:470:ca75:100::1) 56 data bytes
64 bytes from 2001:470:ca75:100::1: icmp_seq=1 ttl=64 time=0.030 ms

--- 2001:470:ca75:100::1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.030/0.030/0.030/0.000 ms

root@linuto# ping6 -n -c 1 2001:470:ca75:100::1
PING6(56=40+8+8 bytes) 2001:470:ca75:10:214:bff:fe80:337b --> 2001:470:ca75:100::1
16 bytes from 2001:470:ca75:100::1, icmp_seq=0 hlim=63 time=7.855 ms

--- 2001:470:ca75:100::1 ping6 statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 7.855/7.855/7.855/nan ms

It works! Passons à la configuration de xen. Le script vif-route ne prend pas en compte l'ipv6. Heureusement, je ne suis pas seul: http://notes.benv.junerules.com/all/software/xen-and-routed-ipv6.

J'en profite pour proposer une version perless ici. On précise à xen qu'on utilise une autre interface qu'eth0:

root@d531# grep '\-route' /etc/xen/xend-config.sxp
(network-script 'network-route netdev=dummy0')
(vif-script     'vif-route netdev=dummy0')

Un dernier reboot pour vérifier que le tout survit à un redémarrage et c'est parti:

root@d531# grep vif /etc/xen/openwrt.bsdsx.fr.cfg 
vif         = [ 'ip=10.0.0.33 2001:470:ca75:100::33,mac=00:16:3E:6D:BB:94' ]

root@d531# xm create -c openwrt.bsdsx.fr.cfg
[ snip boot ]
root@OpenWrt:/# ifconfig br-lan|grep inet6
      inet6 addr: 2001:470:ca75:100::33/64 Scope:Global
      inet6 addr: fe80::ac65:afff:fed8:dcc4/64 Scope:Link

Et ça marche ?

root@linutop# traceroute6 -n  2001:470:ca75:100::33
traceroute6 to 2001:470:ca75:100::33 (2001:470:ca75:100::33) from 2001:470:ca75:10:214:bff:fe80:337b, 64 hops max, 12 byte packets
 1  2001:470:ca75:10::1  1.761 ms  1.73 ms  1.324 ms
 2  2001:470:ca75:20:224:1ff:fe0f:f84c  4.317 ms  9.467 ms  10.127 ms
 3  *^C

Hum, pas trop. Un coup de tcpdump plus tard et je me rends compte qu'il manque une route par défaut sur l'invité:

root@OpenWrt:/# ip -6 ro add default via 2001:470:ca75:100::1
root@OpenWrt:/# ping6 -c 1 www.kame.net
PING www.kame.net (2001:200:0:8002:203:47ff:fea5:3085): 56 data bytes
64 bytes from 2001:200:0:8002:203:47ff:fea5:3085: seq=0 ttl=52 time=314.763 ms

--- www.kame.net ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 314.763/314.763/314.763 ms

Un dernier tour sur http://wiki.openwrt.org/doc/uci/network pour enregistrer la route:

root@OpenWrt:/# tail -n 4 /etc/config/network 
config 'route6'
    option 'interface' 'lan'
    option 'target' 'default'
    option 'gateway' '2001:470:ca75:100::1'

Et voilà, c'est bon, servez chaud. Bon appétit.


Lien vers ce billet

03/04/2010

[ openwrt xen ]

201004032216 openwrt xen

OpenWRT et Xen

Depuis quelques temps, ce billet me trottait dans la tête. Petit récapitulatif:

Une recherche avec xen bridge wifi et me voila à configurer mes domU en mode routeur:

d531:~> grep script /etc/xen/xend-config.sxp | grep -v "^#"
(network-script network-route)
(vif-script     vif-route)

Mon interface eth0 ne me sert (presque) à rien:

d531:~> /sbin/ifconfig eth0 | grep 'inet adr'
      inet adr:10.0.0.1  Bcast:10.255.255.255  Masque:255.0.0.0

Afin que mes domU puissent accéder au nain ternet, j'ajoute une route sur mon routeur:

root@fonusb# route add -net 10.0.0.0 netmask 255.255.255.0 gw 172.16.10.116
root@fonusb# tail -n 5 /etc/config/network
config 'route' 'xen'
    option 'interface' 'wpa'
    option 'target' '10.0.0.0'
    option 'netmask' '255.255.255.0'
    option 'gateway' '172.16.10.116'

10.0.0.0 est le réseau de mes domU, 172.16.10.116 l'ip de mon dom0 et wpa le nom logique de mon interface. Voir ici pour la configuration d'une route sous openwrt.

Concernant openwrt, mes tentatives de compilation sur ma machine 64 bits se sont soldées par un cuisant échec. J'ai opté pour une solution simple: un chroot 32 bits. La documentation ne manque pas, je ne vais pas détailler l'opération.

Une fois dans mon chroot et l'installation des paquets nécessaires on peut commencer à jouer:

bsdsx@chroot> svn co svn://svn.openwrt.org/openwrt/trunk/
bsdsx@chroot> cd trunk
bsdsx@chroot> ./script/feeds update
bsdsx@chroot> make prereq

Et c'est parti pour une partie de coche-mi coche-moi:

Target System
  [x] x86
Subtarget
  [x] Xen Paravirt Guest
Global build settings
  [ ] Compile the kernel with Debug Filesystem enabled
Kernel modules
  Xen paravirtualized guest support
      [x] kmod-xen-evtchn
      [ ] kmod-xen-fbdev
      [x] kmod-xen-fs
      [x] kmod-xen-kbddev
      [x] kmod-xen-netdev

Une fois le make terminé, on installe le tout:

dsx@d531> sudo cp /usr/local/src/x86_32/home/bsdsx/src/svn/openwrt/trunk/bin/x86/openwrt-x86-ext2.fs /usr/local/xen/
dsx@d531> sudo cp /usr/local/src/x86_32/home/bsdsx/src/svn/openwrt/trunk/bin/x86/openwrt-x86-vmlinuz /usr/local/xen/

La configuration du domU:

dsx@d531:/etc/xen> cat /etc/xen/openwrt.bsdsx.fr.cfg 
kernel      = '/usr/local/xen/openwrt-x86-vmlinuz'
memory      = '32'
root        = '/dev/xvda1 rw'
disk        = [ 'file:/usr/local/xen/openwrt-x86-ext2.fs,xvda1,w', ]
name        = 'openwrt.bsdsx.fr'
vif         = [ 'ip=10.0.0.33,mac=00:16:3E:6D:BB:94' ]
gateway     = '10.0.0.1'
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'
extra       = 'console=hvc0 xencons=tty'

Et c'est parti (attention c'est rapide !):

dsx@d531> sudo xm create -c openwrt.bsdsx.fr.cfg
[ snip boot ]
root@OpenWrt:/# cat /proc/version 
Linux version 2.6.32.10 (dsx@d531.bsdsx.fr) (gcc version 4.1.2) #5 SMP Sat Apr 3 08:56:39 UTC 2010
root@OpenWrt:/# tail -n 7 /etc/config/network 
config interface lan
    option ifname   eth0
    option proto    static
    option ipaddr   10.0.0.33
    option netmask  255.255.255.0
    option gateway  10.0.0.1
    option dns      172.16.10.254

On retrouve dans la configuration:

Et ça marche ?

root@OpenWrt:/# ping -c 1 www.google.fr
PING www.google.fr (209.85.229.147): 56 data bytes
64 bytes from 209.85.229.147: seq=0 ttl=53 time=34.268 ms

--- www.google.fr ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 34.268/34.268/34.268 ms

Lien vers ce billet

31/01/2010

[ openwrt dnsmasq blocage ]

201001311022 openwrt dnsmasq blocage

Dnsmasq et le blocage de site

Pour faire suite à l'article sur le blocage de site paru dans le GLMF n° 124, je vous propose sa déclinaison OpenWRT.

/etc/config/dhcp:

config dnsmasq
    [ snip config ]
    list address '/ads.google.com/127.0.0.1'
    list address '/google-analytics.com/127.0.0.1'
    list address '/smartadserver.com/127.0.0.1'
    list address '/adsense.com/127.0.0.1'
    list address '/adsense.fr/127.0.0.1'
    list address '/doubleclick.net/127.0.0.1'

L'option address n'étant pas encore reconnue par le script d'init de dnsmasq (/etc/init.d/dnsmasq), on va lui rajouter une fonction et une ligne de commande supplémentaire.

OpenWRT 8.09 (et antérieur)

dhcp_address_add() {
    local cfg="$1"

    config_get address "$cfg" address
    for o in $address; do
            append args "--address=$o"
    done

}

start() {
    [ snip config_foreach ... ]
    config_foreach dhcp_address_add dnsmasq # appel de notre fonction

    /usr/sbin/dnsmasq $args && { 

OpenWRT 8.09.1 (et ultérieur)

append_address() {
    append args "--address=$1"
}

dnsmasq() {
    [ snip append ... ]
    config_list_foreach "$cfg" "server" append_server
    config_list_foreach "$cfg" "interface" append_interface
    config_list_foreach "$cfg" "address" append_address # appel de notre fonction
    append_parm "$cfg" "leasefile" "-l"
    ...

Et un restart plus tard:

dsx@linutop>host www.adsense.com
www.adsense.com has address 127.0.0.1

Lien vers ce billet

29/07/2009

[ openwrt cluster dhcp dns ntp makefile ]

200907292215 openwrt cluster dhcp dns ntp makefile

Openwrt et haute dispo

Le nombre d'openwrt dans mon bureau ne cesse d'augmenter (et les promos sur http://shop.fon.com n'arrange rien :) je me suis demandé comment mettre en oeuvre un peu de haute-dispo (histoire de faire hype).

Principaux services concernés:

J'ai pour ce faire un Netgear DG834, une Fonera et une Fonera+, tous sous Kamikaze (8.09 et 8.09.1).

Le dhcp

Ayant désactivé le dhcp de ma box, c'est donc une de mes fonera qui a pris le relai. A force de google et de wiki openwrt, je suis arrivé à la configuration suivante:

[ extrait /etc/config/dhcp ]
config dhcp lan
    option interface        lan
    option start    100
    option limit    150
    option leasetime        60h
    list dhcp_option '3,192.168.0.254'   # gateway
    list dhcp_option '6,192.168.0.251,192.168.0.230,192.168.0.250' # dns
    list dhcp_option '42,ntp.localdomain.tld'  # ntp-server
    option force 1 # pas de test si un autre serveur dhcp est sur le reseau

J'ai recopié cette config sur les deux autres openwrt. J'ai donc 3 serveurs dhcp et au niveau client, c'est le serveur qui répond le plus vite qui gagne.

ntp

Un round-robin dns fait l'affaire. Chaque openwrt a un alias "ntp".

dns

Le sujet de ce billet. Afin que mes 3 dnsmasq me répondent tous la même chose, il me faut synchroniser 2 fichiers: /etc/config/luci_ethers et /etc/config/luci_hosts. /etc/config/luci_ethers pour faire du dhcp à baux permanents (une adresse mac aura toujours la même adresse ip) et /etc/config/luci_host qui s'occupe de la conversion ip / host.

dnsmasq n'a pas de notion maitre/esclave et je ne vais pas installer rsync pour 2 fichiers. De plus, l'ordre d'arrêt/démarrage des 3 services (luci_ethers, luci_host, dnsmasq) a son importance. Un petit script perl, un Makefile et le tour est joué:

dsx> vim dns.pl (ajout d'une adresse {mac, ipv4, ipv6} ou un alias)
dsx> make
./dns.pl luci_hosts > luci_hosts
./dns.pl luci_ethers > luci_ethers
dsx> make update
scp -q luci_hosts luci_ethers openwrt1:/etc/config/
scp -q luci_hosts luci_ethers openwrt2:/etc/config/
scp -q luci_hosts luci_ethers openwrt3:/etc/config/
dsx> make restart
ssh openwrt1 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated
ssh openwrt2 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated
ssh openwrt3 ' /etc/init.d/dnsmasq stop; /etc/init.d/luci_hosts stop; /etc/init.d/luci_ethers stop; /etc/init.d/luci_ethers start; /etc/init.d/luci_hosts start; /etc/init.d/dnsmasq start; '
Terminated

Le tout est disponible ici. Toute remarque est la bienvenue :)


Lien vers ce billet

14/05/2009

[ openwrt dg834 ]

200905141141 openwrt dg834

OpenWrt et Netgear DG834

Installation

Un vieux modem/routeur Netgear DG834 trainait sur un coin de mon bureau. Un rapide tour sur le wiki openwrt m'apprend que ce matériel est supporté. Je vais donc décrire l'installation de Kamikaze 8.09.

Pas à pas

On commence par activer le telnet depuis l'interface html:

$ wget --user=admin --password=passord 'http://192.168.0.1/setup.cgi?todo=debug'
$ telnet 192.169.0.1

Petit tour du propriétaire:

# cat /proc/version 
Linux version 2.4.17_mvl21-malta-mips_fp_le (root@Run-P4) (gcc version 2.95.3 20010315 (release/MontaVista)) #6 Wed Sep 7 16:50:05 CST 2005

# cat /proc/meminfo 
        total:    used:    free:  shared: buffers:  cached:
Mem:  14757888  6991872  7766016        0   778240  2539520
Swap:        0        0        0
MemTotal:        14412 kB
MemFree:          7584 kB
MemShared:           0 kB
Buffers:           760 kB
Cached:           2480 kB
SwapCached:          0 kB
Active:           1008 kB
Inactive:         3232 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        14412 kB
LowFree:          7584 kB
SwapTotal:           0 kB
SwapFree:            0 kB

# cat /proc/ticfg/env 
memsize 0x01000000
flashsize       0x00400000
modetty0        115200,n,8,1,hw
modetty1        115200,n,8,1,hw
bootserport     tty0
cpufrequency    150000000
sysfrequency    125000000
bootloaderVersion       0.18.01
ProductID       DG834
HWRevision      Unknown
SerialNumber    none
prompt  DGB34
firstfreeaddress        0x9402e088
req_fullrate_freq       125000000
mtd0    0x900d0000,0x903e0000
mtd1    0x90020000,0x900d0000
mtd2    0x90000000,0x90020000
mtd3    0x903e0000,0x903f0000
autoload
maca    00:09:5b:9e:8e:be
macb    00:09:5b:9e:8e:bf
Bridge_MODE     0
mt_time 0
oam_lb_timeout  100
mtd4    0x903f0000,0x90400000
my_ipaddress    192.168.0.1

# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00310000 00010000 "mtd0"
mtd1: 000b0000 00010000 "mtd1"
mtd2: 00020000 00010000 "mtd2"
mtd3: 00010000 00010000 "mtd3"
mtd4: 00010000 00010000 "mtd4"

La lecture de http://www.earth.li/~noodles/hardware-dg834g.html nous apprend qu'il faut modifier le firmware d'origine. Une version de mtd2.bin avec le bon md5 est disponible ici.

# cd /tmp
# wget http://download.bsdsx.fr/netgear/mtd2.bin
# dd if=/tmp/mtd2.bin of=/dev/mtdblock/2
# reboot

On réactive le telnet et on prépare l'installation d'OpenWrt:

# cd /proc/sys/dev/adam2 
# echo "mtd5 0x90020000,0x903e0000" > environment
# reboot

C'est reparti pour un telnet et on passe aux choses sérieuses:

# wget http://downloads.openwrt.org/kamikaze/8.09/ar7/openwrt-ar7-squashfs.bin
# dd if=openwrt-ar7-squashfs.bin of=/dev/mtdblock/5
# reboot

Et là c'est le drame:

$ ping -c 1 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.115 icmp_seq=1 Destination Host Unreachable

--- 192.168.0.1 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

Console série USB

Pour cette recette, il nous faut:

Petit tip pour la soudure: maintenez simplement la pinoche sur la pastille d'étain à l'aide de la pince et faites chauffer le dessus de la pinoche. Appuyez vers le bas et la pinoche rentre toute seule.

Un petit schéma ascii:

j101

j603 [[o]] [o] [o] [o] [o] [o]
       N    B       B
       o    l       l
       i    a       e
       r    n       u
            c
j100

Je suis une vrai quiche en électronique donc cette manipulation est vraiment à la portée du plus grand nombre.

Lève-toi et marche

$ cu -l /dev/ttyU0 -s 115200
ADAM2 Revision 0.18.01
(C) Copyright 1996-2003 Texas Instruments Inc. All Rights Reserved.
(C) Copyright 2003 Telogy Networks, Inc.
Usage: setmfreq [-d] [-s sys_freq, in MHz] [cpu_freq, in MHz]
Memory optimization Complete!

DGB34 >
Press any key to abort OS load, or wait 3 seconds for OS to boot...

DGB34 > help
   Commands   Description
   --------   -----------
         h/help Displays the commands supported
           info Displays board information
          memop Memory Optimization
       setmfreq configures/dumps the system and cpu frequencies
             dm Dump memory at <address>
          erase Erase Flash except Adam2 Kernel and Env space
       printenv Displays Env. Variables
         setenv Sets Env. variable <var> with a value <val>
       unsetenv Unsets the Env. variable <var>
         fixenv Defragment for Env. space
             go Loads the image starting at address <mtd1>

DGB34 > info
Monitor Revision              0.18.01
Monitor Compilation time      Aug  1 2003, 14:43:32
Endianness                    Little
External Memory rate          Full, 16 bit wide
CPU Frequency                 150 MHz
DGB34 > printenv
memsize               0x01000000
flashsize             0x00400000
modetty0              115200,n,8,1,hw
modetty1              115200,n,8,1,hw
bootserport           tty0
cpufrequency          150000000
sysfrequency          125000000
bootloaderVersion     0.18.01
ProductID             DG834
HWRevision            Unknown
SerialNumber          none
prompt                DGB34
firstfreeaddress      0x9402e088
req_fullrate_freq     125000000
mtd0                  0x900d0000,0x903e0000
mtd1                  0x90020000,0x900d0000
mtd2                  0x90000000,0x90020000
mtd3                  0x903e0000,0x903f0000
autoload
maca                  00:09:5b:9e:8e:be
macb                  00:09:5b:9e:8e:bf
Bridge_MODE           0
mt_time               0
oam_lb_timeout        100
mtd4                  0x903f0000,0x90400000
my_ipaddress          192.168.0.1
mtd5                  0x90020000,0x903e0000
DGB34 > go
checksum error
Linux version 2.6.26.5 (nbd@baustelle) (gcc version 4.1.2) #1 Mon Jan 5 05:57:36 CET 2009
console [early0] enabled
CPU revision is: 00018448 (MIPS 4KEc)
TI AR7 (TNETD7300), ID: 0x0005, Revision: 0x02
Determined physical RAM map:
 memory: 01000000 @ 14000000 (usable)
Initrd not found or empty - disabling initrd
Zone PFN ranges:
  Normal      81920 ->    86016
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0:    81920 ->    86016
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 4064
Kernel command line: init=/etc/preinit rootfstype=squashfs,jffs2, console=ttyS0,115200n8
Primary instruction cache 16kB, VIPT, 4-way, linesize 16 bytes.
Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 16 bytes
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: 12572k/16384k available (1988k kernel code, 3812k reserved, 422k data, 124k init, 0k highmem)
SLUB: Genslabs=6, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Mount-cache hash table entries: 512
net_namespace: 644 bytes
NET: Registered protocol family 16
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
squashfs: version 3.0 (2006/03/15) Phillip Lougher
Registering mini_fo version $Id$
JFFS2 version 2.2. (NAND) (SUMMARY) &#169; 2001-2006 Red Hat, Inc.
msgmni has been set to 24
io scheduler noop registered
io scheduler deadline registered (default)
Serial: 8250/16550 driver $Revision: 1.90 $ 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x8610e00 (irq = 15) is a TI-AR7
console handover: boot [early0] -> real [ttyS0]
serial8250: ttyS1 at MMIO 0x8610f00 (irq = 16) is a TI-AR7
Fixed MDIO Bus: probed
cpmac-mii: probed
cpmac: device eth0 (regs: 08612800, irq: 41, phy: , mac: 00:09:5b:9e:8e:bf)
cpmac: device eth1 (regs: 08610000, irq: 27, phy: , mac: 00:09:5b:9e:8e:be)
physmap platform flash device: 00800000 at 10000000
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.
cmdlinepart partition parsing not available
RedBoot partition parsing not available
4 ar7part partitions found on MTD device physmap-flash.0
Creating 4 MTD partitions on "physmap-flash.0":
0x00000000-0x00010000 : "loader"
0x003f0000-0x00400000 : "config"
0x00020000-0x003f0000 : "linux"
0x000f0000-0x003f0000 : "rootfs"
mtd: partition "rootfs" set to be root filesystem
mtd: partition "rootfs_data" created automatically, ofs=220000, len=1D0000
0x00220000-0x003f0000 : "rootfs_data"
ar7_wdt: timer margin 59 seconds (prescale 65535, change 57180, freq 62500000)
Registered led device: ppp
Registered led device: status
Registered led device: adsl
Registered led device: wifi
Registered led device: power
vlynq0: regs 0x08611800, irq 29, mem 0x04000000
vlynq1: regs 0x08611c00, irq 33, mem 0x0c000000
TCP vegas registered
NET: Registered protocol family 17
802.1Q VLAN Support v1.8 Ben Greear <greearb@candelatech.com>
All bugs added by David S. Miller <davem@redhat.com>
VFS: Mounted root (squashfs filesystem) readonly.
Freeing unused kernel memory: 124k freed
Please be patient, while OpenWrt loads ...
Algorithmics/MIPS FPU Emulator v1.5
- preinit -
Press CTRL-C for failsafe
switching to jffs2
mini_fo: using base directory: /
mini_fo: using storage directory: /jffs
- init -

Please press Enter to activate this console.


BusyBox v1.11.2 (2009-01-04 22:13:46 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 (8.09, r14511) ----------------------------
  * 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:/# PHY: 0:10 - Link is Down
br-lan: Dropping NETIF_F_UFO since no NETIF_F_HW_CSUM feature.
device eth0 entered promiscuous mode
br-lan: port 1(eth0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0) entering forwarding state
PPP generic driver version 2.4.2
ip_tables: (C) 2000-2006 Netfilter Core Team
br-lan: port 1(eth0) entering disabled state
br-lan: port 1(eth0) entering learning state
br-lan: topology change detected, propagating
br-lan: port 1(eth0) entering forwarding state
nf_conntrack version 0.5.0 (1024 buckets, 4096 max)
root@OpenWrt:/# ifconfig
br-lan    Link encap:Ethernet  HWaddr 00:09:5B:9E:8E:BF
          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: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)

eth0      Link encap:Ethernet  HWaddr 00:09:5B:9E:8E:BF
          UP BROADCAST RUNNING MULTICAST  MTU:1500  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:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:41

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)

root@OpenWrt:/#

Bon, je reconnais que j'aurais pu me passer de la partie fer à souder si j'avais pingué 192.168.1.1 au lieu de 192.168.0.1. Cette ip est fixée en dur lors de la compilation d'OpenWrt.

Bonne nouvelle, j'ai maintenant accès au boot ADAM2. Pas suffisant pour flasher la bête en cas de problème comme on peut le lire sur http://www.seattlewireless.net/ADAM2 et mes tentatives de ftp se soldaient par des échecs. Mais maintenant que j'ai accès à la console, il est plus facile de détecter cette petite fenêtre où le bootloader accepte les connexions ftp: il suffit d'attendre le message "Press any key to abort OS load...".

Et maintenant

Et oui, c'est bien beau mais qu'est-ce que j'en fais de ce dg834 ? Mon FAI a un célèbre client prénommé Rodolphe qui a tout compris. Ce qui me chagrine:

C'est quand même pénible de rebooter la box pour un simple ajout de bail permanent.

Un petit dnsmasq, c'est bonheur ! ping iphone classe non ?

Toutes les machines à la bonne/même heure, c'est pas mieux ?

Quand on commence à avoir plusieurs machines, c'est le genre de services bien pratique. Et quand le tout est ipv6 compliant, pourquoi s'en priver ?

J'ai donc désactiver le dhcp de ma box et configuré dnsmasq. Pour vous éviter de perdre du temps, un extrait de la conf:

config dhcp lan
        option interface      lan
        option start    100
        option limit    150
        option leasetime      48h
        option dhcp_option '3,192.168.0.254'   # gateway

Le dhcp_option m'a fait un peu tourné en bourrique mais maintenant "it works" !

Et demain

Petit tour du stock:

De quoi monter un cluster OpenWrt !


Lien vers ce billet

05/05/2009

[ update freebsd openwrt blosxom ]

200905052004 update freebsd openwrt blosxom

Mises à jour diverses et variées

Il y a des périodes comme ça, on a envie/besoin de changement(s). Petit récapitulatif:

kimsufi

Passage de FreeBSD 7.1 en 7.2. A moi les joies des jails multi ipv4/ipv6 !

fon2200

Passage d' OpenWRT 7.09 en 8.09. Toujours aussi simple une fois que l'on a accès à la console.

dg834g

Récupération d'un petit boitier modem/routeur wifi qui a rapidement ingurgité un OpenWrt 8.09. Seule ombre au tableau:

root@dg384g:~# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                    1.2M      1.2M         0 100% /
/dev/root                 1.2M      1.2M         0 100% /rom
tmpfs                     6.2M    736.0k      5.5M  12% /tmp
tmpfs                   512.0k         0    512.0k   0% /dev
/dev/mtdblock4            1.8M    760.0k      1.1M  41% /jffs
mini_fo:/jffs             1.2M      1.2M         0 100% /

Un rootfs de 1.2 Mo rempli à 100% et un /tmp qui ne sert pas beaucoup. Je dois revoir ma copie.

shuttle K45

J'ai mis en place un petit NAS pour sauvegarder les photos et vidéos familiales. Au menu:

Un prochain billet décrira plus en détail l'histoire de cette machine.

Le blog

Il n'aura échappé à personne le changement radical de ce blog. On m'a fait découvrir blosxom et je suis tombé sous le charme de ces 444 lignes de perl. Du perl, rien que du perl, pas de dépendance. Le style est un peu brut de décoffrage mais j'y travaille :)

A venir:

Bon, c'est pas le tout mais j'ai du boulot :)

Ps: pour les adeptes des flux rss/atom, c'est en cours.


Lien vers ce billet