Tyle ilu jest użytkowników Raspberry Pi tyle będzie pomysłów na zastosowanie tego maleństwa. Ja pomyślałem że muszę spróbować zainstalować OpenWRT na Raspberry Pi bo wraz ze stabilną wersją Attitude Adjustment, OpenWRT zaczęło je wspierać.

Od razu wpadł mi do głowy pomysł Access Pointa, wygrzebałem wszystkie karty Wifi na USB ale niestety żadna nie jest wspierana przez OpenWRT. Ale przy poszukiwaniach znalazłem też kartę ethernet na USB, D-Link DUB-E100. Dwie karty ethernet w jednym urządzeniu to już co najmniej prosty router. I właśnie to będzie tematem poniższego opisu.

Download and Install

Na początek ściągamy dedykowany pod Raspberry Pi obraz OpenWRT z oficjalnej strony downloads.openwrt.org. Gdy obraz już się ściągnie trzeba go nagrać na kartę SD ale wcześniej trzeba odmontować partycje które automatycznie zostały podmontowane.

root@sosprz:/home/sosprz/Pobrane#
umount /dev/mmcblkp1
root@sosprz:/home/sosprz/Pobrane# dd bs=4M if=/openwrt-brcm2708-sdcard-vfat-ext4_224.img of=/dev/mmcblk0
12+0 przeczytanych recordów
12+0 zapisanych recordów
skopiowane 50331648 bajtów (50 MB), 8,20802 s, 6,1 MB/s

Uruchomienie OpenWRT na Rapsberry Pi

Tak wygląda system OpenWRT gdy uruchamia się na Rapsberry Pi. Generalnie szału nie ma :)

Raspberry Pi na OpenWRT OpenWRT na Raspberry Pi

Instalacja OpenWRT w mojej sieci

Dobra mamy OpenWRT na Raspberry Pi i teraz trzeba jakoś się dostać na stronę www lub ssh/telnet aby skonfigurować resztę. Aby to zrobić trzeba dostać się do domyślnego IP dla OpenWRT, 192.168.1.1. Ja zawsze robię jak poniżej, zatrzymuje network-managera i konfiguruje IP. Laptopa podłączam bezpośrednio pod Raspberry Pi, paczkordem.

Moim celem teraz jest podłączenie Raspbery Pi do mojego routera aby pozbyć się paczkorda z laptopa i przeprowadzić całą konfiguracje poprzez WiFi (mój router).

/etc/init.d/network-manager stop
ifconfig eth0 192.168.1.2 netmask 255.255.255.0
telnet 192.168.1.1
sosprz@sosprz:~$ sudo su -
 [sudo] password for sosprz:
 root@sosprz:~# /etc/init.d/network-manager stop
 Rather than invoking init scripts through /etc/init.d, use the service(8)
 utility, e.g. service network-manager stop
 Since the script you are attempting to invoke has been converted to an
 Upstart job, you may also use the stop(8) utility, e.g. stop network-manager
 network-manager stop/waiting
 root@sosprz:~# ifconfig eth0 192.168.1.2 netmask 255.255.255.0
 root@sosprz:~# telnet 192.168.1.1
 Trying 192.168.1.1...
 Connected to 192.168.1.1.
 Escape character is '^]'.
 === IMPORTANT ============================
 Use 'passwd' to set your login password
 this will disable telnet and enable SSH
 ------------------------------------------
 BusyBox v1.19.4 (2013-03-16 04:44:56 UTC) built-in shell (ash)
 Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 ATTITUDE ADJUSTMENT (12.09, r36088)
 -----------------------------------------------------
 * 1/4 oz Vodka Pour all ingredients into mixing
 * 1/4 oz Gin tin with ice, strain into glass.
 * 1/4 oz Amaretto
 * 1/4 oz Triple sec
 * 1/4 oz Peach schnapps
 * 1/4 oz Sour mix
 * 1 splash Cranberry juice
 -----------------------------------------------------
 root@OpenWrt:/#

Ok połączyłem się i teraz muszę zmienić interfejs ze statycznego IP na DHCP. Zrobię to poprzez www będzie szybciej.

OpenWRT na Raspberry Pi OpenWRT na Raspberry Pi OpenWRT na Raspberry Pi Przechwycenie obrazu ekranu - 21.06.2013 - 13:36:46 Przechwycenie obrazu ekranu - 21.06.2013 - 13:36:53 Przechwycenie obrazu ekranu - 21.06.2013 - 13:37:21

Raspberry Pi zostało podłączone pod sieć domową i uzyskało adres IP. Jak można się powoli domyślać ten uzyskany adres IP z mojej sieci będzie adresem WAN.

Podłączyłem DUB-E100 do Raspberry Pi. Mam dwa interfejsy sieciowe.

OpenWRT na Raspberry Pi OpenWRT na Raspberry Pi

Sprawdzamy w status > kernel log czy karta została wykryta

Przechwycenie obrazu ekranu - 21.06.2013 - 13:44:35

Karta jest ale to nie wszystko, trzeba zainstalować moduł kmod-usb-net-asix aby uruchomić kartę w systemie.

Przechwycenie obrazu ekranu - 21.06.2013 - 13:44:58 Przechwycenie obrazu ekranu - 21.06.2013 - 13:45:59 Przechwycenie obrazu ekranu - 21.06.2013 - 13:46:53

Wszystko jest dobrze karta została wykryta i zarejestrowana w systemie pod** **interfejsem eth1

Konfiguracja OpenWRT

W firewall settings przestawiamy interfejs (wbudowany Raspberry Pi) LAN1 czyli eth0 na **WAN. **

Przechwycenie obrazu ekranu - 21.06.2013 - 14:05:46

Konfiguracja interfejsu eth1 czyli USB D-link polega na ustawieniu adresacji dla sieci lokalnej np. 192.168.1.1/24 i ustawieniu w firewall settings na LAN.

Przechwycenie obrazu ekranu - 21.06.2013 - 14:06:25 Przechwycenie obrazu ekranu - 21.06.2013 - 14:06:37

I to wszystko,  parę kliknięć zamienia Raspberry Pi w router. Podłączyłem lapka pod kartę D-link aby sprawdzić czy dostaje adres z DHCP i mam połączenie do internetu. Jak widać poniżej wszystko jest ok. 

Przechwycenie obrazu ekranu - 21.06.2013 - 14:08:51

Podsumowanie

Szybko sprawnie i działa. Polecam przyjrzeć się bliżej wszystkim opcjom w OpenWRT, jest to naprawdę fajna alternatywa dla routerów w wielkimi możliwościami. Repozytorium jest naprawdę duże, można powiedzieć inspirujące. Parę lat temu na routerze z OpenWRT zaczynałem pomiary temperatur :)

Na koniec, mam nadzieje że wam też wszystko działa jeśli macie jakieś inne pomysły, czekam na komentarze.