OpenWrt V22.03.2 ノートを投げる (コンパイル)

-- ポールルーティング 1S (HC5661A)

何年も前、私は Asterisk15 を使用して Openwrt V18.06 ファームウェアをコンパイルしました (Lua 言語を使用して、ひょうたん画スタイルに従って Web 構成インターフェイスを開発しました) と、ルータ上の USB インターフェイスを介して SIP クライアントを実現できる openVPN サーバーをコンパイルしました ( HC5661A の USB セルフ(インストールされている Huawei E-180 3G ネットワーク カード)は、電話の発着信、テキスト メッセージの転送(携帯電話、SIP クライアント、および電子メールへの転送)およびその他の機能を実行できます。OpenVPN が接続されると、光回線にアクセスできます。 U ディスク上のモデム。ただし、Asterisk15 には欠点があります。つまり、通話中、双方が話している場合、通話品質が非常に悪くなります。通話品質の低下は、ルーターのハードウェア パフォーマンスとはほとんど関係ありません。コア CPU ルーターのパフォーマンスが向上しており、それは同じです。その後、このテレホンカードは娘の携帯時計に使用され、リビングルームのテレビやテレビボックスのスイッチとして使用されています。

長い年月を経て、OpenWrt の安定版が V22 に更新され、Asterisk も V18 に更新されました。また、メインルーターとして新しい WIFI6 ルーターを購入したため、(すべての猫をメインとして使用しています)以前のルーター、Huawei HS8145V?バージョンは忘れました)、光モデムに挿入されたUディスクは共有できず、プライベートクラウドディスクの機能は実現できず、NTFS-3Gでは古いバージョンのOpenwrtをインストールできません、 Samba と共有した後は書き込むことができません。したがって、OpenWrt の V22 バージョンを捨てました。

まず、仮想マシン VMware Workstation Pro をコンピュータにインストールします。私は V14 バージョンを使用しました。Ubuntu をインストールし、3 つのバージョン (18.04.2、20.04.5、22.04.1) をインストールし、次に 22.04.1 を選択しました。OpenWrt V22 をコンパイルするには.03.02

まず、トス方法について説明します コンパイル後、U ディスクが認識されません コンフィグレーションメニューでインストールする Kmod モジュールが選択されています コンパイル後、認識されません システムログとコアログが USB を認識できません以前の V18 では直接認識されていましたが、新しいバージョンの Linux カーネルではサポートされていないのでしょうか? とにかく、長い間分解していましたが、後でDTSのハードウェア構成ファイルでUSBを無効にし、それをOKに変更してから通常にコンパイルすることがわかりました。なお、このルータには実はSDカードスロットがあり、DTS設定ファイルも無効になっているのですが、これを有効にするとLANポートが正常に動作しなくなり、IOポートがLANと共有され、OpenWrtが動作しなくなるそうです。個別に適応するわけではないので、一時的にあきらめて投げ続けますが、USBがあれば十分です。

私は今でも反転物語法を使用しています。まず、Openwrt/target/Linux/ramips/dts ディレクトリにあるこの DTS 構成ファイルを見てください: (今話しているステップは Make の前に変更されており、後で説明します) )

5586cc7803bc42d785ddb3666beda8cd.png

 

これをテキストエディタで開き、図に示すように、&ehci と &ohci の status = "disable" を status = "okay" に変更します。

9f4634191e244e2cad50f219f724b624.png

コンパイル環境の構築については、OpenWrt の公式 Web サイト URL: [OpenWrt Wiki] ビルドシステムのセットアップも参考にさせていただきます。

仮想マシンに Unbuntu をインストールした後、Unbuntu を起動し、デスクトップに入り、右クリックしてターミナルを開き、最初にソフトウェア ソースを更新します。

その後、OpenWrt のコンパイルに必要なツール パッケージをインストールする必要があります。

sudo apt update
sudo apt install build-essential clang flex g++ gawk gcc-multilib gettext \
git libncurses5-dev libssl-dev python3-distutils rsync unzip zlib1g-dev

上記は、バージョン 22.03 および 21.02 をサポートするパッケージのコンパイルに適用されます。これらのコンパイルには python2.7 は必要なくなり、python3 はすでに ubuntu 22.04 に組み込まれています。

