OpenWrt/LEDE Linux

OPENWRT

Az OpenWrt egy nyílt forrású operációs rendszer beágyazott rendszerek számára, elsősorban routerek és egyéb hálózati eszközök szerepelnek a támogatott eszközök listáján, jellemzően ilyesmi paraméterekkel: 266-550Mhz, 4-8MB tárhely, 32-128MB RAM.

lede1.jpg
Parancssorból is elérhető, de van egy szimpatikus LuCI nevű webes felülete, amin a hagyományos routerekhez hasonlóan végezhetünk el beállításokat, ám jóval többféle funkcióból válogathatunk.
Van egy alaptelepítés, tűzfal, DNS, DHCP, NTP szerver, WiFi beállítások, stb.. ami mellé a rendelkezésünkre álló tárhely lehetőségeihez mérten egyéb csomagokat is telepíthetünk.
Egyéb szolgáltatás, mint pl: VPN, dynDNS, samba, (ez praktikus, amennyiben van USB csatlakozás a routeren, és NAS-t vagy hálózati nyomtatót készítünk belőle) és persze a magyar nyelv is telepíthető.. meg még vagy 3000 csomag.

lede2.jpg

Első lépésként keressük ki a routerünket a támogatott eszközök listájából:
https://wiki.openwrt.org/toh/start

A telepítés egy általános router esetében annyiból áll, hogy belépünk a router IP címén keresztül a menüjébe, és feltöltjük a fenti támogatott eszköz listájából - a típushoz megfelelő - letöltött "squashfs-factory.bin" végű binárist. (előtte ajánlják a gyári legújabb firmware frissítését, amennyiben az adott eszközhöz létezik)

Megjegyzés: a másik "squashfs-sysupgrade.bin" OpenWrt->OpenWrt, vagy OpenWrt<->LEDE irányba történő frissítésre való, nem a gyári firmware cseréjére!

Figyelmeztetés: van olyan letölthető firmware, mely nem tartalmazza a WebGUI-t, ezért érdemes a művelet előtt a támogatott eszközöknél szereplő leírást tanulmányozni, mert könnyen megeshet, hogy telnet-en keresztül kell megejtenünk az első beállításokat, és koránt sem biztos, hogy a későbbiekben fel fog férni az eszköz tárhelyére a WebGUI! Én szóltam!

Telepítés után az eszköz új IP címe 192.168.1.1, a belépési felhasználónév root, jelszó nincs.. ezen érdemes változtatni.

Természetesen egyéb ARM rendszerű gépekre is telepíthető, mint például a Raspberry (erre a Raspbian-nál már bemutatott lemezkép memóriakártyára történő felmásolásával lehet telepíteni az OpenWrt-t is), vagy a még kisebb - routerre hajazó paraméterű minigép - Onion Omega2 (580Mhz, 64MB RAM, 16MB belső tárhely)
Bár az RPI Zero W és az Omega2 árban és fogyasztásban is hasonlóak, a RPI teljesítménye és támogatottsága sokkal jobb, viszont a fizikai mérete az Omega2-nek kisebb (ESP8266-hoz hasonló méretű), így bizonyos projektekhez jobb lehet. Az Omega2 LEDE rendszerrel előtelepítve vásárolható.

LEDE

AZ OpenWrt-ből kivált egy éve egy projekt, a LEDE, aminek fejlesztése - legalábbis számomra - kissé dinamikusabbnak tűnik, az OpenWrt-ből ugyanis már elég régen nem adtak ki stabil kiadást. Viszont a nemrég napvilágra került WiFi WPA2 protokoll KRACK sérülékenységét ebben szinte azonnal javították, így márcsak ezért is érdemes LEDE-re váltani. Tehát éppen aktuális régi routerünk frissítése, mivel a régi eszközökre gyártói javítást várni gyakorlatilag felesleges.

Bár a két irány állítólag összeolvad a közeli jövőben, ismét az OpenWrt név alatt futva, ennek még semmi kézzelfogható jelét nem láttam, így váltottam. Szerencsére a LEDE-re minden további nélkül lehet sysupgrade image-el frissíteni az OpenWrt-ben levő beállításaink megtartásával.
LEDE esetén figyeljünk arra, hogy a 32MB RAM-al és 4MB tárhellyel szerelt régi routereinket nem nagyon támogatják, vagy csak telnet/parancsoros megoldással tudjuk beállítani, vagy kézzel kell machinálnunk, hogy webes felülethez jussunk...

