4

Linux wifi ドライバーを 3.11から linux-omap-l1(2.6.39)にバックポートしようとしています。Ubuntu 11.4 (カーネルは 2.6.38-11-generic) でクロス コンパイラをセットアップし、クロス コンパイルされたカーネルが ARM プロセッサで期待どおりに実行できることを確認しました。また、 「使用ガイド」セクションに従って、wifi ドライバーをこの Ubuntu にバックポートすることもできました。ただし、wifi バックポートのクロス コンパイルに問題があります。ここに私がした2つの試みがあります:

試み#1

上記の同じリンクの「クロス コンパイル」セクションに従って、ARCH(=arm)、CROSS_COMPILER、KLIB_BUILD(=linux-omap-l1 ディレクトリ)、および KLIB(=linux-omap-l1 ディレクトリ) を設定し、make defconfig-wifi を実行しました。 、次に make -j4 を実行しました。エラーなく終了しました。ただし、生成された ko ファイルを確認すると、「rt2x00usb.ko: ELF 32-bit LSB relocateable, Intel 80386 , version 1 (SYSV), not stripped」のように見えるため、明らかにクロス コンパイルされていません。

試み#2

次に、古い make の結果を消去し、上記の 4 つのマクロを引数として make に直接渡し、再度実行しました。今回は、printk.h、atomic.h、および average.h の欠落を訴える多くのエラーが報告されました。

上記のいずれかの場合にご協力ください。

4

3 に答える 3

4

さて、私は他の人の参考のためにrt2800usb wifiソリューションをここに投稿します。次の手順は正常にクロスコンパイルされました。

  1. Menuconfig linux-omap-l1(2.6.39) カーネルでNetworking Support -> Wirelessを無効にし、ビルドして組み込みユニットを起動し、準備が整っていることを確認します
  2. ビルド PC の backports ディレクトリから「make mrproper」を実行します (Ubuntu 11.4)
  3. ビルド pc から次のスクリプトを実行します。KLIB が指すディレクトリが事前に存在することを確認するか、存在しない場合は作成します

    set -a
    CROSS_COMPILE="/opt/arm-2009q1/bin/arm-none-linux-gnueabi-"
    ARCH=arm
    KLIB_BUILD="/home/xxx/linux-omap-l1"
    KLIB="/home/xxx/linux-omap-l1/updates"
    set +a
    
    make defconfig-wifi
    make oldconfig  # menuconfig worked here too
    make
    make install
    
  4. コンパイルされたバイナリとモジュールをユニット (10.11.2.3) にコピーします。

    scp -r  /home/xxx/linux-omap-l1/updates/lib/modules/2.6.39.4-00537-g6c21e4a  root@10.11.2.3:/lib/modules/2.6.39.4/.
    
  5. 組み込みユニットにログインし、「modprobe -v -f rt2800usb」を実行します</p>

  6. 必要に応じて、rt2800usb ファームウェアを /lib/firmware にダウンロードしてインストールします。
  7. lsmod を実行して、ドライバーをロードできることを確認します
  8. USB ドングルを挿入します (udev ルールを作成または変更する必要がある場合があります)。
  9. iw を使用して、そのプロパティをさらに調べます
于 2013-11-12T17:27:16.490 に答える
1

バックポートがカーネル構成を取得できません.....カーネル構成で mac80211 がモジュールに設定されています。バックポートのメニュー構成で mac80211 を検索すると、無効と表示されます。上記を試してみました....

set -a
CROSS_COMPILE="/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-"
ARCH=arm
KLIB_BUILD="/home/xxx/rpm/BUILD/linux"
KLIB="/home/xxx/rootfs/lib/modules/2.6.35.3-998-ga1cd8a7/updates"
set +a

make defconfig-wifi
make menuconfig
于 2014-06-13T14:07:00.677 に答える