OpenWrt image Luci nélkül

 ( Matyko | 2018. december 14., péntek - 22:01 )

Bizonyára többetek találkozott már a következő problémával:

  • Adott egy router, ami képes volt az OpenWrt futtatására (pl. D-Link DIR-615 D3).
  • Azonban a készülék kis méretű flash memóriával rendelkezik (kis == 4MB).

Ebből kifolyólag nem készül hozzá image az aktuális OpenWrt verzióból, vagy készül, de az bugos.

A fent említett routerhez bár elérhető a hivatalos build, az a gyakorlatban használhatatlan. Esetemben nem lehet felülírni a rendszer alapértelmezett beállításait, ugyanis ahhoz nagyobb méretű flash kellene.

Az eszközcsere helyett érdemes megpróbálnunk elkészíteni egy kisebb méretű, "fapados" image-t amit a szokásos módon telepíthetünk a dobozunkra. Természetesen ajánlatos elgondolkodni egy új eszköz beszerzésén, de többeknek ideiglenes megoldást jelenthet a következő folyamat.

- Első lépésként fel kell telepíteni a build környezet függőségeit, Debian vagy Ubuntu esetében:

apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget unzip python

- Második lépésként meg kell határozni az eszköz architektúráját, rákeresünk a modelre, majd a target alatt találjuk a szükséges információt. Link
(A router aloldalán tájékozódhatunk az eszköz ismert hibáiról és azok kiküszöböléséről, továbbá a kész image telepítéséről.)

- Következő lépésként le kell tölteni a router-hez megfelelő build környezetet. Keressük azt architektúra és a modelnév alapján. Link
(A supplementary fájlok között imagebuilder néven szerepel.)

- Miután kicsomagoltuk az előzőleg letöltött fájlt, lépjünk a kitömörített mappába, majd győződjünk meg róla, hogy a build környezet "ismeri" a routerünket.
Jegyezzük fel a találatot ez az eszközünkhöz tartozó profilnév.

make info | grep modelnév

- Amennyiben megtaláltuk a profilnevet, adjuk ki a következő parancsot:

make image PROFILE='profilnév' PACKAGES='-libiwinfo-lua -liblua -libubus-lua -libuci-lua -lua -luci -luci-app-firewall -luci-base -luci-lib-ip -luci-lib-nixio -luci-mod-admin-full -luci-proto-ipv6 -luci-proto-ppp -luci-theme-bootstrap -uhttpd -uhttpd-mod-ubus' FILES=files/

- A létrejött grafikus felület nélküli, ennél fogva kisebb méretű image fájlokat a builder környezet bin mappájában találjuk.
Friss telepítéshez az xyz.squashfs-factory.bin használható, meglévő rendszer frissítéséhez pedig az xyz.squashfs-sysupgrade.bin nevű fájl.

További lehetőségek:

- Amennyiben hálózati kapcsolatunk nem pppoe segítségével jön létre, célszerű a következő csomagokat is kihagyásra jelölni a build során:
-ppp -ppp-mod-pppoe

- Még több helyet nyerhetünk más csomagok számára, ha IPV6 támogatásra sincs szükségünk:
-ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -odhcpd-ipv6only

- Kis szerencsével megtakarítottunk annyi helyet, hogy a kedvenc csomagunk beférjen az image-be. (Ezen csomagok neve elé nem kell kivonás jelet tenni.)
Néhány népszerű csomag: ddns-scripts, mailsend-nossl, etherwake. Az elérhető csomagok száma eszköz függő, a teljes lista itt található: Link

- Könnyedén tudunk használatra kész előkonfigurált image-t készíteni, ha a build környezet fő könyvtárában létrehozzuk a következő mappákat:
files/etc/config majd ide bemásoljuk a módosított konfig fájlokat. Természetesen ezen módosításokat az alap image telepítése után is végrehajthatjuk.

A rendszer konfigurációja:

- Grafikus felület hiányában a konfigurációs fájlok közvetlen szerkesztésével vagy az uci használatával tudunk módosításokat eszközölni.
Ezen fájlok az első bejelentkezést követő jelszó beállítás után érhetőek el, az /etc/config mappában.
- Miután létrejött a LAN kapcsolat, bejelentkezünk az ssh root(at)192.168.1.1 -p 22 paranccsal majd a passwd segítségével jelszót cserélünk, reboot után várjunk egy keveset amíg újra bejelentkezünk, a rendszer ilyenkor generálja ki az SSH kulcsot. Ezt követően már elérjük a konfig fájlokat, illetve használható az uci.

