wiki:Linux/Embedded/Infineon/Danube/ADSL2PCI

Infineon Danube ADSL2+ PCI modem

There are very few xDSL PCI card form-factor modems available, and most of those that are available do not provide Linux drivers and/or use a proprietary interface stack to the DSL side. For those of us wishing to build an open-source, easily maintainable ADSL gateway using a regular PCI card this device is one of the few that meets our criteria. I purchased it from Linitx in the UK as the " ADSL2+ PCI Card - Single Port ADSL Modem - Annex A". It is unbranded so I'm not sure if it is rebranded by other suppliers.

Linitx state "Linux source tree available". I emailed Linitx to request the source-code for the device and they replied with a link to the parent-company web-site at  http://www2.multithread.co.uk/adsl_card_source.tar. The archive contains the Linux kernel, FOSS project sources, and the uclibc-toolchain/ifx-lxdb-1-1/gcc-3.3.6/toolchain-mips. See the building from source section for more details.

I'm recording my experiences and observations on building from source and whether the built binaries match those on the device. There's also a log of files I've identified as missing.

Current status is: LEX Computech/Infineon source-code does not match firmware; critical pieces missing

Manufacturer

Further research indicates the device is manufactured by  Lex Computech in Taiwan and is listed in their  Products > Accessories > Additional Modules for System section. The  catalog PDF for the PCI Cards matches the Linitx product listing exactly.

  • Chip : Infineon
  • ITU-T G.992.1 ( G.dmt ) and G.992.2 ( G.lite ) compliant for Annex A, B, ITU-T G.992.3,G.992.4 for ADSL2, ITU-T G.992.5 for ADSL2+
  • Supports downstream and upstream data rates up to 24Mbps and 2Mbps
  • Configuration and management operated via Web browser with password protected access
  • Interface : PCI or LAN link
  • O.S : MS Win 98 / 2000 / ME / XP, Linux

The contacts page of the Lex web-site gives the company headquarters in Taiwan and European headquarters in the Netherlands.

LEX COMPUTECH CO.,LTD.
3F., No.77, LI DE St., Zhonghe Dist.,
New Taipei City 235, Taiwan,R.O.C
Tel : +886 2 2228-1055
Fax : +886 2 2228-1056
E-mail : sales@…

EUROPE Headquarters
LEXCOM B.V.
Het Sterrenbeeld 32 ,
5215 ML 's-Hertogenbosch
The Netherlands
Tel : +31-73 687 2390
Fax : +31-73 687 2398
E-mail :info@…

Package Contents

The device arrives with no user guide, just a simple leaflet with rather cryptic jumper/connector details.

ADSL2+ PCI card configuration leaflet (320x451)

ADSL2+ PCI Card Leaflet from Linitx 1362x1920.jpg Download

From this it can be deduced that the device has two modes of operation:

  1. Inserted in a standard 32-bit PCI slot, presents Ethernet 10/100Base-T interface to the operating system
  2. Used stand-alone, provided with external power, connected via external RJ45 connector

The poor grammar of the English language suggests the leaflet was created by a non-native speaker - most likely from east Asia (Taiwan or China most likely).

Markings

Component Side

ADSL2+ PCI card component side (320x180)

A2PCI-component-side-1920x1080.jpg Download

495-B0707-00

Trace Side

ADSL2+ PCI card trace side (320x180)

A2PCI-trace-side-1920x1080.jpg Download

LM 030 94V-0 0828 EE 4410078

TYT1154, 070913

Stickers

PCI MAC ID: 0005B409EE27

ADSL MAC ID: 0005B409EBDB

L1103-0127

110110979

Logic components

Component Side

Infineon PSB 50610 E V1.4 (1YUSTC16M05)

RealTek RTL8201CP Single-Port 10/100M Fast Ethernet PHYceiver  datasheet

RealTek RTL8100CL PCI/Mini-PCI Single-Chip Fast Ethernet Controller with Power Management  datasheet

WE-MIDCOM, AE 52237, WI949LF1 EP13 SMD 12-pin, xDSL Signal transformer Annex A,B,C  datasheet

Trace Side

MX T100144, 29LV320DBTI-70G, 3C791100.  Macronix International Parallel Flash 32Mbit 3V.  datasheet  drivers

DDR CCED

ATMLH824, 46D 1, 7G4083M.  Atmel AT93C46D 1Kbit (128 byte) 3-wire Serial EEPROM  datasheet

CAT7196CA, LC11E37

HC595, 8C2T610, UnG08, 33D

Software Analysis

Software

Runtime System

Attached is a boot log of the 2.4.31-Danube-3.0.5g-A2PCI Download kernel.

# cat /proc/version
Linux version 2.4.31-Danube-3.0.5g-A2PCI (root@localhost.localdomain) (gcc version 3.3.6) #8 �@ 8�� 4 17:34:46 CST 2008
# cat /proc/cmdline
root=/dev/mtdblock2 ip=192.168.0.1:192.168.0.10::::eth0:on console=ttyS1,115200 ethaddr=00:05:B4:09:EB:DB mem=31M panic=1 
# cat /proc/cpuinfo
system type             : DANUBE
processor               : 0
cpu model               : unknown V4.1
BogoMIPS                : 222.00
wait instruction        : no
microsecond timers      : yes
tlb_entries             : 16
extra interrupt vector  : yes
hardware watchpoint     : yes
VCED exceptions         : not available
VCEI exceptions         : not available

# for f in /proc/lspinfo/*; do echo $f; cat $f; done
/proc/lspinfo/board_name
Infineon Danube (MIPS 24Kec) Processor (big endian)
/proc/lspinfo/build_id
1.5.1
/proc/lspinfo/lsp_name
danube-mips-linux
/proc/lspinfo/mvl_arch
mips-linux
/proc/lspinfo/revision
1
/proc/lspinfo/summary
Board Name              : Infineon Danube (MIPS 24Kec) Processor (big endian)
Lsp Name                : danube-mips-linux
LSP Revision            : 1.5.1.1
MVL Architecture        : mips-linux


# cat /proc/danube_bcu
DANUBE_EBU_BCU_CON      : 0x4009ffff
DANUBE_EBU_BCU_ECON     : 0x00000000
DANUBE_EBU_BCU_EADD     : 0x00000000
DANUBE_EBU_BCU_EDAT     : 0x00000000
DANUBE_EBU_BCU_IRNEN    : 0x00000001
DANUBE_EBU_BCU_IRNICR   : 0x00000000
DANUBE_EBU_BCU_IRNCR    : 0x00000000
# cat /proc/danube_cgu
pll0          : N = 73, M = 7, K = 0
pll1          : N = 50, M = 6, K = 399
pll2          : N = 74, M = 8, INPUT DIV = 7
pll0_fosc     = 333000000
pll0_fps(1)   = 266400000
pll0_fps(2)   = 222000000
pll0_fdiv     = 41625000
pll1_fosc     = 264289621
pll1_fps      = 176193081
pll1_fdiv     = 264289621
pll2_fosc     = 294400000
pll2_fps(1)   = 235520000
pll2_fps(2)   = 261688889
mips0 clock   = 333000000
mips1 clock   = 333000000
cpu clock     = 333000000
IO region     = 166500000
FPI bus 1     = 166500000
FPI bus 2     = 83250000
PP32 clock    = 261688889
PCI clock     = 58880000
Ethernet MII0 = 24533333
Ethernet MII1 = 24533333
USB clock     = 12000000
Clockout0     = 22024
Clockout1     = 43614815
Clockout2     = 24533333
Clockout3     = 11776000

# cat /proc/danube_pmu
DANUBE_PMU_PROC_READ
DANUBE_PMU_PWDCR(0xbf10201c) : 0x0211001a
DANUBE_PMU_SR(0xbf102020)    : 0x02110018

# cat /proc/danube_rcu
DANUBE_RCU_REGISTERS
DANUBE_RCU_STAT             : 0x20260888
DANUBE_RCU_RST_REQ          : 0x11000008

# cat /proc/danube_wdt
DANUBE_BIU_WDT_PROC_READ
DANUBE_BIU_WDT_CR(0xbf8803f0)   : 0x00000000
DANUBE_BIU_WDT_SR(0xbf8803f8)   : 0x00000000

# for f in  /proc/danube_etop/*; do echo $f; cat $f; done
/proc/danube_etop/DSCP_COS
DSCP COS MAP:
DSCP0 0
DSCP1 0
DSCP2 0
DSCP3 0
DSCP4 0
DSCP5 0
DSCP6 0
DSCP7 0
DSCP8 0
DSCP9 0
DSCP10 0
DSCP11 0
DSCP12 0
DSCP13 0
DSCP14 0
DSCP15 0
DSCP16 3
DSCP17 3
DSCP18 2
DSCP19 2
DSCP20 1
DSCP21 1
DSCP22 0
DSCP23 0
DSCP24 0
DSCP25 0
DSCP26 0
DSCP27 0
DSCP28 0
DSCP29 0
DSCP30 0
DSCP31 0
DSCP32 0
DSCP33 0
DSCP34 0
DSCP35 0
DSCP36 0
DSCP37 0
DSCP38 0
DSCP39 0
DSCP40 0
DSCP41 0
DSCP42 0
DSCP43 0
DSCP44 0
DSCP45 0
DSCP46 0
DSCP47 0
DSCP48 0
DSCP49 0
DSCP50 0
DSCP51 0
DSCP52 0
DSCP53 0
DSCP54 0
DSCP55 0
DSCP56 0
DSCP57 0
DSCP58 0
DSCP59 0
DSCP60 0
DSCP61 0
DSCP62 0
DSCP63 0
/proc/danube_etop/VLAN_COS
VLAN COS MAP
Pri 0 3
Pri 1 3
Pri 2 2
Pri 3 2
Pri 4 1
Pri 5 1
Pri 6 0
Pri 7 0
/proc/danube_etop/register
etop register
118102 packets from protocol stack received
# for f in  /proc/danube_dma/*; do echo $f; cat $f; done
/proc/danube_dma/channel_weight
channel 0  00000064
channel 1  00000064
channel 2  00000064
channel 3  00000064
channel 4  00000064
channel 5  00000064
channel 6  00000002
channel 7  00000064
channel 8  00000064
channel 9  00000064
channel 10  00000064
channel 11  00000064
channel 12  00000064
channel 13  00000064
channel 14  00000064
channel 15  00000064
channel 16  00000064
channel 17  00000064
channel 18  00000064
channel 19  00000064
/proc/danube_dma/dma_register
register of DMA:
/proc/danube_dma/g_desc_list
descriptor list:

