Openwrtファームウェアコンパイルチュートリアル

4058 ワード

Openwrtを探索し始めたばかりの頃、私はネット上から多くのドキュメントを探して、ファームウェアのコンパイル環境を構築する準備をしていたとき、ネット上のドキュメントに基づいて、SVNの上からcheckoutソースコードを見つけて、./scripts/feeds update-a更新拡張にエラーが発生し、更新に失敗したことを示しました.以下はオンラインチュートリアルです.
第一部:このコンパイル環境に構築
1、Ubuntu(コンパイルにはLinux環境が必要)をインストールし、その公式サイトにダウンロードし、バージョンは自分の必要に応じて選択すればよい.仮想マシンまたは物理マシンにインストールすることができ、グラフィック化インストールで中国語版であり、インストールさえできない場合は、このページを閉じることができます.2、ソフトウェアソースを変更しないで、同時にCtrl+Alt+Tを押して、端末を呼び出すことを忘れないでください.3、条目ごとに以下のコマンドを入力する(インストールが成功したかどうかをタイムリーに検証する):
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
sudo apt-get install libssl-dev
sudo apt-get install libssl0.9.8
これでコンパイル環境の構築が完了する.第2部:OpenWrtソースコードをダウンロードし、OpenWrtソースコードをコンパイルするには、最新だが最も安定していないTrunk開発版と、最も安定しているBackfire版の2種類があり、公式ソースコードのダウンロードをお勧めします.ダウンロード前にローカルにフォルダを作成:
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
希望するバージョンを選択してダウンロードコマンドを実行すると、ダウンロードが終了するとバージョン番号が表示されます.
Trunk版ダウンロードコマンド:
svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire版ダウンロードコマンド:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/

拡張機能の更新、拡張機能のインストール:
注:チュートリアルに従って一歩一歩進んでいくとスムーズに通過しますが、次の更新拡張に進むと問題が発生します.一部のソフトウェアは更新できません.私も他のチュートリアルをたくさん探しました.他のチュートリアルはこのチュートリアルと同じです.見たわconf.defaultというプロファイルは、拡張されたSVNリンクを更新してgoogleのアドレスがあることを発見し、私は個人的にリンクがスクリーンに閉じられたと推測して、このステップが間違っていることを報告しました.
./scripts/feeds update -a
./scripts/feeds install -a

注意:ダウンロードしたばかりのソースコードでない場合は、コードを最新の状態に保つために、svn updateコマンドを定期的に実行してソースコードを更新します.
コンパイル環境のテスト:
make defconfig
make prereq

ここで自分のファームウェアのコンパイルを開始できます.カスタムインタフェースにアクセスするには、次の手順に従います.
make menuconfig

コンパイルオプション:
ルータの状況に応じて、Target SystemとSubtargetを選択します.如意雲世代と極壹SのTarget SystemはいずれもRalink RT 288 x/RT 3 xxxである.Subtargetの場合、前者はMT 7620 n based boards、後者はMT 7620 a based boardsである.その他の選択肢は好みで選びます.一般的にLuciインタフェース、中国語言語パッケージなどを選択します.
コンパイル開始:
export FORCEの実行UNSAFE_CONFiGURE=1&&make-j 3 V=sでコンパイルします.-jの後ろの数字はコンピュータ物理CPUの数に1を加えたものである.V=sはコンパイルの詳細を表示することができる.最初のコンパイルには数時間ほどかかりますが、コンパイル時には必ずネットワークに接続してください.
エラーチェック:
コンパイルに失敗した場合、一般的には2つのケースがあります.1.コードダウンロードリンクが無効になりました.最初のコンパイルでは、コンパイラはリアルタイムでネット上からパッケージのコードをダウンロードします.ダウンロードリンクが無効になると、コンパイルに失敗します.この場合、パッケージの名前に従って、ネット上から自分でダウンロードし、openwrt/dl/ディレクトリの下に置いてexport FORCEを実行する必要があります.UNSAFE_CONFIGURE=1&&make-j 3 V=sコンパイルを続行すればよい.2.パッケージ自体に問題がある.このときmake menuconfigを再実行し、対応するパッケージの選択を解除すればよい.このような状況は比較的珍しく,現在知られているのはtorなどである.
コンパイルは成功しましたが、ファームウェアは生成されませんでした.この場合、選択したパッケージが多すぎるため、ファームウェアのサイズが16 MBを超えるのが一般的です.make menuconfigを再実行し、一部のパッケージを削除し、コンパイルを再実行すればよい.ファームウェアを入手します.すべてのエラーを排除した後、やっとファームウェアを手に入れました.如意クラウドRY-1の場合、ファームウェアはopenwrt/bin/ramipsディレクトリの下にopenwrt-ramips-mt 7620 n-rt-n 14 u-squashfs-sysupgradeのように形成する.bin openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin
以上はネット上の教程で、実は教程の大多数はすべて正しいで、更新の拡張のこの一歩は通れないで、それから私はopenwrtの公式サイトで彼らがgithubダウンロードのソースコードを提供することを発見して、私はSVNダウンロードのソースコードを交換してgitダウンロードします:
gitパッケージのインストール:
sudo apt-get update
sudo apt-get install git-core build-essential

Openwrtソースの取得:
git clone git://git.openwrt.org/openwrt.git

更新拡張を再実行し、拡張をインストールします.
注意:githubでソースのfeedsをダウンロードします.conf.defaultの更新拡張リンクはすでにgoogleを指しておらず、基本的にgithubを指しているので、更新拡張の一歩も順調に実行できます
./scripts/feeds update -a
./scripts/feeds install -a