Huawei Hg255s and Dlink Dsl-2888a OpenWrt Compiling (VSPM340)

Hi,
I wanted to install openwrt on Huawei Hg255s which have TriDuctor VSPM340 cpu and requested GPL code from Huawei but they just ignoried my mail requests.No response at all.Full hardware specs are here btw.

So i searched for similiar hardware spec devices and i found Dlink's DSL-2888a and DVA-2800, these devices seems good candidate for my HG255s.
Donwloaded GPL source code at dlink's GPL site for DSL-2888a.After fiddling around source code it seems this device already running heaviliy modified openwrt.After removing xDSL and some unnecessary features with menuconfig for my HG255s i have tried to compile it but it complains about external toolchain for some reason.It seems kernel already have support for both RTL8812 and RTL8192.

I have figured out serial console pins as attached photo with my FT232 and TFTP seems work:

Also here is my OEM bootlog,I had to cut down it because of character limit in forum:


-------------------
- VER5610 bootrom -
-------------------
-
>> hit <ctrl+c> to stop autoboot:0
-
----------------------------------
- Flash type .......... [  NAND  ]
- Boot mode ........... [ NONSEC ]
- Read page0 .......... [   OK   ]
- DDR ................. [   OK   ]
- bootloader .......... [   OK   ]
----------------------------------
-
>> startup bootloader...


Hi-Boot  ( 2015-03-30 - 22:06:12 )

DRAM       : 128MB       SYS        : 0xc0c00000
STACK DATA : 0xc0020000  STACK SVC  : 0xc0030000
STACK FIQ  : 0xc0040000  STACK ABT  : 0xc0050000
STACK UND  : 0xc0060000  STACK IRQ  : 0xc0070000
Memory     : total 127.5MB
Memory     : start 0xc2000000 available 64MB
Memory     : code 189.2KB bss 95KB highmem 32MB 0xc6000000

Boot Sel   : BOOTROM

Dev Manuf  : AMD/SPANSION
Nand ID    : 0x01 0xF1 0x00 0x1D 0x01 0xF1 0x00 0x1D
Nand Spec  : Chip[134217728B] Block[131072B] Page[2048B] OOB[32B] ECC[4bit]
Chip Name  : NAND 128MiB 3,3V 8-bit

muilt upgrade wait...

Hit <ctrl+c> to stop autoboot:  3
hi #

-------------------
- VER5610 bootrom -
-------------------
-
>> hit <ctrl+c> to stop autoboot: 1
bootrom > <INTERRUPT>
<INTERRUPT>
<INTERRUPT>
<INTERRUPT>
help

cmd     - usage          - help
------------------------------------------------------------
boot    - boot           - read info from flash and boot
go      - go <addr>      - jump to application at 'addr'
help    - help           - print description of all commands
loady   - loady <addr>   - load file from the serial line
md      - md <addr>      - memory display
mw      - mw <addr>      - memory write
reset   - reset          - system reboot
run     - run <addr>     - execute application at 'addr'

bootrom >

-------------------
- VER5610 bootrom -
-------------------
-
>> hit <ctrl+c> to stop autoboot:0
-
----------------------------------
- Flash type .......... [  NAND  ]
- Boot mode ........... [ NONSEC ]
- Read page0 .......... [   OK   ]
- DDR ................. [   OK   ]
- bootloader .......... [   OK   ]
----------------------------------
-
>> startup bootloader...


Hi-Boot  ( 2015-03-30 - 22:06:12 )

DRAM       : 128MB       SYS        : 0xc0c00000
STACK DATA : 0xc0020000  STACK SVC  : 0xc0030000
STACK FIQ  : 0xc0040000  STACK ABT  : 0xc0050000
STACK UND  : 0xc0060000  STACK IRQ  : 0xc0070000
Memory     : total 127.5MB
Memory     : start 0xc2000000 available 64MB
Memory     : code 189.2KB bss 95KB highmem 32MB 0xc6000000

Boot Sel   : BOOTROM

Dev Manuf  : AMD/SPANSION
Nand ID    : 0x01 0xF1 0x00 0x1D 0x01 0xF1 0x00 0x1D
Nand Spec  : Chip[134217728B] Block[131072B] Page[2048B] OOB[32B] ECC[4bit]
Chip Name  : NAND 128MiB 3,3V 8-bit

muilt upgrade wait...

