Firmware kompilieren unter WSL

Unter WSL will unsere Firmware (OpenWRT genauso) nicht richtig bauen. Zum einen ist das das Problem mit Casesensitive Dateinamen und zum anderen mit (unnötigen) Pfaden in der Konsole.

Ich habe es bei mir folgendermaßen zum laufen gebracht:

Zuerst eine Image Datei für ein ext4 anlegen und einbinden

dd if=/dev/zero of=fff-firmware.img bs=1 count=0 seek=1G
mkfs.ext4 fff-firmware.img
tune2fs -c0 -i0 fff-firmware.img
mkdir fff-firmware
sudo mount fff-firmware.img fff-firmware/
mkdir fff-firmware/firmware/
sudo chown -R DEINUSER:DEINUSER fff-firmware/firmware

Vorbereiten der Firmware

cd fff-firmware/
git clone https://git.freifunk-franken.de/freifunk-franken/firmware.git
apt-get install zlib1g-dev lua5.2 build-essential unzip libncurses-dev gawk git subversion libssl-dev

Ich wähle hier ramips-mt7621.bsp aus weil ich für den ER-X-SFP bauen will. Wenn ihr was anderes braucht, dann entsprechend ändern. Das findet ihr jedoch in der regulären Anleitung.

./buildscript selectbsp bsp/ramips-mt7621.bsp

Genauso wie die Variante, ich erstelle mir eine L3 Firmware.

./buildscript selectvariant layer3
./buildscript prepare

Kompilieren

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ./buildscript build

Im Ordner bin findet man nun die fertigen Images.