Archiv pro štítek: openwrt

Kompilace OpenWrt pro ARM, Raspberry Pi

Komplikace OpenWrt pro ARM, Raspberry Pi


Nejrychlejší komplikace OpenWrt, pro úplné nováčky, nebojte se postavit si vlastní systém na míru, dle vlastních potřeb, díky automatizovanému build systému je to snadné.

openwrt-logo

Komplikaci provedeme na Debianu, budeme potřebovat cca 4GB volného místa a trpělivost, OpenWrt má vlastním buildovácí systém (Buildroot,  můžete na něj narazit leckde, je to populární nástroj pro sestavení embedded Linuxu) pro cross-compile (sestavuje na x86 ale výstup poběží na jiné platformě).

Nainstaluje nezbytné věci pro překlad,vývoj a git (build-essential, ať žije síla balíčkovacích systému), poté klonujeme git repozitář OpenWrt, jdeme na to.

root@havel-machine:~# apt-get install git-core build-essential libssl-dev
root@havel-machine:~# apt-get install libncurses5-dev unzip
root@havel-machine:~# apt-get install subversion mercurial

Budeme stahovat tzv. bleeding edge(trunk) verzi.

havel@havel-machine:~/Work$ git clone git://git.openwrt.org/openwrt.git
Cloning into 'openwrt'...
remote: Counting objects: 320253, done.
remote: Compressing objects: 100% (87004/87004), done.
remote: Total 320253 (delta 220190), reused 318758 (delta 219174)
Receiving objects: 100% (320253/320253), 112.66 MiB | 601.00 KiB/s, done.
Resolving deltas: 100% (220190/220190), done.
Checking connectivity... done.

Tak, máme základ OpenWrt stažen (cca 200MB), nyní potřebujeme balíčky (feeds, potravu) pro sestavení, další se budou dotahovat podle toho vše budeme chtít začlenit.

havel@havel-machine:~/Work$ cd openwrt
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds update -a
havel@havel-machine:~/Work/openwrt$ ./scripts/feeds install -a

Tak konsole na nás hodně křičela, stáhlo se cca dalších 50MB dat, ale nebojte se ničeho, pokračuje dále k sestavení.

havel@havel-machine:~/Work/openwrt$ make defconfig
havel@havel-machine:~/Work/openwrt$ make prereq
havel@havel-machine:~/Work/openwrt$ make menuconfig

Po poslední příkazu se dostáváme k textovému menu, zde si vybereme co chceme sestavit, pro jakou architekturu, jaké balíčky zahrneme (ty se následně stáhnout ve formě zdrojového kódu a zkompilují), jak krásné a jednoduché.

openwrp-compile-menuconfig

Nejklíčovější je výběr správné cílové architektury (target), otevřete menu, vyberte Broadcom BCM2708/BCM2709 pro Raspebrry Pi 2, stejným způsobem můžete přeložit OpenWrt pro cokoliv jiného, výběr je velmi široký.  openwrp-compile-menuconfig-bcm27xx

Doporučuji si pohrát s v menu Target images -> Boot SD card partition size a Root filesystem partition size , což jsou velikosti oddílů pro boot a root, jako filesystém nechávám ext4.

V kernel -> Wireless si vyberte ovladače pro bezdratové adaptéry pokud je budete používat, já jsem si ještě začlenil VLAN (802.1q), zabbix agenta, LuCI, LuCI Asterisk, coova-chilli a pár dalších, hodí se i wpa_supplicant, obecně menuconfig je velmi bohatý projděte se ho až budete mít chvilku, vše co zaškrtáte má vliv na dobu komplikace, množství stahovaných dat i výslednou velikost image.

Jdeme buildovat (komplikovat), pozor z menuconfig vyberte Save, uložte do souboru .config a až poté exit.

*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
havel@havel-machine:~/Work/openwrt$ make -j 3
 make[1] world
 make[2] tools/install
 make[2] package/cleanup
 make[3] -C tools/patch compile
 make[3] -C tools/expat compile
 make[3] -C tools/sstrip compile
 make[3] -C tools/make-ext4fs compile
 ... čekejte a čekejte ...
 ... pokud jste pozorní všimnete si, že openwrt si samo sestavilo gcc (překladač, či obecně tzv. toolchain) pro své pokračování v překladu ...
 make[3] -C toolchain/gcc/final compile
 make[3] -C toolchain/gcc/final install
 make[2] target/compile
 make[3] -C target/linux compile
openwrt-compile-top-cpuload
Překladače se neflákají a vytěžují systém, parametr -j 3 v příkazu make povoluje právě instance překladače zároveň.

Hotovo, výstup (připravený image) najdete v openwrt/bin/ , OpenWrt build automaticky sestavil image pro modely Raspberry b,b+ a CM (Compute Module).

openwrt-brcm2708-bcm2708-rpi-b-ext4-sdcard.bin
openwrt-brcm2708-bcm2708-rpi-b-plus-ext4-sdcard.bin
openwrt-brcm2708-bcm2708-rpi-cm-ext4-sdcard.bin

Instalace, pomocí nastroje dd vemte potřebný image a zapište na SD kartu /dev/sdX , dd if=image of=/dev/sdX bs=2M a je nainstalováno.

Kde sehnat balíčky pro opkg ?