Az alaptelepítésben elérhető szövegszerkesztő a vi.
Gyorstalpaló: 1. Belépés beviteli módba: i billentyű. 2. Mentés folyamata: Esc majd gépeljük :w és Enter 3. Kilépés: ESC, majd gépeljük :q és Enter

- Főbb konfig fájlok: dropbear, network, system, wireless

Dlink DIR-615 D3-hoz igazított fontosabb konfig fájlok:

/etc/config/dropbear
config dropbear
        option PasswordAuth 'on'
        option RootPasswordAuth 'on'
        option Interface 'lan'
        option Port '60500'
        option BannerFile '/etc/banner'

/etc/config/system
config system
        option hostname 'dlink'
        option timezone 'Europe/Budapest'
        option ttylogin '0'
        option log_size '64'
        option urandom_seed '0'
        option log_proto 'udp'
        option cronloglevel '8'
        option conloglevel '8'

config timeserver 'ntp'
        option enabled '1'
        option enable_server '0'
        list server '0.openwrt.pool.ntp.org'
        list server '1.openwrt.pool.ntp.org'
        list server '2.openwrt.pool.ntp.org'
        list server '3.openwrt.pool.ntp.org'

config led 'led_status'
        option name 'Status LED (green)'
        option sysfs 'dir-615-d:green:wan'
        option default '0'
        option trigger 'netdev'
        option dev 'eth0.2'
        option mode 'link tx rx'

config led 'led_wifi_led'
        option name 'wifi'
        option sysfs 'rt2800pci-phy0::radio'
        option trigger 'netdev'
        option mode 'link tx rx'
        option dev 'wlan0'
        option default '0'

/etc/config/wireless
config wifi-device 'radio0'
        option type 'mac80211'
        option channel '5'
        option hwmode '11g'
        option path 'platform/10180000.wmac'
        option htmode 'HT20'
        option disabled '0'
        option country '00'
        option distance '15'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'WiFi_1'
        option wmm '0'
        option encryption 'psk2'
        option key 'Cserelj_le_01'

A build folyamat bővebb leírása itt: https://openwrt.org/docs/guide-user/additional-software/imagebuilder
További image méret csökkentő tippek: https://openwrt.org/docs/guide-user/additional-software/saving_space
Telepítés utáni első lépések: https://oldwiki.archive.openwrt.org/doc/howto/firstlogin
UCI használata: https://wiki.teltonika.lt/index.php?title=UCI_command_usage

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Még eddig nem álltam neki OpenWRT csomagot összeállítani, bár szemeztem vele. Így számomra hasznos lehet a jövőben.
Köszi hogy megosztottad.

Örülök. Köszönöm, hogy elolvastad!

fixme, de ha levakarod a luci-t attol meg a konzolos uci fennmarad es lehet/ajanlott azzal configolni (persze ha azt is eltavolitod akkor telleg csak a vi marad)

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Igazad van, hamarosan kiegészítem a bejegyzést.

Ha már lúd... röfögjön. Ki3.14csázni a vi-t is, elég oda az ed is :-P

sub
-------------------------------------------------------------------------------
Az életben csak egy dolog a szép, de az épp nem jut eszembe.

Slackware Linux 14.2 | 4.4.37-janos

Köszi, jó leírás :)
Opcionálisan lehet dockeren belül build-elni, így nem kell "szemetelni" a build toolokkal a rendszert.

https://github.com/noonien/docker-openwrt-buildroot

--
arch,ubuntu,windows,libreelec,omnirom,microg
zbook/elitebook/rpi3/motog4_athene

Épp most kezdtem a konténerek között turkálni. :)
Jól fog jönni ez a github repo, köszönöm!

- Azonban a készülék kis méretű flash memóriával rendelkezik (kis == 4MB).

Hadd említsem meg, hogy a problémát a másik oldalról is meg lehet közelíteni, igaz, ez sokkal időigényesebb és költségvonzata is van, viszont cserébe sokat lehet tanulni belőle. :)

