openwrtコンパイル体験【2021-01-28】

openwrtコンパイル体験【2021-01-28】

コンパイラ環境

Kubuntu 20.10 (理論的には他の Ubuntu ディストリビューションにも同じことが当てはまります) は、まずL の Openwrt Readme
を参照してインストールします。

ビルドエッセンゲスアスシドックビニューティルbzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs gcccore gcc-multib-gcc-multib gck-multilib gcccer fo libglib2。 0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g+±multilib antlr3 gperf wgetcurl swig rsync

これらのバッグ(一部のシステムには付属しています)
また、はしごを準備しておくと良いでしょう。

リポジトリをコンパイルする

openwrt の公式ソースコードを使用していますが、中国で速度が遅い場合は gitee を使用してクローンを高速化できます。
openwrt のソース コードを高速化するだけでなく、openwrt/feed.conf.defaults のウェアハウスも高速化する必要があるため、gitee 下のウェアハウス ディレクトリに変更するか、他の方法を使用して高速化することができます。

コンパイル設定

make menuconfig を使用して必要なパッケージを選択するだけです。L のプラグインの説明
を参照してください。さらに、生成された .config ファイルでは、2 つのユーザー パッケージ libustream-wolf と dnsmasq がエラーを報告するため、コメント アウトする必要があります。

コンパイルプロセス

  1. コンパイルツールをインストールする
    sudo apt install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync -y
    
  2. openwrt リポジトリをダウンロードする
    git clone https://git.openwrt.org/openwrt/openwrt.git/
    
    git アドレスは、独自の openwrt ウェアハウスに置き換えることができます。
  3. ウェアハウスに入り、必要なバージョンに切り替えます
    cd openwrt
    git checkout remotes/origin/openwrt-19.07
    
  4. feeds.conf.defaults リポジトリを編集して高速化します
    nano feeds.conf.default
    
    独自の高速リポジトリに置き換えられます。
  5. 次に、最初にフィードで更新します
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    
  6. 設定ファイルを生成する
    make menuconfig
    
  7. .config ファイルを変更する
    nano .config
    
    これらの 2 行をコメントアウトします

    CONFIG_PACKAGE_libustream-wolfssl
    CONFIG_PACKAGE_dnsmasq

  8. 並列コンパイル中のエラーを防ぐには、最初に make download を実行してください。
    make -j8 download V=s
    
    ここでは多くのものがダウンロードされます。プロキシの使用をお勧めしますが、プロキシに問題があることに注意してください。つまり、pysocks がインストールされていない場合、pip は sock 経由で接続できません。
  9. コンパイル
    make -j1 V=s
    
    チュートリアルには、make download で並列コンパイル エラーを防ぐことができると書かれていますが、並列コンパイル中に正常にコンパイルできない不可解なパッケージがまだいくつかあります。相互依存関係があるはずです。コンパイルが長時間アイドル状態の場合は、次のようにコンパイルすることをお勧めします。単一のスレッド、それ以外の場合は複数回繰り返すことができます。

おすすめ

転載: blog.csdn.net/u013943146/article/details/113353790