質問

Linux用のドライバーをコンパイルするのはまったく初めてで、いくつかの問題が発生しました!

USBデバイス用のドライバーをコンパイルしようとしています。

結果:


[thayoz@lacalpc13 linux]$ make
for i in driver lib qrng ; do cd $i && (make all || exit ) && cd ..; done
make[1]: Entering directory /home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver'
make -C /usr/src/kernels/ M=/home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver V=1 modules
make[2]: Entering directory/usr/src/kernels'
make[2]: * No rule to make target folder/Quantis-USB/src/linux/driver'.  Stop.
make[2]: Leaving directory/usr/src/kernels'
make[1]: * [all] Error 2
make[1]: Leaving directory `/home/thayoz/Desktop/untitled folder/Quantis-USB/src/linux/driver'
/bin/sh: line 0: cd: lib: No such file or directory
/bin/sh: line 0: cd: qrng: No such file or directory
make: *** [all] Error 1

何が間違っているのかわかりません???

役に立ちましたか?

解決

通常、次のようなものです:

make -C <directory to kernel source> M=<directory to module/driver source> modules
make -C <directory to kernel source> M=<directory to module/driver source> modules_install

十分です。

ドライバにはメイクファイルが付属していましたか?適切なカーネルソース、たとえば正しいバージョンに対してコンパイルしていますか?

他のヒント

ビルドディレクトリへのパスのスペースが問題の原因であると思われます。

/ home / thayoz / Desktop / untitled folder / Quantis-USB ...

「無題フォルダ」のスペースに注意してください。

makeはモジュールディレクトリを次のように取っているようです:

/ home / thayoz / Desktop / untitled

そして:

folder / Quantis-USB / src / linux / driver

追加の引数としてmakeに渡されます(おそらくビルドされるターゲット)。

「/ home / thayoz / Desktop / untitled folder」の名前を「/ home / thayoz / Desktop / untitledfolder」に変更して、何が起こるかを確認してください。

GNUビルドシステムを使用してパッケージ化されたソフトウェアをビルドする一般的な手順についての私の理解は次のとおりです。

  1. .configureスクリプトを実行します。このスクリプトは、システム上のビルド環境をチェックし、必要なすべての実行可能ファイル、ライブラリなどが使用可能であることを確認し、機能するMakefileを作成します。
  2. makeを実行します。これは、ステップ1で生成されたMakefileを使用してバイナリをビルドします。
  3. make installを実行します。これにより、バイナリがシステム上の正しい場所にインストールされます。

GNUビルドシステム

ドライバーパッケージに付属の.configureスクリプトを実行しましたか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top