Instead of hardcoding the magic '../N900_RescueOS/' path everywhere,
have buildroot pull package config files, patches, etc. from the
directory that holds the main defconfig file, wherever that may be.
Enabling MODPROBE_SMALL causes busybox to supply a version of the kernel
module handling utilities (modprobe, etc.) that rely on a special module
dependency index (modules.dep.bb) instead of the traditional indexes
(modules.dep, etc.) used and generated by module-init-tools. Buildroot
only supports the traditional indexes.
When modules.dep.bb is missing, busybox will attempt to load a module
before checking for dependencies, resulting in a flood of "unknown
symbol" errors in dmesg when dependencies are missing. Things actually
still work (as busybox tries again after resolving dependencies), but
the messages are ugly.
Avoid the whole mess by disabling MODPROBE_SMALL, which is what
buildroot expects anyway.
The busyboxconfig file we supplied earlier was for a version of busybox
older than that used by buildroot v2013.02. The new busybox version
describes the same configuration with a slightly different file; that
file is given to us with 'make busybox-update-config'.
When using the script from this repo, 'udhcpc -i wlan0' would error out
with this:
> Recreating /etc/resolv.conf
> /usr/share/udhcpc/default.script: line 37: /etc/resolv.conf-8352: Read-only file system
> Adding DNS server 192.168.7.1
> /usr/share/udhcpc/default.script: line 41: /etc/resolv.conf-8352: Read-only file system
> mv: can't rename '/etc/resolv.conf-8352': No such file or directory
The wl1251 driver in upstream linux kernels expects its firmware files
to live at
ti-connectivity/wl1251-fw.bin
ti-connectivity/wl1251-nvs.bin
and the linux-firmware package uses the same names for these files.
However, our current (older) kernel still expects them to be named
wl1251-fw.bin
wl1251-nvs.bin
and so firmware loading would fail.
RescueOS v1.1 included these files under the older filenames, but we'd
like to use the official (upstream) names. Patch our kernel to match.
Also remove the unnecessary (and now erroneous) firmware check from
setup-wpa-wifi.sh.
Configure buildroot to automatically build our kernel (and as a side
effect, get the kernel modules into the rootfs image). While we're at
it, defconfig-ify kernel_config.
For now, we reference the tarball at
<http://n900.quitesimple.org/rescueOS/sourcecode/kernel_source.tar.gz>
which is equivalent to commit
a91ce11c777f31ec3d04e60506bcd224f448382e
from the former MeeGo N900 device adaptation project.
This directory had example scripts for util-linux's getopt. They count
as documentation and don't belong on an embedded rootfs.
This also reduces the diff to RescueOS v1.1; this directory was
(presumably manually) removed there as well.
Also cleanup post-build.sh a bit while we're at it.
Setup buildroot filesystem overlay and move our custom scripts/configs
into it. Setup a post-build script and have it delete files generated
by buildroot that aren't in RescueOS v1.1.
This gets us closer to a buildroot configuration that will automatically
generate RescueOS images. For now, we're using RescueOS v1.1 as a
reference.
Have buildroot pull busybox config from this repo. Replace
buildrootconfig with a defconfig file produced by buildroot's 'make
savedefconfig' and consumable by 'make defconfig'.
This GCC patch was needed in order to successfully build a
cross-compilation toolchain under buildroot on Ubuntu 14.04.
The patch is included in later GCC releases, so we probably can drop
this once we upgrade GCC.
The GCC 4.6.x build system breaks when run on systems with sufficiently
recent versions of texinfo. Tweak buildroot configuration to avoid this
bug.
An equivalent workaround has been commited to buildroot (commit
62322ac). We can drop this once we upgrade buildroot and/or GCC.
GCC bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60961