# for f in /proc/driver/*; do echo $f; cat $f; done
/proc/driver/danube_port

Danube Port Settings
         3         2         1         0
        10987654321098765432109876543210
----------------------------------------

P0-OUT:                 XXXXXXXXXXX XX X
P1-OUT:                  XX XXX X  XXX  
P0-IN:                  X XX  XXX   X   
P1-IN:                  XXX XXX XX XX  X
P0-DIR:                 X XX  X  XXXX   
P1-DIR:                  XX XXXXXX XXXX 
P0-STO:                                 
P1-STO:                                 
P0-PUDE:                           X    
P1-PUDE:                X    X XX      X
P0-OD:                  X XXXXX  XXXX   
P1-OD:                  XXX XXXXXX XXXX 
P0-PUDS:                           X    
P1-PUDS:                X    X X       X
P0_ALT0:                X  XXXX  XXXX   
P0_ALT1:                                
P1_ALT0:                       X XX  XXX
P1_ALT1:                                

/proc/driver/ifx_asc

IFX ASC Debug
Port ASC0
rx_bytes_count=0
tx_bytes_count=0
rx_overrun_error_count=0
rx_parity_error_count=0
rx_frame_error_count=0

Port ASC1
rx_bytes_count=0
tx_bytes_count=62205
rx_overrun_error_count=0
rx_parity_error_count=0
rx_frame_error_count=0

/proc/driver/ssc1
Statistics for Infineon Synchronous Serial Controller SSC1
RX overflow errors 0
RX underflow errors 0
TX overflow errors 0
TX underflow errors 0
Abort errors 0
Mode errors 0
RX Bytes 0
TX Bytes 0

# for f in /proc/mei/*; do echo $f; cat $f; done   
/proc/mei/Recent_indicator
0x0F11

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

0x0000

/proc/mei/arcmsgav
0x00000000

/proc/mei/cmv_count
0x00196CA9

/proc/mei/cmv_reply
0x00000001

/proc/mei/cmv_waiting
0x00000000

/proc/mei/indicator_count
0x000005CA

/proc/mei/reply_count
0x00196CA9

/proc/mei/version
2.1.1.8.0.1 6/12 6:40

# for f in /proc/ppe/*; do echo $f; cat $f; done
/proc/ppe/idle_counter
Channel 0
  TX
    DREG_AT_CELL0       = 0
    DREG_AT_IDLE_CNT0   = 3
  RX
    DREG_AR_CELL0       = 0
    DREG_AR_IDLE_CNT0   = 0
    DREG_AR_AIIDLE_CNT0 = 0
    DREG_AR_BE_CNT0     = 0
Channel 1
  TX
    DREG_AT_CELL1       = 0
    DREG_AT_IDLE_CNT1   = 0
  RX
    DREG_AR_CELL1       = 0
    DREG_AR_IDLE_CNT1   = 0
    DREG_AR_AIIDLE_CNT1 = 0
    DREG_AR_BE_CNT1     = 0
/proc/ppe/stats
ATM Stats:
  VCC 0.0.38 (stats)
    rx      = 0
    rx_err  = 0
    rx_drop = 0
    tx      = 1460
    tx_err  = 91969

# for f in  /proc/sys/abi/*; do echo $f; cat $f; done
/proc/sys/abi/defhandler_coff
117440515
/proc/sys/abi/defhandler_elf
0
/proc/sys/abi/defhandler_lcall7
68157441
/proc/sys/abi/defhandler_libcso
68157441
/proc/sys/abi/fake_utsname
0
/proc/sys/abi/trace
0

# cat /proc/iomem
00000000-01efffff : System RAM
  00002c80-001c31c7 : Kernel code
  001df000-001fafff : Kernel data

# cat /proc/loadavg
1.00 1.00 1.00 2/23 7753

# cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  30056448 14893056 15163392        0  1310720  5365760
Swap:        0        0        0
MemTotal:        29352 kB
MemFree:         14808 kB
MemShared:           0 kB
Buffers:          1280 kB
Cached:           5240 kB
SwapCached:          0 kB
Active:           3956 kB
Inactive:         2596 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:        29352 kB
LowFree:         14808 kB
SwapTotal:           0 kB
SwapFree:            0 kB

# cat /proc/modules
ifx_nfext_ppp            484   0 (unused)
ifx_nfext_core           944   0 [ifx_nfext_ppp]

# cat /proc/stat
cpu  3889 0 11244 12367094
cpu0 3889 0 11244 12367094
page 4033 0
swap 0 0
intr 2329068 0 0 0 0 0 0 0 76501 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2226503 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2792 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
disk_io: 
ctxt 32068788
btime 946684800
processes 7759

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00030000 00010000 "U-Boot"
mtd1: 00020000 00010000 "Environment"
mtd2: 00230000 00010000 "rootfs"
mtd3: 00120000 00010000 "Linux"
mtd4: 00040000 00010000 "firmware"
mtd5: 00010000 00010000 "User-Data"
mtd6: 00010000 00010000 "voip-Data"

# mount
/dev/root on / type squashfs (ro)
proc on /proc type proc (rw)
/dev/ram on /ramdisk type ramfs (rw)
/dev/ram on /dev type ramfs (rw)
/dev/mtdblock/4 on /firmware type squashfs (ro)

Static Analysis

After retrieving the MTD partition images via TFTP:

$ ls -l
-rw-r--r-- 1 tj tj  196608 2012-02-19 15:51 mtd0-U-Boot.bin
-rw-r--r-- 1 tj tj  131072 2012-02-19 15:51 mtd1-Environment.bin
-rw-r--r-- 1 tj tj 2293760 2012-02-19 15:54 mtd2-rootfs.bin
-rw-r--r-- 1 tj tj 1179648 2012-02-19 15:55 mtd3-Linux.bin
-rw-r--r-- 1 tj tj  262144 2012-02-19 15:55 mtd4-firmware.bin
-rw-r--r-- 1 tj tj   65536 2012-02-19 15:56 mtd5-User-Data.bin

mtd0 - U-Boot

U-Boot 1.0.6 (Jan 25 2011 - 10:08:10)

