tty0tty(ヌルモデムエミュレータ)のインストール中に「make」が停止します。

tty0tty(ヌルモデムエミュレータ)のインストール中に「make」が停止します。

頑張ってるヌルモデムエミュレータtty0ttyのインストールリンクされたインストールガイドと同じですが、「3.提供されたソースからカーネルモジュールを構築する」に問題があります。

user@linux-bmne:/run/media/.../Downloads/tty0tty-1.2/module> make
make -C /lib/modules/3.16.7-29-desktop/build M=/run/media/.../Downloads/tty0tty-1.2/module modules
make[1]: Entering directory '/lib/modules/3.16.7-29-desktop/build'
make[1]: *** No rule to make target 'modules'. Stop.
make[1]: Leaving directory '/lib/modules/3.16.7-29-desktop/build'
Makefile:26: recipe for target 'default' failed
make: *** [default] Error 2

はい、makefileはフォルダにありますmodule。また/lib/modules/3.16.7-29-desktop/build終了します(I以降mkdir build3.16.7-29-desktop。 tty0ttyのフォルダ構造を見ることができます。ここ(これはとても簡単です)。私もそうしてみましたが、sudo makeあまり違いはありませんでした。

この問題No rule to make targetは一般的なようですが、この場合は一致する解決策が見つかりませんでした。これが役に立つかどうかはわかりませんが、私のシステムではsuse 13.2 x86_64がオンになっています。

ご協力ありがとうございます。

答え1

カーネルモジュールをビルドするには、デフォルトのカーネルイメージの構築中に生成されるいくつかのヘッダファイルが必要です。 makefileは、これらのヘッダファイルが実行されているカーネルによって決定された/lib/modules/3.16.7-29-desktop/build場所で利用可能であると予想します3.16.7-29-desktop。ヘッダファイルと共にサードパーティモジュールを構築するために使用できるmakefileがあります。このメイクファイルはのメイクファイルによって呼び出されますが、moduleシステムには存在しません。

システムにカーネルヘッダーをインストールする必要があります。 OpenSUSEでは、次のようになります。kernel-develパック。ほとんどのディストリビューションでは、これはカーネルヘッダツリーの場所へのシンボリックリンクです。 OpenSUSEがこれを行うかどうかわかりません。それ以外の場合は、シンボリックリンクを作成するか、ヘッダー(ファイルとサブディレクトリと合計を含むディレクトリ)の実際の場所を引数として渡します。/lib/modules/VERSION/buildMakefileModule.symversincludearchmake

make KERNELDIR=/path/to/kernel-headers

現在実行中のカーネルバージョン以外のカーネルバージョン用のモジュールを構築するには、後者の方法を使用する必要があります。

関連情報