現在サポートされていないJauntyを使用しています。しかし、私はプログラムしたい古いサポートされていないカーネルも実行しています。
カーネル2.6.21で新しいシステムコールを作成しようとしていますが、新しいシステムコールの1つが「sys_write」関数を使用していますが、この関数を使用するには、2.6.21バージョンに従ってカーネルヘッダーファイルをインストールする必要があることに気付きました。
私は試した 「apt-get install linux-headers-'uname -r '」、「apt-cache search linux-headers-$(uname -r)」
しかし、私は何も見つけることができません。
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/syscalls.h>
#include <linux/fcntl.h>
#include <asm/uaccess.h>
さらに、ヘッダーファイルの上に私がしたいです。
現在サポートされておらず、現在のリポジトリにないもののカーネルヘッダーファイルを取得するにはどうすればよいですか?
Ubuntu Feisty(7.04)ではカーネル2.6.21が使用されたと思います。
あなたのコメントから、Ubuntu Jauntyを使用していると言いました-Jauntyのカーネルが2.6.28だったので、これは奇妙です。
FeistyとJauntyは両方ともサポートされなくなり、「Sudo apt-get」メソッドを使用してヘッダーなどのパッケージをインストールすることはできなくなります。
インストールを最小バージョン10.04に置き換えることを強くお勧めします。
JauntyとFeistyはどちらも公式のubuntuアーカイブにはありません。
ただし、すべてのUbuntuリリースの元のパッケージ情報はすべて こちら にあります。
元の.debパッケージ を追跡してインストールするには、ちょっとした探偵の仕事が必要です。
2.6.28 Jaunty linuxヘッダーを検索する例から始めましょう。
Linuxヘッダーはメインリポジトリに存在します。最初に メインリポジトリ のソースをダウンロードします
Sourcesファイルを抽出する必要があります。
お気に入りのエディターでファイルを見てください。
Linux-headersバイナリを探しています-このスクリーンショットをご覧ください
Linux-headersに下線が付いていることがわかります。パッケージ名と、そのパッケージを見つける必要がある場所が表示されます。
次に、パッケージを検索するフォルダーの先頭にブラウザーを向けます
http://archive.ubuntu.com/ubuntu/
そのパッケージ名に移動します-この場合
pool/main/l/linux
そのフォルダーには、すべてのリリースのすべての元のdebファイルがあります。したがって、Jauntyの場合、linux-headers-2.6.28で始まるファイルを探します。
これで、関連するすべてのファイルが表示されます-アーキテクチャに応じてdebファイル(64ビットはAMD64.debで、32ビットはi386.debで終了)と「all.deb」で終了するヘッダーファイルを読み込みます
Feistyパッケージについては、上記と同様に行いますが、今回はFeistyディストリビューションのSourcesファイルから始めます。
sources.list
を修正して、
http://old-releases.ubuntu.com/
現在の代わりに
http://<country-code>.ubuntu.com/