mtd2 - rootfs
drwxr-xr-x  2 root root 004096 2008-08-04 10:35 bin
drwxr-xr-x  2 root root 004096 2008-08-04 10:35 dev
drwxr-xr-x  5 root root 004096 2008-08-04 10:35 etc
drwxr-xr-x  2 root root 004096 2006-07-12 08:20 firmware
lrwxrwxrwx  1 root root 000013 2012-02-19 18:21 flash
drwxr-xr-x  3 root root 004096 2008-08-04 10:35 lib
drwxr-xr-x  2 root root 004096 2006-07-12 08:20 proc
drwxr-xr-x  2 root root 004096 2006-07-12 08:20 ramdisk
drwxr-xr-x  8 root root 004096 2008-08-04 10:35 ramdisk_copy
drwxr-xr-x  2 root root 004096 2008-08-04 10:35 root
drwxr-xr-x  2 root root 004096 2008-08-04 10:35 sbin
lrwxrwxrwx  1 root root 000011 2012-02-19 18:21 tmp
drwxr-xr-x  6 root root 004096 2007-07-04 08:52 usr
lrwxrwxrwx  1 root root 000011 2012-02-19 18:21 var
-rwxr-xr-x  1 root root 398996 2008-08-04 10:35 ./bin/busybox
-rwxr-xr-x  1 root root 095092 2008-08-04 10:35 ./bin/msh
-rwxrwxrwx  1 root root 000901 2006-07-12 08:22 ./etc/codeclist
-rwxrwxrwx  1 root root 000350 2006-07-12 08:22 ./etc/fstab
-rwxrwxrwx  1 root root 000014 2006-07-12 08:22 ./etc/group
-rwxrwxrwx  1 root root 000026 2006-07-12 08:22 ./etc/host.conf
-rwxrwxrwx  1 root root 000123 2006-07-12 08:22 ./etc/inittab
-rwxrwxrwx  1 root root 000377 2006-07-12 08:22 ./etc/modules.conf
-rwxrwxrwx  1 root root 000794 2006-12-29 09:56 ./etc/ppp/ip-down
-rwxrwxrwx  1 root root 001142 2006-12-29 09:51 ./etc/ppp/ip-up
-rw-r--r--  1 root root 004040 2008-08-04 10:35 ./etc/rc.conf.gz
-rwxrwxrwx  1 root root 000589 2006-07-12 08:22 ./etc/rc.d/adsl_up
-rwxrwxrwx  1 root root 000369 2008-05-06 03:41 ./etc/rc.d/backup
-rwxrwxrwx  1 root root 000481 2006-07-12 08:22 ./etc/rc.d/backup_voip
-rwxrwxrwx  1 root root 000075 2006-07-12 08:22 ./etc/rc.d/checkpid
-rwxrwxrwx  1 root root 000770 2008-08-04 10:34 ./etc/rc.d/config.sh
-rwxrwxrwx  1 root root 000450 2006-07-12 08:22 ./etc/rc.d/get_lan_if
-rwxrwxrwx  1 root root 001118 2006-07-12 08:21 ./etc/rc.d/get_wan_if
-rwxrwxrwx  1 root root 001091 2007-08-15 10:41 ./etc/rc.d/init.d/contentblock
-rwxrwxrwx  1 root root 000516 2006-07-12 08:21 ./etc/rc.d/init.d/ddns
-rwxrwxrwx  1 root root 001481 2008-07-03 02:55 ./etc/rc.d/init.d/ddns_start
-rwxrwxrwx  1 root root 000403 2008-05-05 08:15 ./etc/rc.d/init.d/ddns_stop
-rwxrwxrwx  1 root root 001729 2006-07-12 08:20 ./etc/rc.d/init.d/httpd
-rwxrwxrwx  1 root root 000306 2006-09-15 09:20 ./etc/rc.d/init.d/igmp
-rwxrwxrwx  1 root root 000967 2006-09-15 09:20 ./etc/rc.d/init.d/igmp_start
-rwxrwxrwx  1 root root 000129 2006-09-15 09:20 ./etc/rc.d/init.d/igmp_stop
-rwxrwxrwx  1 root root 000411 2006-07-12 08:21 ./etc/rc.d/init.d/inetd
-rwxrwxrwx  1 root root 004525 2006-07-12 08:21 ./etc/rc.d/init.d/inetd_start
-rwxrwxrwx  1 root root 000438 2006-07-12 08:21 ./etc/rc.d/init.d/kill_ppp_proc
-rwxrwxrwx  1 root root 001012 2006-07-12 08:21 ./etc/rc.d/init.d/ntpc
-rwxrwxrwx  1 root root 000578 2007-06-04 02:22 ./etc/rc.d/init.d/ntpc_start
-rwxrwxrwx  1 root root 000651 2007-06-04 02:54 ./etc/rc.d/init.d/ntpc_stop
-rwxrwxrwx  1 root root 000529 2006-07-12 08:21 ./etc/rc.d/init.d/pif
-rwxrwxrwx  1 root root 001282 2006-07-12 08:21 ./etc/rc.d/init.d/pif_start
-rwxrwxrwx  1 root root 000820 2007-10-05 02:43 ./etc/rc.d/init.d/pif_stop
-rwxrwxrwx  1 root root 006379 2006-07-12 08:21 ./etc/rc.d/init.d/qos
-rwxrwxrwx  1 root root 004838 2006-07-12 08:21 ./etc/rc.d/init.d/qos_apply_priority
-rwxrwxrwx  1 root root 004184 2006-07-12 08:21 ./etc/rc.d/init.d/qos_init
-rwxrwxrwx  1 root root 006043 2006-07-12 08:21 ./etc/rc.d/init.d/qos_rate_update
-rwxrwxrwx  1 root root 010238 2006-07-12 08:21 ./etc/rc.d/init.d/qos_start
-rwxrwxrwx  1 root root 000838 2006-07-12 08:20 ./etc/rc.d/init.d/qos_start_lan
-rwxrwxrwx  1 root root 001162 2006-07-12 08:20 ./etc/rc.d/init.d/qos_start_wan
-rwxrwxrwx  1 root root 006011 2006-07-12 08:21 ./etc/rc.d/init.d/qos_stop
-rwxrwxrwx  1 root root 000836 2006-07-12 08:21 ./etc/rc.d/init.d/qos_stop_lan
-rwxrwxrwx  1 root root 001130 2006-07-12 08:21 ./etc/rc.d/init.d/qos_stop_wan
-rwxrwxrwx  1 root root 010566 2008-07-02 04:55 ./etc/rc.d/init.d/rcS
-rwxrwxrwx  1 root root 001008 2006-07-12 08:21 ./etc/rc.d/init.d/ripd
-rwxrwxrwx  1 root root 001397 2006-07-12 08:20 ./etc/rc.d/init.d/ripd_start
-rwxrwxrwx  1 root root 000101 2006-07-12 08:21 ./etc/rc.d/init.d/ripd_stop
-rwxrwxrwx  1 root root 000623 2006-12-29 08:17 ./etc/rc.d/init.d/udhcpc
-rwxrwxrwx  1 root root 000606 2007-07-18 01:55 ./etc/rc.d/init.d/udhcpd
-rwxrwxrwx  1 root root 001442 2007-07-18 01:41 ./etc/rc.d/init.d/udhcpd_start
-rwxrwxrwx  1 root root 002630 2008-06-13 06:20 ./etc/rc.d/init.d/upnp
-rwxrwxrwx  1 root root 001055 2007-08-15 08:59 ./etc/rc.d/init.d/urlblock
-rwxrwxrwx  1 root root 000368 2007-07-30 07:28 ./etc/rc.d/init.d/vlan
-rwxrwxrwx  1 root root 000701 2007-10-04 11:06 ./etc/rc.d/init.d/vlan_common.sh
-rwxrwxrwx  1 root root 002419 2006-12-26 07:25 ./etc/rc.d/init.d/vlan_membership_apply
-rwxrwxrwx  1 root root 003511 2007-10-05 02:44 ./etc/rc.d/init.d/vlan_start
-rwxrwxrwx  1 root root 001259 2007-10-05 02:27 ./etc/rc.d/init.d/vlan_stop
-rwxrwxrwx  1 root root 002028 2007-10-04 04:50 ./etc/rc.d/init.d/wds
-rwxr--r--  1 root root 003104 2008-07-02 04:47 ./etc/rc.d/init.d/wps
-rwxrwxrwx  1 root root 000695 2006-07-12 08:22 ./etc/rc.d/install_mps_devices.sh
-rwxrwxrwx  1 root root 000704 2006-07-12 08:22 ./etc/rc.d/invoke_upgrade.sh
-rwxrwxrwx  1 root root 000463 2006-07-12 08:22 ./etc/rc.d/killproc
-rwxrwxrwx  1 root root 000117 2008-08-04 10:34 ./etc/rc.d/model_config.sh
-rwxrwxrwx  1 root root 000291 2006-07-12 08:22 ./etc/rc.d/rc.bringup_adsl
-rwxrwxrwx  1 root root 001646 2006-09-14 05:08 ./etc/rc.d/rc.bringup_adsl_start
-rwxrwxrwx  1 root root 000264 2006-07-12 08:22 ./etc/rc.d/rc.bringup_adsl_stop
-rwxrwxrwx  1 root root 000288 2006-07-12 08:22 ./etc/rc.d/rc.bringup_lan
-rwxrwxrwx  1 root root 002108 2007-10-05 06:38 ./etc/rc.d/rc.bringup_lan_start
-rwxrwxrwx  1 root root 000958 2007-07-17 10:54 ./etc/rc.d/rc.bringup_lan_stop
-rwxrwxrwx  1 root root 000308 2006-07-12 08:21 ./etc/rc.d/rc.bringup_services
-rwxrwxrwx  1 root root 003343 2007-08-13 02:43 ./etc/rc.d/rc.bringup_services_start
-rwxrwxrwx  1 root root 001211 2007-07-17 10:46 ./etc/rc.d/rc.bringup_services_stop
-rwxrwxrwx  1 root root 001878 2007-08-15 10:58 ./etc/rc.d/rc.firewall
-rwxrwxrwx  1 root root 001012 2007-08-15 08:55 ./etc/rc.d/rc.firewall_start
-rwxrwxrwx  1 root root 000161 2006-07-12 08:22 ./etc/rc.d/save_calibrate
-rwxrwxrwx  1 root root 000138 2006-07-12 08:22 ./etc/rc.d/save_fwdiag
-rwxrwxrwx  1 root root 001196 2006-12-29 08:28 ./etc/rc.d/udhcpc.script
-rwxrwxrwx  1 root root 000076 2006-07-12 08:22 ./etc/services
-rwxrwxrwx  1 root root 001781 2006-07-12 08:22 ./etc/snmpd.conf
-rw-r--r--  1 root root 000007 2008-08-04 10:34 ./etc/version
-rwxrwxrwx  1 root root 000480 2006-07-12 08:22 ./etc/voip.conf.tgz
-rwxrwxrwx  1 root root 008192 2008-01-14 00:36 ./etc/Wireless/RT2860AP/rt2860-1.bin
-rwxr--r--  1 root root 008192 2008-01-09 17:40 ./etc/Wireless/RT2860AP/rt2860.bin
-r-xr-xr-x  1 root root 024392 2008-08-04 10:35 ./lib/ld-uClibc-0.9.27.so
-r-xr-xr-x  1 root root 037951 2008-08-04 10:35 ./lib/libatm.so.1.0.0
-r-xr-xr-x  1 root root 013940 2008-08-04 10:35 ./lib/libcrypt-0.9.27.so
-r-xr-xr-x  1 root root 008388 2008-08-04 10:35 ./lib/libdl-0.9.27.so
-r-xr-xr-x  1 root root 084532 2008-08-04 10:35 ./lib/libIFXAPIs.so
-r-xr-xr-x  1 root root 245816 2008-08-04 10:35 ./lib/libifx_httpd.so
-r-xr-xr-x  1 root root 074292 2008-08-04 10:35 ./lib/libm-0.9.27.so
-r-xr-xr-x  1 root root 002184 2008-08-04 10:35 ./lib/libnsl-0.9.27.so
-r-xr-xr-x  1 root root 006520 2008-08-04 10:35 ./lib/liboamapi.so
-r-xr-xr-x  1 root root 097638 2008-08-04 10:35 ./lib/libpthread-0.9.27.so
-r-xr-xr-x  1 root root 002204 2008-08-04 10:35 ./lib/libresolv-0.9.27.so
-r-xr-xr-x  1 root root 003284 2008-08-04 10:35 ./lib/librt-0.9.27.so
-r-xr-xr-x  1 root root 442628 2008-08-04 10:35 ./lib/libuClibc-0.9.27.so
-r-xr-xr-x  1 root root 005396 2008-08-04 10:35 ./lib/libutil-0.9.27.so
-rw-r--r--  1 root root 005872 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/drivers/net/imq.o
-rwxr-xr-x  1 root root 003316 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ifx_nfext/ifx_nfext_core.o
-rwxr-xr-x  1 root root 002076 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ifx_nfext/ifx_nfext_ppp.o
-rwxr-xr-x  1 root root 006980 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ifx_nfext/ifx_nfext_vbridge.o
-rwxr-xr-x  1 root root 038276 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/iproxyd/iproxyd.o
-rw-r--r--  1 root root 006140 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ip_set_iphash.o
-rw-r--r--  1 root root 005628 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ip_set_ipmap.o
-rw-r--r--  1 root root 005408 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ip_set_macipmap.o
-rw-r--r--  1 root root 005516 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ip_set_portmap.o
-rw-r--r--  1 root root 003144 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ipt_fuzzy.o
-rw-r--r--  1 root root 001932 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ipt_iprange.o
-rw-r--r--  1 root root 001828 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ipt_mport.o
-rw-r--r--  1 root root 003312 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ipt_time.o
-rw-r--r--  1 root root 002172 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/netfilter/ipt_u32.o
-rwxr-xr-x  1 root root 004988 2008-08-04 10:35 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/kernel/net/ipv4/turbonat/turbo_nat.o
-rw-r--r--  1 root root 001370 2008-08-04 10:34 ./lib/modules/2.4.31-Danube-3.0.5g-A2PCI/modules.dep
-rwxr-xr-x  1 root root 000001 2008-08-04 10:34 ./lib/nul
-rwxrwxrwx  1 root root 000078 2006-07-12 08:20 ./ramdisk_copy/etc/hosts
-rwxrwxrwx  1 root root 000187 2006-07-12 08:20 ./ramdisk_copy/etc/ilmid/ilmid.conf
-rwxrwxrwx  1 root root 000000 2006-07-12 08:20 ./ramdisk_copy/etc/inetd.conf
-rwxrwxrwx  1 root root 000195 2007-05-17 09:47 ./ramdisk_copy/etc/linuxigd/dummy.xml
-rwxrwxrwx  1 root root 013369 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/gateconnSCPD.xml
-rwxrwxrwx  1 root root 013296 2007-05-17 09:47 ./ramdisk_copy/etc/linuxigd/gateconnSCPD.xml
-rwxrwxrwx  1 root root 003100 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/gatedesc.skl
-rwxrwxrwx  1 root root 003100 2007-05-17 09:47 ./ramdisk_copy/etc/linuxigd/gatedesc.xml
-rwxrwxrwx  1 root root 003152 2007-05-15 07:07 ./ramdisk_copy/etc/linuxigd/gatedesc.xml.def
-rwxrwxrwx  1 root root 005249 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/gateicfgSCPD.xml
-rwxrwxrwx  1 root root 004309 2007-05-17 09:47 ./ramdisk_copy/etc/linuxigd/gateicfgSCPD.xml
-rwxrwxrwx  1 root root 000734 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/gateinfoSCPD.xml
-rwxrwxrwx  1 root root 000956 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/gatelayer3forwardingSCPD.xml
-rwxrwxrwx  1 root root 005831 2008-04-07 11:07 ./ramdisk_copy/etc/linux-igd/ligd.gif
-rwxrwxrwx  1 root root 000991 2007-05-17 09:47 ./ramdisk_copy/etc/linuxigd/ligd.gif
-rwxrwxrwx  1 root root 001470 2007-05-15 07:07 ./ramdisk_copy/etc/linuxigd/upnpd.conf
-rwxrwxrwx  1 root root 000063 2006-07-12 08:20 ./ramdisk_copy/etc/passwd
-rwxrwxrwx  1 root root 000000 2006-07-12 08:20 ./ramdisk_copy/etc/ppp/resolv.conf
-rwxrwxrwx  1 root root 000000 2006-07-12 08:20 ./ramdisk_copy/etc/ripd.conf
-rwxrwxrwx  1 root root 001468 2006-07-12 08:20 ./ramdisk_copy/etc/ripd.v1.conf
-rwxrwxrwx  1 root root 001468 2006-07-12 08:20 ./ramdisk_copy/etc/ripd.v2.conf
-rwxrwxrwx  1 root root 000079 2006-07-12 08:20 ./ramdisk_copy/etc/snmp/snmpd.conf
-rwxrwxrwx  1 root root 000097 2006-07-12 08:20 ./ramdisk_copy/etc/udhcpd.conf
-rwxrwxrwx  1 root root 000000 2006-07-12 08:20 ./ramdisk_copy/tmp/system_status
-rwxrwxrwx  1 root root 000000 2006-07-12 08:20 ./ramdisk_copy/var/lib/misc/udhcpd.leases
-rwxr-xr-x  1 root root 017980 2008-08-04 10:35 ./root/danube_autoboot_daemon
-rwxr-xr-x  1 root root 005484 2008-08-04 10:35 ./root/danube_mei_debug
-rwxr-xr-x  1 root root 005516 2008-08-04 10:35 ./root/danube_show_firmware_date
-rwxrwxrwx  1 root root 018316 2008-08-04 10:35 ./root/tcpmessages
-rwxr-xr-x  1 root root 018164 2008-08-04 10:35 ./root/translate
-rwxrwxrwx  1 root root 000047 2006-07-12 08:20 ./sbin/modprobe.sh
-rwxr-xr-x  1 root root 096800 2008-08-04 10:35 ./usr/bin/ez-ipupdate
-rwxr-xr-x  1 root root 009820 2008-08-04 10:35 ./usr/bin/oamctl
-rwxr-xr-x  1 root root 019068 2008-08-04 10:35 ./usr/bin/oamd
-r-xr-xr-x  1 root root 097179 2008-08-04 10:35 ./usr/lib/libnetsnmpagent.so.5
-r-xr-xr-x  1 root root 077312 2008-08-04 10:35 ./usr/lib/libnetsnmphelpers.so.5
-r-xr-xr-x  1 root root 110642 2008-08-04 10:35 ./usr/lib/libnetsnmpmibs.so.5
-r-xr-xr-x  1 root root 345188 2008-08-04 10:35 ./usr/lib/libnetsnmp.so.5
-r-xr-xr-x  1 root root 008091 2008-08-04 10:35 ./usr/lib/pppd/2.4.2/pppoatm.so
-r-xr-xr-x  1 root root 028559 2008-08-04 10:35 ./usr/lib/pppd/2.4.2/rp-pppoe.so
-rwxr-xr-x  1 root root 005516 2008-08-04 10:35 ./usr/sbin/br2684ctl
-rwxr-xr-x  1 root root 014096 2008-08-04 10:35 ./usr/sbin/br2684ctld
-rwxr-xr-x  1 root root 028780 2008-08-04 10:35 ./usr/sbin/brctl
-rwxr-xr-x  1 root root 073812 2008-08-04 10:35 ./usr/sbin/dnrd
-rwxr-xr-x  1 root root 079844 2008-08-04 10:35 ./usr/sbin/ftpd
-rwxr-xr-x  1 root root 095636 2008-08-04 10:35 ./usr/sbin/ifx_util
-rwxr-xr-x  1 root root 185484 2008-08-04 10:35 ./usr/sbin/iptables
-rwxr-xr-x  1 root root 027240 2008-08-04 10:35 ./usr/sbin/mpstat
-rwx------  1 root root 057500 2008-08-04 10:35 ./usr/sbin/noip2
-rwxr-xr-x  1 root root 022812 2008-08-04 10:35 ./usr/sbin/ntpclient
-r-xr-xr-x  1 root root 283176 2008-08-04 10:35 ./usr/sbin/pppd
-rwxr-xr-x  1 root root 031828 2008-08-04 10:35 ./usr/sbin/pppoe-relay
-rwxr-xr-x  1 root root 161360 2008-08-04 10:35 ./usr/sbin/ripd
-rwxr-xr-x  1 root root 026744 2008-08-04 10:35 ./usr/sbin/snmpd
-rwxr-xr-x  1 root root 101964 2008-08-04 10:35 ./usr/sbin/tc
-rwxr-xr-x  1 root root 036452 2008-08-04 10:35 ./usr/sbin/tftpd
-rwxr-xr-x  1 root root 248716 2008-08-04 10:35 ./usr/sbin/upnpd
-rwxrwxrwx  1 root root 001541 2006-07-12 08:20 ./usr/sbin/version.sh
-rwxrwxrwx  1 root root 008693 2007-05-14 03:39 ./usr/web/adsl.asp
-rwxrwxrwx  1 root root 010572 2007-05-14 03:39 ./usr/web/adsl_oamconfig.asp
-rwxrwxrwx  1 root root 003463 2007-05-14 06:28 ./usr/web/adsl_phyconfig.asp
-rwxrwxrwx  1 root root 000852 2007-05-14 09:23 ./usr/web/adsl_save_return.htm
-rwxrwxrwx  1 root root 009170 2008-02-20 05:33 ./usr/web/adsl_vcconfig.asp
-rwxrwxrwx  1 root root 006490 2007-05-14 03:39 ./usr/web/apps_serv.asp
-rwxrwxrwx  1 root root 014828 2006-06-29 08:55 ./usr/web/bgcommon.js
-rwxrwxrwx  1 root root 001663 2006-06-29 08:55 ./usr/web/bitsbgscript.js
-rwxrwxrwx  1 root root 001661 2007-05-14 03:39 ./usr/web/bridge_settings.asp
-rwxrwxrwx  1 root root 002738 2007-05-14 03:39 ./usr/web/commfunc.js
-rwxrwxrwx  1 root root 000178 2007-05-14 03:39 ./usr/web/common.js
-rwxrwxrwx  1 root root 001833 2007-05-16 10:53 ./usr/web/config_upnp.asp
-rwxrwxrwx  1 root root 001674 2007-06-14 02:17 ./usr/web/conn_limit.asp
-rwxrwxrwx  1 root root 009847 2008-07-03 02:50 ./usr/web/ddns_config.asp
-rwxrwxrwx  1 root root 003639 2007-08-15 10:52 ./usr/web/firewall_contentblock
-rwxrwxrwx  1 root root 003639 2007-08-15 10:52 ./usr/web/firewall_contentblock.asp
-rwxrwxrwx  1 root root 002039 2007-05-14 03:39 ./usr/web/firewall_disablewan.asp
-rwxrwxrwx  1 root root 003207 2007-05-14 03:39 ./usr/web/firewall_dmz.asp
-rwxrwxrwx  1 root root 002992 2007-05-14 03:39 ./usr/web/firewall_mac.asp
-rwxrwxrwx  1 root root 002139 2007-05-14 03:39 ./usr/web/firewall_main.asp
-rwxrwxrwx  1 root root 007453 2007-05-14 03:39 ./usr/web/firewall_packetfilter_add.asp
-rwxrwxrwx  1 root root 002254 2007-05-14 03:39 ./usr/web/firewall_packetfilter.asp
-rwxrwxrwx  1 root root 003520 2007-08-15 11:24 ./usr/web/firewall_urlblock.asp
-rwxrwxrwx  1 root root 000463 2007-05-14 03:39 ./usr/web/frame_setup.htm
-rwxrwxrwx  1 root root 000411 2007-05-14 03:39 ./usr/web/frame_setup_main.htm
-rwxrwxrwx  1 root root 025704 2007-06-21 04:36 ./usr/web/help.htm
-rwxrwxrwx  1 root root 002903 2007-05-14 03:39 ./usr/web/images/adsl0.gif
-rwxrwxrwx  1 root root 002716 2007-05-14 03:39 ./usr/web/images/adsl.gif
-rwxrwxrwx  1 root root 000036 2007-05-14 03:39 ./usr/web/images/back.gif
-rwxrwxrwx  1 root root 002822 2007-05-14 03:39 ./usr/web/images/lan0.gif
-rwxrwxrwx  1 root root 002656 2007-05-14 03:39 ./usr/web/images/lan.gif
-rwxrwxrwx  1 root root 002234 2007-05-14 03:39 ./usr/web/images/logout0.gif
-rwxrwxrwx  1 root root 002178 2007-05-14 03:39 ./usr/web/images/logout.gif
-rwxrwxrwx  1 root root 002836 2007-05-14 03:39 ./usr/web/images/nat0.gif
-rwxrwxrwx  1 root root 002673 2007-05-14 03:39 ./usr/web/images/nat.gif
-rwxrwxrwx  1 root root 002844 2007-05-14 03:39 ./usr/web/images/qos0.gif
-rwxrwxrwx  1 root root 002673 2007-05-14 03:39 ./usr/web/images/qos.gif
-rwxrwxrwx  1 root root 002571 2007-05-14 03:39 ./usr/web/images/quick0.gif
-rwxrwxrwx  1 root root 002443 2007-05-14 03:39 ./usr/web/images/quick.gif
-rwxrwxrwx  1 root root 002930 2007-05-14 03:39 ./usr/web/images/route0.gif
-rwxrwxrwx  1 root root 002731 2007-05-14 03:39 ./usr/web/images/route.gif
-rwxrwxrwx  1 root root 002976 2007-05-14 03:39 ./usr/web/images/server0.gif
-rwxrwxrwx  1 root root 002777 2007-05-14 03:39 ./usr/web/images/server.gif
-rwxrwxrwx  1 root root 002689 2007-05-14 03:39 ./usr/web/images/status0.gif
-rwxrwxrwx  1 root root 002571 2007-05-14 03:39 ./usr/web/images/status.gif
-rwxrwxrwx  1 root root 002671 2007-05-14 03:39 ./usr/web/images/system0.gif
-rwxrwxrwx  1 root root 002556 2007-05-14 03:39 ./usr/web/images/system.gif
-rwxrwxrwx  1 root root 022975 2007-10-22 04:37 ./usr/web/images/top0.gif
-rwxrwxrwx  1 root root 000041 2007-05-14 07:46 ./usr/web/images/top2.gif
-rwxr--r--  1 root root 018392 2008-08-04 08:42 ./usr/web/images/top.gif
-rwxrwxrwx  1 root root 002903 2007-05-14 03:39 ./usr/web/images/vlan0.gif
-rwxrwxrwx  1 root root 002712 2007-05-14 03:39 ./usr/web/images/vlan.gif
-rwxrwxrwx  1 root root 002861 2007-05-14 03:39 ./usr/web/images/voip0.gif
-rwxrwxrwx  1 root root 002662 2007-05-14 03:39 ./usr/web/images/voip.gif
-rwxrwxrwx  1 root root 002987 2007-05-14 03:39 ./usr/web/images/wall0.gif
-rwxrwxrwx  1 root root 002830 2007-05-14 03:39 ./usr/web/images/wall.gif
-rwxrwxrwx  1 root root 002921 2007-05-14 03:39 ./usr/web/images/wan0.gif
-rwxrwxrwx  1 root root 002744 2007-05-14 03:39 ./usr/web/images/wan.gif
-rwxrwxrwx  1 root root 003064 2007-05-14 03:39 ./usr/web/images/wlan0.gif
-rwxrwxrwx  1 root root 002849 2007-05-14 03:39 ./usr/web/images/wlan.gif
-rwxrwxrwx  1 root root 007635 2007-05-14 03:39 ./usr/web/index.asp
-rwxrwxrwx  1 root root 004475 2007-05-14 03:39 ./usr/web/ipsec_setting.asp
-rwxrwxrwx  1 root root 007407 2007-10-19 08:13 ./usr/web/lan.asp
-rwxrwxrwx  1 root root 001412 2007-05-14 03:39 ./usr/web/lan_dhcp_clients.asp
-rwxrwxrwx  1 root root 000711 2007-05-14 03:39 ./usr/web/lan_main.htm
-rwxrwxrwx  1 root root 001766 2007-05-14 03:39 ./usr/web/login.asp
-rwxrwxrwx  1 root root 000871 2007-05-14 03:39 ./usr/web/loginerr.htm
-rwxrwxrwx  1 root root 004934 2007-10-19 07:51 ./usr/web/m_adsl.asp
-rwxrwxrwx  1 root root 000667 2007-05-14 03:39 ./usr/web/menu.css
-rwxrwxrwx  1 root root 004246 2007-10-19 07:51 ./usr/web/menu_setup.asp
-rwxrwxrwx  1 root root 005392 2007-10-19 07:52 ./usr/web/m_firewall.asp
-rwxrwxrwx  1 root root 005870 2007-10-05 07:22 ./usr/web/m_firewall.asp.bak
-rwxrwxrwx  1 root root 005082 2007-10-19 07:52 ./usr/web/m_lan.asp
-rwxrwxrwx  1 root root 005424 2007-10-05 07:22 ./usr/web/m_lan.asp.bak
-rwxrwxrwx  1 root root 005500 2007-10-19 07:52 ./usr/web/m_nat.asp
-rwxrwxrwx  1 root root 005832 2007-10-05 07:22 ./usr/web/m_nat.asp.bak
-rwxrwxrwx  1 root root 005111 2007-10-19 07:52 ./usr/web/m_qos.asp
-rwxrwxrwx  1 root root 000411 2007-05-14 03:39 ./usr/web/m_qsetup.asp
-rwxrwxrwx  1 root root 004929 2007-10-19 07:52 ./usr/web/m_route.asp
-rwxrwxrwx  1 root root 005048 2007-10-19 07:52 ./usr/web/m_server.asp
-rwxrwxrwx  1 root root 000391 2007-05-14 03:39 ./usr/web/m_status.asp
-rwxrwxrwx  1 root root 005361 2007-10-19 07:51 ./usr/web/m_system.asp
-rwxrwxrwx  1 root root 004562 2007-10-19 07:50 ./usr/web/m_vlan.asp
-rwxrwxrwx  1 root root 005052 2007-10-19 07:52 ./usr/web/m_wan.asp
-rwxrwxrwx  1 root root 005010 2007-10-19 07:52 ./usr/web/m_wlan.asp
-rwxrwxrwx  1 root root 002067 2007-05-14 03:39 ./usr/web/nat_main.asp
-rwxrwxrwx  1 root root 004664 2007-08-13 03:33 ./usr/web/nat_portmap.asp
-rwxrwxrwx  1 root root 020540 2007-08-13 03:44 ./usr/web/nat_virtualser.asp
-rwxrwxrwx  1 root root 029410 2006-06-29 10:05 ./usr/web/psdbgscript.js
-rwxrwxrwx  1 root root 002126 2007-05-14 03:39 ./usr/web/qos_diffserv.asp
-rwxrwxrwx  1 root root 002520 2007-05-14 03:39 ./usr/web/qos_main.asp
-rwxrwxrwx  1 root root 009063 2007-05-14 03:39 ./usr/web/qos_priority_add.asp
-rwxrwxrwx  1 root root 001866 2007-05-14 03:39 ./usr/web/qos_priority.asp
-rwxrwxrwx  1 root root 003809 2007-05-14 03:39 ./usr/web/route_dynamic.asp
-rwxrwxrwx  1 root root 000618 2007-05-14 03:39 ./usr/web/route_main.htm
-rwxrwxrwx  1 root root 004934 2007-05-15 06:18 ./usr/web/route_static.asp
-rwxrwxrwx  1 root root 001394 2007-05-14 03:39 ./usr/web/route_table.asp
-rwxrwxrwx  1 root root 010048 2007-05-14 03:39 ./usr/web/script.js
-rwxrwxrwx  1 root root 002701 2007-05-14 03:39 ./usr/web/servers_acl.asp
-rwxrwxrwx  1 root root 000681 2007-05-14 03:39 ./usr/web/setup_main.htm
-rwxrwxrwx  1 root root 001096 2007-05-14 03:39 ./usr/web/setup_top.htm
-rwxrwxrwx  1 root root 003108 2008-01-09 08:41 ./usr/web/snmp_settings.asp
-rwxrwxrwx  1 root root 002256 2006-06-29 10:06 ./usr/web/snrbgscript.js
-rwxrwxrwx  1 root root 002114 2007-05-14 03:39 ./usr/web/style.css
-rwxrwxrwx  1 root root 003219 2008-02-20 05:33 ./usr/web/system_basic.asp
-rwxrwxrwx  1 root root 002783 2007-05-14 03:39 ./usr/web/system_hostname.asp
-rwxrwxrwx  1 root root 001470 2007-06-22 01:36 ./usr/web/system_log.asp
-rwxrwxrwx  1 root root 000594 2007-05-14 03:39 ./usr/web/system_main.htm
-rwxrwxrwx  1 root root 003666 2007-05-14 03:39 ./usr/web/system_password.htm
-rwxrwxrwx  1 root root 000666 2007-05-14 03:39 ./usr/web/system_passwordok.htm
-rwxrwxrwx  1 root root 001988 2007-05-14 03:39 ./usr/web/system_reset.htm
-rwxrwxrwx  1 root root 000741 2007-05-14 03:39 ./usr/web/system_reset_return.htm
-rwxrwxrwx  1 root root 008349 2007-10-22 02:41 ./usr/web/system_status.asp
-rwxrwxrwx  1 root root 007330 2007-05-14 03:39 ./usr/web/system_time.asp
-rwxrwxrwx  1 root root 003340 2007-05-14 03:39 ./usr/web/system_upgrade.asp
-rwxrwxrwx  1 root root 000794 2007-05-14 03:39 ./usr/web/tools_restore_return.htm
-rwxrwxrwx  1 root root 005230 2007-05-14 03:39 ./usr/web/tr037.asp
-rwxrwxrwx  1 root root 000860 2007-05-14 03:39 ./usr/web/upgrade_firm_return.htm
-rwxrwxrwx  1 root root 008527 2007-05-14 03:39 ./usr/web/user_password.asp
-rwxrwxrwx  1 root root 002026 2007-01-09 06:39 ./usr/web/vdsl2_activate_deactivate.asp
-rwxrwxrwx  1 root root 004555 2007-01-09 06:39 ./usr/web/vdsl2_bands_config.asp
-rwxrwxrwx  1 root root 001681 2007-01-09 06:39 ./usr/web/vdsl2_bits_graph.asp
-rwxrwxrwx  1 root root 002688 2007-01-09 06:39 ./usr/web/vdsl2_channel_config.asp
-rwxrwxrwx  1 root root 001459 2007-01-09 06:39 ./usr/web/vdsl2_channel_status.asp
-rwxrwxrwx  1 root root 002396 2007-01-09 06:39 ./usr/web/vdsl2_line_config.asp
-rwxrwxrwx  1 root root 001440 2007-01-09 06:39 ./usr/web/vdsl2_line_status.asp
-rwxrwxrwx  1 root root 002257 2007-01-09 06:39 ./usr/web/vdsl2_loop_back.asp
-rwxrwxrwx  1 root root 000536 2007-01-09 06:39 ./usr/web/vdsl2_main.asp
-rwxrwxrwx  1 root root 001991 2007-01-09 06:39 ./usr/web/vdsl2_profile_config.asp
-rwxrwxrwx  1 root root 001782 2007-01-09 06:39 ./usr/web/vdsl2_snr_graph.asp
-rwxrwxrwx  1 root root 001237 2007-01-09 06:39 ./usr/web/vdsl2_version_info.asp
-rwxrwxrwx  1 root root 003984 2007-01-09 06:39 ./usr/web/vdsl2_wan_main.asp
-rwxrwxrwx  1 root root 006850 2007-01-09 06:39 ./usr/web/vdsl2_wan_status.asp
-rwxrwxrwx  1 root root 004199 2007-01-09 06:39 ./usr/web/vdsl2_wan_vcc_select.asp
-rwxrwxrwx  1 root root 001430 2007-01-09 06:39 ./usr/web/vdsl2_xtcstatus.asp
-rwxrwxrwx  1 root root 011467 2007-10-05 10:08 ./usr/web/vlan_bridge.asp
-rwxrwxrwx  1 root root 001523 2007-05-15 04:22 ./usr/web/wan_dhcp.asp
-rwxrwxrwx  1 root root 004668 2007-05-14 03:39 ./usr/web/wan_dns.asp
-rwxrwxrwx  1 root root 003774 2007-05-14 03:39 ./usr/web/wan_main.asp
-rwxrwxrwx  1 root root 003774 2007-05-15 04:23 ./usr/web/wan_pppoa.asp
-rwxrwxrwx  1 root root 003827 2007-05-15 04:21 ./usr/web/wan_pppoe.asp
-rwxrwxrwx  1 root root 005776 2007-05-15 04:23 ./usr/web/wan_static.asp
-rwxrwxrwx  1 root root 006211 2007-05-14 03:39 ./usr/web/wan_status.asp
-rwxrwxrwx  1 root root 003979 2007-05-14 03:39 ./usr/web/wan_vcc_select.asp

