Forum Turris
Fórum Turris Nápověda

Milí majitelé routerů Turris,

toto fórum bylo 9. 12. 2016 zmrazeno a nahrazeno naším novým Turris fórem. Ještě chvíli bude dostupné k prohlížení, ale již zde není možné přispívat. Více informací naleznete v oznámení o uzavření fóra.


Dear Turris routers users,

this forum has been frozen on Dec 9th, 2016 and replaced by our new Turris forum. It will be read-only accessible for some time after. For more information, read the announcement about closing the forum.

Nahoru Téma Majitelé routerů / Technická podpora / Build zatím balíčku, jak na to?
- - Od JFila (>>) Dne 2014-06-17 21:23
Pokouším se přeložit balíček pro Turrise. Naklonoval jsem si tedy příslušný zdroj (viz přednáška Michala Vanera):
git clone https://gitlab.labs.nic.cz/turris/openwrt.git
make menuconfig

Bohužel jsem nenašel cílovou platformu pro Turris, co dělám špatně?
Doplnění: po chvilce jsme zkusil make a ejhle P2020 je tam, bohužel Build se stejně nezdařil. Můžete prosím někdo popsat postup jak na to?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-06-18 08:30 Upraveno 2015-04-10 08:37
Já myslím, že nejsnadnější je sestavení vlastních balíčků pomocí SDK. Protože jsem žádné oficiální nenašel, vytvořil jsem ze zdrojových kódů vlastní:
OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2.

EDIT: SDK je zastaralé a způsouje občas náhodné problémy s kompilací. Předtím, než začnete hledat chybu jinde, zkuste kompilaci balíčku provést v plnohodnotném buildrootu.

Postup sestavení balíčku je pak jednoduchý:
1. zdrojové adresáře balíčků nahrajete do podadresáře package
2. spustíte make v kořenovém adresáři
3. balíčky vzniknou v podadresáři bin/mpc85xx/packages
Nadřazený - - Od jakub.rybar Dne 2014-07-08 13:40
Bohužel nejsem schopný zbuildit žádný ipk balíček pro Turrise, resp. se mi podle Tvého návodu nezbuildí. Kořenovým adresářem předpokládám myslíš kořenový adresář SDK, tj. OpenWRT-*.

make proběhne, výstup zde:

make[1] world
make[2] package/compile
make[2] package/index


Tj. make vůbec neřeší, co je v ./package za adresáře. Co musím udělat proto, aby se make zabýval adresářy se zdrojovými kódy v ./package/?

Potřeboval bych zbuildit dvb-apps a prosody-0.9.4.

Díky za pomoc!
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-07-08 14:04
A dáváte do adresáře package balíček připravený pro OpenWRT? Musí to být adresář se souborem Makefile a případně podadresáři files a patches. Obyčejný balíček se zdrojovými kódy nestačí.

Teď jsem vyzkoušel prosody. Kromě samotného prosody je potřeba vyřešit závislosti přidáním balíků libidn a lua (ze základního build systému).

Dále bylo potřeba upravit Makefile pro prosody, přidat do řádku DEPENDS:= nakonec +lua +libopenssl

pak se mi to zkompilovalo:
$ make
make[1] world
make[2] package/compile
make[3] -C package/libidn compile
make[3] -C package/lua compile
make[3] -C package/prosody compile
make[2] package/index
Nadřazený - - Od jakub.rybar Dne 2014-07-08 14:32
Dávám tam bohužel jenom adresář se zdrojovými kódy balíčku, tj. nejsou připravené pro OpenWRT. To jsem tak nějak tušil, ale bohužel jsem se nedostal k tomu, jak balíčky správně připravit.

Mohl bys prosím postnout, jak korektně na přípravu libovolného balíku ze zdrojových kódu tak, aby se na konci vytvořil ipk balíček, který pak už stačí pouze nahrát na Turris a nainstalovat?

Nějak se v tom bohužel ztrácím... :cry:

