Support for Easybox 904 LTE

Oh, right, I remember now. That's a real bummer, yes.

Not only annoying, unfortunately. In my tests not only did it reboot randomly, it broke the box requiring a reflash. That renders the thing effectively unusuable for anything beyond experiments. :frowning:

Which is really interesting. This way the box has restarted before the "reset" functionality kicks in. And this is really early - it should also work in recovery.


Sometimes I saw that the fw_config (which holds information about the uboot configuration location) wasn't right. So I added a workaround for that.

echo "fw_config is generated now"
/bin/sh /etc/uci-defaults/30_uboot-envtools

When you restart your box, can you please perform a

root@LEDE:~# fw_printenv bootnum
bootnum=1

and verify if it behaves like on my site ?

thanks i have fixed.

The reason are: I am not an git expert and i want a split into 2 parts one for the basics and one for the uboot.
For me i like to have an simple patch where i can exact see the what is going on.
In past i try to find out the relevant commits, cherry-pick them merge to openwrt but it was to complex and do not really work.
So i agree with you but i can not do it.

1 Like

How to build image from this link https://github.com/Quallenauge/Easybox-904-XDSL?
I follow this Build Instructions:
git clone https://github.com/Quallenauge/Easybox-904-XDSL.git Easybox-904-XDSL cd Easybox-904-XDSL ./scripts/feeds update && ./scripts/feeds install -a cp vr9_default.config .config make oldconfig make V=s

But I can't build image. I got error always:

make[2]: *** [package/feeds/packages/bash/compile] Error 2
make[2]: Leaving directory '/Openwrt/Easybox-904-XDSL-master-lede-plonk/Easybox-904-XDSL-master-lede'
package/Makefile:103: recipe for target '/Openwrt/Easybox-904-XDSL-master-lede-plonk/Easybox-904-XDSL-master-lede/staging_dir/target-mips_24kc_musl/stamp/.package_compile' failed
make[1]: *** [/Openwrt/Easybox-904-XDSL-master-lede-plonk/Easybox-904-XDSL-master-lede/staging_dir/target-mips_24kc_musl/stamp/.package_compile] Error 2
make[1]: Leaving directory '/Openwrt/Easybox-904-XDSL-master-lede-plonk/Easybox-904-XDSL-master-lede'
/Openwrt/Easybox-904-XDSL-master-lede-plonk/Easybox-904-XDSL-master-lede/include/toplevel.mk:216: recipe for target 'world' failed
make: *** [world] Error 2

How to solve this error?

About: "reboots without console output"
Can i happen that the NAND-flash/UBI-FS do not correct work ?

I have month before strange errors like in some config files only dump characters, but on the tar.xz root they are intact, and other error messages that looks for reason NAND-flash.
Now i have build an "full working image" again and i get a bootloop Reason:
My /etc/init.d/asterisk make some chmod and chown commands.
I find out if i try to chmod a bigger file the Router hangs until the moment where the watchdog reboots.

A question are is this an generel kernel problem, but in combination with NAND UBI Lantiq f2fs USB-Storage.
Or is this a special Device problem (or a special problem only on my devide). And is this a different problem from the "reboots without any output" describe in post before

My next problem are strace make always an segment fault (It sucks so much)

Any suggestions how can i find out was going wrong ?

is there a connection beetween:

I do some tests and it looks that the router hangs every time when i try to change bigger files that exist from the beginnig, but only on Firmwares with Telefonsupport.
It shows no error logs and it hangs up to the time where the watchdog restart the router (i try 60s timeout too but it does not help).
I try it with and without my patch, i fear this problem exist since months.

It will be nice if somewhere can confirm it.
because it is possible only my Router or only this Model or all Lantiq router with NAND and Telephon support or whatever.
And i am not 100% shure if it sealable because i get confused easily when i have reinstall so much times.

Did somewhere know how can i enable the pr_debug(..) messages inside the kernelcode.
It stands here: https://www.kernel.org/doc/html/v4.11/admin-guide/dynamic-debug-howto.html
But i do not understand or better how does it concret works on openwrt ?

Here is the complete Image and reposatory:
But note the sysupgrade image brings the router to a bootloop, but with the extra kernel image is it possible to start rootfs from USB-stick.

