OpenWrtをクロスコンパイルできる環境の構築

OpenWrtをクロスコンパイルできる環境を構築した。端的にはLinuxマシーンで、”OpenWrt Buildroot – About – OpenWrt Wiki“に従うだけなのだったのだが、いろいろ躓いた(自分は参照しなかったが”Easy Build – OpenWrt Wiki“もある)。

Windows 7とLubuntuのデュアル・ブートが可能なPCで、LubuntuからUSB HDDのNTFSボリュームで作業した。これがいけなかった。

まず、gitでダウンロードしたソース・パッケージの中のscriptsディレクトリのスクリプトに実行可能フラグが立ってなかった。NTFSが原因かと考え、この推測は結果としては正しかった。が、”permissions – How do I use ‘chmod’ on an NTFS (or FAT32) partition? – Ask Ubuntu“の2番めの解答に従えば解決すると期待した(参考:”User Mapping | Tuxera“、”Ownership and Permissions | Tuxera“)。

ところがやはりパーミッションの問題が起こる。何か自分の設定がまずかった可能性はあったが、それを追求するのには時間がかかるだろうと諦めて、該当パーティションをExt4でフォーマットしなおしてやり直すと、最新リリース版の12.09 “Aptitude Adjustment”のコンパイルは全く問題なくできた。時間はかかったが。

このボリュームはWindows 7からもアクセスしたいのだが、後日以下を見ながら何とかしよう。

 

以下はNTFSボリュームで作業するのを諦めてExt4ボリュームに替える前に四苦八苦していたときのメモ。


make[2]: Entering directory `/media/yasuro/Work/openwrt/tools/mtd-utils'
mkdir -p /media/yasuro/Work/openwrt/dl
echo "Checking out files from the git repository..."; mkdir -p /media/yasuro/Work/openwrt/tmp/dl && cd /media/yasuro/Work/openwrt/tmp/dl && rm -rf mtd-utils-1.4.5 && [ \! -d mtd-utils-1.4.5 ] && git clone git://git.infradead.org/mtd-utils.git mtd-utils-1.4.5 --recursive && (cd mtd-utils-1.4.5 && git checkout 5319b84974fcb71504aed2d1b8285e9c0a4a4bb8) && echo "Packing checkout..." && rm -rf mtd-utils-1.4.5/.git &&         /bin/tar cfz /media/yasuro/Work/openwrt/tmp/dl/mtd-utils-1.4.5.tar.gz mtd-utils-1.4.5 && mv /media/yasuro/Work/openwrt/tmp/dl/mtd-utils-1.4.5.tar.gz /media/yasuro/Work/openwrt/dl/ && rm -rf mtd-utils-1.4.5;
Checking out files from the git repository...
Cloning into 'mtd-utils-1.4.5'...
remote: Counting objects: 5612, done.
remote: Compressing objects: 100% (1476/1476), done.
remote: Total 5612 (delta 4088), reused 5612 (delta 4088)
Receiving objects: 100% (5612/5612), 1.60 MiB | 656.00 KiB/s, done.
Resolving deltas: 100% (4088/4088), done.
Checking connectivity... done.
error: Your local changes to the following files would be overwritten by checkout:
        load_nandsim.sh
        make_a_release.sh
        tests/ubi-tests/runtests.sh
        tests/ubi-tests/stress-test.sh
Please, commit your changes or stash them before you can switch branches.
Aborting
make[2]: *** [/media/yasuro/Work/openwrt/dl/mtd-utils-1.4.5.tar.gz] Error 1

自分はソースコードさえ入手できればよいので、”git-checkout(1)” openwrt/include/download.mk 中の git checkout 文に -f オプションをつけることで対処。その後makeすると以下のメッセージが。

Note: checking out 'c9c9d5cb085acc58b6579ace83fb79c085a9db27'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

openwrt/build_dir/host/m4-1.4.16でMakefileがない、とエラー。このディレクトリにあったconfigureスクリプトを実行した上で再度make。

広告

OpenWrtをクロスコンパイルできる環境の構築」への1件のフィードバック

  1. ピンバック: USB 3GドングルをOpenWrt上のAsteriskから使う | あくまで暫定措置としてのブログ

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中