Portál AbcLinuxu, 30. dubna 2025 14:32
Asi 7x jsem se pokusil o kompilaci OpenWrt ze zdrojových kódů -- neúspěšně! Budu vám vyprávět, jak zhruba jsem postupoval...:
#!/bin/bash ## 1. nainstaloval jsem všechny potřebné nástroje pro kompilaci/sestavení, viz http://wiki.openwrt.org/doc/howto/buildroot.exigence $ mkdir ~/openwrt $ cd ~/openwrt $ svn checkout svn://svn.openwrt.org/openwrt/trunk/ $ cd ~/openwrt/trunk $ ./scripts/feeds update $ ./scripts/feeds install $ cd ../ $ wget http://downloads.openwrt.org/attitude_adjustment/12.09-beta2/brcm47xx/generic/config.brcm47xx_generic $ cp config.brcm47xx_generic ./trunk/.config $ cd ~/openwrt/trunk $ make menuconfig ## Konfiguraci jsem provedl "poctivě". Bohužel nemůžu zde uvést upravený ~/openwrt/trunk/.config, protože jsem ho v "amoku" vymazal.$ make ## Kompilace vždy skončila s chybou. Dokonce jsem vedle Arch Linuxu nainstaloval Debian testing a pokoušel se kompilovat tam, ale neúspěšně.
Hardware/software -- "host system" -- téměř aktuální Arch Linux pro x86_64 a aktuální Debian testing (též x86_64).
Hardware: router Linksys E2000
U Arch Linuxu jsem zjistil, že chyba bude asi v tom, že nová verze make
nepovoluje "míchání" implicitních a explicitních "pravidel". Ale neuměl jsem to opravit. U Debianu nevím.
Podařilo se mi najít chybu z mé první kompilace:
make[4]: Entering directory `/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1' build/make/Makefile.top:104: *** mixed implicit and normal rules. Stop. make[4]: Leaving directory `/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1' make[3]: *** [/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1/.built] Error 2 make[3]: Leaving directory `/home/rotor/openwrt/trunk/feeds/packages/net/appweb' make[2]: *** [package/feeds/packages/appweb/compile] Error 2 make[2]: Leaving directory `/home/rotor/openwrt/trunk' make[1]: *** [/home/rotor/openwrt/trunk/staging_dir/target-mipsel_uClibc-0.9.33.2/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/rotor/openwrt/trunk' make: *** [world] Error 2
Tiskni
Sdílej:
Náhodou jsem našel:
make[4]: Entering directory `/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1' build/make/Makefile.top:104: *** mixed implicit and normal rules. Stop. make[4]: Leaving directory `/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1' make[3]: *** [/home/rotor/openwrt/trunk/build_dir/target-mipsel_uClibc-0.9.33.2/appweb-3.2.2-1/.built] Error 2 make[3]: Leaving directory `/home/rotor/openwrt/trunk/feeds/packages/net/appweb' make[2]: *** [package/feeds/packages/appweb/compile] Error 2 make[2]: Leaving directory `/home/rotor/openwrt/trunk' make[1]: *** [/home/rotor/openwrt/trunk/staging_dir/target-mipsel_uClibc-0.9.33.2/stamp/.package_compile] Error 2 make[1]: Leaving directory `/home/rotor/openwrt/trunk' make: *** [world] Error 2
*** mixed implicit and normal rules. Stop.
Tady je to "míchání" implicitních a explicitních pravidel. To bude ta chyba, pokud se teda nemýlím.
To se mi zdá krapet krátké. Já vždy když jsem měl chybu, tak jsem dostal hlášek aspoň na sto řádek, přičemž příčina chyby byla tak někde na padesáté.Neměl jsi při kompilaci zaplý verbose mód (make V=99)?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.