Re: Firmware bauen für wr842nd

Chris anmelden1 at chrisi01.de
Di Jul 7 19:30:22 CEST 2015


Und wärend ich jetzt die ganze Mail fertig zum absenden hatte, ist mir 
mein Fehler aufgefallen. Es gibt ja im ~/firmware/bsp/wr842 noch die 
versteckte .config Datei, beim kopieren bin ich damals drüber gestolpert 
weil wegen vergessen weil nicht gesehen (hab da dann auch die aus dem 
wr841 Ordner geschnappt). Beim editieren hab ich aber nicht mehr dran 
gedacht. Du kannst die Mail jetzt ruhig lesen, löschen tu ich sie nicht 
mehr war genug Mühe das zu tippen aber die Lösung hab ich mittlerweile 
glaub ich selbst gefunden ;) Bin jetzt am erneuten testen, ich meld mich 
wenns nicht klappen sollte

Am 07.07.2015 um 17:52 schrieb Tobias Klaus:
> Hey Chris,
>
> Am Dienstag, 7. Juli 2015, 15:09:50 schrieb Chris:
>> naja die Datei die ich am Ende erhalten habe, war das Original OpenWRT
>> Image, es war bis auf das Byte gleich und ein Routerflash hat auch
>> gezeigt das von Freifunk Franken nichts drinnen war, es ist das normale
>> blanke OpenWRT auf dem Router gewesen, ich trau mir zu wetten das ein
>> Checksumevergleich das Ergebnis gebracht hätte das es die gleiche Datei
>> wie das OpenWRT Image war, gemacht hab ich das aber nicht mehr.
>>
>> Ich hab jetzt nochmal von null angefangen um ausschließen zu können das
>> ich irgendwo, irgendwas falsch hinkopiert habe, hab anfangs einiges
>> rumgetestet und dabei evtl. was durcheinander gebracht. Diesmal dann
>> strickt nach Anleitung und vorwissen vorgegangen. Ich bleib beim
>> kompilieren jetzt hier stecken:
>>
>>    make[3] -C target/linux install
>>    make[2] package/index
>> cp: der Aufruf von stat für
>> „./build/wr842/bin/ar71xx/openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-facto
>> ry.bin“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
>> christian at debian:~/firmware$
>>
>> ich glaub ich hab damals einfach in das Verzeichnis
>> ~/firmware/build/wr842/bin/ar71xx/ die dort gesuchte Datei (das fertige
>> openwrt image aus dem Internet geladen) reinkopiert. Ist das richtig
>> gewesen oder muss ich da was anderes machen?
> Ich bin mir gerade nicht sicher welches copy da genau kaputt geht, allerdings
> ist das herunterladen des fertigen Images _nicht_ die Lösung. Näheres siehe
> unten.
ok jetzt hab ich es kapiert, er hat das fertige Image einfach am Ende 
rüberkopiert und deshalb hatte ich am Ende auch das fertige openwrt 
Image das ich auf den Router geflasht habe ;) das ganze kompilieren war 
für die Katz' und nur der cp am Ende hat die fertige Datei ins 
vermeindlich richtig Verzeichnis kopiert *g*
> Kann es sein, dass vorher schon Fehler auftreten? Gerade wenn Fehler beim
> packen der Firmware auftreten, wird das vom openwrt-buildsystem oft nicht
> angezeigt, sondern es äußert sich durch das Fehlen der entsprechenden Datei.
> Da hilft dann nur aufmerksam lesen/richtiges suchen, oder vielleicht ein build
> log hier an die Liste schicken. Da "package/index" allerdings der letzte
> Schritt sein müsste vermute ich den Fehler woanders(siehe weiter unten.).
zumindest im kompletten

./buildscript build

ist kein Fehler vorher aufgetreten. Das

./buildscript prepare

hab ich jetzt allerdings nicht kontrolliert, müsste ich?

hier mal (sorry etwas lang) das gesamte ./buildscript build log:

--------------

