OpenWrtのつくり方

先日、
自宅ラック勉強会 #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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Enter code * Time limit is exhausted. Please reload CAPTCHA.

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください