Heute zeige ich mal wie man die Toolchain für den Omega unter Ubuntu baut.

Zuerst holen wir uns das Lede Projekt von Github. Ich installiere für diesen Beitrag einfach mal unter /tmp, weil ich die Toolchain für mich schon gebaut habe.

chrimbo@helios:/tmp$ git clone https://github.com/WereCatf/source.git omega

 Nun gehen wir in das so eben geclonte Projekt und führen das first_time_setup Script aus.

chrimbo@helios:/tmp$ cd omega
chrimbo@helios:/tmp/omega$ ./first_time_setup.sh

 ledeconfig
Am Ende kommt automatisch das Menuconfig und wir müssen ein paar Grundeinstellungen für den Omega2 vornehmen. Mithilfe der Pfeiltasten und Enter kann navigiert werden. Im Bild sind die zu wählenden Einstellungen aufgeführt. Im Anschluss kann die Konfiguration beendet werden, dazu mit Hilfe der Pfeiltasten zum Exit navigieren und das Programm mit einem Druck auf Enter verlassen.

 

  • Target System MediaTek Ralink MIPS
  • Subtarget MT7688 based boards
  • Target Profile Onion Omega2

Nun kann die Toolchain mit folgendem Kommando gebaut werden.

chrimbo@helios:/tmp/omega$ make -j9 toolchain/install

 Sie ist danach im Verzeichnis staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin zu finden.

chrimbo@helios:/tmp/omega$ cd staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin/

 Ein Aufruf des GCC mit dem version Flag zeigt die korrekte Version an.

chrimbo@helios:/tmp/omega/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin$ ./mipsel-openwrt-linux-gcc --version
mipsel-openwrt-linux-gcc (LEDE GCC 5.4.0 r3660+39-5087b40) 5.4.0
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 Test des Compilers

Also schnell ein kleines Hallo Welt tippen

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char **argv)
  4. {
  5. printf("Hallo Welt");
  6. return 0;
  7. }

und durch den Compiler jagen

chrimbo@helios:/tmp$ omega/staging_dir/toolchain-mipsel_24kc_gcc-5.4.0_musl/bin/mipsel-openwrt-linux-gcc -o main.o main.c
mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined
chrimbo@helios:/tmp$ ls
main.c main.o omega

Die main.o auf wie auch immer geartete Weise auf den Omega2 bringen. Ich nehme dafür einen USB-Stick aber über scp sollte es genauso gut gehen. Auf den Omega2 einloggen und das Programm ausführen

root@Omega-A067:/mnt# ./main.o
Hallo Welt

 

Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok Ablehnen