christian at debian:~/firmware$ ./buildscript build
Working with bsp/board_wr842.bsp and community/franken.cfg
Translating ./build/wr842/files/etc/rc.local.tpl ..
Translating ./build/wr842/files/etc/config/system.tpl ..
Translating ./build/wr842/files/etc/config/configurator.tpl ..
Translating ./build/wr842/files/etc/config/firmware.tpl ..
Translating ./build/wr842/files/etc/config/wireless.tpl ..
Translating ./build/wr842/files/etc/fastdstart.sh.tpl ..
Collecting package info: done
  make[1] world
  make[2] tools/install
  make[2] package/cleanup
  make[3] -C tools/sed compile
  make[3] -C tools/patch compile
  make[3] -C tools/xz compile
  make[3] -C tools/sstrip compile
  make[3] -C tools/firmware-utils compile
  make[3] -C tools/patch-image compile
  make[3] -C tools/findutils compile
  make[3] -C tools/flock compile
  make[3] -C tools/patch install
  make[3] -C tools/sed install
  make[3] -C tools/xz install
  make[3] -C tools/sstrip install
  make[3] -C tools/ipkg-utils compile
  make[3] -C tools/genext2fs compile
  make[3] -C tools/mkimage compile
  make[3] -C tools/firmware-utils install
  make[3] -C tools/patch-image install
  make[3] -C tools/findutils install
  make[3] -C tools/yaffs2 compile
  make[3] -C tools/flock install
  make[3] -C tools/cmake compile
  make[3] -C tools/scons compile
  make[3] -C tools/bc compile
  make[3] -C tools/lzma-old compile
  make[3] -C tools/lzma compile
  make[3] -C tools/squashfs4 compile
  make[3] -C tools/m4 compile
  make[3] -C tools/libtool compile
  make[3] -C tools/pkg-config compile
  make[3] -C tools/ipkg-utils install
  make[3] -C tools/genext2fs install
  make[3] -C tools/mkimage install
  make[3] -C tools/yaffs2 install
  make[3] -C tools/padjffs2 compile
  make[3] -C tools/scons install
  make[3] -C tools/bc install
  make[3] -C tools/lzma-old install
  make[3] -C tools/lzma install
  make[3] -C tools/squashfs4 install
  make[3] -C tools/m4 install
  make[3] -C tools/libtool install
  make[3] -C tools/pkg-config install
  make[3] -C tools/padjffs2 install
  make[3] -C tools/squashfs compile
  make[3] -C tools/autoconf compile
  make[3] -C tools/squashfs install
  make[3] -C tools/autoconf install
  make[3] -C tools/automake compile
  make[3] -C tools/quilt compile
  make[3] -C tools/automake install
  make[3] -C tools/quilt install
  make[3] -C tools/mm-macros compile
  make[3] -C tools/xorg-macros compile
  make[3] -C tools/xfce-macros compile
  make[3] -C tools/missing-macros compile
  make[3] -C tools/gmp compile
  make[3] -C tools/libelf compile
  make[3] -C tools/flex compile
  make[3] -C tools/mklibs compile
  make[3] -C tools/e2fsprogs compile
  make[3] -C tools/mm-macros install
  make[3] -C tools/xorg-macros install
  make[3] -C tools/xfce-macros install
  make[3] -C tools/missing-macros install
  make[3] -C tools/cmake install
  make[3] -C tools/gmp install
  make[3] -C tools/libelf install
  make[3] -C tools/flex install
  make[3] -C tools/mklibs install
  make[3] -C tools/mpfr compile
  make[3] -C tools/bison compile
  make[3] -C tools/e2fsprogs install
  make[3] -C tools/mpfr install
  make[3] -C tools/mtd-utils compile
  make[3] -C tools/mpc compile
  make[3] -C tools/mtd-utils install
  make[3] -C tools/mpc install
  make[3] -C tools/bison install
  make[2] toolchain/install
  make[3] -C toolchain/gdb prepare
  make[3] -C toolchain/binutils prepare
  make[3] -C toolchain/gcc/minimal prepare
  make[3] -C toolchain/kernel-headers prepare
  make[3] -C toolchain/uClibc/headers prepare
  make[3] -C toolchain/gcc/initial prepare
  make[3] -C toolchain/uClibc prepare
  make[3] -C toolchain/gcc/final prepare
  make[3] -C toolchain/uClibc/utils prepare
  make[3] -C toolchain/gdb compile
  make[3] -C toolchain/binutils compile
  make[3] -C toolchain/kernel-headers compile
  make[3] -C toolchain/binutils install
  make[3] -C toolchain/gcc/minimal compile
  make[3] -C toolchain/gdb install
  make[3] -C toolchain/gcc/minimal install
  make[3] -C toolchain/kernel-headers install
  make[3] -C toolchain/uClibc/headers compile
  make[3] -C toolchain/uClibc/headers install
  make[3] -C toolchain/gcc/initial compile
  make[3] -C toolchain/gcc/initial install
  make[3] -C toolchain/uClibc compile
  make[3] -C toolchain/uClibc install
  make[3] -C toolchain/gcc/final compile
  make[3] -C toolchain/gcc/final install
  make[3] -C toolchain/uClibc/utils compile
  make[3] -C toolchain/uClibc/utils install
  make[2] target/compile
  make[3] -C target/linux compile
  make[2] package/compile
  make[3] -C package/libs/toolchain compile
  make[3] -C package/system/opkg host-compile
  make[3] -C 
