Support for Easybox 904 LTE

You can use this branch:

It exist a PR (without speedpatches):


and

And I have an Developing branch too (with speedpatches and splitting into SMP and VPE build):


(uboot inside the separated branch pull/2061: https://github.com/Plonkbong/openwrt/tree/pr002-eb904x_uboot)

too add this inside the original openwrt you can use this (only a snipped not a complett script):

...

git branch eb904x

git fetch origin pull/2061/head:pr002-eb904x_uboot
git rebase eb904x pr002-eb904x_uboot
git checkout eb904x
git merge pr002-eb904x_uboot

branch=eb904x-next1
git remote add plonkb https://github.com/Plonkbong/openwrt.git
git fetch plonkb $branch:$branch
git rebase eb904x $branch
git checkout eb904x
git merge $branch
	
...

It is usefull to use the original config from snapshot but eanable "with graphic support"

#######

At the moment i recomment my developing branch https://github.com/Plonkbong/openwrt/commits/eb904x-next1 that are compatible with the openwrt master branch
+ the uboot
+ fixing missed parameter at kernel config when graphic suport are enable https://github.com/openwrt/openwrt/pull/1885
Use the default config from the snapshot download directory, but enable "Build with graphic support"

The WLAN, touchpad and screen driver are here here:


(you can build it with the sourcebuild or SDK)

The packages for the Screen lcd4linux etc are here:


I recomment to build it with the SDK because a lot of dependies.

I have build (but not finaly tested) on 10.12.2019 in several steps:

Easybox 904xDSL Openwrt build in 4 steps it contain the following:

  • compile Openwrt: The result are in the "./1_build-from-src" directory
  • build additional drivers and minpkgset with the SDK: "./2_build-from-sdk"
  • create a reposatory, copy the downloaded, the new builded, and the package builded with SDK into a repodir and give them an on key: "./3_repo"
  • create my own images with the imagebuilder: "./4_image"
    So standart images and images for all other xrx200 devices are in /1_build-from-src
    Images with all driverers for eb904x are in ./4_image

openwrt_build_xrx200_snapshot-x86_64-20191210.225646-b2.tar.xz
ca 1,6GB in 200MB parts / download first and them use this command to put them together: cat openwrt_build_xrx200_snapshot-x86_64-20191210.225646-b2.tar.xz.part* > openwrt_build_xrx200_snapshot-x86_64-20191210.225646-b2.tar.xz
SHA256 = 88dd91b2cdc76cc997dbb76e75baa303ad9de14f844efb745a953b4867c3db30

The download of all snapshot packages and preparation + build script are here:
openwrt_download_xrx200_snapshot-20191210.225646.tar.xz
ca 4GB in 200MB parts / download first and them use this command to put them together: cat openwrt_download_xrx200_snapshot-20191210.225646.tar.xz.part* > openwrt_download_xrx200_snapshot-20191210.225646.tar.xz
SHA256 = 35467c655b1ef8f907944adca21c9bb1c14289b4f51e237c4ff7c8a2a0936373

Installation general procedure:

The stock and the custom bootloader u-boot have a recovery mode. It is the same on both.
The recoverymode does always:

  • The recovery image called "fullimage.img" it is the same like *-initramfs-kernel.bin image. It is a kernel + ramdisk
  • if you press the resetbutton 10sek short after start, the recoverymode goes on.
  • The router load the fullimage.img via tftp from a server with the IP: 192.168.2.100. The router have the 192.168.2.1
  • the fullimage.img will written on /dev/mtd2. It is the Kernel partition where the router start from.
  • note the size of fullimage.img must be less than 5,242,880 Bytes, because this is the size of mtd2 patition
  • If you now reset the router by switching the poweron/off-switch the router will start from /dev/mtd2 where is now the kernel+ramdisk
  • After new starting from ramdisk you can or better should install the customer uboot with no password and the *-squashfs-sysupgrade.bin image

Normally it exist a lot of better manuells but will start here to write my own:

Installation of the recoverymode detailed:

(here i use the VPE variant with telefon supoort but no SMP)

  • copy the recovery image to the tftp directory and rename it to fullimage.img
    my recovery image inside the openwrt_build directory called: ./1_build-from-src/bin-fromsrc/targets/lantiq/xrx200/openwrt-lantiq-xrx200-arcadyan_vgv952cjw33-e-ir-vpe-initramfs-kernel.bin
    (note the size of fullimage.img must be less than 5,242,880 Bytes)
mkdir /tmp/tftp
cp -vf ./1_build-from-src/bin-fromsrc/targets/lantiq/xrx200/openwrt-lantiq-xrx200-arcadyan_vgv952cjw33-e-ir-vpe-initramfs-kernel.bin /tmp/tftp/fullimage.img
  • connect the Lan interface of your PC with the router
    The PC (tftp server) must have the IP: 192.168.2.100
    The Router have the IP: 192.168.2.1
    for this reason disable the Network autoconfig and set up
ifconfig eth0 192.168.2.100 up
  • start the tftp server on your PC:
    I use dnsmasq this should exist in the most distros:
dnsmasq -d -p 0 --enable-tftp=eth0 --tftp-root=/tmp/tftp &
  • starting the recoverymode of your router:
    Poweron the Router and pressing the resetbutton with a pen or a skrew 10sec long
    The fullimage will upload now to the router and install on mtd2
    After finish (look at the tftscreen) you can power-on/off

  • new start from Openwrt ramdisk (fullimage):
    The router Now starts from a Openwrt Ramdisk image.
    You can now replace the original password protectec u-boot.
    And
    you can install the *-squashfs-sysupgrade.bin.

5 Likes

now this is a beautiful late christmas present :clap: excellent! thank you.

1 Like

Dear Forum,
I've been using this software for quite a time now on 4 devices (904 xDSL). Thanks to all for your effort you put into this great project!
2 or 3 month ago, all my devices failed to boot so I reinstalled them using the fullimage method. Everything was fine again.
Unfortunately, one of my devices refuses to boot again and now, I'm not even able to reinstall it via the fullimage method. The images gets downloaded and flashed, after reboot it simply shows the "this my take a while" screen forever.
Is this a known issue? I tried different fullimage.img on two devices. Same problem :frowning:

I'm not much into software development anymore, my skills are more sysadmin related.

Maybe I'll try to get a console connection to get at lest some output ...

Any other hints?

Thank you for any help :slight_smile:

Dear PHILzstift,

please clear the cache of the Browser and try http://192.168.1.1 (not https://) after flashing
fullimage.img.
Here will you found working fullimage.img:

https://app.box.com/s/tjeobifjb8ohj90m5k2u7g1efgq8308y

Quallenauge said : " Attention for upgrading an older Image

If you want to upgrade an older image ( <2018-03-11 ) with the current one, please backup the data and perform an recovery via fullimage.img method. If not, you end up in a bootloop, which then also has to be resolved via the fullimage.img method. "

Good luck

Oh my god!!!
Sorry for this ... I was trying to connect to 192.168.2.1 instead of .1.1

Thank you very much for your help!!!

Hello,
how can I install OpenWrt on LTE version? Where can I download the xxx-factory.bin image? And is the software from this forum compatible with LTE version? Because there is too much spoken abou DSL version.
Thanks

Sorry the name 904xDSL is a littlebit misleading, the reason it is the continuation from the old thread inside the old forum.
For the LTE variant exist no currend build or source, It exist a opened stock-image and the gpl-sourcecode from Arcadyan (based on openwrt 10.x).
Only for the xDSL exist a PR for building an working image.

Hey @Plonk34 and @kovz ! Thank you very much for your big efforts you put into this big project! I know there are still problems with the dsl-driver file which we still have to extract from an existing FritzBox7490-Image. I have some qustions about the actual situation.

  1. Would anyone of you or of course others build a new Image with openwrt 19.07 and offer it to test it?
  2. Is there a possibility that the EB904 will be supportet offically soon or in 19.07? 3. What are your expierence with wifi performance and did anyone try to use it in "Mesh-Networks" or with AP+STA at the same time?

Thanks again a lot that all of you developed for such a long time already!

My initial hope was that the PR for this device came into Openwrt upstream but, i fear that will be never happens.
I don't want to promise anything, but it should be simple possible, because 19.07 is kernel 4.14 , if you look inside the developing history you will see that we switch from 4.14 to 4.19.
But i really all working must be tested. At the moment i have no time but when i have time i will try it.
I fear the switching to 19.07 will the only solution to provide an current openwrt on this device for a long time, because when Kernel 5.4 is coming it changes so much that i have no idea if that possible to support.

why i only get bootloop's? tryed the last two one from here
old images like the from the wiki is working.
is there any location i can find a new working image?

New image [VPE] with kernel 4.19.131.

=> VPE version with Asterisk, (click on the button "Pobierz")

Edit:
New image [VPE] with kernel 4.19.138.

=> VPE version with Asterisk, (click on the button "Pobierz")

1 Like

Hi, are you still working on the LTE version? Or should I lose hope to have OpenWrt on my router?

Plonk34, Thanks for your manual, it helped me a lot. I would like to feedback a single step that took me a while to figure out and would probably help others a lot:
When the device restarts after flashing fullimage.img, one has to reconnect via
ifconfig eth0 192.168.2.1 up. Otherwise the browser wouldn't show the webinterface at 192.168.1.1. Also a note that it is okay that the display appears to be frozen in the startup message would be helpful. At first glance I thought it would be in a bootloop although it wasn't.

Now I have a working OpenWRT using Zuzia's image two posts above. From here I would kindly ask for some instructions on setting up WiFi. I searched through this whole thread and it is difficult to tell the current status. Are the instructions in https://github.com/Quallenauge/ralink_inic/blob/feature/lede_integration/Readme still valid?
My main questions are:

  1. Do I have to install the drivers (https://github.com/Plonkbong/openwrt-feeds-easybox904-driver) or are they built into the image? How would I install them, i.e. where to put the files?
  2. How does etc/config/wireless has to look like, especially the wifi-device section, e.g. what type should I specify? Ideally, could someone share a working wireless config file?

Thanks in advance!

The trick about the wireless is figuring out the device names and realizing that the encryption has to be "psk2+aes" in order for anything useful to happen. The following worked for me, but I'm still on Quallenauge's image from August:

config wifi-device 'wl000'
        option type 'ralink'
        option channel '11'

config wifi-iface 'default_wl000'
        option device 'wl000'
        option mode 'ap'
        option ssid 'xxxxx'
        option encryption 'psk2+aes'
        option key 'xxxxxxxxxxx'

config wifi-device 'wl010'
        option type 'ralink'
        option channel '11'

config wifi-iface 'default_wl010'
        option device 'wl010'
        option mode 'ap'
        option ssid 'xxxxx'
        option encryption 'psk2+aes'
        option key 'xxxxxxxxxxx'

So, I would like to build a custom image with some extra kernel modules myself. My problem is that there are too many options and patches and branches around for me to figure this out by trial and error. I already tried Quallenauge's fork. It took some hours. After some struggle I figured that the "./scripts/feeds update && ./scripts/feeds install -a" was probably fatal as that pulls in all kinds of incompatible new stuff from openwrt and breaks the build afterwards.

Can we please get a more concise description on how to build this without repeatedly shooting yourself in the foot? This may be a stupid question. I'm also new to OpenWRT. Feel free to point me somewhere else.

Is https://github.com/openwrt/openwrt/pull/2531 what I am looking for? The discussion there is quite intriguing ...

Thanks for the wifi config! I also found https://forum.archive.openwrt.org/viewtopic.php?id=44676&p=13 (Post #308) which points to etc/network/wifi as config file (like the wiki page it then occurred to me). Now I'm not sure, whether to put it into that file or into etc/config/wireless. Initially, none of these files exists in the image I use. If I put your config into etc/config/wireless I get:

root@OpenWrt:~# /etc/init.d/network restart
/etc/rc.common: /lib/functions/procd.sh: line 48: flock: not found
/etc/rc.common: line 48: flock: not found
wl000(ralink): Interface type not supported
wl010(ralink): Interface type not supported
root@OpenWrt:~# 

with etc/network/wifi I get the same without the last two lines. wifi up behaves the same way. To me it looks like the image does not include the wifi drivers.

I further noticed that the image does not permit persistence of any changes after reboot, not even the root password. I somewhere found the hint one should call firstboot but that results in
MTD partition 'rootfs_data' not found
which points to something else being wrong (with the image?). I will now try some other image.

I also considered building my own, but information on this topic is so scattered and the toolchain is so complex that it scared me away for now. Plonk's manual is a good start, but there is still much to figure out to get started. Kind of an authorative fork with apparent current status would be nice to have. And readme with complete build instructions.

Can we please get a more concise description on how to build this without repeatedly shooting yourself in the foot?

Please drop me a note if you find it!

@Stewori thanks i will change my descricption

The fullimage.img is only the ramdisk image for preparing to install the *-squashfs-sysupgrade.bin image
(in the best way via command line)

sysupgrade -n -v /tmp/openwrt-lantiq-xrx200-arcadyan_vgv952cjw33-e-ir-vpe-squashfs-sysupgrade.bin

A fulli working image with all drivers and all required userspace programms are in the following directory:
./4_image/arcadyan_vgv952cjw33-e-ir-vpe-TeleModemRouterStd-demo/openwrt-lantiq-xrx200-arcadyan_vgv952cjw33-e-ir-vpe-squashfs-sysupgrade.bin

The wifi should be initialized via: /etc/init.d/rt3883 boot
The wifi is a own SoC and communicate via LAN (LAN 3 and VLAN 66 / 71 )

my working /etc/config/network:

config globals 'globals'
#       option ula_prefix 'fd36:68fe:1571::/48'                                                                                                                                                                    
                                                                                                                                                                                                                   
# Port on Easybox 904x switch1: [DSL][ISDN][ISDN][0][1][2][3] (Power)                                                                                                                                              
                                                                                                                                                                                                                   
config switch                                                                                                                                                                                                      
        option name 'switch0'                                                                                                                                                                                      
        option reset '1'                                                                                                                                                                                           
        option enable_vlan '1'                                                                                                                                                                                     
                                                                                                                                                                                                                   
config switch                                                                                                                                                                                                      
        option name 'switch1'                                                                                                                                                                                      
        option reset '1'                                                                                                                                                                                           
        option enable_vlan '1'                                                                                                                                                                                     


###################################################################


## hauptswitch switch 1
config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 6t'

## DSL port + wan on eth0.2
config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '4 6t'

## wlan inic
config switch_vlan
        option device 'switch0'
        option vlan '3'
        option vid '3'
        option fid '3'
        option ports '5 6t'

## wlan normal
config switch_vlan
        option device 'switch0'
        option vlan '4'
        option vid '66'
        option fid '4'
        option ports '5t 6t'

## wlan guest
config switch_vlan
        option device 'switch0'
        option vlan '5'
        option vid '71'
        option fid '5'
        option ports '5t 6t'

##########################################################


## hauptswitch switch 1 ports
config switch_vlan
        option device 'switch1'
        option vlan '1'
        option ports '0 1 2 3 6t'

##########################################################

config device 'lan_dev'
        option name 'eth0.1'
        option macaddr '02:81:0f:3e:73:02'

config device 'ethwan_dev'
        option name 'eth0.2'
        option macaddr '02:81:0f:3e:73:01'

config device 'dsl_dev'
        option name 'dsl0'

config device 'wlan_dev'
        option name 'eth0.66'
        option macaddr '02:81:0f:3e:73:03'

## guest wlan
# config device 'guest_wlan_dev'
#        option name 'eth0.71'
#        option macaddr '02:81:0f:3e:73:04'

###########################################################

config atm-bridge 'atm'
        option vpi '1'
        option vci '32'
        option encaps 'llc'
        option payload 'bridged'
        option nameprefix 'dsl'

config dsl 'dsl'
        option annex 'b'
        option tone 'av'
        option xfer_mode 'ptm'
        option line_mode 'vdsl'
        # option firmware '/lib/firmware/FB7360.111.06.30/dsp_vr9/vr9-B-dsl.bin'

#############################################################

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'inic'
        option proto 'none'
        option ifname 'eth0.3'

config interface 'lan'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.1.1'
        list ifname 'eth0.1'
        list ifname 'eth0.66'

#################################################################


config interface 'wan_dsl'
        option ifname 'dsl0'
        option proto 'pppoe'
        option username 'USERNAME'
        option password 'PASSWORD'
        option ipv6 '1'

config interface 'wan6_dsl'
        option ifname '@wan_dsl'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'

config interface 'wan_eth'
        option proto 'dhcp'
        option ifname 'eth0.2'
        option auto '1'

config interface 'wan6_eth'
        option ifname '@wan_eth'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'
        option auto '1'

For a build of the PR: 2531

#!/bin/sh

# prepare build look i these nessasary
git config --global user.email "you@example.com"; git config --global user.name "Your Name" # for merging into your local branch
cd /opt/build # your build directory
rm -rf ./openwrt # delete openwrt directory if exist (not nessasary if not exist)



# clone openwrt source and create a new branch called: eb904x
git clone https://github.com/openwrt/openwrt.git
cd openwrt
git checkout -b eb904x


# install main pullrequest in branch eb904x 
git fetch origin pull/2531/head:pr001-eb904x
git rebase eb904x pr001-eb904x
git checkout eb904x
git merge pr001-eb904x


# install uboot the uboot (closed pull/2061/head)
git remote add plonkb https://github.com/Plonkbong/openwrt.git
git fetch plonkb pr002-eb904x_uboot:pr002-eb904x_uboot
git rebase eb904x pr002-eb904x_uboot
git checkout eb904x
git merge pr002-eb904x_uboot


# add missed some extra kernelconfigparameter for videosupport
# without it the build stops and ask for the parameter
git fetch origin pull/1885/head:pullreq
git rebase eb904x pullreq
git checkout eb904x
git merge pullreq


cp -av ./target/linux/lantiq/files/* ./target/linux/lantiq/files-4.19
rm -rv ./target/linux/lantiq/files
git add -A ./target/linux/lantiq
git commit -s -m "change from files to files-4.19

After add experimental support for 5.4 the name of files directory was
changed to files-4.19
"

wget -O ./.config https://downloads.openwrt.org/snapshots/targets/lantiq/xrx200/config.buildinfo
# for later Display support: 
#	Global build settings  ---> / [*] Show packages that require graphics support (local or remote)
#    Boot Loaders  --->
# [*] u-boot-easybox904........................ U-Boot for Arcadyan VGV952CJW33 (NEW)  ----
make menuconfig
make -j8 V=1 IGNORE_ERRORS=1 || make V=s IGNORE_ERRORS=1

exit 0

It is possible install add all required driver, but it is possible to build them later via SDK

cp ./feeds.conf.default ./feeds.conf
echo "src-git eb904x_driver https://github.com/Plonkbong/openwrt-feeds-easybox904-driver.git" >> ./feeds.conf

./scripts/feeds update -a

./scripts/feeds install -p eb904x_driver fbtft
./scripts/feeds install -p eb904x_driver ralink_bin
./scripts/feeds install -p eb904x_driver ralink_inic
./scripts/feeds install -p eb904x_driver touchpad

the package from here https://github.com/Plonkbong/openwrt-feeds-easybox904-minpkgset.git
should be install via SDK because the need a lot of depencies

1 Like

Do you mean this place? https://app.box.com/s/hvqg535dnubt4r2ontpmtodpvt6ydf00 - It indeed has a config for each of the snapshots.

The snapshot I am running does look like it has graphics support, though. At least it shows something on the display. What exactly am I supposed to enable?

Oh, thanks @Plonk34, I didn't see your post when I wrote mine. This resolves some of my confusion. I will try ...