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
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 ?
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.
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.
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.
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.
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 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:
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
@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.
@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.
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.
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.
I have never used luci no idea if it works.
Did you mean "at the moment '00' and signal power is 0" in luci
Modifie the /etc/config/wireless via SSH and reboot the wifi via: /etc/init.d/rt3883 boot
see the /etc/init.d/rt3883 for single commands.
Some values can be change with the old iwconfig and iwpriv commands. @kovs should correct me, but he background are it based on a very old driver time before using the default nl80211 connection of the linuxkernel.
yes it is normal flash_eraseall do not exist anymore.
use:
and
software flow offloading
brings 88Mbit/s from 94Mbit/s VDSL speed. (no SMP support, i use the FXS ports)
At the moment it is the only solution for VVDSL (up to profile 30a) and Telefon support i can not see that there are somthing change in the next future.
An other thing are these devices second hand are really cheap in Germany.
I do it long time too but i more and more understand why openwrt official support only wifi and ethernet.
Every time when i make an build somthing else does not correct work
At the moment the biggest problem are SQM (using the tc command) in combination with the Wifi driver reboot the devices.
(see here: SQM reboot my Router (Easybox 904xDSL))
@Plonk34 thanks for your information about the rt3884 driver.
What I don't understand is on the device is an Openwrt Backfire previous version originally and it worked quite OK, why is it than so difficult with newer versions?
@all
The kernelversion for the lantiq devices was changed from 4.14.x to 4.19.x
I modifie the pullrequest for it. (It was was simple the most kernelpatches can be leave)
I do only a short test and the Devices works in general.
The bad new is that the wifi driver does not work anymore.
First building is not possible because init_timer(..) function does not exist in 4.19
I replace by setup_timer(..)