USBワイヤレスデバイス用のモジュールを構築するために、何日も試行錯誤を繰り返してきました。
Debian用のモジュールの構築に関するいくつかのリソースを見つけましたが、Arch用のリソースはありません。現在、Raspberry Pi GitHubにあるToolChainを使用してクロスコンパイルを試みています。これらは私がとったステップです:
- Edimax Webサイトからドライバーソースをダウンロードしました。
- GitHubからカーネルソースをダウンロードしました。
- Edimax MakeFileに特定のmakeルールを作成しました(Edimaxのドキュメントに従って)。
ifeq ($(CONFIG_PLATFORM_PI), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := arm-bcm2708-linux-gnueabi-
KVER := 3.1.9-30-ARCH+
KSRC := /pi-sources/lib/modules/3.1.9-30-ARCH+/build
MODDESTDIR := /pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif
KSRC
カーネルソースを含むディレクトリです。MODDESTDIR
モジュールを最終的に配置するディレクトリです。CROSS_COMPILE
私のツールチェーンです(これはに追加されましたPATH
)
の最初の試みmake
はこのエラーを与えます:
fatal error: linux/smp_lock.h: No such file or directory
これは古いヘッダーであることがわかり、シンボリックリンクしてsmp.h
問題を修正する必要があります。ただし、次のようなソースエラーでビルドは失敗します。
error: field 'recv_tasklet' has incomplete type
ビルドが最新のカーネルバージョンをサポートしていないかのように見えるように十分なコンパイルを行いましたが、そうであれば、Debian用にどのようにビルドされたのでしょうか?
追加情報:
- 完全な出力はこちら。
私は同じアダプターを持っていますが、まだ試してはいません!
—
シェーンハドソン
どうやってそれがうまくいくかを教えてください、そしてたとえそれが否定的であっても、後であなたの経験を追加してください。
—
Jivings
@トーマス、もっとバウンティ!今回はアレックスがそれを取得しないようにしてください:)
—
Jivings