mtd3-Linux

The Linux kernel image in mtd3 is GZ-compressed. I created a simple shell script vmlinuz-uncompress.sh to uncompress it so it can be examined:

#!/bin/sh
# uncompress a Linux kernel image
if [ ! -z  "$1" ]; then
 # find the GZ header offset
 GZ_ID="1f 8b 08 00"
 GZ_HEADER=`od -A d -t x1 $1 | grep "$GZ_ID"`
 GZ_OFFSET=`echo $GZ_HEADER | awk '{printf("%d", $1)}'`
 GZ_INDEX=`echo $GZ_HEADER | awk "BEGIN{GZ_ID=$GZ_ID;idx=0}"'{for(i=8;i<length($0);i+=3){if(GZ_ID==substr($0,i,12)){idx=(i-8)/3}}}END{printf "%d", idx}'`
 GZ_OFFSET=$(($GZ_OFFSET+$GZ_INDEX))
 echo $GZ_OFFSET
 dd if="$1" bs=1 skip=$GZ_OFFSET | zcat > "$1".uncompressed.bin
fi

The script results in a new uncompressed vmliux-style image with ".uncompressed.bin" suffixed, e.g. mtd3-Linux.bin.uncompressed.bin.

I've attached the strings output on the uncompressed file Download.

Building from Source