/home/christian/firmware/src/packages/openwrt/utils/gpiotoggling compile
  make[3] -C /home/christian/firmware/src/packages/openwrt/libs/libugpio 
compile
  make[3] -C /home/christian/firmware/src/packages/openwrt/net/mii-tool 
compile
  make[3] -C package/kernel/gpio-button-hotplug compile
  make[3] -C package/network/services/dropbear compile
  make[3] -C package/network/utils/wireless-tools compile
  make[3] -C package/utils/busybox compile
  make[3] -C package/libs/libnl-tiny compile
  make[3] -C package/libs/libjson-c compile
  make[3] -C package/utils/lua compile
  make[3] -C package/libs/lzo compile
  make[3] -C package/libs/zlib compile
  make[3] -C package/libs/ncurses compile
  make[3] -C package/boot/uboot-ar71xx compile
  make[3] -C package/libs/ncurses compile
  make[3] -C /home/christian/firmware/src/packages/fastd/libs/libuecc 
compile
  make[3] -C package/firmware/linux-firmware compile
  make[3] -C 
/home/christian/firmware/src/packages/openwrt/net/bridge-utils compile
  make[3] -C package/network/utils/iw compile
  make[3] -C package/libs/libubox compile
  make[3] -C package/utils/util-linux compile
  make[3] -C package/kernel/linux compile
  make[3] -C package/system/mtd compile
  make[3] -C package/system/ubus compile
  make[3] -C package/system/uci compile
  make[3] -C package/utils/jsonfilter compile
  make[3] -C /home/christian/firmware/src/packages/fastd/net/fastd compile
  make[3] -C /home/christian/firmware/src/packages/routing/batman-adv 
compile
  make[3] -C package/network/services/hostapd compile
  make[3] -C package/network/utils/iproute2 compile
  make[3] -C package/network/utils/iptables compile
  make[3] -C package/network/config/swconfig compile
  make[3] -C package/network/utils/arptables compile
  make[3] -C package/network/utils/ebtables compile
  make[3] -C package/network/config/netifd compile
  make[3] -C package/system/ubox compile
  make[3] -C package/utils/ubi-utils compile
  make[3] -C package/system/fstools compile
  make[3] -C package/kernel/mac80211 compile
  make[3] -C package/system/procd compile
  make[3] -C package/boot/uboot-envtools compile
  make[3] -C package/network/config/qos-scripts compile
  make[3] -C package/base-files compile
  make[2] package/install
  make[3] package/preconfig
  make[2] target/install
  make[3] -C target/linux install
  make[2] package/index
cp: der Aufruf von stat für 
„./build/wr842/bin/ar71xx/openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin“ 
ist nicht möglich: Datei oder Verzeichnis nicht gefunden
christian at debian:~/firmware$
--------------------




