Dopo aver compilato l’immagine enigma2
mostriamo come creare un package.
Nella cartella recipes-local
1 |
~/enigma2/openatv/build-enviroment/meta-local/recipes-local |
creaimo una cartella per il nostro package, ad esempio testpackage, e una sottocartella files
1 2 3 4 |
mkdir testpackage cd testpackage makdir files cd files |
Creare del codice nella cartella files, ad esempio testpackage.c
1 2 3 4 5 |
#include <stdio.h> int main(int argc, char** argv){ printf("Test Package!\n\n"); return 0; } |
Creiamo il file Readme.txt nella cartella files e LICENSE nella cartella testpackage. Nel file Readme.txt vi sono le informazioni sulla applicazione. Per la licenza, che al momento si può lasciare anche vuoto, occorre create l’hash da inserire nel file bitbake.
Creare il file md5 per la licenza
1 2 |
md5sum ~/enigma2/openatv/build-enviroment/meta-local/recipes-local/testpackage/LICENCE d41d8cd98f00b204e9800998ecf8427e |
Creaimo il file bitbake testpackage_0.1.bb sotto la cartella testpackage per la cross compilazione
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
DESCRIPTION = "testpackage application" PR = "r0" LICENSE = "TEST" LIC_FILES_CHKSUM = "file:///home/sviluppo/enigma2/openatv/build-enviroment/meta-local/recipes-local/testpackage/LICENSE;md5=d41d8cd98f00b204e9800998ecf8427e" SRC_URI = "file://testpackage.c \ file://README.txt" do_compile() { ${CC} ${CFLAGS} ${LDFLAGS} ${WORKDIR}/testpackage.c -o testpackage } do_install() { install -m 0755 -d ${D}${bindir} ${D}${docdir}/testpackage install -m 0755 ${S}/testpackage ${D}${bindir} install -m 0644 ${WORKDIR}/README.txt ${D}${docdir}/testpackage } |
Compiliamo il pacchetto ad esempio per zgemma accedendo all’ambiente dedicato a tale sistema con
1 2 3 |
cd /home/sviluppo/enigma2/openatv/build-enviroment/builds/openatv/release/h3/ source env.source bitbake testpackage |
Il file viene generato nella seguente cartella
1 2 3 4 |
sviluppo@debian8:~/enigma2/openatv/build-enviroment/builds/openatv/release/h3/tmp/deploy/ipk/mips32el$ ls testpackage* testpackage_0.1-r0_mips32el.ipk testpackage-dev_0.1-r0_mips32el.ipk testpackage-dbg_0.1-r0_mips32el.ipk testpackage-doc_0.1-r0_mips32el.ipk sviluppo@debian8:~/enigma2/openatv/build-enviroment/builds/openatv/release/h3/tmp/deploy/ipk/mips32el$ |
Copiare il pacchetto testpackage_0.1-r0_mips32el.ipk sullo ZGemma H3 nella cartella /tmp ed eseguire
1 |
opkg install testpackage_0.1-r0_mips32el.ipk |
Per forzare l’installazione senza tenere conto dei prerequisiti
1 |
opkg --nodeps install testpackage_0.1-r0_mips32el.ipk |
L’eseguibile è presente nella cartella /usr/bin; la sua esecuzione ci dà l’output che ci si aspettava
1 2 |
root@zgemmah2h:/tmp# testpackage Test Package! |