Dopo aver descritto nel precedente articolo le caratteristiche generali delle due schede
Schede di sviluppo Linkit 7688 e 7688 Duo
si passa alla compilazione della immagine OpenWrt dai sorgenti. Si segue quanto descritto al link
Compilazione immagine dai sorgenti
Procediamo quindi a creare una cartella Linkit sotto /home/sviluppo nella nostra immagine Debian, già utilizzata per la compilazione di OpenWrt in altro articolo
Compilazione immagine OpenWrt
Passiamo alla installazione dei prerequisiti
|
sudo apt-get install git-core sudo apt-get install build-essential sudo apt-get install libssl-dev sudo apt-get install libncurses5-dev sudo apt-get install unzip sudo apt-get install gawk sudo apt-get install subversion sudo apt-get install mercurial sudo apt-get install libxml-parser-perl sudo apt-get install g++ |
Cloniamo il repository con il comando
|
git clone git://git.openwrt.org/15.05/openwrt.git |
Entriamo nella cartella openwrt e copiamo il file feeds.conf.default in feeds.conf
|
cd openwrt cp feeds.conf.default feeds.conf |
Aggiungere il feed Mediatek per la scheda
|
echo src-git linkit https://github.com/MediaTek-Labs/linkit-smart-7688-feed.git >> feeds.conf |
Aggiorniamo le informazioni dei feed per tutti i package
Installiamo i package
|
./scripts/feeds install -a |
Configuriamo il kernel eseguendo
con le seguenti impostazioni
- Target System: Ralink RT288x/RT3xxx
- Subtarget: MT7688 based boards
- Target Profile: LinkIt7688
Salviamo ed usciamo,
Eseguire la compilazione con il comando
Ad un certo punto la compilazione genera un errore sulle librerie della scheda wireless. Mediatek non ha rilasciato i sorgenti della scheda wireless, ma un sdk con i binari che hanno versione differente rispetto al kernel che si sta usando; l’errore riportato è
|
cp -fpR ./wifi_binary/mt_wifi.ko_3.18.45 /home/sviluppo/Linkit/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/mtk-sdk-wifi-2015-06-01/ipkg-ramips_24kec/mtk-sdk-wifi/lib/modules/3.18.45/mt_wifi.ko cp: cannot stat './wifi_binary/mt_wifi.ko_3.18.45': No such file or directory Makefile:93: recipe for target '/home/sviluppo/Linkit/openwrt/bin/ramips/packages/linkit/mtk-sdk-wifi_2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371_ramips_24kec.ipk' failed make[3]: *** [/home/sviluppo/Linkit/openwrt/bin/ramips/packages/linkit/mtk-sdk-wifi_2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371_ramips_24kec.ipk] Error 1 make[3]: Leaving directory '/home/sviluppo/Linkit/openwrt/feeds/linkit/mtk-sdk-wifi' package/Makefile:191: recipe for target 'package/feeds/linkit/mtk-sdk-wifi/compile' failed make[2]: *** [package/feeds/linkit/mtk-sdk-wifi/compile] Error 2 make[2]: Leaving directory '/home/sviluppo/Linkit/openwrt' package/Makefile:188: recipe for target '/home/sviluppo/Linkit/openwrt/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/stamp/.package_compile' failed make[1]: *** [/home/sviluppo/Linkit/openwrt/staging_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/stamp/.package_compile] Error 2 make[1]: Leaving directory '/home/sviluppo/Linkit/openwrt' /home/sviluppo/Linkit/openwrt/include/toplevel.mk:181: recipe for target 'world' failed make: *** [world] Error 2 sviluppo@debian:~/Linkit/openwrt$ |
Un modo per risolvere il problema è il seguente.
Accedere alla cartella /home/sviluppo/Linkit/openwrt/feeds/linkit/mtk-sdk-wifi/wifi_binary/ e copiare i seguenti file
|
cp mt_wifi.ko_3.18.44 mt_wifi.ko_3.18.45 cp mt_wifi.ko_3.18.44_all mt_wifi.ko_3.18.45_all |
Rilanciare la compilazione. Al termine della compilazione il file viene generato nella cartella bin/ramips
Il file compilato è scaricabile da qui
Immagine OpenWrt Linkit 7688 e 7688 Duo
ATTENZIONE: L’installazione dell’immagine generata sul dispositivo è a vostro rischio e pericolo. Non ci assumiamo alcuna responsabilità nel caso tale installazione generi malfunzionamento o blocco del dispositivo
Se si aggiorna la scheda usando una chiavetta usb bisogna rinominare il file openwrt-ramips-mt7688-LinkIt7688-squashfs-sysupgrade.bin in lks7688.img.
Il kernel dell’immagine è alla versione 3.18_45; se si volesse utilizzare un kernel recente occorre usare i driver opensource disponibili per la scheda; nel caso della scheda Linkit 7688 Duo, in nostro possesso, è possibile ricompilare il tutto utilizzando i driver Realtek rt76 per la scheda di rete wireless ed aggiungere i componenti aggiuntivi per l’ mcu Atmel utilizzando la distribuzione fork di OpenWrt Lede
Progetto LEDE
Nel prossimo articolo si compila una immagine LEDE per la scheda Linkit 7688 Duo. Per la scheda Linkit 7688 al momento non sono ancora compatibili le librerie mraa, che gestiscono l’interfacciamento con le periferiche, con l’ultima versione di LEDE e le funzionalità dell’immagine sono limitate. Possono essere presenti anche dei bug dei driver opensource della scheda wireless, che si spera siano risolti nell’affinamento di tali driver.
Compilazione Immagine LEDE per Linkit 7688 Duo