Hit <ctrl+c> to stop autoboot:  3
hi # help
?               - alias for help
arp             - display arp table
bootm           - boot application image from memory
ccs             - change double system boot flag, ccs 0[main] | 1[slave]
cpu_stat        - show task %cpu
go              - start application at address 'addr'
gpio            - gpio sub-system
help            - print command description/usage
load_boot       - load boot into nand/spi flash
load_image      - load image into nand/spi flash
lzma            - lzma decoder file
md              - memory display
mdio            - mdio sub-system
mp              - memory compare
mw              - memory write (fill)
nand            - NAND sub-system
ping            - send ICMP ECHO_REQUEST to network host
printenv        - print environment variables
rcs             - get double system boot flag
reset           - Perform RESET of the CPU
saveenv         - save environment variables to persistent storage
sec_init        - sec init function
sec_test        - test sec function
setenv          - set environment variables
sfc             - sfc sub-system
tftp            - tftp [loadAddress] filename
hi # cpu_stat
hi # nand
nand - NAND sub-system
Usage:
nand read - addr off|partition size
nand write - addr off|partition size
    read/write 'size' bytes starting at offset 'off'
    to/from memory address 'addr', skipping bad blocks.
nand erase [clean] [off size] - erase 'size' bytes from
    offset 'off' (entire device if not specified)
nand erase_badblock [clean] [off size] - erase 'size' bytes from
    offset 'off' (entire device if not specified),juset for test
nand dump[.oob] off - dump page
nand markbad off [...] - mark bad block(s) at offset (UNSAFE),juset for test
nand test [ui_times] [ui_startaddr] [ui_endaddr]
nand test_result
nand bbt - print all bbt
hi # version
hi # ver
hi # boot
hi #

-------------------
- VER5610 bootrom -
-------------------
-
>> hit <ctrl+c> to stop autoboot:0
-
----------------------------------
- Flash type .......... [  NAND  ]
- Boot mode ........... [ NONSEC ]
- Read page0 .......... [   OK   ]
- DDR ................. [   OK   ]
- bootloader .......... [   OK   ]
----------------------------------
-
>> startup bootloader...


Hi-Boot  ( 2015-03-30 - 22:06:12 )

DRAM       : 128MB       SYS        : 0xc0c00000
STACK DATA : 0xc0020000  STACK SVC  : 0xc0030000
STACK FIQ  : 0xc0040000  STACK ABT  : 0xc0050000
STACK UND  : 0xc0060000  STACK IRQ  : 0xc0070000
Memory     : total 127.5MB
Memory     : start 0xc2000000 available 64MB
Memory     : code 189.2KB bss 95KB highmem 32MB 0xc6000000

Boot Sel   : BOOTROM

Dev Manuf  : AMD/SPANSION
Nand ID    : 0x01 0xF1 0x00 0x1D 0x01 0xF1 0x00 0x1D
Nand Spec  : Chip[134217728B] Block[131072B] Page[2048B] OOB[32B] ECC[4bit]
Chip Name  : NAND 128MiB 3,3V 8-bit

muilt upgrade wait...

Hit <ctrl+c> to stop autoboot:  0

=====bootm=====
Read fs from flash, wait for seconds...
fs crc check ok!
#########
copy 2252784 bytes successful!
Boot from slave system ...
   kernel data at 0xc6000040, len = 0x00225fb0 (2252720)
   Loading Kernel Image ... OK
## Transferring control to Linux (at address 81208000) ...

Starting kernel ...

Uncompressing Linux........................................................................................................................................... done, booting the kernel.
init started: BusyBox vv1.9.1 ()
starting pid 313, tty '': '/etc/init.d/rcS'
RCS DONE
starting pid 314, tty '': '/bin/sh'


BusyBox vv1.9.1 () built-in shell (ash)
Enter 'help' for a list of built-in commands.

boot start running profile...
rootdir=/
table='/etc/devicetable'
boot start running starbsp...
mknod: /dev/mem: File exists
Loading SDK modules
Loading HSAN modules


Loading Huawei modules
Loading qtm WLAN modules
Ending qtm WLAN modules
Loading realtek WLAN modules
Ending realtek WLAN modules
boot running starbsp...
cp: cannot stat '/etc/webimg1': No such file or directory
cp: cannot stat '/etc/webidx1': No such file or directory
Loading drivers and kernel modules...

HSAN init chip successfully ...!
boot running mic...



==========================================