OpenWrt obsahuje balíčkovací systém opkg, jde o repositáře s předkompilovaným software pro danou platformu, není nutné tedy software (userspace + ovladače) kompilovat pokud nechcete, ale ta možnost tu stále je. Pro úplnost, balíčky jsou soubory s koncovkou .ipk např. iperf_2.0.5-1_brcm2708.ipk.

http://wiki.openwrt.org/doc/packages

Pro Broadcom 2708 a 2709 tedy Raspberry Pi 2 použijte tento předkompilovaný repositář, nastavte si ho v /etc/opkg.con a udělejte opkg update, získáte přístup k rozsáhlému množství software.

https://downloads.openwrt.org/snapshots/trunk/brcm2708/generic/packages/base/

Hotovo, tak kompilujte, pokud bude zájem je možné si příště ukázat patchnutí a kompilace OpenWrt jako metarouter Mikrotik s instalací VoIP telefonní ústředny Asterisk, za velmi nízké náklady tak získáte router s Wifi, až ethernet 10portů pro LAN a VoIP telefony.

Užívejte moudře, díky za pozornost. František Havel, MOJEservery.cz.

OPENWRT: Realizace levné VPN sítě TP-LINK WR1043ND, Nexx WT3020F

Ukázkové nasazení alternativního firmware OpenWrt v routerech TP-LINK a Nexx s cílem realizace levné firemní VPN (Virtuální privátní sítě) infrastuktury (propojení poboček s centrálou).

Za málo peněz hodně muziky, když potřebujete ze svého routeru vymáčknout něco navíc zkuste alternativní firmware OpenWrt a možná budete překvapeni.

Proč jsme použili OpenWrt? Narazili jsme na potřeby našeho nového klienta, malá firmička s centrální office (zde leží server a data, nějaky přechod do cloudu zatím nehrozí) a tři mikro-pobočky (pro představu mikro = 1-2 lidi = 1-2 stolní PC, 1 tiskárna, připojení přes místní wifi, bez veřejné statické IP, potřeba se připojit specializovaných programem na server do centrály).

Ilustrace dokresluje topologii budoucí VPN sítě.

blog-penwrt-vpn

Situace vcelku jasná, další požadavek byl velmi levně :-(. (nedáte si na wifi linku za 400Kč/měsíčně CISCO VPN za “majlant”, navíc jsme dostali informaci, že jednu z poboček už dvakrát vykradli, to je svět, že).

S OpenWrt a OpenVPN s tím lze něco dělat, železo “zdarma” a placená bude práce, tedy konfigurace, jelikož VPN routery se navíc mají na pobočky pouze zaslat pošlou poštou s připravenou konfigurací a vzdáleně dokonfigurovat.

TP-LINK WR1043ND – centrála ~ cena 1000Kč starší model

  • Atheros AR9132@400MHz
  • 32MB RAM
  • 8MB FLASH
  • 4x LAN, 1x WAN

Otestována rychlost OpenVPN, s AES se lze dostat na ~ 8Mbit, při použití “horšího” šifrování (3DES) lze dostat ~ 12Mbit při cca 40% zátěži CPU. (v přípádě problému dle dohody lze tento prvek vyměnit za rychlejší, ale vzhledem k rychlostem přípojek poboček zatím asi netřeba).

blog-openwrt-1   blog-openwrt-4  blog-openwrt-6 blog-openwrt-7 blog-openwrt-8  blog-openwrt-10

Jako OS použit zmiňovaný OpenWRT, poslední stable verze Barrier Braker, konfigurace služby OpenVPN, routing a firewall.

Nexx WT3020F – pobočky, malý zázrak za 15$

  • model WT3020F
  • MIPS MT7620n, 580MHz
  • 64MB RAM
  • 8MB FLASH
  • 2 x Ethernet 100 Mbps
  • 1x WIFI 2.4 GHz 802.11n
  • 1x USB host (podpora pro 3G GSM moduly)
  • 1x Serial

nexx.wt3020a.top nexx.wt3020a.bottom nexx.wt3020a.top.board

WT3020 je opravdu takový malý zázrak, hned jsme objednali i kousky na sklad, pro případ potřeby, nainstalováno OpenWrt, vytvořen OpenVPN tunel v režimu klienta, na LAN portu připraven DHCP server, dopředu před celou akcí rozmyšlen adresní plán pro rozsahy jednotlivých poboček a centrály.

Lokální přístup k internetu není směrován do VPN tunelu, směruje se aktuálně pouze rozsah pro server a do budoucna je plánováno osazení VoIP telefonů na pobočky a připojení do centrály opět stejným VPN tunelem s možností implementace QoS pro VoIP provoz.

A to je vše, zde je pěkně vidět, že i za málo peněz lze udělat hodně muziky a postavit VPN pobočkou síť nemusí nutně stát velké peníze a drahý hardware, vše záleží na možnostech a potřebách klienta, z toho je potřeba zvolit vhodné rešení.

VPN pro všechny! Máte dotazy k technologii VPN či OpenWrt, chcete pomoci s nasazením podobného řešení pro mále pobočky, pokladny, krámky (realizujeme VPN i přes GSM síť) nebo se jen chcete poradit, napište na kontaky.

Díky za Váš čas. František Havel