Old version of OpenWrt (ADB Pirelli VV2220)

I'm searching for a Openwrt Toolchain to cross compile the ftdio_sio kernel module because I cannot find a precompiled version of the package for my openwrt version. I don't know which version of openwrt is running the system, but from the date and linux version (2.6.30) I thinks that is running Openwrt 10.03

My router infos:

Linux localhost 2.6.30 #1 SMP PREEMPT Mon Jun 8 16:14:23 CEST 2015 mips GNU/Linux
2.6.30 SMP preempt mod_unload MIPS32_R1 32BIT 

Version of uClibc: libuClibc-0.9.31
The kernel modules that are already installed are using Big Endian format.

NOTE: I have root access to the router

:warning: :warning: :warning:
What are you using this for? What hardware is it running on?

This is beyond ancient. There are many known and actively exploited security vulnerabilities for this version. This version has been EOL for probably a decade now, and is completely unsupported. It should not be used anymore. Full stop.

Because it is so old, I'd be surprised if anyone remembers any of the details about how to get this version to compile or even how to perform basic configuration. It is so far out of support that you are on your own here.

2 Likes

Thanks for the quick response. The router is an ADB Pirelli VV2220.

CPUINFO:

root@localhost:~# cat /proc/cpuinfo 
system type             : 963168_IADR
voice type              : SI32261
processor               : 0
cpu model               : Broadcom4350 V8.0
BogoMIPS                : 398.33
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : no
hardware watchpoint     : no
ASEs implemented        :
shadow register sets    : 1
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

unaligned exceptions            : 3
processor               : 1
cpu model               : Broadcom4350 V8.0
BogoMIPS                : 402.43
wait instruction        : yes
microsecond timers      : yes
tlb_entries             : 32
extra interrupt vector  : no
hardware watchpoint     : no
ASEs implemented        :
shadow register sets    : 1
core                    : 0
VCED exceptions         : not available
VCEI exceptions         : not available

I'm unable to find a valid openwrt version of the firmware for this device.

For more details:

Details of the router

If it is useful I found the mtd layout of the flash:

mtd0: 00000000 00000000 "CFE"
mtd1: 00000000 00000000 "upgrade"
mtd2: 00000000 00000000 "flash"
mtd3: 00020000 00020000 "CFE"
mtd4: 00200000 00020000 "bootfs_1"
mtd5: 01bc0000 00020000 "rootfs_1"
mtd6: 00200000 00020000 "bootfs_2"
mtd7: 01bc0000 00020000 "rootfs_2"
mtd8: 01dc0000 00020000 "upgrade"
mtd9: 00200000 00020000 "conf_fs"
mtd10: 00040000 00020000 "conf_factory"
mtd11: 00100000 00020000 "bbt"
mtd12: 04000000 00020000 "flash"

I need to use it to read data from a ftdi data logger connected to a Davis Vantage VUE weather station. I need to connect the FTDI usb of the data logger to the USB port of the router and redirect the data to another server where I elaborate the data and send over the net.

The problem is that the old version of the kernel does not have the ftdi_sio module to read the data from the data logger

I'd highly recommend picking up something newer that can support OpenWrt 21.02. This would get you on a supported (and safe/secure) version that has FTDI packages available to install without any additional hurdles.

Alternatively, you could pick up something like a RPi for the same purpose (and you could use OpenWrt or RPi OS).

1 Like

Why not convey the data via IP/Ethernet?

You eliminate the need for the USB altogether.

Definitely.

1 Like

How can I do that? I need something to convert the ftdi data logger data to ethernet and send it to a remote server

My apologies, looking at the device, it seemed [clear] that it had Ethernet connectivity. I actually had a difficult time finding information on its serial connection. I must have found another model in my searching.

1 Like

So the final solution was to use the ADB VV2220 modem with openwrt 10.03.
I tried to cross compile the module for that kernel successfully. I was able to insert the module into the kernel and the usb FTDI dalalogger is detected by the system. The only poblem occurs when I try to read the device using dd if=/dev/ttyUSB0 of=/root/test.bin bs=1 count=1. The kernel crash with a long message:

[  561.429000] Process khubd (pid: 69, threadinfo=8793c000, task=8790add0, tls=00000000)
[  561.429000] Stack : 00000001 c448fdd4 c4494780 866a0980 87b7c000 00000001 c448fdd4 c44901c0
[  561.429000]         00000000 80348ac8 000003e0 80117a68 802e97f0 866e6b80 8793fbb8 87820e00
[  561.429000]         8111b93c 800db590 853a0bf8 80340000 85a947a8 800a5a84 802a52e8 80076f0c
[  561.429000]         866e57d8 866ba63c 87820e00 800db590 853a0bf8 853a0bf8 00000001 800a5b4c
[  561.429000]         0000a1ff 800dbe84 866e57ac 85a947a0 8793fc50 866ba63c 8793fc50 800dbc68
[  561.429000]         00000000 866ba63c 866e57d8 853a0bf8 00000001 85a947a8 802e97f0 00000000
[  561.429000]         87b7c068 800dd010 87b7c000 85a94780 85a94780 c0cd47e8 c0cd474c 85a947a0
[  561.429000]         87b7c000 85a947a8 802e97f0 00000000 87b7c068 80181168 85a94780 80154664
[  561.429000]         00000000 00000000 ffffffed 85a947a0 c0cd4780 85a947a0 87b7c000 801547d8
[  561.429000]         802e1a70 8793fce8 866e6700 00000000 00000000 8793fcc8 80154944 80153be8
[  561.429000]         870583c0 866b0000 802e2650 85a947a8 878dd650 86fd44b8 878de000 802e9820
[  561.429000]         85a947a0 85a947d4 802ab200 80154a48 802e1a70 802ac7ec 00000000 00000000
[  561.429000]         802e9820 85a947a0 00000000 801539ac 00000000 802ab200 87b7c000 85a947a8
[  561.429000]         802e97f0 85a94780 85a947a0 801523f4 00000001 00000000 00000002 00000000
[  561.429000]         00000001 00000028 85a947a0 85a94780 85a94780 00000000 866e6a08 802ab200
[  561.429000]         87b7c000 866e6a00 00000001 00000001 85836e04 801803d8 00000002 87b7c070
[  561.429000]         00000002 87b7c004 00000001 00000000 00000000 00000000 00001388 87b7c070
[  561.429000]         85836e00 87a82c04 87b7c068 00000001 87a82c00 87b7c004 00000001 87b7c000
[  561.429000]         802e9e54 87b7c068 00000002 87b7c070 802e9674 00000000 87a66868 80187370
[  561.429000]         00000002 80154664 fffffffe 866e6700 8793fe10 87828438 ffffffed 87b7c068
[  561.429000]         802e9e54 801547d8 802e1a70 8793fe50 866e6700 00000000 00000000 8793fe30
[  561.429000]         80154944 80153be8 866bb2e0 866b0000 802e2650 87b7c070 878dd650 87828438
[  561.429000]         878de000 802e9820 87b7c068 87b7c09c 87a5fd80 80154a48 802e1a70 802ac7ec
[  561.429000]         00000000 00000000 802e9820 87b7c068 00000000 801539ac 00000000 87a5fd80
[  561.429000]         00000002 87b7c070 802e9674 8793fea0 87b7c068 801523f4 87a66800 00000000
[  561.429000]         000000bd 00000081 3138393a 31323900 00000000 87b7c000 87b7c068 00000000
[  561.429000]         87b7c000 87a5fd80 00000002 00000000 87a66800 00000001 87a66800 80179aec
[  561.429000]         0000000a 87b7c000 85348380 87a5fd80 00000000 87b7c000 85348380 8017b05c
[  561.429000]         87a5fd80 8002b9b4 00000001 8793ff28 0000000a 00000001 00000000 00000000
[  561.429000]         000003e8 803280d0 80327884 01010001 00000101 00000000 8790add0 8004fa04
[  561.429000]         8793ff38 8793ff38 87a66800 87a5fd80 00000000 87a66c00 87a5fe1c 87a5fea0
[  561.429000]         00000002 87a5fd88 87a6689c 87a5fdc8 87a5fdc4 87a5fdc0 87a5fea0 00000000
[  561.429000]         00000001 87a669e0 00000000 8017a5d0 00000000 00000000 00000000 00000000
[  561.429000]         00000000 00000000 00000000 8004f610 00000000 00000000 00000000 00000000
[  561.429000]         8793c000 00000000 00000000 80014d34 10008d03 00000000 00000000 00000000
[  561.429000]         00000000 00000000 45551450 75455555 054d0555 1d555544 54115154 555dd155
[  561.429000]         15195545 05547516
[  561.429000] Call Trace:(--Raw--[<c448fdd4>] 0xc448fdd4
....

Linux kmods must match the installed kernel exactly, or they will almost certainly crash.

I have run weewx directly on OpenWrt on a Netgear R6100. So the system is weather station -> OpenWrt router -> Internet. This requires at least 128/128 MB memory, but you can get something meeting that spec for $30..

1 Like

Does anyone know a way to upgrade this old version of openwrt to a new one? The router has a CFE interface that allows to update a new firmware. I also have access to a root shell in the system and I can see that the system is openwrt because it has opkg installed.

The problem is that opkg doesn't work. The opkg.conf file contains the following content:

src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/bcm412l07/packages
dest root /
dest ram /tmp
dest usb1 /mnt/sda1
lists_dir ext /var/opkg-lists
option overlay_root /overlay

I tried to open that link but it doesn't work anymore. Any solution?
I really want to upgrade this router to a new version of openwrt, since it's a good router. It has 126MB of ram

List of snapshots by target...

https://downloads.openwrt.org/snapshots/targets/

Doesn't look promising.

That target spec looks strange. I don't think that it has ever existed in the official/normal OpenWrt. (Strangely the small L letter in the middle of the numbers)

You are likely running a vendor specific tailored version, based on OpenWrt, but not quite aligned even to ancient OpenWrt versions.

I found a reference to that architecture on the archive OpenWRT forum from 2015...

https://forum.archive.openwrt.org/viewtopic.php?id=55702

Another thread from 2014 on a Czech forum mentions a Telekom ADB VV3212 that uses the bcm412l07 as well.

Funny, that is also an outsider's request for the same:
https://forum.archive.openwrt.org/viewtopic.php?id=55702

"I just need a driver ftdi_sio for this router from kernel versions 2.6.30"

Sounds like that thread is a six-year old duplicate of this new one...
But there were no positive findings in that thread, either.

1 Like

@hnyman @anon89577378 thanks for the answers. Do you think there is some way to update of flash a new firmware on that device?

If the device has never been supported by the real OpenWrt, the realistic answer is no.

You would need the modified sources from the device vendor.

I'm not sure how far back its availability goes, but you could try ubus call system board. I see this for example and the kernel, version, etc entries may help pin down what you have:

root@WNDR3700v4:~# ubus call system board
{
        "kernel": "5.10.90",
        "hostname": "WNDR3700v4",
        "system": "Atheros AR9344 rev 2",
        "model": "Netgear WNDR3700 v4",
        "board_name": "netgear,wndr3700-v4",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r18562-0765466a42",
                "target": "ath79/nand",
                "description": "OpenWrt SNAPSHOT r18562-0765466a42"
        }
}

A couple of the above suggestions include switching to a different network device. Can you not do that?

Are you familar enough with Unix utilities like find, md5, etc to try and understnad what is same or different about the device and a contemporary OpenWrt build? Reverse engineering it's config might allow you to understand what to put on a new image, if something suitable is in the standard or user builds.

At a push, you might be able to get a build working where the binaries start to match what is on there, improving the chances of your kmod build working.

I'm familiar with the unix system but the command ubus is not working.
But I found the following interesting informations:

  • The kernel was compiled with CONFIG_SMP=y since from uname command there is the SMP tag
  • with CONFIG_PREEMPT=y from the uname
  • for a MIPS32_R1 processor
  • using the CONFIG_CPU_BIG_ENDIAN=y since the kernel modules already installed, by using binwalk says this: ELF, 32-bit MSB relocatable, MIPS, version 1 (SYSV)
  • using kernel 2.6.30 from uname
  • the system board by opening the router shows a BCM63168VKFEBG chip

I'm still unsure why you want to upgrade what is on the device rather than move to a more modern, supported device. Both will (probably) break any bespoke software on the device, but the latter will be a lot easier.

If there is bespoke software and you really want to compile new things for it, how about cat /etc/openwrt_release to try and zoom in on what to work with?