古いバージョンをコンパイルする場合は、次のソフトウェア パッケージをインストールする必要があります (ここでは最新バージョンをコンパイルするため、次のソフトウェアをインストールする必要はありません)。

sudo apt update
sudo apt install build-essential ccache ecj fastjar file g++ gawk \
gettext git java-propose-classpath libelf-dev libncurses5-dev \
libncursesw5-dev libssl-dev python python2.7-dev python3 unzip wget \
python-distutils-extra python3-setuptools python3-dev rsync subversion \
swig time xsltproc zlib1g-dev

コンパイル環境が確立したら、公式 Web サイト[OpenWrt Wiki] ビルドシステムの使用方法も参照して、次の手順を実行します。

私はただの現地語翻訳者です、笑!

次の手順は root として実行する必要がないことに注意してください。root を使用すると、エラーが報告される可能性があります。コンパイル後、ファームウェア内のすべては root ユーザーに属します。ウィンドウの下でファイルを移動したり変更したりするには、root の ID が必要です。操作が簡単ではありません。

リポジトリからコードのクローン作成を開始します

git clone https://git.openwrt.org/openwrt/openwrt.git
cd openwrt
git pull

git clone は https://github.com/openwrt/openwrt からもクローンできます (ネットワーク速度が遅いようです)。openwrt ディレクトリに切り替えた後、git pull を使用して更新をプルします。ここで設定を確認してください。アップデートを取得しなくても同じです。あくまで公式です

次に、git タグの後に、多くのバージョンがリストされます。最後のバージョンの後に END が表示されるまでキーボードの下キーを押します。q を押して終了し、git checkout v22.03.2 を実行します。この手順では、必要なバージョンをチェックアウトします。コンパイル。

git tag
git checkout v22.03.2

 次のステップはフィードを更新してインストールすることです。2 つの命令はマージされて一緒に実行されます。

./scripts/feeds update -a && ./scripts/feeds install -a

ここで実行すると、DTS ファイルを変更できるので、変更後は次の手順に進みます。

次に、openwrt の構成メニューに入り、ランクと列の幅が狭くてエラーが表示されないことを示すメッセージが表示されないように、仮想マシンを最大化します。

make menuconfig

 コマンド実行後

818255e34dd843fbbe2e06a4a895008f.png

この構成については、選び方、実現したい機能、必要なパッケージについては詳しく説明しません。Baidu を使用できます。実際のニーズに応じて、* が付いたものはファームウェアにコンパイルされ、M が付いたものは IPK インストール パッケージにコンパイルされます。

必要に応じて、カーネル構成メニューに入り、make -j4 kernel_menuconfig V=99 にすることもできます。この最初のエントリは非常に時間がかかり、ネットワークとコンピューターの構成によっては 30 分以上かかる場合があります。このステップはインストールしてダウンロードする必要があります。コンパイル チェーン ツール。通常、ここに入力する必要はありません。これには、ほとんどの人が理解できない Linux カーネルの構成が含まれているためです。(make -j4 ここでの 4 は 4 コア コンパイルを有効にすることを意味します。仮想マシンで利用可能な CPU の数を確認します。-j 番号を入力するだけです。V=99 はコンパイルされたすべての情報を表示します。V=s は同じ意味です)

その後、 make -j4 V=99 を直接使用してコンパイルし、構成とネットワーク パフォーマンスを確認できます。エラーが報告されなければ、ルータ ファームウェアは 1 ~ 2 時間でコンパイルできます。生成されたファームウェアは、/openwrt/bin/targets/CPU チップ アーキテクチャ ファイルで指定されたディレクトリ/CPU チップで指定されたディレクトリ/に保存されます。たとえば、私の HC5661A は /openwrt/bin/targets/ramips/mt76x8/ に生成されます。

make -j4 V=99

さらに、個人の好みに応じて、make -j4 V=99 を実行する前に、最初に次のコマンドを使用して、最初にダウンロードする必要があるものをダウンロードすることもできます。

make -j4 download V=99

この時点で、コンパイル全体が完了します。次の記事では Samba4 ネットワークを共有しましょう。

 

 

おすすめ

転載: blog.csdn.net/dream52/article/details/127485701