==========================================
attribute(00)-alias(orgifname                       ) = wl1
attribute(01)-alias(extifname                       ) = wl1_0
attribute(02)-alias(flag                            ) = 00000002

==========================================

==========================================
attribute(00)-alias(fatherifname                    ) = wlan_ext1
attribute(01)-alias(ifname                          ) = wl1_1
attribute(02)-alias(mapmode                         ) = 00000004
attribute(03)-alias(matchmode                       ) = 00000000
attribute(04)-alias(pvc                             ) = 0000ffff
attribute(05)-alias(dmac                            ) = 00:00:00:00:00:00
attribute(06)-alias(rsv1                            ) = 0000
attribute(07)-alias(vid                             ) = 0002
attribute(08)-alias(pri                             ) = 0000
attribute(09)-alias(allocwanid                      ) = 00000000

==========================================
INSMOD base START......
retry xhci
retry xhci done


==========================================
attribute(00)-alias(orgifname                       ) = wl1.2
attribute(01)-alias(extifname                       ) = wl1_2
attribute(02)-alias(flag                            ) = 00000002


******ledservice lan init.*****
****ledservice wifi init.*****

 LED Regiter:/sys/class/leds/wifi_led:green  OK !!
***ledservice wps init.***

 LED Regiter:/sys/class/leds/usb_led:red  OK !!

 LED Regiter:/sys/class/leds/usb_led:green  OK !!

 LED Regiter:/sys/class/leds/wan_led:green  OK !!

 LED Regiter:/sys/class/leds/internet_led:red  OK !!

 LED Regiter:/sys/class/leds/internet_led:green  OK !!

 LED Regiter:/sys/class/leds/voip1_led:green  OK !!
******ledservice wps init.******n
 LED Regiter:/sys/class/leds/wps_led:green  OK !!

 LED Regiter:/sys/class/leds/power_led:red  OK !!

 LED Regiter:/sys/class/leds/power_led:green  OK !!
>>>>>>button_Create over<<<<<<<<<<
>>>>>>button_Create over<<<<<<<<<<
>>>>>>button_Create over<<<<<<<<<<
>>>>>>button_Create over<<<<<<<<<<
>>>>>>button_Create over<<<<<<<<<<
USBMonitor: func[                main] line[1009]USBMonitor start running..


cms main started now ...
##sendmsg return 16, errno 0.

Dhcp6s work on br0 is disableFILE[dhcp6scms.c] LINE[344]


==========================================
Auto-negotiation enabled.
No common media type was autonegotiated!
This is extremely unusual and typically indicates a configuration error.
Perhaps the advertised capability set was intentionally limited.
Link is down



==========================================
Auto-negotiation enabled.
No common media type was autonegotiated!
This is extremely unusual and typically indicates a configuration error.
Perhaps the advertised capability set was intentionally limited.
Link is down


==========================================
Auto-negotiation enabled.
No common media type was autonegotiated!
This is extremely unusual and typically indicates a configuration error.
Perhaps the advertised capability set was intentionally limited.
Link is down


==========================================
Auto-negotiation enabled.
No common media type was autonegotiated!
This is extremely unusual and typically indicates a configuration error.
Perhaps the advertised capability set was intentionally limited.
Link is down
device eth0 is not a slave of br0
atp: cur kernel version:[2.6.30]


==========================================

==========================================

==========================================
ifconfig: SIOCSIFADDR: File exists

Radvd cms init br 1FILE[radvdcms.c] LINE[325]

Radvd work on br0 is disableFILE[radvdcms.c] LINE[365]
Wanumtscms: func[    WUTR098IniDevice] line[417]Initial UMTS device
765 addr=10630
765 addr=10630
765 addr=10630
765 addr=10630
765 addr=10630
765 addr=10630
765 addr=10630
765 addr=10630

WPS_LED_______WPS_STATUS====8
[4088]  bsd enable=1

[4095]  bsd ssid enable=1

[4103]  radio enable 2.4G:1 , 5G:1

[4112]  5g ssid enable:1 , 2.4G ssid enable:1


 begin WlanSetChannel...

 begin WlanStartServices...

 begin WlanUpInterfaces...
