Linuxカーネル3.11.1を実行しているPCにSSH経由で接続しました。
root@alix:~# uname -r
3.11.1
特定のファイルまたはカーネルバージョンがそれぞれどのパッケージにインストールされているかをどうやって知ることができますか?
頑張った
root@alix:/boot# dpkg -S vmlinuz-3.11.1
dpkg-query: no path found matching pattern *vmlinuz-3.11.1*
インストールされている他のカーネルバージョンは、次のコマンドを使用して見つけることができます。dpkg-S:
root@alix:/boot# dpkg -S vmlinuz-3.2.23
linux-image-3.2.23-ath5kmod: /boot/vmlinuz-3.2.23-ath5kmod
私の目的:バージョン3.11.1の対応するLinuxヘッダーファイルをインストールしてそれのカーネルモジュールをコンパイルしたいと思います。apt-cacheはLinuxヘッダーを検索します15の異なるヘッダーバージョンがリストされていますが、3.11.1にはヘッダーバージョンはリストされていません。
とても感謝しています。
答え1
インストールされているすべてのパッケージを一覧表示し、カーネルパッケージを使用してdpkg -l
結果をフィルタリングできます。grep
dpkg -l | grep 'linux-image'
dpkg -l | grep 'linux-image' | grep '3.11'
実行中のカーネルのカーネルヘッダパッケージを見つけるには:
apt-cache search linux-headers-`uname -r`
答え2
私の最初の問題は、現在インストールされているLinuxカーネル(3.11.1)に適したカーネルヘッダがないことでした。
最後に、私はこの問題を4つのステップで解決しました。
- 以下でインストールされたカーネルを削除しました。適切。
削除されたカスタムカーネル:
- /boot/vmlinuz*カーネルバージョン*
- /boot/initrd*カーネルバージョン*
- /boot/system マップ*カーネルバージョン*
- /スタート/構成-カーネルバージョン
- /lib/モジュール/カーネルバージョン/
- バラよりここ詳細な説明。
インストールされたカーネルそしてパッケージマネージャがデフォルトで送信する対応するヘッダ適切(バージョン3.2.0-4-486)。
- グラップを更新してグラップアップデート。
これで、必要なLinuxカーネルモジュールをコンパイルして使用できます。正しい方向を教えてくれたクリックに感謝します。 :)
答え3
使用ポジショニング(1)コマンドは以下から来ます。場所パック:
$ dlocate /boot/vmlinuz-*
linux-image-4.9.0-6-amd64: /boot/vmlinuz-4.9.0-6-amd64
linux-image-4.9.0-7-amd64: /boot/vmlinuz-4.9.0-7-amd64
dlocate
ファイル名を引数として取り、指定されたファイルを所有/提供するパッケージの名前を返します。
答え4
apt-get install linux-headers
インストールされているすべてのカーネルのヘッダーを提供する必要があります。