====== Linux Embedded Development Environment ====== * https://lede-project.org/ * LEDE používá [[https://en.wikipedia.org/wiki/UBIFS|ubifs]], OpenWRT ještě starší jffs2 * LEDE používá aktuální kernel 4.4, OpenWRT 3.3 ===== Postup sestavení ===== * stažení zdrojáků git clone https://git.lede-project.org/source.git * stažení dostupných balíčků scripts/feeds update * volání update stáhne nejnovější verze balíčků. * je dobré si zapsat konkrétní git verze, aby šlo prostředí znovu sestavit, for i in .git/refs/heads/* feeds/*/.git/refs/heads/*; do echo -e -n "$i:\t"; cat $i; done * přidání požadovaných balíčků do menuconfig (je tam velká flash, můžeme si dovolit) * tento krok lze pro základní image přeskočit scripts/feeds install ... * konfigurace * ''make menuconfig'' * výběr plaftormy * podle cílového zařízení se vybírá Target System, Subtarget, Profile * lze využít [[https://lede-project.org/toh/start|LEDE Table of Hardware]] * výběr formátu image * ramdisk je potřeba pro boot po síti * squashfs je ideální pro zápis do NAND * výběr požadovaných balíčků * sestavení * ''make'', případně ''make -j4'' pro rychlejší kompilaci na více jádrech * výsledné soubory jsou ve složce //bin/targets//// * při zavolání ''make'' se postupně volají následující cíle make[1] world make[2] target/compile make[2] diffconfig make[2] package/cleanup make[2] package/compile make[2] package/install make[3] package/preconfig make[2] target/install make[2] package/index make[2] checksum ==== Překompilování balíčku ==== * pokud potřebujeme znovu sestavit jeden balíček, stačí provést make package/feeds/telephony/asterisk-11.x/compile // alternativně make package/asterisk-11.x/compile make package/install make package/index ===== Uživatelský feed ===== * pokud chceme přidat nějaký vlastní balíček, lze jej nakopírovat do nějakého feedu * lepší je ale založit nový feed, aby fungovalo všechno standardní cestou * do souboru feeds.conf.default přidat src-link custompkgs /home/djbuldog/Projekty/embedded/custompkgs * feed se vytvoří po zavolání ''scripts/feeds update custompkgs'' ===== Uživatelské soubory ===== * někdy chceme modifikovat soubory přímo v img. Například nastavit jinou IP adresu, SSH klíče, ... * máme několik možností - /files [[https://wiki.openwrt.org/doc/howto/obtain.firmware.generate#files_variable|1]] * vytvořím složku files v build top adresáři * všechny soubory a podadresáře se přidají do img při ''make'' * složka může být vytvořena i jinde a předána proměnou ''FILES=mojefiles/'' při volání ''make'' - úprava souborů v balíčcích * implicitní konfigurační soubory jsou buď v * base-files balíčku, * defconfig profilu zařízení * nebo v individuálních balíčcích * například ''/etc/config/network'' je v ''/package/base-files/files/etc/config'' a pro mnoho zařízení také v profilu zařízení, které přepisuje base-files balíček. Například ''/target/linux/ar71xx/base-files/etc/defconfig/wndr3700/network'' - modifikace rootfs těsně před vytvořením img * cesta je napříkald ''build_dir/target-mips_r2_uClibc-0.9.33.2/root-ar71xx/etc/config/network'' * rebuild img spustíme přes ''make target/install''