USBMonitor: func[linux_2630_usbfs_GetKernelDevice] line[297]Get Device in Proc ret = 0x0
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[325]Get usb device kernel idProduct         =    3
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[326]Get usb device kernel idVendor          = 1d6b
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[327]Get usb device kernel bDeviceClass      =  9
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[328]Get usb device kernel bDeviceProtocol   =  3
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[329]Get usb device kernel bDeviceSubClass   =  0
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[330]Get usb device kernel bcdDevice         = 206
USBMonitor: func[   UsbMnGetUSBDevice] line[388]Add device in list
USBMonitor: func[linux_2630_usbfs_GetKernelDevice] line[297]Get Device in Proc ret = 0x0
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[325]Get usb device kernel idProduct         =    2
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[326]Get usb device kernel idVendor          = 1d6b
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[327]Get usb device kernel bDeviceClass      =  9
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[328]Get usb device kernel bDeviceProtocol   =  1
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[329]Get usb device kernel bDeviceSubClass   =  0
USBMonitor: func[UsbMnGetUsbDeviceKernelInfo] line[330]Get usb device kernel bcdDevice         = 206
USBMonitor: func[   UsbMnGetUSBDevice] line[388]Add device in list

WPS_LED_______WPS_STATUS====8
[4088]  bsd enable=1

[4095]  bsd ssid enable=1

[4103]  radio enable 2.4G:1 , 5G:1

[4112]  5g ssid enable:1 , 2.4G ssid enable:1


 begin WlanSetChannel...

 begin WlanStartServices...

 begin WlanUpInterfaces...

Wan path error!
CtBalance: file[ctbalanceapi.c] fun[ATP_CTBalance_Init] line[162]Init Conntrack balance.
CtBalance: file[ctbalanceapi.c] fun[ATP_CTBalance_Init] line[189]Enable is 0, Number is 500.


Signal 13 recvd.
MSG 35338 process from [wlan] endMSG 35341 process... from [wlan]
************************Write flash to vdb now ...
################## error vsscanf_s invalid argument
526 addr=1d9b0 buffer=[
]
[790]  sync wlan db start

[916]  sync wlan db end

************************Write db to flash now ...
done sync
Vdb already exists.
Create rss table again.
Vdb already exists.
Vdb already exists.

*****DECT TIMESLOT TEST OK******
pcm auto test success

________________________[DECT_TODO][VOICE_SetPriorityOfVoice][128]

And here is custom toolchain error:

jigsaw@rampage:~/Desktop/dsl-2888a$ make menuconfig
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... ok.
Checking 'zlib'... ok.
Checking 'gawk'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'patch'... ok.
Checking 'perl'... ok.
Checking 'python'... ok.
Checking 'wget'... ok.
Checking 'git'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'gnu-find'... ok.
Checking 'getopt-extended'... ok.
Checking 'non-root'... ok.
ERROR: please fix package/triphone/Makefile - see logs/package/triphone/dump.txt for details
Collecting package info: done
Collecting platform info: done
Collecting project info: done
Collecting target info: done

#
# using defaults found in .config
#


*** End of OpenWrt configuration.
*** Execute 'make' to build the OpenWrt or try 'make help'.

