1

私はクロスコンパイルが初めてです。TS-7500 SBC (ARM プロセッサ) で wifi モジュールを使用する予定であり、サポートしていないため、Linux カーネルをクロスコンパイルする必要があります。私はwifiモジュールのドライバーを持っており、インターネットサーフィンを通じて、クロスコンパイルの一般的な手順を知るようになりました. ただし、余分なモジュール部分については多少混乱しています。これらの追加モジュールに関する TS-7500 の公式 Web サイトからの情報は次のとおりです。

付録 - カスタム オプションを使用した TS-Kernel の コンパイル 別のカーネル モジュールをコンパイルし、既存のカーネルに含める .ko ファイルを作成するには、上記のステップ 08 に続いて、ステップ 09 で終了する手順を示します。注: ステップ 02 以降のステップは未検証/未テストです。それらは、人が通過する正確な手順を表しています。

01.) menuconfig を開き、"M" を使用してカーネル機能をモジュール化します。たとえば、cifs.ko をモジュール化するには、矢印と Enter キーを使用して、[ファイル システム] -> [ネットワーク ファイル システム] -> [CIFS サポート] に移動します。
「M」を押して CIFS サポートをカーネルにモジュール化し、変更を保存するように求められるまで「終了」を押し続け、「はい」を選択します。

make menuconfig

02.) モジュールを使用してカーネルをコンパイルし、モジュールを Linux PC にコピーします。

 make && make modules && make modules_install  

03.) cp のようなコマンドで Linux PC にコピーされたモジュールを取得し、MiniSD カードのカーネルにインストールできるようにします。

mkdir /mnt/miniSD4
mount /dev/sdb4 /mnt/miniSD4
cp /lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko /mnt/miniSD4

04.) カードのパーティション 4 から SBC のパーティション 2 にコピー アンド ペーストして、モジュールをカーネルにインストールします。

cp -r /dev/nbd4/cifs.ko /dev/nbd2/lib/modules/2.6.24.4/kernel/fs/cifs/cifs.ko

05.) 最後に、新しいモジュールを使用するには、有効にする必要があります。これは、linuxrc などの起動スクリプトに含めることができます。

depmod
modprobe cifs.ko

シリアル 2 について混乱しています。だれか説明してもらえますか?インストールしたいドライバのアドレスをどこに提供すればよいですか?

前もって感謝します。

4

1 に答える 1

0

あなたの SBC がそれをサポートしていないと言うことは、あなたがクロスコンパイルしたモジュール/ドライバーが「ソースツリー外」のカーネルモジュールであることを意味していると思います。

上記の手順は、「ツリー内カーネル モジュール」のみを対象としています。

これにより、次の 2 つのオプションが残ります。

  1. ドライバーをクロスコンパイルすると、*.ko ファイルが作成されます。SD カードまたはネットワークを使用して、このファイルを実行中のシステムに転送します。この後、モジュールをロードします

    insmod /path/to/module/filename.ko
    

    この方法には、1 つだけ制限があります。つまり、このドライバー/モジュールが他のドライバーに依存している場合は、最初にそれらをロードする必要があります。

  2. ドライバーをカーネル ソース ツリーに含めmodprobe drivername、依存関係と共にそれをロードするために使用します。modprobeモジュール自体をロードする前に、最初に依存関係をチェックし、それらを自動的にロードするという意味で、insmod よりも進んでいます。

カーネルのソース ツリーにドライバーを含めるには、この回答を参照してください。

于 2013-07-20T19:11:16.060 に答える