Támogatott LEDE eszközök listája:
https://lede-project.org/toh/start

Frissítés OpenWrt-ről LEDE-re, a nehezebb út

A probléma leírása:
Van egy TP-Link MR3220 routerem, ami éppen 32MB RAM-al és 4MB tárhellyel szerelt, jelenleg OpenWrt+LuCI felülettel, a letölthető LEDE image-ben viszont nincs WebGUI és a rendelkezésre álló szabad hely sem elegendő a telepítéséhez.

mr3220.jpg

A megoldás módja:

  • A routeren van USB csatlakozás, tehát egy régi 1GB pendrive-ra teszem azt a részt, ami nem fér az alap 4MB-ba
  • Ehhez bele kell tennem az alapimage-be az f2fs fájlrendszer támogatását (az ext4 nem fér bele)
  • Ahhoz hogy a fenti beleférjen, további csomagokat kell eltávolítani az alaprendszerből, úgy mint a komplett IPv6 támgatás, a ppp és legnagyobb sajnálatomra a tűzfal, így a rá kötött gépek nem fognak tudni kijutni az internetre, amíg a folyamat nem fejeződik be sikeresen (de aki nem mer, az nem nyer)
  • Sajnos nemcsak a tárhely, de a memória is problémás, ezért tüneti kezelésként a zram-swap csomagot is beletesszük, hogy az opkg ne fagyjon le, míg feltelepíti a luci-t.
  • A végső megoldás a memóriagondra az, hogy a pendrive-on két partíciót hozok létre, az egyik egy f2fs, a másik pedig egy 64MB-os linux-swap típusú, ezzel a mennyiségű virtuális memóriával a LEDE már stabil(abb)an fut

Lépések:

Előkészítjük az Ubuntu/Debian asztali gépünket egy kis fordításra:

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

Az MR3220 letöltési mappájában (amit a támogatott eszközök letöltési linkből tudunk meg) szétnézve:
https://downloads.lede-project.org/releases/17.01.4/targets/ar71xx/generic/

Megtalájuk a megfelelő imagebuilder programot, ami esetünkben ez:
lede-imagebuilder-17.01.4-ar71xx-generic.Linux-x86_64.tar.xz

Letöltjük, kicsomagoljuk, belépünk a kitömörített mappába, majd az alábbi paraméterekkel futtatjuk:

make image PROFILE=tl-mr3220-v1 PACKAGES="block-mount kmod-fs-f2fs kmod-usb-storage mkf2fs f2fsck kmod-usb-ohci kmod-usb-uhci zram-swap -ppp -ppp-mod-pppoe -ip6tables -odhcp6c -kmod-ipv6 -kmod-ip6tables -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 -ppp-mod-pppoe -iptables -firewall -libip6tc -libxtables -kmod-nf-ipt -kmod-nf-conntrack -kmod-ipt-conntrack"

Ha netán valakinek pont ilyen routere van és szeretné frissíteni hozzám hasonló módon, legyen a vendégem:
lede_mr3220_f2fs.zip

A sysupgrade image fájlt feltöltjük az OpenWrt-be (Rendszer menü->Firmware frissítés), kínosan ügyelve, hogy bejelöljük a "Beállítások megtartása" jelölőnégyzetet. E közben a háttérben már régen előkészítettük a pendrive-ot a fent írt két partícióval. Újraindítás után jön az ínyenc rész: a korábbi IP címen elérhető a router, de webes felülete már nincs. SSH-n jelentkezünk be ugyanazzal a névvel és jelszóval, amivel korábban a webes felületre.
Behelyezzük a router USB csatlakozójába a pendrive-ot, és elvileg ez a parancs kiírja milyen meghajtókat ismert fel a router:

block info

Remélhetőleg a /dev/sda1 az adatpartíció, a /dev/sda2 pedig a swap partíció.
Ha nem formáztuk le az első partíciót, most ezzel a paranccsal megtehetjük:

mkfs.f2fs /dev/sda1

Az alábbi parancs mindent átmásol az aktuális overlay mappából a pendrive-ra:

mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt

Ez a parancs legenerálja a Linux által automatán csatolt meghajtók listáját:

block detect > /etc/config/fstab; \
sed -i s/option$'\t'enabled$'\t'\'0\'/option$'\t'enabled$'\t'\'1\'/ /etc/config/fstab; \
sed -i s#/mnt/sda1#/overlay# /etc/config/fstab; \
cat /etc/config/fstab;

Nyomunk egy újraindítást:

reboot

Az alábbi parancsot kiadva az overlayfs:/overlay mappában immár láthatóan dúskálnunk kell a helyből:

df

Majd kis frissítés:

opkg update
opkg install fdisk
fdisk -l

Láthatjuk milyen néven fut a swap partíciónk, ezúttal /dev/sda2, be is állítjuk:

mkswap /dev/sda2
swapon /dev/sda2

És egy végső parancs:

opkg install luci

Ezután már egy sokkal barátibb webes felületen érhetjük el minden beállítását. A luci csomag függőségként feltesz minden alapcsomagot, többek között a tűzfalat is, így ez után a LAN porton, illetve WiFi-n felcsatlakozó gépek már kijutnak az internetre is. Sőt, özön helyünk van, attól függően milyen pendrive-ot áldoztunk be, rengeteg egyéb csomagot feltehetünk, vagy akár megosztva NAS-ként is használhatjuk... egy jó tanács: a pendrive-ot ne húzzuk ki, max addig, míg kikapcsoljuk, készítünk egy biztonsági mentést, hogy ne kelljen ezt újra eljátszani, ha netán tönkremegy.

Frissítés OpenWrt-ről LEDE-re, valamivel könnyebben

Adott egy TP-Link WDR 3600 router 128MB RAM-al, 8 MB tárhellyel, két USB porttal. Bőséges. Ennek ellenére nem szeretném, ha valami félreértés áldozatául esnék, és WebGUI nélkül maradnék, így az előbb ismertetett módon letöltöttem az imagebuilder-t, és a luci-t direktben hozzáadtam az alapcsomagokhoz, pár aprósággal, pl VPN, DDNS, USB tárhely támogatása (a szükséges fájlrendszerben még bizonytalan vagyok, így majd később telepítem opkg-vel), meg az összes magyar nyelvi csomaggal, mert bármilyen meglepő, de a cikk nyelvéhez illeszkedő eszközöket szeretek használni.wdr3600.jpg

make image PROFILE=tl-wdr3600-v1 PACKAGES="luci luci-app-ddns luci-i18n-ddns-hu luci-i18n-openvpn-hu luci-mod-admin-full luci-app-firewall luci-theme-bootstrap openvpn-openssl ddns-scripts luci-app-openvpn luci-i18n-base-hu luci-i18n-firewall-hu kmod-usb-storage block-mount"

Ha netán valakinek pont ilyen routere van és szeretné frissíteni hozzám hasonló módon, legyen a vendégem:
lede_wdr3600.zip

A sysupgrade image fájlt feltöltjük az OpenWrt-be (Rendszer menü->Firmware frissítés), kínosan ügyelve, hogy bejelöljük a "Beállítások megtartása" jelölőnégyzetet, újraindulás után ugyanazokkal a beállításokkal, de megújulva tér vissza routerünk. Ez esetben nem kell trükközni, 8MB tárhellyel elő tudunk mindent készíteni, a 128MB RAM pedig elegendő a rendes üzemszerű működéshez.

Kapcsolódó irodalom:

OpenWrt eszközök hackelése haladóknak:
http://bkil.blogspot.hu/search/label/openwrt

OpenWrt képfájl készítő:
https://hub.docker.com/r/bkil/openwrt-image-generator/

OpenWrt telepítése vizuális típusúaknak:
http://www.gubamm.hu/toxin/

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr4413196998

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

krump_lee 2019.01.17. 21:27:48

Szia, jól gondolom, hogy openwrt-re telepíthető a domoticz ?

eNeS 2019.01.18. 22:08:01

@krump_lee: Igen, úgy látom 2017 nyara óta a Domoticz benne van az OpenWRT repo-ban. Még én magam nem telepítettem, de rendeltem hozzá egy 16MB flash-el rendelkező routert tesztre. Ugyanis a tárhely viszont úgy olvastam kritikus pont.