Díky, myslím, že se to bude hodit i ostatním. Min. trochu rozepsaný např. postup přípravy prosody pro cross-compile. :red:
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2014-07-08 14:48
Postup jak vytvářet balíčky je na Wiki OpenWRT. Vždycky je ale jednodušší použít nějaký už vytvořený balíček. Ty se nalézají buď přímo v základním repozitáři, nebo v rozšířeném repozitáři. Upstream pak přechází na GitHub, takže nové balíky jsou k nalezení GitHubu, staré ještě nezmigrované pak v repozitáři.
A tady je postup, jak jsem zkompiloval balíček prosody, který jsem v vytáhl z historie:

git clone http://git.openwrt.org/packages.git
tar xjvf ~/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2.tar.bz2
cd OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/
cp -rv ../packages/net/prosody package/
cd ..
git clone https://gitlab.labs.nic.cz/turris/openwrt.git
cd -
cp -rv ../openwrt/package/utils/lua package/
cp -rv ../packages/libs/libidn/ package/
vim package/prosody/Makefile   #uprava zavislosti
make
Nadřazený - - Od commar (>>) Dne 2015-03-31 15:03
Dobrý den, napadá vás důvod této chyby?

martin@martin-VirtualBox:~/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2$ make
/home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: 1: /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: ELF: not found
/home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: 2: /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: Syntax error: "(" unexpected
/home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: 1: /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: ELF: not found
/home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: 2: /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: Syntax error: "(" unexpected
Checking 'working-make'... ok.
Checking 'case-sensitive-fs'... ok.
Checking 'getopt'... ok.
Checking 'fileutils'... ok.
Checking 'working-gcc'... ok.
Checking 'working-g++'... ok.
Checking 'ncurses'... ok.
Checking 'zlib'... ok.
Checking 'gawk'... ok.
Checking 'unzip'... ok.
Checking 'bzip2'... ok.
Checking 'perl'... ok.
Checking '/usr/bin/python2.7'... ok.
Checking 'wget'... ok.
Checking 'git'... ok.
Checking 'gnutar'... ok.
Checking 'svn'... ok.
Checking 'openssl'... ok.
Checking 'gnu-find'... failed.
Checking 'getopt-extended'... ok.
Checking 'non-root'... ok.

Build dependency: Please install GNU find

Prerequisite check failed. Use FORCE=1 to override.
make[1]: *** [tmp/.prereq-build] Error 1
make: *** [world] Error 2
martin@martin-VirtualBox:~/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2$


Nechápu hlášku o gnu-find, protože findutils tam je...
Udělal jsem i sudo make clean
Jinak jsem postupoval podle vašeho návodu a jinou chybu najít nemůžu.
Snažím se o balíček DUMP1090...

Díky za nakopnutí....

P.S.: dělám to na ubuntu 14.04, 32-bit ve virtualboxu...
Nadřazený - - Od samm Dne 2015-03-31 17:03
Nadřazený - Od commar (>>) Dne 2015-04-09 14:02
Tak bohužel, použil jsem Debian 7.8 64bit, DOCKER, váš BUILDROOT
ale nebyl jsem úspěšný...
Nevím přesně proč, brzy jsem to vzdal, neměl jsem moc času do zkoumat.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-04-01 08:18
To jsou ty radosti cross-kompilace. Podle této chyba je příkaz find nějaký rozbitý:

> /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: 1: /home/martin/openwrt/OpenWrt-SDK-mpc85xx-for-pc-x86_64-gcc-4.6-linaro_uClibc-0.9.33.2/staging_dir/host/bin/find: ELF: not found


Zkuste se do toho souboru na té cestě podívat a případně ho spustit. Třeba vás to navede k tomu, co je špatně.
Nadřazený - - Od commar (>>) Dne 2015-04-09 13:58 Upraveno 2015-04-09 14:05
Dostal jsem se k tomu až dnes a nakonec se to povedlo, použil jsem čistou virtual instalaci Ubuntu, doplnil pár věcí (zlib, gawk, g++, svn, ncurses), vaše SDK, pro DUMP1090 jsem musel přidat LIBUSB a RTL-SDR, doplnit cesty, pak jen MAKE a vše proběhlo bez problémů.


$ make
make[1] world
make[2] package/compile
make[3] -C package/libusb compile
make[3] -C package/rtl-sdr compile
make[3] -C package/dump1090 compile
make[2] -C package/dump1090 compile
make[2] package/index


