[uClinux-dev] ip masquarade support

Roope Anttinen roope.anttinen at indagon.com
Tue Mar 11 03:32:41 EST 2003


Started all over with as stripped image as possible which does basically
nothing more than boots...

Here we go:
uClinux/MC68VZ328
uCdimm by Lineo, Inc. <www.lineo.com>
M68VZ328 support by Evan Stawnyczy <e at lineo.ca>
Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne
On node 0 totalpages: 1536
zone(0): 0 pages.
zone(1): 1536 pages.
zone(2): 0 pages.
Kernel command line: 
Calibrating delay loop... 3.28 BogoMIPS
Memory available: 5644k/6016k RAM, 0k/0k ROM (712k kernel code, 289k
data)
Dentry cache hash table entries: 1024 (order: 1, 8192 bytes)
Inode cache hash table entries: 512 (order: 0, 4096 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: 2048 (order: 1, 8192 bytes)
POSIX conformance testing by UNIFIX
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
pty: 256 Unix98 ptys configured
MC68328 serial driver version 1.00
ttyS0 at 0xfffff900 (irq = 2) is a builtin MC68328 UART
ttyS1 at 0xfffff910 (irq = 12) is a builtin MC68328 UART
cs89x0:cs89x0_probe(0x0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0x10000300
cs89x0.c: v2.4.3-pre1 Russell Nelson <nelson at crynwr.com>, Andrew Morton
<andrew>
eth0: cs8900 rev J found at 0x10000300 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth1: cs8920 rev ` found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth2: cs8900 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth3: cs8920 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth4: cs8900 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth5: cs8920 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth6: cs8900 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
cs89x0:cs89x0_probe(0xffe0)
cs89x0: Setting up uCcs8900 Chip Select & IRQ ioaddr = 0xFFE0
eth7: cs8920 rev A found at 0xffe0 
cs89x0 media RJ-45, IRQ 20, programmed I/O, MAC 00:06:3b:00:00:62
cs89x0_probe1() successful
Blkmem copyright 1998,1999 D. Jeff Dionne
Blkmem copyright 1998 Kenneth Albanowski
Blkmem 1 disk images:
0: 10CF47E8-10DD43E7 [VIRTUAL 10CF47E8-10DD43E7] (RO)
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 512 bind 512)
ip_conntrack version 2.1 (48 buckets, 384 max) - 316 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (romfs filesystem) readonly.
eth0: 10Base-T (RJ-45) has no cable
eth0: using half-duplex 10Base-T (RJ-45)
Welcome to
          ____ _  _
         /  __| ||_|                 
    _   _| |  | | _ ____  _   _  _  _ 
   | | | | |  | || |  _ \| | | |\ \/ /
   | |_| | |__| || | | | | |_| |/    \
   |  ___\____|_||_|_| |_|\____|\_/\_/
   | |
   |_|

For further information check:
http://www.uclinux.org/

..ok stays up. Then I plug in the ethernet cable and OOOPS!

*** UNASSIGNED RESERVED 12 ***   FORMAT=2
Current process id is 0
BAD KERNEL TRAP: 00000000
PC: [<0002f7df>]
SR: 2035  SP: 00050cc4  a2: 000dec34
d0: 00000000    d1: 00000000    d2: 00000000    d3: 00000000
d4: 0002f7df    d5: 00048414    a0: 000dec74    a1: 00000000
Process swapper (pid: 0, stackpage=0004ff60)
Frame format=2 instr addr=200010c9
Stack from 00050cfc:
        d4860000 00000000 00000000 00000004 84140000 00000005 0e560011
c0500003
        72ac0011 c0500005 0e560044 00000000 00000000 0002f7df 00048414
00000000
        000ddb94 00000000 00000005 0d8a10c9 f59c0005 0e560000 00000004
84140000
        00000004 cc680000 00000000 00010000 00000011 c0fc0011 c0500000
0bb80011
        c05010c9 b5aa0011 c050000d db800005 0dca10c9 f1620005 0e560000
00000004
        84140000 00000011 c0500011 c0fc0004 966810c7 b6da0000 00000005
0e4210c7
Call Trace:
        [<10c11e28>] [<10c11e52>] [<10c104d6>] [<10cb6d72>]
        [<10c1048e>]


Found that 2f7df from the linux image:

0002a560 d npindex_to_ethertype
0002bc20 d rtm_min
0002bc40 d rta_max
0002be22 d prio2band
0002dbd7 D timer_bug_msg
0002f7df d nulldevname.1221
000326ce d border
00032872 d mark.174
00032876 d inflate_copyright

and 

> grep -r nulldevname *
net/ipv4/netfilter/ip_tables.c: static const char nulldevname[IFNAMSIZ]
= { 0 };
net/ipv4/netfilter/ip_tables.c: indev = in ? in->name : nulldevname;
net/ipv4/netfilter/ip_tables.c: outdev = out ? out->name : nulldevname;
Binary file net/ipv4/netfilter/ip_tables.o matches
net/ipv4/netfilter/arp_tables.c:        static const char
nulldevname[IFNAMSIZ] = { 0 };
net/ipv4/netfilter/arp_tables.c:        indev = in ? in->name :
nulldevname;
net/ipv4/netfilter/arp_tables.c:        outdev = out ? out->name :
nulldevname;
Binary file net/ipv4/netfilter/netfilter.o matches
net/ipv6/netfilter/ip6_tables.c:        static const char
nulldevname[IFNAMSIZ] = { 0 };
net/ipv6/netfilter/ip6_tables.c:        indev = in ? in->name :
nulldevname;
net/ipv6/netfilter/ip6_tables.c:        outdev = out ? out->name :
nulldevname;
Binary file net/network.o matches

So, what now??

/Roope





More information about the uClinux-dev mailing list