Images:
eb904x-owrt-ss20190311-214704-img.tar.xz
Reposatory
repo_root-ss20190311-214704.tar.xz
put the following unpacked archives to ./repo_owrt/ss20190311-214704r0/packages/mips_24kc/*
base-ss20190311-214704.tar.xz
eb904-ss20190311-214704.tar.xz
eb904x-owrt-ss20190311-214704-img.tar.xz
fbtft_eb904-ss20190311-214704.tar.xz
luci-ss20190311-214704.tar.xz
packages-ss20190311-214704.tar.xz
raspberry-ss20190311-214704.tar.xz
routing-ss20190311-214704.tar.xz
telephony-ss20190311-214704.tar.xz
SHA 256 sums:
71705c616c523e97cf6d1b7abea465f9eb82a0f9b260f34e7260c83a4ba63c59 ./luci-ss20190311-214704.tar.xz
4a88c1cf55d7ed9d4b3c631787dfa0da46012d35d080d1bdf28ca272c48462fb ./repo_root-ss20190311-214704.tar.xz
8e06e4a7322b38a6f44cf96399101bba061b2761e88e3771d761a13754f59dea ./routing-ss20190311-214704.tar.xz
a0993b9214c3ce1643e6d718c52ca549f0a2e9815eb38d7c64c142d104134cac ./eb904-ss20190311-214704.tar.xz
0e23601229c28775c4834fc84af5ab7f7d6eaae3cb41c61dbdcec6bc558bc88c ./eb904_feedfix-ss20190311-214704.tar.xz
308d270e128048efb7a33d2582c530fa9348bcde207c63bca0c3a7afdf3071aa ./raspberry-ss20190311-214704.tar.xz
5dfd4f6cf8f0f7494090701a97f2e4365abb1cea5d55e702951f98ab39af4d09 ./packages-ss20190311-214704.tar.xz
f8061eff2c8b3e94e92aa919c7aa71f3e33775530cc7e90e70b19466d58c74c9 ./base-ss20190311-214704.tar.xz
523423771041239193db20892479237809d7ba28daa08e583234580e4f66422d ./telephony-ss20190311-214704.tar.xz
f7e3c66743254e3dc89dd54a1a4b0c22a35d1351fa93e5a4b05061e986f72553 ./fbtft_eb904-ss20190311-214704.tar.xz
487ed8f7b8207fb9cd454ecf7d50008f23f4968d3f7e6f48603e3b89c1ffbd6e ./eb904x-owrt-ss20190311-214704-img.tar.xz

1 Like

I can confirm that the NAND-flash does not correct works.

I use a Telefon support build with the addidional bootargs: mem=116M phym=128M vpe1_load_addr=0x87e00000 vpe1_mem=2M maxvpes=1 maxtcs=1 nosmp
The problem are:
If i want to change/modifie some bigger file that exist from beginning then the Router hangs without an end, but normaly the watchdog reboot the router after 30sek.
Examples:
chmod 0777 /lib/libc.so # 602000 KiB Router crashes
chmod 0777 /usr/sbin/pppd # 170528 KiB Router crashes
chmod 0755 /lib/firmware/xcpe_581816_580B11.bin # 898952 KiB Router crashes
chmod 0777 /usr/lib/libiptext.so # 60656 KiB Router crashes not

I found the reason:
It works well without the display-driver, when i install the kernelmodules again the fail happen again.

I was not know that exist a connection between display and flash, but later i read this: https://github.com/Quallenauge/lede-feeds-easybox904/commit/1fea28f8156344a6f7609f3e4becc0b969943d93
But i have not the know how to fix this Error. @Developers please help

Update:
OK the reason looks these commit: https://github.com/Quallenauge/lede-feeds-easybox904/commit/1fea28f8156344a6f7609f3e4becc0b969943d93
because i looks working witout it.
(I test only if /dev/fb0 exist and if i can change bigger files)

Update:
So i have mix the old and the new and it looks that i have fix the NAND-flash blocking on Telphon support use.
( write_reg_nolock(..) for SMP use and the old write_reg(..) for nosmp.
But without knowing what i am doing. The old developer had certainly thought something about it.
It will be cool if he can explain it.
I have put all driver together that missed in Openwrt for this device. (touchpat, wifi, and display)
https://github.com/Plonkbong/openwrt-feeds-easybox904-driver.git

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

Can somewhere explain why devmem needed at wlan driver and how can be removed.
Because when the device are upstream,
i think the images will be build by a the "default" xrx200 device which will build all images (is this correct)
And here no devmem are enable right ?
I thing it is not usefull to have an image that can not be used with the wifidriver.

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

@QAuge i have do an pulrequest for adding Easybox-904xDSL by using the single commits as you say.
I split them into main and uboot

1 Like

Any news ongoing with this situation?

My github account was short time flagged, but now it is public.
PR to openwrt are here: main and uboot
The pullrequests needs reviewer.
In my personal opinium and with my small know how in programming, it is OK.
the https://github.com/Plonkbong/create-openwrt-easybox904x-patches does not work correct / need work

General, all works without ISDN, but i have not test the stability longer 24h.
The default build at the moment is with SMP support, but without Telephon (VMMC) support.
But if the pullrequest will be accepted, it is nessasary to build your own image too, if you want all working drivers.

  • For the display the build must contain: Videosupport and the kmod-fb-tft module
    for this it is usefull to install this PR: https://github.com/openwrt/openwrt/pull/1885 because if not the build stops and need Kernelparameter.
  • For Wifi it need devmem support inside kernel and busybox
    ( can somewhere eplain why ? I guess that values inside the binary FW for the ralink-wifi will be changed in RAM ? )

For building you can use https://github.com/Quallenauge/Easybox-904-XDSL
or the both publish PR main and uboot

For the Wifi, touchpad and display the drivers are here: https://github.com/Plonkbong/openwrt-feeds-easybox904-driver
These Drivers are not in the PR because they need work, but they are working (read this thread about it).

For the more ore less required userspace packages specialy "lcd4linux" use this feed: https://github.com/Plonkbong/openwrt-feeds-easybox904-minpkgset

For telefon support change the bootargs manuelly before build or better use these patches:
main-split-in-SMP-VPE.patch and uboot-split-in-SMP-VPE.patch
These patches split into two images one with SMP and one with Telefon support, the good thing are if you do that, the Imagebuilder contain both variants and you can later after build use them to create an changed image with or witout SMP/Telefon support.

The code for xrx200 devices are not perfect in generell for more speed read here:


and here:

In the last threads you can find kernel patches for speed up, if you use them you must replace the default 4027-* patch by 4027-NET-MIPS-lantiq-support-fixed-link-incl-patch-904.patch
And if you want the 34kc arch instead the default 24kc Arch use this

I have used this diffconfig
note the the bootloader in this config make a higher CPU and RAM speed them normal (CONFIG_UBOOT_CONFIG_VR9_CPU_600M_RAM_300M=y) and it is untested.

for building i use this scripts:
in the first step i make an minimal build from source without extra packages:

#!/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 -r ./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/2060/head:pr001-eb904x
git rebase eb904x pr001-eb904x
git checkout eb904x
git merge pr001-eb904x


# install uboot pullrequest in 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


# 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


# download and install split-into a SMP and VPE version patches
mkdir ./dl
rm -r ./dl; ln -sv /mnt/mapper/sda3/openwrt-source-dl dl # if you collect the whole openwrtsource like me inside /mnt/mapper/sda3/openwrt-source-dl use this line
cd ./dl
wget -O main-split-in-SMP-VPE.patch http://sprunge.us/vD2n7V
wget -O uboot-split-in-SMP-VPE.patch http://sprunge.us/ucLY0J
cd ..
git am < ./dl/main-split-in-SMP-VPE.patch
git am < ./dl/uboot-split-in-SMP-VPE.patch


# download and install patches for increase the ethernet speed
cd ./target/linux/lantiq/patches-4.14
wget -O 0901-add-icu-smp-support.patch 			https://pastebin.com/raw/pePncxSF
wget -O 0902-enable-external-irqs-for-second-vpe.patch 	https://pastebin.com/raw/ESKnmYbd
wget -O 0903-add-icu1-node-for-smp.patch 		https://pastebin.com/raw/0AvX3UF4

wget -O 0904-backport-vanilla-eth-driver.patch 		https://pastebin.com/raw/WYrJGw0e
wget -O 0905-increase-dma-descriptors.patch  		https://pastebin.com/raw/eNFjmidY
wget -O 0906-increase-dma-burst-size.patch 		https://pastebin.com/raw/M5Hei0FT

rm -v 4027-*
wget -O 4027-NET-MIPS-lantiq-support-fixed-link-incl-patch-904.patch http://sprunge.us/EQ5RWn
cd ../../../..


# this patch uses the 34Kc architecture for buildind instead of the defauld and older 24kc (not usefull because the packages are all 24kc)
#cd ./dl
#wget -O xrx200-use-34kc.patch http://sprunge.us/nINdvI
#cd ..
#patch -p1 < ./dl/xrx200-use-34kc.patch



# Change to your device: 
#	Target System = Lantiq / Suptarget = XRX200 / Target Profile = Easybox 904
# for later Display support: 
#	Global build settings  ---> / [*] Select all target specific packages by default
#	Global build settings  ---> / [*] Show packages that require graphics support (local or remote)
# for later Wifi support you need devmem support: 
# 	Global build settings  ---> / Kernel build options  ---> / [*] /dev/mem virtual device support
#	Base system  ---> / <*> busybox / [*] Customize busybox options / Miscellaneous Utilities  ---> / [*] devmem
# enable the easybox bootloader
# 	Boot Loaders  ---> / [*] u-boot-easybox904	
# eanable the SDK and the image builder
#	[*] Build the OpenWrt SDK (NEW)
# 	[*] Build the OpenWrt Image Builder
make menuconfig
make -j8 V=1 IGNORE_ERRORS=1 || make V=s IGNORE_ERRORS=1

I the next step i build the required packages that are not in openwrt for this device, with the SDK:

#!/bin/sh

cd /opt/build # my build directory change if needed

rm -rf ./owrtsdk
tar -xf $(find ./openwrt/bin/targets/lantiq/xrx200/openwrt-sdk-*.tar.xz)
mv -v $(find ./openwrt-sdk-* -type d -maxdepth 0) ./owrtsdk
cd ./owrtsdk
mkdir ./dl
rm -r ./dl; ln -sv /mnt/mapper/sda3/openwrt-source-dl dl # if you collect the whole openwrtsource like me inside /mnt/mapper/sda3/openwrt-source-dl use this line

cat ./feeds.conf.default |  grep -E -v "src-git[[:blank:]]*base.*" > ./feeds.conf

# If you do not have /opt/build/openwrt change it or use this line instead but note it is better to use same openwrt source that you have used for source build. 
#echo "src-git base https://github.com/openwrt/openwrt.git"
echo "src-git base file:///opt/build/openwrt" >> ./feeds.conf

echo "src-git eb904_driver https://github.com/Plonkbong/openwrt-feeds-easybox904-driver.git" >> ./feeds.conf
echo "src-git eb904_pkg    https://github.com/Plonkbong/openwrt-feeds-easybox904-minpkgset.git" >> ./feeds.conf

./scripts/feeds update -a

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

./scripts/feeds install -p eb904_pkg freetype
./scripts/feeds install -p eb904_pkg serdisplib
./scripts/feeds install -p eb904_pkg con2fbmap
./scripts/feeds install -p eb904_pkg lcd4linux-eb904
./scripts/feeds install -p eb904_pkg lcdcontroller

make -j2 IGNORE_ERRORS=1 V=1 || make -j1 IGNORE_ERRORS=1 V=s

The result are here:
eb904x-build_from_source-withspeeduppatch.tar.xz
shasum256 = 3001ac786e87f4fe4df1cd521756415a9569fbe73d4a34ac7b5aadef9f775d0e
eb904x-build_from_sdk.tar.xz
shasum256 = e6ecc24ced5b395e51ab5d39ca66047d4baec2563d4a9d043e325fe25e8f0878

2 Likes

I can explain. On weekend. Currently haven't time.

1 Like

@kovz It will be great to find a solution for the required devmem
If the pullrequest accept, it will not much help because the standart kernel are without devmem and it will be required to make a selfbuild too.

1 Like

@Plonk34 Sorry for this delay.
First of all I have to say, that all this devmem calls just a configuring for internal Ethernet switch MAC_5 port. Basing on previous investigation, there is a description of this setup https://github.com/Quallenauge/ralink_inic/blob/feature/lede_integration/Readme . It sets port 5 of internal switch to RGMII mode with clock 125MHz, 1G full duplex connected to external PHY wth addr 5 on mdio bus. Physically it connected to rt3883 with fake mdio address. Currently x200 ethernet driver support all this settings out of the box with fixed link phy specified as phy. Only one thing didn't exist in the driver - setting PCDU_5. We can find description for this register in original sources here https://github.com/uwehermann/easybox-904-xdsl-firmware/blob/master/linux/linux-2.6.32.32/include/switch_api/ifxmips_sw_reg.h
As we can see this register is responsible for Clock Delay settings. This means, that we have to add additional delay parameters to device tree and handle them in the driver.
May be this description is little bit muddied, please, do not hesitate and ask for more detailed description.

1 Like

Thanks @kovz for your reply,
I have less time too, for this reason i do a short look only,
but i understand that means devmem is not required if i implement the oldcode to the ifxmips_sw_reg.h
Or if it possible the oldcode into to the driver ?
But from where did you know the offset adresses for the values ?

Hallo everyone,
i'm very new to this. But try to setup a good openwrt for my easybox 904 xdsl.
I have 2 problems at the moment after ínstall openwrt / luci using binarys (e.g. https://app.box.com/s/hvqg535dnubt4r2ontpmtodpvt6ydf00/folder/62488052684):
1.) I can't find the "Advanced Settings" tab to setup my country code or something else, to get wifi work (at the moment '00' and signal power is 0)
2.) with the ssh access, i have no command flash_eraseall, just flash_erase. Is this normal? I can use this as well to flash the uboot?
Thank you in advanced,
Mark

On the EB904, Wifi is "external" to the system and a bit of a black box. One can send commands but it won't accept all (documented) commands, and if it does it returns hardly any confirmations or status information. That's probably why LuCI cannot really show its status.

I dabbled with the EB904's Wifi some time ago, so my memory is a bit hazy. But I seem to remember that it doesn't accept all of the commands it should, "country code" being one of them. Also, it seemed like it would accept certain commands only once and never after.

I'm almost sure one could make the LuCI interface show if not the current status then at least the current configuration and allow to modify it, but noone took the time or made the effort to do so yet.

And is there an alternative way, to configure wlan on the eb904?

Or what do you recommend?

I'm also still interested in future development on this device.

What can we do to solve the issues?

Actually I'm still confused how to come to a working Box with VVDSL support, working (fast) wifi and fast switching speed between wan, lan and wifi.

Thanks @Plonk34, @kovz and @QAuge for their investigation and hard work you already put into this devil device.

I would really love to understand these whole problems with so many different devices.

Unfortunately it seems actually an unrealistic dreaming to get one fully working device with OpenWRT.

  • Even my recommended BT Hub 5A has still problems with high throughput in wifi and it's a mess to update via serial always the box.

So I don't know if this whole openwrt world is not slowly dieing because we can't get through the important (performance) doors with any device.

I would love to give more to this community than complaining within the last month, but I unfortunately can't really debug and compile whole images. I can just use the chef online builder and put things together and try out. Also soldering is OK, but when it comes to hardware acceleration implementation things in source code I can't help and it's always a hustle to find any solution for such problems instead of using somehow the original source for it...

In the meantime usually people give up and buy a FritzBox and are happy...

The performance is roughly similar between all VRX2xx devices, aside from the decision of enabling FXS ports (and thereby sacrificing a mips core to them) or retaining SMP support. So if your BT Home Hub 5 Type A isn't fast enough, the Easybox 904 xDSL won't be either (given that it has FXS ports, it will be considerably slower (55-60 MBit/s at most) - and its WLAN isn't as good as on the BTHub5 either). With the advent of super vectoring (profile 35b), the days of VRX2xx devices are numbered anyways (GRX3xx/ GRX550/ GRX750, which would support super vectoring, aren't supported by OpenWrt yet).

Unfortunately there is a big problem with drivers. I have found inic driver absolutely spontaneous! There is no datasheet for lantiq IC and most important drivers is closed. Currently I'm trying to bring up LTE version. It looks more simple than xDSL version, but still has a lot of problems. And both versions is outdated due to luck of WiFi ac standard support.

Of course, you can edit the /etc/config/wireless config file directly through the shell.

Somebody would probably have a deeper look why LuCI doesn't pick up on the settings. I reckon it's a minor thing why it currently fails to do so. As for the fact that it doesn't display the current status, I'm afraid that will not happen unless someone reverse engineers what the original firmware uses to do it. I distinctly remember that with the current means I couldn't get any status information no matter what I tried.