I'm recording my experiences and observations on building from source and whether the built binaries match those installed on the device. My primary aim is to add the  PopTop PPTP daemon into the firmware images so that the host CPU can create a standard PPP link and manage it directly, rather than having to route packets from the embedded device and manage separate Net Filter rules on it and the host gateway. See Installing PPTP for my progress.

The source-code bundle provided by Linitx, which I gather comes to them from LEX Computech, contains several archives which when expanded provide three major sub-directories:

ls -l
total 235452
drwxrwxr-x  4 tj tj      4096 2007-03-23 08:29 kernel
-rw-rw-r--  1 tj tj  58004213 2010-01-19 12:42 kernel.rar
drwxrwxr-x 35 tj tj      4096 2008-11-10 16:18 opensource
-rw-rw-r--  1 tj tj 162767502 2010-01-19 12:42 opensource.rar
drwxrwxr-x  3 tj tj      4096 2006-03-01 11:27 uclibc-toolchain
-rw-rw-r--  1 tj tj  20306695 2010-01-19 12:42 uclibc-toolchain_lxdb1.1.tar.bz2


uCLIB Toolchain

The toolchain is a cross-build for the MIPS uclib target to run on a 32-bit Intel x86 host. GCC version is 3.3.6.

The installation path used by LEX Computech is /opt/uclibc-toolchain/ifx-lxdb-1-1/gcc-3.3.6/toolchain-mips/ but that can be changed using the supplied bin/setup-toolchain.sh. This script re-generates shell include scripts that configure the environment for using the toolchain. It will replace bin/toolchain-env.sh (for sh/ash/dash/bash shells) and bin/toolchain-env.csh (for C-shell).

