OpenWrt - Adding Device Support for Draytek Vigor 3910

Hello,

I have here a bunch of information from the bootloader and boot script for a Draytek Vigor 3910
https://pastie.io/fycyzo.dns

Product Link: https://www.draytek.co.uk/products/business/vigor-3910

I'm not sure how many of the drivers and chipsets are supported at this point.

Looking at the Draytek forums, there seems to be a fair few people having firmware issues with "DrayOS".

Is there any other information that is required? I'm happy to provide whatever content I can.

Regards,
Leon

1 Like

So it looks like the bootloader is at least accessible.
I've attempted to generate a few octeontx images however the closest that I've got to a boot image is by using 'openwrt-octeon-generic.bin of which has died with the following error:

Vigor3910> tftpboot openwrt-octeontx-vmlinux
BGX0:LMAC 2 link up
Using vnic2 device
TFTP from server 192.168.1.5; our IP address is 192.168.1.1
Filename 'openwrt-octeontx-vmlinux'.
Load address: 0x500000
Loading: ##################################################  9.1 MiB
         1.1 MiB/s
done
Bytes transferred = 9547784 (91b008 hex)
Vigor3910> booti
FDT and ATAGS support not compiled in - hanging
### ERROR ### Please RESET the board ###

ext4 gives me this error:

Vigor3910> tftpboot openwrt-octeontx-ext4.img
BGX0:LMAC 2 link up
Using vnic2 device
TFTP from server 192.168.1.5; our IP address is 192.168.1.1
Filename 'openwrt-octeontx-ext4.img'.
Load address: 0x500000
Loading: *
TFTP error: 'File is too big, try increasing block size' (0)

Squashfs gives me this error:

Vigor3910> tftpboot openwrt-octeontx-squashfs.img
BGX0:LMAC 2 link up
Using vnic2 device
TFTP from server 192.168.1.5; our IP address is 192.168.1.1
Filename 'openwrt-octeontx-squashfs.img'.
Load address: 0x500000
Loading: ##################################################  1.9 MiB
         1.1 MiB/s
done
Bytes transferred = 1946475 (1db36b hex)
Vigor3910> booti
Bad Linux ARM64 Image magic!

So I know I'm attempting to boot the wrong image.

I got into some of the diagnostics information and managed to get this information which looks like board configuration info.
Cavium Configuration/BDK
https://pastie.io/pyfhto.groovy

1 Like

I've been having an issue for the last few days with the build server so I've not been able to test out any new images.

Is there anything that I should be looking for.
Since this is the first time building my own firmware, I'm not sure exactly what I'm supposed to be looking for however I've picked out this information which may help later.

U-Boot 2017.07-OCTEONTX_SDK_6_2_0_p3_build_38-svn1469 (Dec 09 2020 - 11:25:29 +0800) for Cavium OcteonTX CN81XX ARM V8 Core
aarch64-thunderx-linux-gnu-gcc (Cavium Inc. Version 2.1 build 97) 6.2.0
GNU ld (Cavium Inc. Version 2.1 build 97) 2.26.20160125


bootargs=console=ttyAMA0,115200n8 earlycon=pl011,0x87e028000000 debug maxcpus=4 rootwait rw root=/dev/sda2 coherent_pool=16M isolcpus=1

thunder-bootfs-uboot-t81.img
ver=U-Boot 2017.07-OCTEONTX_SDK_6_2_0_p3_build_38-svn1469 (Dec 09 2020 - 11:25:29 +0800) for Cavium OcteonTX CN81XX ARM V8 Core

AArch64 Processor [430f0a22]
Linux version 4.9.0
CPU features: enabling workaround for Cavium erratum 30115




[8.091910] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[8.098035] e100: Copyright(c) 1999-2006 Intel Corporation
[8.103613] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
[8.110653] e1000: Copyright (c) 1999-2006 Intel Corporation.
[8.116470] igbvf: Intel(R) Gigabit Virtual Function Network Driver - version 2.4.0-k
[8.124290] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[8.130274] ixgb: Intel(R) PRO/10GbE Network Driver - version 1.0.135-k2-NAPI
[8.137402] ixgb: Copyright (c) 1999-2008 Intel Corporation.
[8.143130] Intel(R) Ethernet Switch Host Interface Driver - version 0.21.2-k
[8.150255] Copyright (c) 2013 - 2016 Intel Corporation.
[8.155752] sky2: driver version 1.30
[8.159754] VFIO - User Level meta-driver version: 0.3

qemu-system-aarch64

I've just found this firmware file

https://www.visus.pt/mirrors/draytek/Vigor3910/Firmware/V3.9.6/Vigor3910_v3.9.6.zip

Seems to contain a bunch of dtb and dtb.sign files.
So I'm trying to work out what data is stored in this firmware file.
It's not something I've seen before so I'm not sure what this firmware build is.
Anybody have any idea on this?

How to unzip Vigor3910xxxx.zip file,there is an .all file in this zip,I don't know how to unzip .all file.

Hello Jason,

Using 7-zip or winrar will work. I used 7-zip in my image above.

If you're having issues with that then I can upload a zip instead?

Regards,
Leon

There is a file name "v3910_396.all" in the zip file with your URL address.I know how to unzip the zip file.But I don't know how to "unzip" v3910_396.all.

Hello Jason,

The .all extension seems to just be an archive file so just open it with 7zip or double click it when you have the .zip file open.
Alternatively, I've re-zipped here: https://we.tl/t-Ercm78NZrR but I'm not sure if there's missing data due to windows/7zip extraction.

Regards,
Leon

Thank you for your advice,It's my 7zip software‘ version too slow,That was 9.20 release in 2020.After I upgrate to the version of 7zip 19.0.I can unzip the .all file.
Thank you very much!

I have just done a binwalk of the 3.9.7.2 firmware version:

Firmware download: https://www.draytek.co.uk/support/downloads/vigor-3910/send/773-vigor-3910/2490-v3910-3972

I can't see that it's using Uboot however I do see
ZBOOT firmware header, header size: 32 bytes, load address: 0x9C54505A, start address: 0x8B844857, checksum: 0x4F8B885F, version: 0xFF979388, image size: 991901497 bytes