Egyébként a 4 MB flash ma már annyira kevésnek számít, hogy a nagyon alap feature-ökön kívül (TCP/IP stack + routing + NAT) nem sok mindenre fogod tudni használni az eszközödet sajnos, illetve szerintem esélyes, hogy a legtöbb 4 MB flash-sel szerelt routernél még a minimalista image is túl nagy lesz (vannak platformok, ahol a wifi driver és a hozzá tartozó toolkit többszáz kB-nyi tárhelyet elfoglal). Szóval lehet flasht bővíteni, vagy használtan/kukából beszerezni egy olyan routert, amiben legalább 8 MB flash van, persze igaz, hogy átmenetileg egy luci-mentesített openwrt is jó megoldás lehet.

Érdekességképp: nemrégiben próbálkoztam FreeBSD-re cserélni az openwrt-t a régi otthoni routeremen (just for fun, de leginkább azért, mert épp a FreeBSD az aktuális "szerelmem") és egész biztató eredményeket sikerült elérni.

A FreeBSD-ben a busybox funckionalitását a rendkívül kreatívan elnevezett bsdbox hivatott biztosítani, ami "crunching" technikával próbálja minél kisebbre összepréselni a binárisokat. A FreeBSD-t sem egyszerű 4 MB-nyi flash-be beletuszkolni (persze nem lehetetlen), kell legalább 8 MB storage, úgy már egy egész használható image-et össze lehet rakni. Az egyetlen probléma, hogy nem elég fejlett a NAND flash támogatás a FreeBSD-ben (néhány vezérlő támogatott, de annál a modellnél, amivel kísérleteztem, csak az SPI flash támogatást implementálták).

Végül egy TP-LINK WR1043ND v1-es dobozon sikerült egy működő rendszert összeraknom, de ennek a vezetékes hálózat switching/routing teljesítménye eléggé gyatra volt (valahol 200-300 Mbps körül), és az otthoni PPPoE-s netkapcsolatomat sem tudta megemészteni... minden, ami akár csak egy picit is belenyúlt az ethernet frame-ekbe (pl. VLAN tagelés, pppoe), egyszerűen "meghülyítette" a drivert, interrupt storm-ot generált, ezzel teljesen megbénítva az ethernet vezérlőt... végül kénytelen voltam elengedni a témát, tanulásnak jó volt, de inkább visszaálltam opewnrt-re, illetve nem sokkal később egy Mikrotik+pfSense kombóra álltam át otthon.

Köszönöm szépen a hasznos hozzászolást!

Jómagam is kedvelem az efajta elektronhajkurászást, de ezidáig flash chip cserére még nem adtam a fejem. :)
Ilyen kis tokkozású alkatrészeket még soha nem forrasztottam. Utánna nézek a témának.

Nekem is 1043nd-v1 van, és használok VLAN tag-eket, nem hülyíti meg. A sávszél gyenge mind wifin (~40 mbit, viszont iszonyat terhelt ez a környék), mind vezetéken (közvetlen rövid kábellel 80-100 mbit, switchről leesik 40-50re), viszont elég sok ficsőrrel is terhelve van (vendég wifik, vlan, dynamic dns, openvpn server, meg a jóisten tudja..). Addig amíg a latency jó (azzal nincs gond), illetve nincsenek egyéb anomáliák engem nem zavar.

szerk.: bocs, második olvasásra látom hogy te freebsd-ztél :)

--
arch,ubuntu,windows,libreelec,omnirom,microg
zbook/elitebook/rpi3/motog4_athene

sub

Ha a dolgot elfogultság nélkül nézzük, akkor rádöbbenünk, hogy az a probléma, hogy a Luci BLOAT :-). ASM-ben kellene optimalizálni.

XP-t minden routerre!

(rejtet sub)

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

A 98 nem annyira bloat! ;-)

--
A főnököm mindig megtartja amit ígér, ha pénzt ígér azt is!

Szóval optimalizáljuk szénné és lassítsuk le a fejlesztést azért hogy a filléres vásári vackokon is elférjen? Remek ötlet.

--
arch,ubuntu,windows,libreelec,omnirom,microg
zbook/elitebook/rpi3/motog4_athene

Szerintem hájblézer kartács már neki is állt megcsinálni :-P

Nem, mert nem windows fut rajta, és linuxos cuccokat még csak távolról, bottal se :P

Typofix után főoldalra került.

--
trey @ gépház

sub