After extracting the toolchain archive I copied the toolchain-mips directory and all its contents to /usr/local/mips-toolchain-3.3.6. I did this because I keep all my cross-compiler installations for other target CPUs there as well. That results in:

ls -l /usr/local/mips-toolchain-3.3.6/
total 36
drwxrwxr-x  2 tj adm 4096 2006-03-23 10:12 bin
drwxrwxr-x  2 tj adm 4096 2005-09-13 04:41 bin-ccache
drwxrwxr-x 18 tj adm 4096 2005-09-13 04:59 include
drwxrwxr-x  2 tj adm 4096 2005-09-13 09:01 info
drwxrwxr-x  5 tj adm 4096 2006-02-24 17:40 lib
drwxrwxr-x  6 tj adm 4096 2005-09-13 04:43 man
lrwxrwxrwx  1 tj adm   17 2006-03-23 10:09 mips-linux -> mips-linux-uclibc
drwxrwxr-x  4 tj adm 4096 2005-09-29 14:40 mips-linux-uclibc
drwxrwxr-x  2 tj adm 4096 2006-02-24 17:45 opt-lib
drwxrwxr-x  6 tj adm 4096 2006-02-28 08:45 usr

Run the bin/setup-toolchain.sh shell script to generate the correct environment:

cd /usr/local/mips-toolchain-3.3.6/bin
./setup-toolchain.sh