jigsaw@rampage:~/Desktop/dsl-2888a$ make -j 4
ERROR: please fix package/triphone/Makefile - see logs/package/triphone/dump.txt for details
Collecting package info: done
 make[1] world
 make[2] tools/install
 make[2] package/cleanup
 make[3] -C tools/xz compile
 make[3] -C tools/m4 compile
 make[3] -C tools/mklibs compile
 make[3] -C tools/sed compile
 make[3] -C tools/sstrip compile
 make[3] -C tools/ipkg-utils compile
 make[3] -C tools/genext2fs compile
 make[3] -C tools/firmware-utils compile
 make[3] -C tools/patch-image compile
 make[3] -C tools/yaffs2 compile
 make[3] -C tools/flock compile
 make[3] -C tools/padjffs2 compile
 make[3] -C tools/cmake compile
 make[3] -C tools/scons compile
 make[3] -C tools/lzma compile
 make[3] -C tools/vspmxxx-mkimage compile
 make[3] -C tools/default2nvram compile
 make[3] -C tools/sed install
 make[3] -C tools/xz install
 make[3] -C tools/mklibs install
 make[3] -C tools/sstrip install
 make[3] -C tools/ipkg-utils install
 make[3] -C tools/genext2fs install
 make[3] -C tools/mkimage compile
 make[3] -C tools/firmware-utils install
 make[3] -C tools/patch-image install
 make[3] -C tools/yaffs2 install
 make[3] -C tools/flock install
 make[3] -C tools/padjffs2 install
 make[3] -C tools/scons install
 make[3] -C tools/lzma install
 make[3] -C tools/squashfs4 compile
 make[3] -C tools/vspmxxx-mkimage install
 make[3] -C tools/default2nvram install
 make[3] -C tools/m4 install
 make[3] -C tools/libtool compile
 make[3] -C tools/pkg-config compile
 make[3] -C tools/flex compile
 make[3] -C tools/mkimage install
 make[3] -C tools/squashfs4 install
 make[3] -C tools/flex install
 make[3] -C tools/bison compile
 make[3] -C tools/libtool install
 make[3] -C tools/autoconf compile
 make[3] -C tools/autoconf install
 make[3] -C tools/quilt compile
 make[3] -C tools/quilt install
 make[3] -C tools/pkg-config install
 make[3] -C tools/automake compile
 make[3] -C tools/automake install
 make[3] -C tools/e2fsprogs compile
 make[3] -C tools/mm-macros compile
 make[3] -C tools/xorg-macros compile
 make[3] -C tools/xfce-macros compile
 make[3] -C tools/missing-macros compile
 make[3] -C tools/mm-macros install
 make[3] -C tools/xorg-macros install
 make[3] -C tools/xfce-macros install
 make[3] -C tools/missing-macros install
 make[3] -C tools/bison install
 make[3] -C tools/e2fsprogs install
 make[3] -C tools/mtd-utils compile
 make[3] -C tools/mtd-utils install
 make[3] -C tools/cmake install
 make[2] toolchain/install
 make[3] -C toolchain/wrapper prepare
 make[3] -C toolchain/wrapper compile
 make[3] -C toolchain/wrapper install
 make[2] target/compile
 make[3] -C target/linux compile
make -r world: build failed. Please re-run make with V=s to see what's going on
make: *** [world] Error 1
jigsaw@rampage:~/Desktop/dsl-2888a$ 
jigsaw@rampage:~/Desktop/dsl-2888a$ make V=s
ERROR: please fix package/triphone/Makefile - see logs/package/triphone/dump.txt for details
Collecting package info: done
make[1]: Entering directory `/home/jigsaw/Desktop/dsl-2888a'
make[2]: Entering directory `/home/jigsaw/Desktop/dsl-2888a'
make[3]: Entering directory `/home/jigsaw/Desktop/dsl-2888a/target/linux'
make[4]: Entering directory `/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX'
Copy the default kernel config........
Platform dir:/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX
Platform subdir:/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX
/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX/config-3.14.18
cp -fpR /home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX/config-3.14.18 /home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/.config
touch /home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/.configured
rm -f /home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/vmlinux /home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/System.map
make -C /home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18 HOSTCFLAGS="-O2 -I/home/jigsaw/Desktop/dsl-2888a/staging_dir/host/include -Wall -Wmissing-prototypes -Wstrict-prototypes" KCFLAGS="" CROSS_COMPILE="arm-hsan-linux-uclibcgnueabi-" ARCH="arm" KBUILD_HAVE_NLS=no CONFIG_SHELL="/bin/bash" V='' CC="arm-hsan-linux-uclibcgnueabi-gcc" modules
**/home/jigsaw/Desktop/dsl-2888a/staging_dir/toolchain-arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: 7: exec: /home/jigsaw/Desktop/dsl-2888a/toolchain/external_toolchain/VSPM310_compiler/arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: not found**
make[5]: Entering directory `/home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18'
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  Generating include/generated/mach-types.h
  CC      kernel/bounds.s
/home/jigsaw/Desktop/dsl-2888a/staging_dir/toolchain-arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: 7: exec: /home/jigsaw/Desktop/dsl-2888a/toolchain/external_toolchain/VSPM310_compiler/arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: not found
make[6]: *** [kernel/bounds.s] Error 127
make[5]: *** [prepare0] Error 2
make[5]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18'
make[4]: *** [/home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/.modules] Error 2
make[4]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX'
make[3]: *** [compile] Error 2
make[3]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/target/linux'
make[2]: *** [target/linux/compile] Error 2
make[2]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a'
make[1]: *** [/home/jigsaw/Desktop/dsl-2888a/staging_dir/target-arm-hsan-linux-uclibcgnueabi/stamp/.target_compile] Error 2
make[1]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a'
make: *** [world] Error 2
jigsaw@rampage:~/Desktop/dsl-2888a$

I also tried compiling firmware without any modifications but same error occured. Any suggestions are welcome.
Regards.

the SOC / processor TriDuctor VSPM340 is not supported yet, this requires a whole new kernel target

1 Like

Hi mpratt14,
Thanks for your reply.
GPL code is based on openwrt and target is already here i think.Please check this out:



Toolchain is also included in GPL code:

I can upload whole code to github but you can download on d-link's site if desired.
https://dlink-gpl.s3.amazonaws.com/GPL2000045/dsl-2888a.tar.gz
I don't need recent versions such as 19.07.Barrier braker is already there but can't compile it.
Please guide me.
Regards.

there should be a readme file in the GPL...

also refer to generic building guide


if you want to add the target to openwrt, it will take a lot of work, you can look at commits for example (disregard .patch files for now)

Yes there is readme file like this:

Introduction
This file will show you how to build the DSL-2888A working FW.
The workstation we used to build the image is:
OS Version:Ubuntu 14.04(64-bit version)
OS Kernel Version: 4.8.4
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4   #must intall GCC before comply

The workstation LAB used to build the image is:
Linux Version:Ubuntu 14.04(64-bit version)

Procedure: (~# means command)
Setp1. Check fakeroot command
(Make sure your username have sudo authority.)
~# su your_username (Use the sudo account to install)
~# password: (Input the password)
~# cd
~# cp /tmp/dsl-2888a.tar.gz ./dsl-2888a.tar.gz
~# tar -zxvf dsl-2888a.tar.gz
~# cd dsl-2888a
~# make
You can find image in ./dsl-2888a/bin/VSPM3XX/
The image "DSL-2888A_AU_2.31_V1.1.47ae53-Image-all.bin" is for upgrading firmware via Device Web GUI. You can see the firmware version is "AU_2.31" in Web of "Device Info".

Also another readme file in GPL root folder:

This is the buildsystem for the OpenWrt Linux distribution.

Please use "make menuconfig" to configure your appreciated
configuration for the toolchain and firmware.

You need to have installed gcc, binutils, patch, bzip2, flex,
make, gettext, pkg-config, unzip, libz-dev and libc headers.

Run "./scripts/feeds update" to get the latest package definitions
defined in feeds.conf / feeds.conf.default respectively
and "./scripts/feeds install" to install symlinks into "package/feeds/*".

Use "make menuconfig" to configure your image.

Simply running "make" will build your firmware.
It will download all sources, build the cross-compile toolchain, 
the kernel and all choosen applications.

You can use "scripts/flashing/flash.sh" for remotely updating your embedded
system via tftp.

The OpenWrt system is documented in docs/. You will need a LaTeX distribution
and the tex4ht package to build the documentation. Type "make -C docs/" to build it.

To build your own firmware you need to have access to a Linux, BSD or MacOSX system
(case-sensitive filesystem required). Cygwin will not be supported because of
the lack of case sensitiveness in the file system.


Sunshine!
	Your OpenWrt Project

I installed Ubuntu 14.04(64-bit version) on virturalbox, but when i try to compile it without modifiying code it gives error above:

/home/jigsaw/Desktop/dsl-2888a/staging_dir/toolchain-arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: 7: exec: /home/jigsaw/Desktop/dsl-2888a/toolchain/external_toolchain/VSPM310_compiler/arm-hsan-linux-uclibcgnueabi/bin/arm-hsan-linux-uclibcgnueabi-gcc: not found
make[6]: *** [kernel/bounds.s] Error 127
make[5]: *** [prepare0] Error 2
make[5]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18'
make[4]: *** [/home/jigsaw/Desktop/dsl-2888a/build_dir/linux-VSPM3XX/linux-3.14.18/.modules] Error 2
make[4]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/target/linux/VSPM3XX'
make[3]: *** [compile] Error 2
make[3]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a/target/linux'
make[2]: *** [target/linux/compile] Error 2
make[2]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a'
make[1]: *** [/home/jigsaw/Desktop/dsl-2888a/staging_dir/target-arm-hsan-linux-uclibcgnueabi/stamp/.target_compile] Error 2
make[1]: Leaving directory `/home/jigsaw/Desktop/dsl-2888a'
make: *** [world] Error 2
jigsaw@rampage:~/Desktop/dsl-2888a$

For now, i just want to compile as is, without any modification.No aims for adding target.

you can try getting GCC 4.8.4 installed, and for every other program in the GCC family, match the version by date (late 2015)

you may have to download the source for each and compile that
(in other words, making a toolchain to compile the toolchain)

here is a guide I have used before to do something similar