>
>> EIne Frage noch, in welchen bin Ordner finde ich am Ende das Image dann
>> wirklich? ~/firmware/bin ??
> Das Openwrt-Buildroot erstellt es zunächst in einem eigenen Ordner.
> Anschließend wird das image durch die Funktion board_postbuild im jeweiligen
> BSP nach firmware/bin kopiert. Wahrscheinlich steht hier bei dir der falsche
> cp Befehl. Am Besten schaust du dir einfach mal an was bei dir so in
> ~/firmware/build/wr842/bin/ar71xx/ liegt und passt das entsprechend an.

danke dir :) In dem genannten Ordner heißen die .bin dateien alle 
...wr841... (allerdings heißt der Ordner in ~/firmware/build/ schon 
richtig wr842) gibt davon endliche Versionen (v3, v5, v7, v8, v9 jeweils 
ein factory und ein sysupgrade) aber keine wr842. Ich hab wohl irgendwo 
was vergessen zu editieren, nur wo?

~/firmware/bsp/board_wr842.bsp

sieht so aus (abgekupfert von der wr841 nur an mein System angepasst und in wr842 unbenannt):

---

    machine=wr842
    target=$builddir/$machine
    board_prepare() {
             echo "nothing todo" > /dev/null
    }
    board_prebuild() {
             echo "nothing todo" > /dev/null
    }
    board_postbuild() {
             cp
    $target/bin/ar71xx/openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin
    ./bin/
    }
    board_clean() {
             /bin/rm -rf $target bin/*$machine*
    }

---

in meinen Augen eigentlich richtig. Es gibt dann noch das Verzeichnis:

~/firmware/bsp/wr842/root_file_system/etc/

mit der Datei

network.tl-wr842nd-v2
(ist die kopierte und unbenannte Datei vom wr841 da ich noch keine 
Ahnung von den settings habe und hoffe das sie identisch sind wenn nicht 
wird das später noch mal arbeit, drinnen steht aber auch nix von wr841)


  Verwendet hab ich dann diese 4 Befehle:

./buildscript selectbsp bsp/board_wr842.bsp
./buildscript selectcommunity community/franken.cfg
./buildscript prepare
./buildscript build

wo hab ich was vergessen das er am Ende dennoch wr841 Dateien erzeugt? 
Nur was und wo?
So ich glaub jetzt hab ich doch fast das gesamte bsp mitgeschickt *g*

>
>
>> Ich muss gestehen, so 100%ig verstanden mit diesen BSP hab ich das noch
>> immer nicht. Mir fehlt noch das Verständnis wie das Freifunk Franken im
>> Image von OpenWRT landet? Wird ganz OpenWRT hier neu kompiliert? Weil in
>> die Original OpenWRT
>> openwrt-ar71xx-generic-tl-wr842n-v2-squashfs-factory.bin einfach die
>> Sachen der Freifunk Franken "reinzukompilieren" geht in meinen Augen
>> eigentlich nicht oder lieg ich da falsch und es geht doch?
> Wir kompilieren das komplette Openwrt mit unseren Erweiterungen neu. Das
> Freifunk-Spezifische könnte man zwar als extra Pakete verpacken, aber die
> würden viel mehr Speicher verbrauchen, als wenn man sie mit ins image packt.
> Siehe: http://wiki.openwrt.org/doc/techref/filesystems
so hab ich mir das dann auch gedacht, lag ich also gar nicht so falsch ;)
>
>
>> Ich hab zwar grundsätzlich Ahnung von Linux aber das ganze Zeug rund ums
>> kompilieren macht mich oft wahnsinnig da hatte ich noch nie so richtig
>> Erfolg irgendwie.
> Dann schauen wir mal, dass das besser wird :-)
danke ich hoffe es doch ;) Linux ist halt doch die Zukunft und gerade 
wenn man auch ein wenig mit dem Raspberry Pi und so rumspielt doch ganz 
sinnvoll da einiges zu lernen :)
>
>
> Grüße
> Tobias

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20150707/01d7426b/attachment-0002.html>


Mehr Informationen über die Mailingliste franken-dev