先日、
自宅ラック勉強会 #4.0 2015 ダンボー、OpenWRT、SoftEther、さぁハックの時間です。
といういかにもな勉強会に参加してきました。
みなさん、ITのエキスパートばかりで
変な質問ばかりすみませんでしたw
まずは、コンパイル環境をつくるところでいくつか手間取ったのでメモとして。
以前Routerboard用ものを記事にしていますが、ここも合わせてごらんくださいw
OpenWRTをクロスコンパイル
公式HP
OpenWrt のビギナーズガイド
OS・・・Ubuntu14.04 LTS
最小構成でNetインストールしました。
# apt-get update # apt-get install build-essential subversion libncurses5-dev git-core unzip libssl-dev gcc+
とりあえず、これだけ入れておけば大丈夫でしょう(のちに嵌りますが)
ソースをもらってきましょう
https://dev.openwrt.org/wiki/GetSource
http://git.openwrt.org/
$ git clone git://git.openwrt.org/openwrt.git
今回ダンボールータ用を作るということでしたが、
15.05(Chaos Calmer)を使った方はなぜか、ダンボールータ用のイメージが出来ませんでした。
なので、Devバージョンを使いました。
使いパッケージに関して
$ ./scripts/feeds update -a Updating feed 'packages' from 'https://github.com/openwrt/packages.git' ... Already up-to-date. Create index file './feeds/packages.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined xargs: grep: シグナル 13 によって終了しました awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined Updating feed 'luci' from 'https://github.com/openwrt/luci.git' ... Already up-to-date. Create index file './feeds/luci.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined Updating feed 'routing' from 'https://github.com/openwrt-routing/packages.git' ... Already up-to-date. Create index file './feeds/routing.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined Updating feed 'telephony' from 'https://github.com/openwrt/telephony.git' ... Already up-to-date. Create index file './feeds/telephony.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined Updating feed 'management' from 'https://github.com/openwrt-management/packages.git' ... Already up-to-date. Create index file './feeds/management.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined Updating feed 'targets' from 'https://github.com/openwrt/targets.git' ... Already up-to-date. Create index file './feeds/targets.index' awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined awk: include/scan.awk: line 21: function asort never defined $
なんだかエラーしています。。。
OS側のパッケージ「awk」が良くないのではということで、
「gawk」をインストールします。
# apt-get install gawk パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 以下の特別パッケージがインストールされます: libsigsegv2 提案パッケージ: gawk-doc 以下のパッケージが新たにインストールされます: gawk libsigsegv2 アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。 796 kB のアーカイブを取得する必要があります。 この操作後に追加で 2,000 kB のディスク容量が消費されます。 続行しますか? [Y/n] y 取得:1 http://jp.archive.ubuntu.com/ubuntu/ trusty/main libsigsegv2 amd64 2.10-2 [15.0 kB] 取得:2 http://jp.archive.ubuntu.com/ubuntu/ trusty/main gawk amd64 1:4.0.1+dfsg-2.1ubuntu2 [781 kB] 796 kB を 6秒 で取得しました (133 kB/s) 以前に未選択のパッケージ libsigsegv2:amd64 を選択しています。 (データベースを読み込んでいます ... 現在 58835 個のファイルとディレクトリがインストールされています。) .../libsigsegv2_2.10-2_amd64.deb を展開する準備をしています ... libsigsegv2:amd64 (2.10-2) を展開しています... libsigsegv2:amd64 (2.10-2) を設定しています ... libc-bin (2.19-0ubuntu6.6) のトリガを処理しています ... 以前に未選択のパッケージ gawk を選択しています。 (データベースを読み込んでいます ... 現在 58843 個のファイルとディレクトリがインストールされています。) .../gawk_1%3a4.0.1+dfsg-2.1ubuntu2_amd64.deb を展開する準備をしています ... gawk (1:4.0.1+dfsg-2.1ubuntu2) を展開しています... man-db (2.6.7.1-1ubuntu1) のトリガを処理しています ... gawk (1:4.0.1+dfsg-2.1ubuntu2) を設定しています ...
インストール出来たので、再度挑戦。
$ ./scripts/feeds update -a Updating feed 'packages' from 'https://github.com/openwrt/packages.git' ... Already up-to-date. Create index file './feeds/packages.index' Collecting package info: done Updating feed 'luci' from 'https://github.com/openwrt/luci.git' ... Already up-to-date. Create index file './feeds/luci.index' Collecting package info: done Updating feed 'routing' from 'https://github.com/openwrt-routing/packages.git' ... Already up-to-date. Create index file './feeds/routing.index' Collecting package info: done Updating feed 'telephony' from 'https://github.com/openwrt/telephony.git' ... Already up-to-date. Create index file './feeds/telephony.index' Collecting package info: done Updating feed 'management' from 'https://github.com/openwrt-management/packages.git' ... Already up-to-date. Create index file './feeds/management.index' Collecting package info: done Updating feed 'targets' from 'https://github.com/openwrt/targets.git' ... Already up-to-date. Create index file './feeds/targets.index' Collecting target info: done
どうやらうまくいったようです
どんな追加パッケージがあるのかは、
$ ./scripts/feeds list | more acl Access control list (ACL) manipulation utils acpid The ACPI Daemon (acpid) With Netlink Support adblock powerful adblock script to block ad/abuse domains aiccu SixXS IPv6 Connectivity Client (without GNUTLS support) aiccu-gnutls SixXS IPv6 Connectivity Client (with GNUTLS support) aircrack-ng WLAN tools for breaking 802.11 WEP/WPA keys alpine Alternatively Licensed Program for Internet News and Email (with OpenSSL support) alpine-nossl Alternatively Licensed Program for Internet News and Email (without OpenSSL support) alsa-lib ALSA (Advanced Linux Sound Architecture) library alsa-utils ALSA (Advanced Linux Sound Architecture) utilities alsa-utils-seq ALSA sequencer utilities alsa-utils-tests ALSA utilities test data (adds ~1.3M to image) announce Announce services on the network with Zeroconf/Bonjour
こんな感じでインストール出来る一覧を表示できます。
で必要なもの、例えばWebGUI「luci」を入れるなら
$ ./scripts/feeds install luci
あとは
$ make defconfig $ make prereq $ make menuconfig
「menuconfig」で必要なもの、
MIPSやらARMやらのCPUタイプやNICのチップなどをチェックしてあげます。
https://dev.openwrt.org/wiki/platforms
$ make で結構時間がかかりますが [shell]$ ls -l openwrt/bin/ramips/ 合計 265340 -rw-r--r-- 1 neko6 neko6 6875 11月 21 18:03 md5sums -rw-r--r-- 1 neko6 neko6 7995392 11月 21 18:01 openwrt-ramips-mt7620-ArcherC20i-initramfs.bin -rw-r--r-- 1 neko6 neko6 7995392 11月 21 18:03 openwrt-ramips-mt7620-ArcherC20i-squashfs-sysupgrade.bin -rw-r--r-- 1 neko6 neko6 3082166 11月 21 18:00 openwrt-ramips-mt7620-ai-br100-initramfs-uImage.bin -rw-r--r-- 1 neko6 neko6 3407876 11月 21 18:01 openwrt-ramips-mt7620-ai-br100-squashfs-sysupgrade.bin -rw-r--r-- 1 neko6 neko6 3082120 11月 21 18:00 openwrt-ramips-mt7620-cf-wr800n-initramfs-uImage.bin -rw-r--r-- 1 neko6 neko6 3407876 11月 21 18:01 openwrt-ramips-mt7620-cf-wr800n-squashfs-sysupgrade.bin
このようにいっぱいできます。
あとは、
OpenWrtのインストール (基礎)
を参考にしてみてください。
ダンボールータに関しては、主催の
@SRCHACK.ORGさんに聞いてみると教えてくれるかもしれません。
[tegaki]まるなげっww[/tegaki]