krump_lee 2019.01.19. 13:37:17

igen, ezeket vágom, de nem volt eddig lelki erőm nekiállni, nekem xiaomi 3g routerem van, a napokban nekiugrok, leet, beszámolok a tapasztalatokról

Támogatók:
okosotthon.jpg
allterco.jpg

Utolsó kommentek

  • faterkm: Jó ötlet, köszönöm. Most kicsit megyek utó-nyaralni, de később kipróbálom és mindenképpen referálo... (2024.08.30. 17:35) Tasmota firmware
  • eNeS: Az 5V az jó ha stabil, viszont a 3V-os tápra az ESP elé tehetnél egy kicsit nagyobb kondenzátort p... (2024.08.29. 19:34) Tasmota firmware
  • faterkm: Köszönöm, hogy foglalkozol a problémámmal. További infók: a "rendszerem"-ben 5 ilyen modul van, és... (2024.08.29. 19:32) Tasmota firmware
  • eNeS: @faterkm: az nem jó jel. 5V 3A-es tápegyésggel próbáltad már? Nem kizárt egyébként a lapon levő fe... (2024.08.29. 17:10) Tasmota firmware
  • faterkm: Pontosan ezt valósítottam meg: bitekmindenhol.blog.hu/2018/02/03/wifi_mini_rele_5v_esp-01s és azt ... (2024.08.29. 17:06) Tasmota firmware
  • Utolsó 20

Címkék

433mhz (12) alkatrész (22) alternatív kapcsoló (2) amg8833 (1) analóg (2) android (1) arduinoeasy (5) audio (1) automatizálás (3) bemenet (3) bk7231n (1) ble (1) blitzwolf (4) bluetooth (9) bridge (2) camhi (2) csináld magad (22) dimmer (1) diy (28) do-it-yourself (27) domoticz (11) ds18b20 (1) ebay (3) érintő (2) érintőkapcsoló (7) érzékelő (11) esp-01 (2) esp32 (11) esp8266 (21) espeasy (2) espurna (1) esp projekt (18) Eview7 (1) ewelink (1) feldolgozó (1) felhő (1) fényérzékelő (1) firmware (7) flame detector (1) fogyasztásmérő (5) ftdi (1) füstérzékelő (1) gázérzékelő (1) gpio (1) hang (4) hangjelző (1) hőmérséklet (22) https (1) ikea (1) impulzus relé (1) izzó (2) javascript (1) jelenlétérzékelő (3) kamera (18) keresztkapcsoló (1) kézmozdulat (1) kijelző (3) kimenet (21) konnektor (8) lan (9) lángérzékelő (2) led (3) linux (4) logic level converter (1) lua (1) lux (1) maple mini (2) mcu (3) micropython (1) mikrovezérlő (2) milkv (1) mobil (1) mosfet (1) mozgás (5) mpyeasy (4) mq-2 (2) mqtt (3) működtető rendszer (5) multiroom (1) nedvesség (1) neo (1) neopixel (1) Node-RED (1) nvr (4) nyitás (7) okosház (4) okosizzó (3) okosotthon (8) oled (1) onvif (8) openbeken (1) opencv (1) openwrt (4) orange pi (4) páratartalom (6) php (1) pico (1) pi pico (2) poe (1) programozás (9) projekt (25) proximity olvasó (1) python (2) raspberry (14) raspberry projekt (6) raspbian (1) reed (1) relé (27) rf (2) rgb (6) rock pi (1) rögzítő (2) rp2 (1) rpieasy (1) rtc (1) shelly (24) smartwise (1) solid state relay (1) sonoff (20) SonOTA (1) soros (1) ssl (1) ssr (1) stm32 (4) szenzor (11) szilárdtest relé (1) szintillesztő (2) sziréna (1) szkript (3) szünetmentesítés (4) t1 (1) tasmota (8) távirányító (3) Telegram (1) termékteszt (85) termosztát (2) touch (2) ups (5) usb (7) usb hub (1) valós idejű óra (1) vezérlések (20) vezérlő (5) világítás (5) villanykapcsoló (12) webkamera (1) wiegand (1) wifi (32) ws2812 (1) xiaomi (5) xm (4) xmeye (4) yoosee (1) zigbee (16) zwave (3) Címkefelhő
süti beállítások módosítása