Armadilloフォーラム

Debian環境での/lib/modules/(uname -r)/build:

kazu2015

2016年2月16日 1時08分

いつもお世話になっております。須賀です。

microSDカードにDebian環境(3.14.36-at5)を構築いたしました。

wi-fiのUSBドライバを作成するため、
USBドライバのソースコードをmakeファイルでコンパイルしたところ
”-bash: /lib/modules/3.14.36-at5/build:uname: No such file or directory”
のエラーが出力されてしまいました。

/lib/modules/3.14.36-at5のフォルダがないためと思われますが
この場合の対応方法について教えていただけますでしょうか

以上、よろしくお願いいたします。

コメント

at_yuma.arakawa

2016年2月16日 9時49分

> /lib/modules/3.14.36-at5のフォルダがないためと思われますが
> この場合の対応方法について教えていただけますでしょうか
配布しているArmadillo用Debianユーザーランドには、
カーネルモジュールをコンパイルするための環境は整備されていません。

ATDE5上に、クロスコンパイル用の環境を用意していますので、
Debianユーザーランドに環境を構築するよりも、
ATDE5を使用してArmadillo用にクロスコンパイルする方が手間が少ないかと思います。

> wi-fiのUSBドライバを作成するため、
> USBドライバのソースコードをmakeファイルでコンパイルしたところ
ちなみに、こちらはどこのソースコードか教えていただけますか?

ご回答ありがとうございます。

>ATDE5を使用してArmadillo用にクロスコンパイルする方が手間が少ないかと思います。

> USBドライバのソースコードをmakeファイルでコンパイルしたところ
> ちなみに、こちらはどこのソースコードか教えていただけますか

実は、過去に"USB無線LAN(GW-USNANO2A)のドライバ対応"で投稿させて頂いた
のドライバをDebian+linux3.14環境に適用しようとしております。
再度、ドライバのmakeバッチコード(オリジナル_install.sh)と
回答で頂いたクロスコンパイル用のmakeバッチコードを添付致します。

作業状況を補足しますと、
ATDE5の環境で前回頂いたクロスコンパイル用のinstall.shを実行し、
できたモジュール(8192cu.ko)をDebian環境(Armajillo)にてinsmodを実行しましたが、
"invalid module format"のエラーが発生しました。

モジュールのバージョンを"modinfo 8192cu.ko | grep vermajic"で確認したところ、
"3.2.0-4-686-pae SMP mod_unload modversions 686"でした。
※Debian環境(Armajillo)のuname-rの結果は3.14.36-at5です。

恥ずかしながらATDE5を利用したDebianへのクロスコンパイル方法がよくわかっていないため
やり方を教えて頂けますでしょうか。

以上、よろしくお願い致します。

ファイル ファイルの説明
前回回答で頂いた_install.sh
オリジナル_install.sh

大変失礼しました。

"[ATDE]$ sh install.sh "
の実行を忘れておりました。

確認致します。

ATDE5環境で前回頂いたクロスコンパイル用のinstall.shを
"home/atmark/linux-3.14-at5"で指定して実行しましたが、
添付のエラーが表示されコンパイルができませんでした。

何か環境でミスがあるのかと思いますがご指摘頂けますでしょうか。

以上、よろしくお願い致します。

ファイル ファイルの説明
20160216_error.txt

こちらのATDE5の設定を見直したところ、
install.shの実行結果が変わりましたのでご連絡致します。

makeは実行されましたが、
"error: implicit declaration of function ‘create_proc_entry"
のようにエラー(添付250行目以降)がいくつか出ております。

これはlinuxのカーネルを2.6(ATDE3)から3.14(ATDE5)に変更したことが原因でしょうか

ファイル ファイルの説明
20160216error2.txt

at_yuma.arakawa

2016年2月16日 19時15分

> これはlinuxのカーネルを2.6(ATDE3)から3.14(ATDE5)に変更したことが原因でしょうか
おそらく、そのようです。
当方でも、同様のエラーが発生することを確認しました。

RealtekのRTL8192CUドライバのダウンロードページ[1]を確認すると、
Descriptionに、「Linux Kernel 2.6.18~3.9」との記述があり、
3.14はサポート外のようです。

[1] http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=4&PNid=48…

> 3.14はサポート外のようです。

重要なところを見落としており大変失礼致しました。
3.14対応は諦めます。

at_yuma.arakawa

2016年2月16日 20時08分

Linux 3.14でRTL8192CUが使えないのではなく、
RealtekのRTL8192CUドライバは、Linux 3.14に含まれております。

先程は間違った回答をしており、申し訳ありません。

以下の手順を試してみてください。

1. カーネルコンフィギュレーションで以下を有効化してカーネルをビルド

- Networking support
  - Wireless
    - <*>   cfg80211 - wireless configuration API            <== 有効化
      - <*>   Generic IEEE 802.11 Networking Stack (mac80211)        <== 有効化
- Device Drivers
  - Network device support
    - Wireless LAN
      - Realtek rtlwifi family of devices
        - Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter    <== 有効化

2. 1. で生成したカーネルで起動した後、Realtekのファームウェアのパッケージをインストール

[armadillo]# apt-get install firmware-realtek

>Linux 3.14でRTL8192CUが使えないのではなく、
>RealtekのRTL8192CUドライバは、Linux 3.14に含まれております。
>先程は間違った回答をしており、申し訳ありません。
>以下の手順を試してみてください

回答ありがとうございます。
教えて頂きました手順で動作できました。