Setup of tool chain is complete

ls -l toolchain-env.*
-rwxrwxr-x 1 tj adm 394 2012-03-04 17:18 toolchain-env.csh
-rwxrwxr-x 1 tj adm 261 2012-03-04 17:18 toolchain-env.sh

bin/toolchain-env.sh:

PATH=/usr/local/mips-toolchain-3.3.6/bin:/usr/local/mips-toolchain-3.3.6/usr/bin:$PATH
export PATH

MANPATH="${MANPATH}:/usr/local/mips-toolchain-3.3.6/man"
export MANPATH

CCACHE_PATH=/usr/local/mips-toolchain-3.3.6/bin-ccache:$CCACHE_PATH
export CCACHE_PATH

bin/toolchain-env.csh:

set path = (/usr/local/mips-toolchain-3.3.6/bin $path)

if ( $?MANPATH ) then
  setenv MANPATH "${MANPATH}:/usr/local/mips-toolchain-3.3.6/man"
else
  setenv MANPATH ":/usr/local/mips-toolchain-3.3.6/man"
endif

if ( $?CCACE_PATH ) then
  setenv CCACE_PATH "${CCACE_PATH}:/usr/local/mips-toolchain-3.3.6/bin-ccache"
else
  setenv CCACE_PATH ":/usr/local/mips-toolchain-3.3.6/bin-ccache"
endif

It is necessary to source one of these files each time a new shell is opened. The files should NOT be sourced more than once for each shell opened or the paths will contain multiple insertions of the toolchain path. For sh/dash/bash that means:

. /usr/local/mips-toolchain-3.3.6/bin/toolchain-env.sh

The source-code to uClibc is not provided.

Kernel

The source-code for the Linux 2.4.31 kernel provided is incomplete. It is missing critical custom amendments by Infineon and LEX Computech. Amongst the problems is that the Danube-specific architecture code (arch/mips/infineon/danube/) is not used, and there is no reference anywhere in the source-code to the "A2PCI" kernel extra-version string as reported by the running kernel:

Linux version 2.4.31-Danube-3.0.5g-A2PCI

The code as provided will build a vmlinux ELF image but is missing key parts of the Danube code.

Opensource

Note: Before making any changes or attempting builds of any of the projects I created git repositories in each project directory so that I could track changes and also return to the original state at any time.

git init
git add .
git commit -m "Original state of project"

There are a large collection of project sources included, some of which are not relevant to the ADSL (e.g. atheros, distisdn, isdn4k-utils, sip, wireless_tools):

ls -l ../opensource
total 81700
drwxrwxr-x 12 tj tj     4096 2007-07-04 15:38 atheros
drwxrwxr-x  2 tj tj     4096 2009-12-14 13:45 br2684ctl-20040226-1
drwxrwxr-x  7 tj tj     4096 2009-12-14 13:45 bridge-utils
drwxrwxr-x 29 tj tj     4096 2012-03-04 16:53 busybox-1.00
drwxrwxr-x  2 tj tj     4096 2007-05-18 11:37 distisdn
drwxrwxr-x  5 tj tj     4096 2009-12-14 13:45 dnrd-2.19
drwxrwxr-x  4 tj tj     4096 2009-12-14 13:45 ez-ipupdate-3.0.11b7
drwxrwxr-x  4 tj tj     4096 2007-05-18 11:37 iclsip_1.6.9wPCA
-rw-rw-r--  1 tj tj 21768019 2007-03-06 17:56 iclsip_1.6.9wPCA030600.rar
-rw-rw-r--  1 tj tj 21828916 2007-03-05 17:52 iclsip_1.6.9wPCA.rar
drwxrwxr-x 13 tj tj     4096 2007-05-18 11:37 iproute2
drwxrwxr-x  8 tj tj     4096 2009-12-14 13:45 iptables-1.2.9
drwxrwxr-x 41 tj tj     4096 2007-05-18 11:37 isdn4k-utils
drwxrwxr-x 41 tj tj     4096 2007-05-18 11:37 isdn4k-utils-ori
drwxrwxr-x  6 tj tj     4096 2009-12-14 13:45 linux-atm-2.4.1
drwxrwxr-x  2 tj tj     4096 2007-05-18 11:37 linux-ftpd-0.17
drwxrwxr-x 12 tj tj     4096 2007-05-18 11:37 mtd
drwxrwxr-x  2 tj tj     4096 2007-05-18 11:37 net-snmp-5.1
drwxrwxr-x  3 tj tj     4096 2009-12-14 13:45 noip-2.1.3
drwxrwxr-x  2 tj tj     4096 2009-12-14 13:45 ntpclient
drwxrwxr-x  4 tj tj     4096 2007-08-30 14:53 OpenAgent2.0
drwxrwxr-x 15 tj tj     4096 2009-12-14 13:45 ppp-2.4.2
drwxrwxr-x  8 tj tj     4096 2007-05-18 11:37 rp-pppoe-3.5
drwxrwxr-x  5 tj tj     4096 2008-09-01 15:52 RT2860
drwxrwxr-x  6 tj tj     4096 2007-11-20 15:31 RT2860-1.6.0.0
drwxrwxr-x  5 tj tj     4096 2008-07-02 11:12 RT2860-1.7.0.0
drwxrwxr-x  5 tj tj     4096 2008-06-19 16:59 RT2860-1.8.1.0
drwxrwxr-x  5 tj tj     4096 2008-01-11 17:10 RT2860_backup
-rw-rw-r--  1 tj tj 20125203 2007-03-23 14:06 sip070323.tar.bz2
-rw-rw-r--  1 tj tj 19795648 2007-03-07 09:31 sip.tar.bz2
drwxrwxr-x  4 tj tj     4096 2007-10-19 13:57 stund
drwxrwxr-x  6 tj tj     4096 2009-12-14 13:46 sysstat-6.0.1
drwxrwxr-x  2 tj tj     4096 2007-05-18 11:37 tftp-hpa-0.40
drwxrwxr-x  5 tj tj     4096 2008-06-12 11:57 upnp-opensource
drwxrwxr-x  4 tj tj     4096 2007-05-18 11:38 upnp-opensource_old
drwxrwxr-x  2 tj tj     4096 2009-12-14 13:45 wireless_tools.27
drwxrwxr-x 14 tj tj     4096 2009-12-14 13:46 zebra-0.94


Busybox

I began with busybox, wanting to establish if the source-code as provided would build the same binaries as installed in the device. I had previously taken a local image of each of the file-systems on the embedded flash device and extracted them to the local host PC.

md5sum ../../firmware/rootfs/squashfs-root/bin/busybox 
d485fd4c2fe10f268cb1b96bcbdc54eb  ../../firmware/rootfs/squashfs-root/bin/busybox

As provided the archives include built binaries (apparently the archive was created without first cleaning the source tree). These binaries do not match those on the device:

md5sum busybox-1.00/busybox
92dda93bb6c500ccc56b133fb6e5801e  busybox-1.00/busybox

However, it is possible that a clean build might match. So I cleaned the source tree:

make clean
rm -f docs/busybox.dvi docs/busybox.ps \
	    docs/busybox.pod docs/busybox.net/busybox.html \
	    docs/busybox pod2htm* *.gdb *.elf *~ core .*config.log \
	    docs/BusyBox.txt docs/BusyBox.1 docs/BusyBox.html \
	    docs/busybox.net/BusyBox.html busybox.links libbb/loop.h \
	    .config.old .hdepend busybox
rm -rf _install
find . -name .\*.flags -exec rm -f {} \;
find . -name \*.o -exec rm -f {} \;
find . -name \*.a -exec rm -f {} \;

Then attempted a build. It fails after some time with:

make

...

mips-linux-gcc -I/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/include -I/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/include -I/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/libbb -Wall -Wstrict-prototypes -Wshadow -Os -fomit-frame-pointer -D_GNU_SOURCE -DNDEBUG   -mips32 -mtune=4kc  -ggdb -DIFX_WEB_SUPPORT -DIFX_SMALL_FOOTPRINT -DIFX_SMALL_AREASIZE -DIFX_ENVSPECIAL_MEM -DIFX_INETD_ENHANCEMENT   -c -o /home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.o /home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.c
/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.c:128:24: ifx_config.h: No such file or directory
/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.c: In function `miniHttpd':
/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.c:2189: warning: statement with no effect
make: *** [/home/all/SourceCode/adsl_card_source/source/opensource/busybox-1.00/networking/httpd.o] Error 1

The file is not provided in the source-code nor is it generated. See Missing Files > Busybox.

Missing Files

This is a central list of files that are:

  • missing from the source-code distribution
  • not being generated by automated tools

uClibv 0.9.27

It does not contain the source-code uClibc 0.9.27, which is included in the toolchain.

U-boot 1.0.6

It does not contain the source-code to U-boot 1.0.6, which is used in the device's boot partition.

I've contacted Linitx asking for the U-boot source and they have passed on my request to LEX Computech on 27th February 2012:

Thank you for your email.

We have forwarded the details to LEX Computech and have asked them to 
support you directly.

Regards,

Chris.

Busybox

ifx_config.h required by networking/httpd.c The file is not provided in the source-code nor is it generated as far as I can tell:

find /home/all/SourceCode/adsl_card_source/source -iname ifx_config.h
find /usr/local/mips-toolchain-3.3.6 -iname ifx_config.h
grep -rn ifx_config.h  ../*
../busybox-1.00/networking/httpd.c:128:#include "ifx_config.h"
grep -rn ifx_config.h  /usr/local/mips-toolchain-3.3.6/*

According to build.sh the files Path.sh and config.sh should be present in the parent hierarchy:

TOPDIR=`pwd`/../../../../
. ${TOPDIR}tools/build_tools/Path.sh
. ${TOPDIR}tools/build_tools/config.sh

Installing PPTP

My aim is to replace an external Alcatel Speechtouch v610 ADSL modem with the ADSL2+ PCI. Currently the Speedtouch operates in bridge-mode. The gateway server runs a simple PPTP/PPP connection to the ADSL modem and presents the Internet on interface ppp0 where it is easy to manage via netfilters and iptables rules (I'm using Shorewall on Ubuntu 11.10 Server). Bridging avoids the need to use IP routing from the ADSL LAN interface to the gateway server.

I want to have the same configuration for this ADSL2+ PCI card. However, the device does not have a PPTP daemon installed. I got the source for Poptop and made some changes to be able to successfully cross-compile it for MIPS on the Danube device. I'll detail those here later.

Because the root file-system on the device is read-only I had to change several installation path configurations to allow pptpd and pptpctrl to run from the ramdisk on the device whilst testing. Once I have it working I'll build for the default locations and install a customised root file-system.

I use tftp to push the executables over to the device:

tftp 10.254.249.1
put pptpd
put pptpctrl
quit

Using a telnet session to the device I then move those files and make them executable:

mkdir -p /ramdisk/usr/sbin
mv /ramdisk/tftp_upload/pptp* /ramdisk/usr/sbin/
chmod +x /ramdisk/usr/sbin/*

I start the daemon:

/ramdisk/usr/sbin/pptpd -d

and then initiate a connection from the host gateway server (Jeeves):

 sudo pppd call zen-internal && tail -f /var/log/syslog

/etc/ppp/peers/zen-internal sets up the PPTP tunnel from the gateway to the ADSL modem.

I see from the syslog on Jeeves that the connection is failing:

pppd[20246]: Using interface ppp1
pptp[20507]: zen log[main:pptp.c:314]: The synchronous pptp option is NOT activated
pppd[20246]: Connect: ppp1 <--> /dev/pts/2
pptp[20547]: zen log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request'
pptp[20547]: zen log[ctrlp_disp:pptp_ctrl.c:739]: Received Start Control Connection Reply
pptp[20547]: zen log[ctrlp_disp:pptp_ctrl.c:773]: Client connection established.
pptp[20547]: zen log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request'
pptp[20547]: zen log[ctrlp_disp:pptp_ctrl.c:858]: Received Outgoing Call Reply.
pptp[20547]: zen log[ctrlp_disp:pptp_ctrl.c:897]: Outgoing call established (call ID 0, peer's call ID 768).
pptp[20547]: zen log[pptp_read_some:pptp_ctrl.c:544]: read returned zero, peer has closed
pptp[20547]: zen log[callmgr_main:pptp_callmgr.c:258]: Closing connection (shutdown)
pptp[20547]: zen log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request'
pptp[20547]: zen log[pptp_read_some:pptp_ctrl.c:544]: read returned zero, peer has closed
pptp[20547]: zen log[call_callback:pptp_callmgr.c:79]: Closing connection (call state)
pppd[20246]: Modem hangup
pppd[20246]: Connection terminated.

On the Danube checking the system log shows:

tail /var/log/messages
kern.info   pptpd[1297]: MGR: Manager process started
kern.info   pptpd[1297]: MGR: Maximum of 100 connections available
kern.debug  pptpd[1298]: MGR: Launching /ramdisk/usr/sbin/pptpctrl to handle client
kern.debug  pptpd[1298]: CTRL: local address = 192.168.0.1
kern.debug  pptpd[1298]: CTRL: remote address = 192.168.1.1
kern.info   pptpd[1298]: CTRL: Client 10.254.249.2 control connection started
kern.debug  pptpd[1298]: CTRL: Received PPTP Control Message (type: 1)
kern.debug  pptpd[1298]: CTRL: Made a START CTRL CONN RPLY packet
kern.debug  pptpd[1298]: CTRL: I wrote 156 bytes to the client.
kern.debug  pptpd[1298]: CTRL: Sent packet to client
kern.debug  pptpd[1298]: CTRL: Received PPTP Control Message (type: 7)
kern.debug  pptpd[1298]: CTRL: Set parameters to 10000000 maxbps, 3 window size
kern.debug  pptpd[1298]: CTRL: Made a OUT CALL RPLY packet
kern.info   pptpd[1298]: CTRL: Starting call (launching pppd, opening GRE)
kern.debug  pptpd[1298]: CTRL: pty_fd = 8
kern.debug  pptpd[1298]: CTRL: tty_fd = 9
kern.debug  pptpd[1298]: CTRL: I wrote 32 bytes to the client.
kern.debug  pptpd[1298]: CTRL: Sent packet to client
kern.debug  pptpd[1299]: CTRL (PPPD Launcher): program binary = /usr/sbin/pppd
kern.debug  pptpd[1299]: CTRL (PPPD Launcher): local address = 192.168.0.1
kern.debug  pptpd[1299]: CTRL (PPPD Launcher): remote address = 192.168.1.1
kern.debug  pptpd[1299]: CTRL (PPPD Launcher): /usr/sbin/pppd local 115200 192.168.0.1:192.168.1.1 ipparam 10.254.249.2 
kern.notice pppd[1299]: pppd 2.4.2 started by root, uid 0
kern.err    pppd[1299]: Couldn't set tty to PPP discipline: Invalid argument
kern.info   pppd[1299]: Exit.
kern.err    pptpd[1298]: GRE: read(fd=8,buffer=10000580,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
kern.err    pptpd[1298]: CTRL: PTY read or GRE write failed (pty,gre)=(8,9)
kern.debug  pptpd[1298]: CTRL: Reaping child PPP[1299]
kern.info   pptpd[1298]: CTRL: Client 10.254.249.2 control connection finished

The critical error here being:

kern.err    pppd[1299]: Couldn't set tty to PPP discipline: Invalid argument

After much digging through the source-code of pppd, and experimenting in a shell on the Danube, I finally discovered the cause. pppd is trying to change the line discipline from regular teletype console to ppp_async. The kernel is returning -EINVALID because tty-ldisc-3 (PPP_ASYNC) is not built into the kernel:

grep -n CONFIG_PPP_ .config
711:# CONFIG_PPP_MULTILINK is not set
712:# CONFIG_PPP_FILTER is not set
713:CONFIG_PPP_IFX_IDLETIME_EXTENSION=m
714:# CONFIG_PPP_ASYNC is not set
715:# CONFIG_PPP_SYNC_TTY is not set
716:# CONFIG_PPP_DEFLATE is not set
717:# CONFIG_PPP_BSDCOMP is not set
718:# CONFIG_PPP_MPPE is not set


The next step is to try building a custom kernel and installing it into the device without turning it into a brick.

 http://www.linux-mips.org/wiki/Danube

Attachments