Nainstaloval jsem vše do Turrisu a vše chodí.
Dají se vytvořené balíčky někde sdílet, nebo poskytnout pro ostatní, nebo nějak jinak přidat?
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-04-10 08:35
Jak přesně se ty vaše balíčky liší od těch, které jsou součástí Turrisu?
# opkg info dump1090
Package: dump1090
Version: 2013-02-04
Depends: libc, libpthread, librtlsdr
Status: unknown ok not-installed
Section: utils
Architecture: mpc85xx
Maintainer: Nuno Goncalves <nunojpg@gmail.com>
MD5Sum: f195068b1b59cfe868fe1a72e6368f36
Size: 25247
Filename: dump1090_2013-02-04_mpc85xx.ipk
Source: package/packages/utils/dump1090
Description: Dump1090 is a Mode S decoder specifically designed for RTLSDR devices.
Embedded HTTP server that displays the currently detected aircrafts on
Google Maps. Network output in Basestation and AVR formats.


Pokud jde jen o novější verzi, na to je tu speciální vlákno. Pokud jde o ještě novější verzi, než je v upstreamu, bylo by asi nejlepší kontaktovat rovnou správce upstreamu. Samotný binární balíček moc užitečný není.
Nadřazený - Od commar (>>) Dne 2015-04-10 09:01
Je to ta verze z upstreamu...


# opkg info dump1090
Package: dump1090
Version: 2014-11-09
Depends: libc, libpthread, librtlsdr
Status: install user installed
Architecture: mpc85xx
Installed-Time: 1428581629


... takže si ho nechám pro sebe... :-)
Nadřazený - Od Jan Čermák (>>) Dne 2015-04-10 10:20
Brzy by se naše repozitáře měly objevit na GitHubu, takže byste pak mohl zaslat pull request. Do budoucna bychom rádi udělali v repozitářích pořádek, aby software, který nepotřebujeme z nějakého důvodu adaptovat (což je takřka určitě případ Vašeho balíčku), byl používán ve verzi z upstreamu, ale to ještě nějakou dobu potrvá.
Nadřazený - - Od Ondřej Caletka (>>>) Dne 2015-04-10 08:24
Sice s křížkem po funuse, ale teď mi teprve docvalklo, kde byl nejspíš problém.

> P.S.: dělám to na ubuntu 14.04, 32-bit ve virtualboxu...


Pokud máte 32-bit Ubuntu, asi vám na něm SDK zkompilované pro x86_64 fungovat nebude :)
Nadřazený - Od commar (>>) Dne 2015-04-10 09:02
Ano, už také vím, už mám 64bit verzi...
Nadřazený - - Od Jan Čermák (>>) Dne 2014-06-18 09:02
Bohužel tu není Martin Strbačka, který má tohle v malíku, ale pokusím se ho zčásti suplovat a alespoň nakopnout správným směrem.

Jak obecně rozchodit OpenWrt buildroot je na oficiální wiki, doporučuji se tam podívat, pokud bude kompilace padat kvůli chybějícím hlavičkovým souborům nebo jiným závislostem: http://wiki.openwrt.org/doc/howto/buildroot.exigence

Ten chybějící krok, který zřejmě maří Vaše snahy, je zkopírování předpřipraveného konfiguračního souboru s cílovou platformou atd.:
cp configs/turris-turris-nand .config

Pak by mělo stačit pustit make defconfig nebo make menuconfig a mělo by to fungovat. Jinak repozitář s OpenWrt má ještě pár submodulů, takže se ujistěte, že jste vyklonoval i ty. Zrada pak ještě občas číhá v tom, že je nutné mít balíček označený (M nebo * v menuconfigu), aby se vytvářel .ipk soubor.
Nadřazený - Od JFila (>>) Dne 2014-06-18 13:38 Upraveno 2014-06-18 14:05
Ano, děkuji za pomoc, postup překopírování konfigurace pomohl. Na Ubuntu 13.10 bylo ještě nutné doinstalovat balíčky: ruby-compass slimit.
Nahoru Téma Majitelé routerů / Technická podpora / Build zatím balíčku, jak na to?

Powered by mwForum 2.29.3 © 1999-2013 Markus Wichitill