Hi I'm trying to update busybox to v1.26.0.
I just build an firmware r2672-9998bc5 but I get the following error when logging in on the router using ssh:
-ash: fgrep: not found
Also if I try to execute a command it's not working.
Anyone got any idea what went wrong or any idea to put me in the right direction?
Sounds like it has been compiled with different musl version. The
error message sounds like that.
You should compile everything at the same time after make clean Actually make clean is not enough if musl patches have changed. Do make dirclean or manually D delete toolchain from builddir
@hnyman I just tried another time with a clean build environment and in the make menuconfig I selected the Advanced configuration options (for developers) -> Toolchain Options -> C Library implementation and checked if "musl" was selected and not glibc, that is not selected.
To compile the build for busybox 1.26.0 I had to change some patches but I saw in the release notes a lot of changes with ash, maybe changing the patches or the changes in 1.26.0 is causing the error.
It took me some time to test, @dman776 I checked your suggestion it's already in place but thank you for that.
In the mean time there is a new version of Busybox 1.26.1 (stable) it took me some time to get through the configuration and make the necessary changes to build the package but I still get the same Ash messages after applying the firmware.
It seems that something changed from version 1.25 to 1.26.1
I will upload the changes to the github fork of LEDE that I have and maybe someone can point me in the right direction so we can update LEDE to Busybox 1.26.1 since it has a lot of fixes.
As you can see from the discussion, both the author of the patches and at least one more person has compiled and ran successfully 1.26.1, so it should work.
After each try to build I rebuild my build environment because I'm just using the source, and copy my files over the build enviroment. What does "make distclean" does?
Regarding the developer mailerlist, with the Patchwork link is possible to download the patches, there are three.
But it seems like a patch that is patching files for before the actual build.
Is there a way to apply these patches before the actual build or a wiki I can follow?
I have compiled 1.26.2 and installed successfully on a mamba device (WRT1900AC). I'm running into a memory issue on a Shelby device (WRT1900ACS) however.
The issue is with /etc/init.d/dnsmasq during its startup. The startup proceeds fine until the "list interface" section is processed, then the script fails and reports out of memory. The line that actually generates the error is
__tmp="$(jsonfilter .....
in function __network_ifstatus() in /lib/functions/network.sh
There is no way the Shelby device should run out of memory (512M), I must have messed something up in the busybox config. I'm guessing the reason the Mamba device doesn't fail is that its network configuration is significantly simpler.
So I had been quite careful in preparing the conversion, but there's always opportunity for error so I did spend the time to do as the prior post suggested and build the config from scratch, with the same results. Interestingly, the mamba devices boot fine but if I execute a manual /etc/init.d/dnsmasq restart I get the same out of memory error. Here's the section of code that generates the error:
This is main.c in the jsonpath.git project. I'm not going to even attempt debugging what's going on in that call, it looks like auto-generated parsing code with which I have zero experience.
Anyway, it's possible there's something else in my build config that's affecting this but I'm going to leave it here for now.