Routerboard OpenWrt: Porovnání verzí
(Není zobrazeno 25 mezilehlých verzí od stejného uživatele.) | |||
Řádek 13: | Řádek 13: | ||
== Základní princip ve zkratce == | == Základní princip ve zkratce == | ||
− | * Zavaděč v Routerboardu umí nabootovat (po nastavení v "BIOSu") initramfs ELF image přes TFTP - tento image si můžeme představit jako LiveCD, ze kterého dočasně | + | * Zavaděč v Routerboardu umí nabootovat (po nastavení v "BIOSu") initramfs ELF image přes TFTP - tento image si můžeme představit jako LiveCD, ze kterého dočasně nabootujeme v RB jiný systém |
* V nabootovaném Linuxu lze provést trvalou instalaci do NAND flash na desce RB - instalovat můžeme klidně jinou verzi OpenWrt, než kterou jsme dočasně nabootovali přes TFTP | * V nabootovaném Linuxu lze provést trvalou instalaci do NAND flash na desce RB - instalovat můžeme klidně jinou verzi OpenWrt, než kterou jsme dočasně nabootovali přes TFTP | ||
* Podobným postupem lze vrátit zpět RouterOS, viz [http://wiki.mikrotik.com/wiki/Manual:Netinstall RB NetInstall] | * Podobným postupem lze vrátit zpět RouterOS, viz [http://wiki.mikrotik.com/wiki/Manual:Netinstall RB NetInstall] | ||
Řádek 32: | Řádek 32: | ||
## x - exit setup | ## x - exit setup | ||
# RB se restartuje a měl by nabootovat image z DHCP/BOOTP serveru | # RB se restartuje a měl by nabootovat image z DHCP/BOOTP serveru | ||
− | # | + | # Pokud se neobjeví shell <code>root@OpenWrt:/#</code> automaticky, tak stisknout v terminálu Enter |
− | #* <code>wget2nand http:// | + | # Z nějakého důvodu mi zlobilo resolvování DNS jmen, musel jsem provést <code>cp /tmp/resolv.conf.auto /etc/resolv.conf</code>, abych měl v resolv.conf správné DNS servery (10.107.4.100,10.107.4.129) |
− | #* Volitelně si lze stáhnout soubory openwrt-ar71xx- | + | # Pomocí wget2nand stáhnout do RB image finálního systému, který se nainstaluje do NAND flashky (RB musí mít přístup do internetu): |
+ | #* <code>wget2nand http://lide.hkfree.org/~pavkriz/hkfree/routerboard-openwrt/12.09/</code> | ||
+ | #* Volitelně si lze stáhnout soubory openwrt-ar71xx-mikrotik-vmlinux.elf a openwrt-ar71xx-mikrotik-rootfs.tar.gz do HTTP serveru spuštěného lokálně v síti, ke které je RB připojen (třeba na PC), a odkázat wget2nand na tento server (pozor, názvy souborů jsou evidentně v posledním buildu trochu jiné, než podle originálního návodu; v případě problémů se podívat do souboru /sbin/wget2nand, jak se mají tyto 2 soubory jmenovat) | ||
# vrátit v BIOSu bootování na: n - boot from NAND, if fail then Ethernet | # vrátit v BIOSu bootování na: n - boot from NAND, if fail then Ethernet | ||
Řádek 41: | Řádek 43: | ||
* v menuconfig: | * v menuconfig: | ||
** Target System: Atheros AR7xxx/AR9xxx | ** Target System: Atheros AR7xxx/AR9xxx | ||
− | ** Subtarget: Devices with NAND flash | + | ** Subtarget: Mikrotik Devices with NAND flash |
− | ** Target Images: ramdisk ( | + | ** Target Images: ramdisk a tar.gz (tar.gz je image pro trvalou instalaci na RB) |
+ | |||
+ | * Většina balíků se podle výchozího configu nekompiluje, pokud chceme např. quaggu, tak je třeba ji vybrat (Network -> Routing nad Redirection -> <M> Quagga). | ||
+ | * Zkompilovat vše do balíků dá trochu práci s vybíráním v menuconfig, dal by se použít config z http://downloads.openwrt.org/snapshots/, ale měl jsem s kompletní kompilací problémy (některé zrojáky se nepodařilo stáhnout). Bohužel ve snapshots není kompilované verze pro mikrotiky, takže pokud chcete poslední verzi, kompilaci se nevyhnete. | ||
+ | * Verze 12.09 pro mikrotiky zkompilovaná je, takže proto je v postupu výše tato verze použita, instalovaný systém si tedy stahuje balíky z http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/nand/ a tím se vyhneme nutnosti kompilace. | ||
+ | |||
+ | == OpenWrt běží, co dál? == | ||
+ | |||
+ | Filesystém je standardně připojený v RW režimu, používá yaffs filesystem, takže můžete vesele zapisovat jak je potřeba. Pro představu nainstalovaný OpenWrt s pár balíčky zabírá v RB cca 18MB. Z celkové kapacity NAND flash si také ukrojí pár jednotek MB bootloader a režije filesystému. Takže i v RB se 64MB NAND flash by měla zbýt fůra místa pro instalaci balíčků. | ||
+ | |||
+ | === Balíčky === | ||
+ | |||
+ | Pokud OpenWrt úspěšně naběhl z NAND flash, bude třeba do něj doinstalovat dost věcí formou balíků. | ||
+ | Pokud jste k instalaci použili výše uvedený image, budou případné balíky instalovány z http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/nand/ | ||
+ | |||
+ | Co se může hodit: | ||
+ | * kmod-ath5k (podpora karet AR5xxx jako např. CM9) | ||
+ | * kmod-tun (hodí pro pro různé VPN, v kombinaci s aircrack a podobné hrátky) | ||
+ | * kmod-usb2 (podpora USB host, pokud má RB USB) | ||
+ | * kmod-usb-storage (podpora USB mass storage, tedy USB flashky) | ||
+ | * kmod-mmc-spi (podpora MicroSD karet do slotu na desce) | ||
+ | * mc (pokud v terminálu nefungují F1 až F12 klávesy, použijte Esc-1 až Esc-12) | ||
+ | * quagga | ||
+ | * wireless-tools (iwconfig a spol.) | ||
+ | * aircrack-ng (penetrační testování) | ||
+ | |||
+ | Příklad doinstalování balíků: | ||
+ | |||
+ | opkg update | ||
+ | opkg install kmod-ath5k | ||
+ | opkg install kmod-tun | ||
+ | opkg install kmod-usb2 | ||
+ | opkg install kmod-usb-storage | ||
+ | opkg install kmod-mmc-spi | ||
+ | opkg install mc | ||
+ | opkg install quagga | ||
+ | opkg install wireless-tools | ||
+ | opkg install aircrack-ng | ||
+ | |||
+ | Pokud se stažení balíčků nedaří kvůli chybné konfiguraci sítě, mrkněte nejdříve do následující kapitoly a nastavte si správně síť. | ||
+ | |||
+ | === Konfigurace === | ||
+ | |||
+ | |||
+ | Následující poznámky jsou relevantní hlavně v případě, že z RB chcete mít router na AP nebo třeba zařízení pro penetrační testování. Pokud RB bude sloužit jako domácí (WiFi) router, tak je výchozí nastavení celkem dobře použitelné a obvyklé věci lze dokonfigurovat i přes webové rozhraní luci. | ||
+ | |||
+ | * Nastavit heslo roota | ||
+ | * Ve výchozím stavu je aplikován firewall původně určený pro klasický domácí router, kde např. z WAN portu (eth0, ten port s POE) je blokován provoz (takže se ani na SSH přes tento port nepřipojíte), nejjednodušší je firewall zrušit. | ||
+ | * Patrně také budete chtít vypnout lokální DHCP server a DNS server. | ||
+ | * OpenWrt má v /etc/config/network poměrně svérázný způsob konfigurace sítě, pokud chcete mít vše ve svých rukou, je nejjednodušší jeho networking subsystém úplně vypnout a vše si ručně nakonfigurovat v /etc/rc.local | ||
+ | |||
+ | # nastavit heslo roota | ||
+ | passwd | ||
+ | # vypnout firewall | ||
+ | /etc/init.d/firewall disable | ||
+ | # vypnout dhcp server | ||
+ | /etc/init.d/odhcpd disable | ||
+ | # vypnout dns server | ||
+ | /etc/init.d/dnsmasq disable | ||
+ | # vypnout vychozi konfiguraci site (lan a wan) | ||
+ | /etc/init.d/network disable | ||
+ | |||
+ | Do /etc/rc.local si dát veškerou konfiguraci po startu, u mě: | ||
+ | # loopback | ||
+ | ifconfig lo 127.0.0.1 | ||
+ | # eth0 static | ||
+ | ifconfig eth0 10.107.218.24 netmask 255.255.255.240 | ||
+ | route add default gw 10.107.218.17 | ||
+ | |||
+ | Pokud je /etc/resolv.conf jen link, tak smazat a založit normální soubor: | ||
+ | rm /etc/resolv.conf | ||
+ | touch /etc/resolv.conf | ||
+ | |||
+ | Do /etc/resolv.conf nastavit správně DNS: | ||
+ | nameserver 10.107.4.100 | ||
+ | nameserver 10.107.4.129 |
Aktuální verze z 28. 5. 2014, 16:23
Návod, jak rozběhat Linuxovou distribuci OpenWrt na Mikrotik Routerboard RB433, RB411 a dalších.
Obecně vychází z http://wiki.openwrt.org/toh/mikrotik/rb433 a http://wiki.openwrt.org/toh/mikrotik/rb411
Obsah
Co budeme potřebovat
- RouterBoard, na který chceme Linux nainstalovat (testováno s RB433UAH)
- Sériový NULL MODEM kabel, např. z GESu (pozor, nejdřív mi omylem prodali F/F kabel, který nebyl překřížený, kdyby něco nefungovalo, tak ověřit, že piny 2 a 3 jsou mezi konci překřížené)
- PC se sériovým (COM) portem nebo redukci USB-RS232 (USB-COM)
- UTP kabel pro připojení RB do lokální sítě nebo alespoň s PC napřímo
- (volitelně) druhý RB (který třeba už máme doma jako router), který bude sloužit jako DHCP/BOOTP+TFTP server (jinak lze použít i PC)
Základní princip ve zkratce
- Zavaděč v Routerboardu umí nabootovat (po nastavení v "BIOSu") initramfs ELF image přes TFTP - tento image si můžeme představit jako LiveCD, ze kterého dočasně nabootujeme v RB jiný systém
- V nabootovaném Linuxu lze provést trvalou instalaci do NAND flash na desce RB - instalovat můžeme klidně jinou verzi OpenWrt, než kterou jsme dočasně nabootovali přes TFTP
- Podobným postupem lze vrátit zpět RouterOS, viz RB NetInstall
Postup
- Zazálohovat licenci z Mikrotiku: Winbox: System - License - Export, uložit na PC
- Stáhnout initramfs image, ze kterého bude schopen RB nabootovat a uložit si ho pod názvem openwrt.img; initramfs image jsem připravil zde: http://lide.hkfree.org/~pavkriz/hkfree/routerboard-openwrt/2014-05-25/openwrt-ar71xx-mikrotik-vmlinux-initramfs.elf (je to zkompilovane v uvedene datum z master branch z GITu dle nize uvedeno navodu)
- Nahrát initramfs na TFTP server pod názvem openwrt.img a nastavit BOOTP/DHCP tak, aby tento soubor nabízelo; pokud máte DHCP server spuštěn na jiném RB, ke kterému je tento RB připojen, je to jednoduché (jinak použijte třeba dnsmasq v Linuxu nebo TFTPD32 pro Windows):
- Nahrát soubor openwrt.img do RB, kde běží DHCP server (drag-and-drop do Files)
- Nastavit IP - DHCP Server - DHCP - editovat default - bootp = dynamic
- Nastavit IP - DHCP Server - Networks - editovat vaši podsíť (např. 10.107.218.16/28) - Boot file image = openwrt.img
- Nastavit IP - TFTP - přidat server (plus) - IP adresses = vaše podsíť (např. 10.107.218.16/28), Req. Filename = openwrt.img, Real Filename = openwrt.img
- Připojit se sériovou konzolí na COM port RB (toho, kam chceme flashnout Linux) a sputit nějaký terminál (např. Putty, Serial, COMx, 115200, 8N1)
- Nastartovat RB, po výzvě "Press any key within 2 seconds to enter setup." v terminálu stisknout klávesu a v "BIOSu" RB nastavit:
- o - boot device
- e - boot over Ethernet
- x - exit setup
- RB se restartuje a měl by nabootovat image z DHCP/BOOTP serveru
- Pokud se neobjeví shell
root@OpenWrt:/#
automaticky, tak stisknout v terminálu Enter - Z nějakého důvodu mi zlobilo resolvování DNS jmen, musel jsem provést
cp /tmp/resolv.conf.auto /etc/resolv.conf
, abych měl v resolv.conf správné DNS servery (10.107.4.100,10.107.4.129) - Pomocí wget2nand stáhnout do RB image finálního systému, který se nainstaluje do NAND flashky (RB musí mít přístup do internetu):
wget2nand http://lide.hkfree.org/~pavkriz/hkfree/routerboard-openwrt/12.09/
- Volitelně si lze stáhnout soubory openwrt-ar71xx-mikrotik-vmlinux.elf a openwrt-ar71xx-mikrotik-rootfs.tar.gz do HTTP serveru spuštěného lokálně v síti, ke které je RB připojen (třeba na PC), a odkázat wget2nand na tento server (pozor, názvy souborů jsou evidentně v posledním buildu trochu jiné, než podle originálního návodu; v případě problémů se podívat do souboru /sbin/wget2nand, jak se mají tyto 2 soubory jmenovat)
- vrátit v BIOSu bootování na: n - boot from NAND, if fail then Ethernet
Vlastní kernel a systém
Pokud si chce někdo buildnout svůj systém, tak postupovat podle http://wiki.openwrt.org/toh/mikrotik/rb433 a http://wiki.openwrt.org/doc/howto/buildroot.exigence:
- v menuconfig:
- Target System: Atheros AR7xxx/AR9xxx
- Subtarget: Mikrotik Devices with NAND flash
- Target Images: ramdisk a tar.gz (tar.gz je image pro trvalou instalaci na RB)
- Většina balíků se podle výchozího configu nekompiluje, pokud chceme např. quaggu, tak je třeba ji vybrat (Network -> Routing nad Redirection -> <M> Quagga).
- Zkompilovat vše do balíků dá trochu práci s vybíráním v menuconfig, dal by se použít config z http://downloads.openwrt.org/snapshots/, ale měl jsem s kompletní kompilací problémy (některé zrojáky se nepodařilo stáhnout). Bohužel ve snapshots není kompilované verze pro mikrotiky, takže pokud chcete poslední verzi, kompilaci se nevyhnete.
- Verze 12.09 pro mikrotiky zkompilovaná je, takže proto je v postupu výše tato verze použita, instalovaný systém si tedy stahuje balíky z http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/nand/ a tím se vyhneme nutnosti kompilace.
OpenWrt běží, co dál?
Filesystém je standardně připojený v RW režimu, používá yaffs filesystem, takže můžete vesele zapisovat jak je potřeba. Pro představu nainstalovaný OpenWrt s pár balíčky zabírá v RB cca 18MB. Z celkové kapacity NAND flash si také ukrojí pár jednotek MB bootloader a režije filesystému. Takže i v RB se 64MB NAND flash by měla zbýt fůra místa pro instalaci balíčků.
Balíčky
Pokud OpenWrt úspěšně naběhl z NAND flash, bude třeba do něj doinstalovat dost věcí formou balíků. Pokud jste k instalaci použili výše uvedený image, budou případné balíky instalovány z http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/nand/
Co se může hodit:
- kmod-ath5k (podpora karet AR5xxx jako např. CM9)
- kmod-tun (hodí pro pro různé VPN, v kombinaci s aircrack a podobné hrátky)
- kmod-usb2 (podpora USB host, pokud má RB USB)
- kmod-usb-storage (podpora USB mass storage, tedy USB flashky)
- kmod-mmc-spi (podpora MicroSD karet do slotu na desce)
- mc (pokud v terminálu nefungují F1 až F12 klávesy, použijte Esc-1 až Esc-12)
- quagga
- wireless-tools (iwconfig a spol.)
- aircrack-ng (penetrační testování)
Příklad doinstalování balíků:
opkg update opkg install kmod-ath5k opkg install kmod-tun opkg install kmod-usb2 opkg install kmod-usb-storage opkg install kmod-mmc-spi opkg install mc opkg install quagga opkg install wireless-tools opkg install aircrack-ng
Pokud se stažení balíčků nedaří kvůli chybné konfiguraci sítě, mrkněte nejdříve do následující kapitoly a nastavte si správně síť.
Konfigurace
Následující poznámky jsou relevantní hlavně v případě, že z RB chcete mít router na AP nebo třeba zařízení pro penetrační testování. Pokud RB bude sloužit jako domácí (WiFi) router, tak je výchozí nastavení celkem dobře použitelné a obvyklé věci lze dokonfigurovat i přes webové rozhraní luci.
- Nastavit heslo roota
- Ve výchozím stavu je aplikován firewall původně určený pro klasický domácí router, kde např. z WAN portu (eth0, ten port s POE) je blokován provoz (takže se ani na SSH přes tento port nepřipojíte), nejjednodušší je firewall zrušit.
- Patrně také budete chtít vypnout lokální DHCP server a DNS server.
- OpenWrt má v /etc/config/network poměrně svérázný způsob konfigurace sítě, pokud chcete mít vše ve svých rukou, je nejjednodušší jeho networking subsystém úplně vypnout a vše si ručně nakonfigurovat v /etc/rc.local
# nastavit heslo roota passwd # vypnout firewall /etc/init.d/firewall disable # vypnout dhcp server /etc/init.d/odhcpd disable # vypnout dns server /etc/init.d/dnsmasq disable # vypnout vychozi konfiguraci site (lan a wan) /etc/init.d/network disable
Do /etc/rc.local si dát veškerou konfiguraci po startu, u mě:
# loopback ifconfig lo 127.0.0.1 # eth0 static ifconfig eth0 10.107.218.24 netmask 255.255.255.240 route add default gw 10.107.218.17
Pokud je /etc/resolv.conf jen link, tak smazat a založit normální soubor:
rm /etc/resolv.conf touch /etc/resolv.conf
Do /etc/resolv.conf nastavit správně DNS:
nameserver 10.107.4.100 nameserver 10.107.4.129