Hello @whitepawn. Did you have success? Any step forward?
I own a Huawei AR169 router with the same SOC and having an Openwrt ethernet router (no DSL needed) would be cool...

Hi @InvalidOpcode ,

I didn't make any progress sorry.
It will not worth time i guess and nobody is actually helping from both d-link or huawei side.I requested source code from huawei and they just ignored me :grin:

Hi,
Just got DSL-2888A and to my surprise it have OpenWRT as the stock firmware! i have ssh root login, here are some info, let me know if you need something specific:

# cat /etc/openwrt_release  
DISTRIB_ID="OpenWrt"
DISTRIB_RELEASE="Bleeding Edge"
DISTRIB_REVISION="unknown"
DISTRIB_CODENAME="barrier_breaker"
DISTRIB_TARGET="VSPM3XX/generic"
DISTRIB_DESCRIPTION="OpenWrt Barrier Breaker unknown"
# cat /proc/cpuinfo 
processor       : 0
model name      : ARMv7 Processor rev 1 (v7l)
Features        : swp half thumb fastmult edsp tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x4
CPU part        : 0xc09
CPU revision    : 1

processor       : 1
model name      : ARMv7 Processor rev 1 (v7l)
Features        : swp half thumb fastmult edsp tls 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x4
CPU part        : 0xc09
CPU revision    : 1

Hardware        : TRI VSPM3XX
Revision        : 0000
Serial          : 0000000000000000

No, it doesn't - its underlying vendor SDK merely used an ancient OpenWrt snapshot as a base for their userland, kernel, drivers and everything important is still proprietary. Sadly this won't get you any closer to OpenWrt support either, as the vendor never bothered to submit their changes to OpenWrt.

ok, that make sense.
I tried to build from dlink's source using ubuntu 14.04 and it stop after a while at this error:

In file included from /home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11/libgcc/../gcc/libgcc2.c:29:0:
/home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11/libgcc/../gcc/tsystem.h:87:19: fatal error: stdio.h: No such file or directory
compilation terminated.
make[6]: *** [_muldi3.o] Error 1
make[6]: Leaving directory `/home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11-final/arm-hsan-linux-uclibcgnueabi/libgcc'
make[5]: *** [all-target-libgcc] Error 2
make[5]: Leaving directory `/home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11-final'
make[4]: *** [all] Error 2
make[4]: Leaving directory `/home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11-final'
make[3]: *** [/home/ubuntu/dsl-2888a/build_dir/toolchain-arm-hsan-linux-uclibcgnueabi/gcc-linaro-4.6-2012.11-final/.built] Error 2
make[3]: Leaving directory `/home/ubuntu/dsl-2888a/toolchain/gcc/final'
make[2]: *** [toolchain/gcc/final/compile] Error 2
make[2]: Leaving directory `/home/ubuntu/dsl-2888a'
make[1]: *** [/home/ubuntu/dsl-2888a/staging_dir/toolchain-arm-hsan-linux-uclibcgnueabi/stamp/.toolchain_install] Error 2
make[1]: Leaving directory `/home/ubuntu/dsl-2888a'

I'm not sure what they mean by this in the readme file, should i setup fakeroot somehow? or just run it as root?

Setp1. Check fakeroot command
(Make sure your username have sudo authority.)

This how far it goes until show that error:

~/dsl-2888a$ make 
ERROR: please fix package/triphone/Makefile - see logs/package/triphone/dump.txt for details
Collecting package info: done
WARNING: your configuration is out of sync. Please run make menuconfig, oldconfig or defconfig!
 make[1] world
 make[2] tools/install
 make[3] -C tools/m4 compile
 make[3] -C tools/m4 install
 make[3] -C tools/sed compile
 make[3] -C tools/sed install
 make[3] -C tools/libtool compile
 make[3] -C tools/libtool install
 make[3] -C tools/autoconf compile
 make[3] -C tools/autoconf install
 make[3] -C tools/pkg-config compile
 make[3] -C tools/pkg-config install
 make[3] -C tools/xz compile
 make[3] -C tools/xz install
 make[3] -C tools/automake compile
 make[3] -C tools/automake install
 make[3] -C tools/flex compile
 make[3] -C tools/flex install
 make[3] -C tools/bison compile
 make[3] -C tools/bison install
 make[3] -C tools/mklibs compile
 make[3] -C tools/mklibs install
 make[3] -C tools/sstrip compile
 make[3] -C tools/sstrip install
 make[3] -C tools/ipkg-utils compile
 make[3] -C tools/ipkg-utils install
 make[3] -C tools/genext2fs compile
 make[3] -C tools/genext2fs install
 make[3] -C tools/e2fsprogs compile
 make[3] -C tools/e2fsprogs install
 make[3] -C tools/mtd-utils compile
 make[3] -C tools/mtd-utils install
 make[3] -C tools/mkimage compile
 make[3] -C tools/mkimage install
 make[3] -C tools/firmware-utils compile
 make[3] -C tools/firmware-utils install
 make[3] -C tools/patch-image compile
 make[3] -C tools/patch-image install
 make[3] -C tools/quilt compile
 make[3] -C tools/quilt install
 make[3] -C tools/yaffs2 compile
 make[3] -C tools/yaffs2 install
 make[3] -C tools/flock compile
 make[3] -C tools/flock install
 make[3] -C tools/padjffs2 compile
 make[3] -C tools/padjffs2 install
 make[3] -C tools/mm-macros compile
 make[3] -C tools/mm-macros install
 make[3] -C tools/xorg-macros compile
 make[3] -C tools/xorg-macros install
 make[3] -C tools/xfce-macros compile
 make[3] -C tools/xfce-macros install
 make[3] -C tools/missing-macros compile
 make[3] -C tools/missing-macros install
 make[3] -C tools/cmake compile
 make[3] -C tools/cmake install
 make[3] -C tools/scons compile
 make[3] -C tools/scons install
 make[3] -C tools/lzma compile
 make[3] -C tools/lzma install
 make[3] -C tools/squashfs4 compile
 make[3] -C tools/squashfs4 install
 make[3] -C tools/vspmxxx-mkimage compile
 make[3] -C tools/vspmxxx-mkimage install
 make[3] -C tools/default2nvram compile
 make[3] -C tools/default2nvram install
 make[2] toolchain/install
 make[3] -C toolchain/kernel-headers prepare
 make[3] -C toolchain/kernel-headers compile
 make[3] -C toolchain/kernel-headers install
 make[3] -C toolchain/binutils prepare
 make[3] -C toolchain/binutils compile
 make[3] -C toolchain/binutils install
 make[3] -C toolchain/gcc/minimal prepare
 make[3] -C toolchain/gcc/minimal compile
 make[3] -C toolchain/gcc/minimal install
 make[3] -C toolchain/gcc/initial prepare
 make[3] -C toolchain/gcc/initial compile
 make[3] -C toolchain/gcc/initial install
 make[3] -C toolchain/gcc/final prepare
 make[3] -C toolchain/gcc/final compile
make -r world: build failed. Please re-run make with V=s to see what's going on
make: *** [world] Error 1

@whitepawn Did you reach this far?

@whitepawn Did you make any progress?

@huykjk11
As far as i remember i reached this far but toolchain ( arm-hsan-linux-uclibcgnueabi ) has issues i don't remember exactly.
I have found another toolchain from github but no luck so i giveup.You can try with make -j 4 V=s to make more information.
I believe you will see toolchain error.
If you find more information please share.

@whitepawn I do have new information!
I managed to build this image and flash it to my router but, at boot process kernel panic and restart the device, fortunately you can flash OEM image using CFE web recovery, I've tried couple of things but no luck with kernel panic, so i give up and revert to original image. This is built on a very old openwrt branch (12) with heavy modifications i don't see any benift from pursuing this, also i no longer use DSL, now using FTTH which come with a much better router (seem price).

To build the image you have to enable building/using included toolchain, doesn't seem to be enabled by default, there is also a typo in one of the Makefiles you have to remove am extra parenthese ")", you also have to update feeds urls, i can post more details if you need them..

@huykjk11 wow i am impressed i have enabled toolchain but no luck again.Could you please more details?

hi, sorry for replying this old topic... but i have a similar situation and find a little difficult to get help

i have a similar router, a NuCom NC-WR644GACV (rebranded ds244wtv-mb ?) with also a Triductor VSPM340 cpu ... you can see it in this post OpenWrt support for NuCom NC-WR644GACV

i see until i am not so skilled like you, i am willing to do some tests with the hardware to get more info, maybe we are in luck

Please note that engineering is hardly about luck. At least not only :stuck_out_tongue_winking_eye:.

1 Like

if we work hard, maybe we are in luck :wink: ... if we don't work we won't have luck

i still have hope