カーネル3.0のクロスコンパイルとバックポーティング

カーネル3.0のクロスコンパイルとバックポーティング

コンパイルしようとしています。バックポート(私は最新の[5.6.8-1]バージョンを選択しました)提供されたツールチェーンを持つi.MX35(armv6)組み込みLinuxシステム用(arm-fsl-gnueabi-gcc 4.6.2、他のコンパイラは選択できません)とBSPコア(3.0、残念ながら他のカーネルはオプションではありません)

関連ページ主張する

各バックポートは、サポートされているすべてのカーネルで使用できるようにテストおよびコンパイルされました。最も古いバージョンは(現在)3.0です。

だから私は大丈夫でしょう。しかし、以下に書かれているように、彼らはこのバージョンを3.0に対してテストしていないと確信しています。これは手動介入がなければそのバージョンに対してコンパイルされないためです。

私はカーネルソースツリーを[再]構築して従いました。「クロスコンパイル」のガイドラインツリー外部バックポートの構築に使用されます。その後、最初にmenuconfig複数のUSB WiFiドライバを選択しましたが、コンパイルエラーのためにタールボールを削除して再抽出し、それを実行しました(彼らが主張したように)。

ユーザーがLinuxカーネルを構成する方法がわからないように、バックポートパッケージを構成する方法がわからないため、興味のあるドライバ/サブシステムのみを構築するために使用できるデフォルトの構成ファイルへのショートカットが提供されます。中。

defconfig-mwifiex構成に問題がないことを確認するためのものです。はい、私は本当に絶望的な楽天主義者です。

3.0にない機能に依存する「バックポーティングの少ない」機能を削除する必要がありました。

  1. __atomic_add_unlessatomic_add_unless変更backport-include/linux/atomic.h

  2. 代わりに無条件に呼び出されますdebug_fs_create_xul。条件付きバージョンは、そのプラットフォームで32ビットのサイズに基づいて予約されているため、後者は呼び出されません。backport-include/linux/debugfs.hdebug_fs_create_x32debug_fs_create_x64unsigned long

  3. netdev_upper_dev_link360行目から始まるものはbackport-include/linux/netdevice.h3.0にはなく、一部の後続のバージョンにのみ存在するためコメントされています。とにかく呼び出しのみ可能コンパイルされたモジュールはありません。(実際のデフォルトのカーネル構成のため、menuconfigにも表示されません。)したがって、安全です。

  4. #ifdef CONFIG_PCI編集に同じ変数を使用するpcie_find_root_portチェーンを呼び出し/依存するため、定義の下に配置されます。#ifdefbackport-include/linux/pci.h

  5. #ifdef使用する構造メンバーが同じpm_runtime_activeディレクトリにあるためbackport-include/linux/pm_runtime.hCONFIG_PM_RUNTIME#ifdef

  6. #ifdefそのバージョンでのみ構造メンバーが追加されたため、を使用してNETLINK_CB(in_skb).skアクセスしました。compat/backport-genetlink.cLINUX_IS_VERSION_GEQ(3, 10, 0)sk

残念ながら、拡張net/wireless/trace.cに問題があり、TP_PROTOGCCで多くのエラーが発生しましたが、error: expected ')' before 'struct'それを修正できませんでした。どんなアイデアがありますか?

そうでない場合3.0でテストしましたバックポート版(利用可能な戦闘テストを受けたWiFi USBドライバがたくさんあることを願っています)?

関連情報