Compileren software voor OpenWrt

Okee je hebt een device waarop OpenWrt loopt (bijvoorbeeld de Asus WL-HDD) en je wilt nu zelf software schrijven voor dit device. We gaan ervan uit dat de toolchain voor OpenWrt aanwezig is. Heb je deze nog niet, lees dan het artikel Compileren van OpenWrt.

Voorbereidingen

Op de build computer, dat is de computer met de OpenWrt-source/SDK/toolchain, gaan we het HelloWorld-package bouwen.

  1. Ga eerst naar de directory met de OpenWrt-source:
  2. Maak hier de directory-structuur voor het nieuwe package:

HelloWorld-programma schrijven

Nu schrijven we een simpel HelloWorld-programma dat de tekst “Hello world!” naar standaard uitvoer (stdout) stuurt: package/helloworld/src/helloworld.c

Makefiles maken

Een simpele Makefile (package/helloworld/src/Makefile) voor dit programma ziet er zo uit:

Tip 1: Let op de tabs in plaats van spaties aan het begin van de regels.

Tip 2: Dit programma moet standalone kunnen compileren en runnen:

Maak nu de Makefile (package/helloworld/Makefile) voor OpenWrt. Dit is als het ware het ‘recept’ voor het package. Let wederom op de tabs in plaats van spaties aan het begin van de regels.

Selecteren van package

Zorg nu dat het HelloWorld-package is gekozen met het commando: make menuconfig

  1. Selecteer: Utilities
  2. Zoek ‘helloworld‘ op, ga erop staan en druk op M. Als het goed is verschijnt nu de letter M voor ‘helloworld’.
  3. Ga dit configuratiemenu uit (2x Exit) en sla de nieuwe OpenWrt configuratie op, wanneer hierom gevraagd wordt.

Compileren

Compileer nu het package: ‘helloworld’:

Als het compileren en packagen goed is gegaan zal het HelloWorld-package zich nu hier bevinden: bin/packages/mipsel/helloworld_1_mipsel.ipk

Tip: Verschijnt tijdens het compileren een melding zoals: ‘missing separator‘, controleer dan of in de Makefiles inderdaad tabs zijn gebruikt en geen spaties.

HelloWorld-package installeren en testen op OpenWrt-device

  1. Kopieer nu dit package naar het device waar OpenWrt op draait. Hier wordt aangenomen dat het IP-adres van dat device: 192.168.1.2 is:
  2. Installeer het HelloWorld-package:
  3. Voer het HelloWorld-programma uit: helloworld

Let op de uitvoer van dit programma!
…. Hello world! …. dat hadden we nou niet verwacht.

Enkele handige OPKG-commando’s

  • Verwijder het HelloWorld-package:
  • Informatie over het package HelloWorld:
  • Welke bestanden bevat het package HelloWorld? :

Zie ook