[OpenWRT] OpenWRTをRasPi2で作る
http://d.hatena.ne.jp/kinneko/20161205/p1 の続き。
Raspi1では失敗だった。
BBBでもビルドしてやってみたけど、標準のkernel configでは、USBまわりがオフになっていて、いろいろめんどくさそうなので、中断したまま。
一石アンプさんから、Raspi2/3をお借りできたので、これで試してみることにした。
まずは、Raspi2から。
イメージはこれ。
http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/
http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz
sha256sumsも落としておく。
ダウンロードの確認。
$ cat sha256sums | grep openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz SHA256(openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz)= e25269b3eb9eb1b3aa24b1ccb1f6be15b4138f7e1f47ebf2ee3d9b0c468d04a5 $ shasum -a 256 openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz e25269b3eb9eb1b3aa24b1ccb1f6be15b4138f7e1f47ebf2ee3d9b0c468d04a5 openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz
同じ。
展開する。
$ ls -lh openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz -rw-r--r--@ 1 kinneko staff 6.3M 3 16 2016 openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz $ gzip -d openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img.gz $ ls -lh openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img -rw-r--r--@ 1 kinneko staff 76M 3 16 2016 openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img
76MB。
と、ここまでは、Raspi1と同じ。やってあれば再度やる必要はない。
前に作ったSDをそのまま差し込めばいいんじゃないかと思ってたけど、初代はSDで2からはmicroなんだよね。
なんかちぐはぐだわ。
んで、そんな小さいmircoSDはないな...
新たに2GBを用意してイメージを書き込む。
$ diskutil list /dev/disk4 /dev/disk4 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *2.0 GB disk4 1: Windows_FAT_32 NO_NAME 2.0 GB disk4s1 $ diskutil unmount /Volumes/"NO_NAME" Volume NO_NAME on disk4s1 unmounted $ sudo dd if=openwrt-15.05.1-brcm2708-bcm2709-sdcard-vfat-ext4.img of=/dev/rdisk4 155648+0 records in 155648+0 records out 79691776 bytes transferred in 1005.137241 secs (79284 bytes/sec) $ diskutil eject /dev/disk4 Disk /dev/disk4 ejected
microSDをRaspi2に差し込み、HDMIケーブルとUSBキーボードを接続。
電源を供給する。
コンソール画面には、Raspiロゴが4つ出ている。
リターンキーを押すと、コンソールに落ちた。
Raspi1の時と同じイメージなので、有線のeth0はbr-lanにブリッジされて、固定IPのLAN側として設定されていると思われるので、コンソールからuciコマンドでDHCPでアドレスを受け取るように設定を変更する。
root@OpenWrt:~# uci show network.lan network.lan=interface network.lan.iframe='eth0' network.lan.type='bridge' network.lan.proto='static' network.lan.ipaddr='192.168.1.1' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60'
想定通り。
設定を変更する。
root@OpenWrt:~# uci set network.lan.proto=dhcp root@OpenWrt:~# uci commit root@OpenWrt:~# /etc/init.d/network restart root@OpenWrt:~# uci show network.lan network.lan=interface network.lan.iframe='eth0' network.lan.type='bridge' network.lan.ipaddr='192.168.1.1' network.lan.netmask='255.255.255.0' network.lan.ip6assign='60' network.lan.proto='dhcp'
NICにケーブルを接続し、コンソールからifconfigを打って、取得したIPアドレスを調べる。
そのアドレスにtelnetする。
root@OpenWrt:/# ifconfig br-lan | grep "inet addr" inet addr:192.168.51.54 Bcast:192.168.51.255 Mask:255.255.255.0
$ telnet 192.168.51.54 Trying 192.168.51.54... Connected to 192.168.51.54. Escape character is '^]'. === IMPORTANT ============================ Use 'passwd' to set your login password this will disable telnet and enable SSH ------------------------------------------ BusyBox v1.23.2 (2016-01-31 10:48:00 CET) built-in shell (ash) _______ ________ __ | |.-----.-----.-----.| | | |.----.| |_ | - || _ | -__| || | | || _|| _| |_______|| __|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M ----------------------------------------------------- CHAOS CALMER (15.05.1, r48532) ----------------------------------------------------- * 1 1/2 oz Gin Shake with a glassful * 1/4 oz Triple Sec of broken ice and pour * 3/4 oz Lime Juice unstrained into a goblet. * 1 1/2 oz Orange Juice * 1 tsp. Grenadine Syrup ----------------------------------------------------- root@OpenWrt:/#
お、なんかRaspi1より反応が早いな。当たり前だけど。
ASIXのチップが乗ったUSB-CDC Etherのドングル用のドライバを入れる。
パッケージリストのアップデート。
root@OpenWrt:/# opkg update Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_base. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/luci/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_luci. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/luci/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/packages/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_packages. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/packages/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/routing/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_routing. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/routing/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/telephony/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_telephony. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/telephony/Packages.sig. Signature check passed. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/management/Packages.gz. Updated list of available packages in /var/opkg-lists/chaos_calmer_management. Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/management/Packages.sig. Signature check passed.
現在インストールされているパッケージのリストはこんな感じ。
root@OpenWrt:/# opkg list_installed base-files - 157.2-r48532 brcm2708-gpu-fw - 20150210-1 busybox - 1.23.2-1 dnsmasq - 2.73-1 dropbear - 2015.67-1 firewall - 2015-07-27 fstools - 2016-01-10-96415afecef35766332067f4205ef3b2c7561d21 ip6tables - 1.4.21-1 iptables - 1.4.21-1 jshn - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb jsonfilter - 2014-06-19-cdc760c58077f44fc40adbbe41e1556a67c1b9a9 kernel - 3.18.23-1-53057a7eaf7678caec0da6075f620e1f kmod-hid - 3.18.23-1 kmod-hid-generic - 3.18.23-1 kmod-input-core - 3.18.23-1 kmod-input-evdev - 3.18.23-1 kmod-ip6tables - 3.18.23-1 kmod-ipt-conntrack - 3.18.23-1 kmod-ipt-core - 3.18.23-1 kmod-ipt-nat - 3.18.23-1 kmod-ipv6 - 3.18.23-1 kmod-lib-crc-ccitt - 3.18.23-1 kmod-nf-conntrack - 3.18.23-1 kmod-nf-conntrack6 - 3.18.23-1 kmod-nf-ipt - 3.18.23-1 kmod-nf-ipt6 - 3.18.23-1 kmod-nf-nat - 3.18.23-1 kmod-nf-nathelper - 3.18.23-1 kmod-nls-base - 3.18.23-1 kmod-ppp - 3.18.23-1 kmod-pppoe - 3.18.23-1 kmod-pppox - 3.18.23-1 kmod-slhc - 3.18.23-1 kmod-sound-arm-bcm2835 - 3.18.23-1 kmod-sound-core - 3.18.23-1 kmod-usb-core - 3.18.23-1 kmod-usb-hid - 3.18.23-1 libblobmsg-json - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb libc - 0.9.33.2-1 libgcc - 4.8-linaro-1 libip4tc - 1.4.21-1 libip6tc - 1.4.21-1 libiwinfo - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371 libiwinfo-lua - 2015-06-01-ade8b1b299cbd5748db1acf80dd3e9f567938371 libjson-c - 0.12-1 libjson-script - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb liblua - 5.1.5-1 libnl-tiny - 0.1-4 libubox - 2015-11-08-10429bccd0dc5d204635e110a7a8fae7b80d16cb libubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e libubus-lua - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e libuci - 2015-08-27.1-1 libuci-lua - 2015-08-27.1-1 libxtables - 1.4.21-1 lua - 5.1.5-1 luci - git-16.018.33482-3201903-1 luci-app-firewall - git-16.018.33482-3201903-1 luci-base - git-16.018.33482-3201903-1 luci-lib-ip - git-16.018.33482-3201903-1 luci-lib-nixio - git-16.018.33482-3201903-1 luci-mod-admin-full - git-16.018.33482-3201903-1 luci-proto-ipv6 - git-16.018.33482-3201903-1 luci-proto-ppp - git-16.018.33482-3201903-1 luci-theme-bootstrap - git-16.018.33482-3201903-1 mtd - 21 netifd - 2015-12-16-245527193e90906451be35c2b8e972b8712ea6ab odhcp6c - 2015-07-13-024525798c5f6aba3af9b2ef7b3af2f3c14f1db8 odhcpd - 2015-11-19-01d3f9d64486ac1daa144848944e877e7f0cb762 opkg - 9c97d5ecd795709c8584e972bfdf3aee3a5b846d-9 ppp - 2.4.7-6 ppp-mod-pppoe - 2.4.7-6 procd - 2015-10-29.1-d5fddd91b966424bb63e943e789704d52382cc18 rpcd - 2015-01-10-f00890cd6eb47ad9bb5da0fb6c50aedc8406e7c5 ubox - 2015-11-22-c086167a0154745c677f8730a336ea9cf7d71031 ubus - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e ubusd - 2015-05-25-f361bfa5fcb2daadf3b160583ce665024f8d108e uci - 2015-08-27.1-1 uhttpd - 2015-11-08-fe01ef3f52adae9da38ef47926cd50974af5d6b7 uhttpd-mod-ubus - 2015-11-08-fe01ef3f52adae9da38ef47926cd50974af5d6b7 usign - 2015-05-08-cf8dcdb8a4e874c77f3e9a8e9b643e8c17b19131
インストール可能なパッケージのリストからASIX用のkmodを探す。
root@OpenWrt:/# opkg list | grep asix kmod-usb-net-asix - 3.18.23-1 - Kernel module for USB-to-Ethernet Asix convertors kmod-usb-net-asix-ax88179 - 3.18.23-1 - Kernel module for USB-to-Ethernet ASIX AX88179 based USB 3.0/2.0 to Gigabit Ethernet adapters.
インストールする。
関連する依存パッケージもインストールされる。
root@OpenWrt:/# opkg install kmod-usb-net-asix Installing kmod-usb-net-asix (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/kmod-usb-net-asix_3.18.23-1_brcm2708.ipk. Installing kmod-libphy (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/kmod-libphy_3.18.23-1_brcm2708.ipk. Installing kmod-usb-net (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/kmod-usb-net_3.18.23-1_brcm2708.ipk. Installing kmod-mii (3.18.23-1) to root... Downloading http://downloads.openwrt.org/chaos_calmer/15.05.1/brcm2708/bcm2709/packages/base/kmod-mii_3.18.23-1_brcm2708.ipk. Configuring kmod-mii. Configuring kmod-libphy. Configuring kmod-usb-net. failed to find a module named usbnet Configuring kmod-usb-net-asix.
あれ?足りない?
usb-netはデフォルトでインストールされていた。
USBドングルを差し込んでみる。
[ 762.533426] usbcore: registered new interface driver asix [ 799.825432] usb 1-1.4: new high-speed USB device number 5 using dwc_otg [ 799.949069] usb 1-1.4: New USB device found, idVendor=0b95, idProduct=1720 [ 799.959822] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 799.971019] usb 1-1.4: Product: USB2.0 10/100 Ethernet Adapter [ 799.980728] usb 1-1.4: Manufacturer: USB [ 800.049126] asix 1-1.4:1.0 eth1: register 'asix' at usb-bcm2708_usb-1.4, ASIX AX8817x USB 2.0 Ethernet, 00:10:60:2b:a4:05
なんか認識はしているみたい。
ブラウザで割り当てアドレスに接続して、LuCIから設定を変更。
こころなしか、動きもキビキビしている気が。
Create Interfaceで、名前をWANに、ProtocolをDHCP client、Cover the following interfaceでEthernet Adapter: "eth1"にチェックを入れ、Submitボタンを押して登録する。Common ConfigurationのFirewall Settingsタブを押して、wanにチェックを入れてSave&Applyボタンを押す。
InterfacesからLANのEditボタンを押して、ProtocolをStatic addressに、Switch protocolボタンを押す。IPv4 addressを192.168.1.1、netmaskを255.255.255.0に、gatewayを192.168.1.1に、Save&Applyボタンを押す。
これで、NATルータを構成しているはず。
USB-NICにWAN側のケーブルを接続し、MacにLAN側の本体NICをケーブル接続する。
$ ifconfig en0 | grep "inet " inet 192.168.1.225 netmask 0xffffff00 broadcast 192.168.1.255
ブラウザで192.168.1.1に接続して、LuCIが開くのを確認する。
Macから外部ネットワークに出られるのを確認する。問題なし。
ただ、LuCIでパスワードを設定しようとしたら、保存できなかった。
再起動して、ブラウザをsafariからfirefox変えてうまくいった。
ダウンロードなどの作業をやっても安定して動いている。
SoCはさわると少し熱い。40度くらいかな。
USB-NICドングルの表面温度もそのくらい。
ちょっと夏の長時間運用には向かないかも。