PICモードをサポートするためにカーネルパッチを適用する

PICモードをサポートするためにカーネルパッチを適用する

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、そこからコマンドを実行する必要があります。

カーネル ディレクトリのコピーを作成することを検討してください。そうすれば、バックアップにあるカーネルのコピーを使用してプロセスを実行し、簡単に元に戻すことができます。

注意: これはパッチを適用するプロセスに過ぎません。カーネルに適切なパッチを使用していると仮定すると、エラーは発生しません。カーネルの公式パッチ ファイルなど、パッチ ファイルが必要です。

関連情報