Kali Linux で TP Link AC 600 のドライバーをコンパイルしようとすると、エラーが発生しますamd64 4.7.0 gcc 5.4.1 Debian 5.4.1-3
。
エラーは「エラー コード モデル カーネルは PIC モードをサポートしていません」です
しばらく試行錯誤した後、同様の問題を抱えている人を見つけ、パッチを投稿した人もいました。
パッチをどのように適用しますか、またどこに適用しますか?
もう一つのリンクはこちらです:カーネルをコンパイルできません: エラー、カーネルは PIC モードをサポートしていません
答え1
UbuntuとIntelのドライバーに関しては、IntelはUbuntuのLTSバージョンのみをテストしました(Todd Fujinakaの回答を見る)。したがって、Ubuntuを16.10から16.04.1 LTSにダウングレードする必要があります(維持しながら再インストール/home
)。
Kali のような他のすべての Debian ベースのディストリビューションでも同じことが言えます。つまり、ドライバー ベンダーによって明示的にサポートされているバージョンにダウングレード (つまり再インストール) する必要があります。gcc PIC 機能の前のバージョンのことです。
これはあまり気持ちのよい答えではないかもしれませんが、技術的には正しい答えです。あなたがカーネル開発者でない場合は、カーネル メーリング リストに参加して、開発者がドライバー コードに取り組めるかどうかを丁寧に尋ねるしかありません。うまくいく場合もありますが、辛抱強く待ってください。
答え2
パッチを適用するプロセスは非常に簡単です。次のようなカーネル ディレクトリとパッチ ファイルがあると仮定します。
- /usr/src/kernels (or where you have the kernel directory)
---- /user/src/kernels/kernel_directory
---- /user/src/kernels/patch_file
パッチの形式 (通常は .gz、.bz2、または .xz) に応じて、異なるコマンドを使用してパッチを展開する必要があります。 に移動してkernel_directory
、次のコマンドを実行する必要があります。
gzip -cd ../patch_file | patch -p1
- これはgzipパッチ用です
bzip2 -cd ../patch_file | patch -p1
- これはbzipパッチ用です
xz -cd ../patch_file | patch -p1
- これはxzパッチ用です
パッチ ファイルを/usr/src/kernels/patch_file
カーネルに適用します/usr/src/kernels/kernel_directory
。まず に移動し/usr/src/kernels/kernel_directory
、そこからコマンドを実行する必要があります。
カーネル ディレクトリのコピーを作成することを検討してください。そうすれば、バックアップにあるカーネルのコピーを使用してプロセスを実行し、簡単に元に戻すことができます。
注意: これはパッチを適用するプロセスに過ぎません。カーネルに適切なパッチを使用していると仮定すると、エラーは発生しません。カーネルの公式パッチ ファイルなど、パッチ ファイルが必要です。