- PR -

インターネットをしたいです

投稿者投稿内容
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-07-31 00:00
こんばんわ.
引用:

優花さんの書き込み (2004-07-30 18:12) より:

WindowsでドライバをFDにダウンロードしてLinuxで
解凍後、./insall.shコマンドを打ってみるとエラーが出てしまいました。

Check kernel header files(notfound)
Kernel header not found.Please install the linux header files
development package or crate a symbolic link from the
/usr/src/KERNEL_VERSION directory to linux
Examle:In -s /usr/src/KERNEL_VERSION /usr/src/linux

とのことです。
(タイプミスがあったらごめんなさい)

ちなみに私の環境で、/usr/srcの直下には"redhat"と"debug"という
ディレクトリがありました。

う〜んKernel headerというものがキーなんでしょうが、
今ひとつ「何がこういう問題だからこうすれば改善する」というものが
分からないようです。


kernel-header という rpm package を必要とします.Linux では device driver を build する際にこれが必要な場合が多いようです.ちなみに kernel を re-build する際にも必要です.該当の kernel の version と同じ kernel-header な rpm package がありますので,それを rpm command で install しましょう.

以上,ご参考までに.
瀬戸っぷ
ベテラン
会議室デビュー日: 2003/11/28
投稿数: 56
投稿日時: 2004-07-31 00:20
引用:

kazさんの書き込み (2004-07-31 00:00) より:
kernel-header という rpm package を必要とします.
Linux では device driver を build する際にこれが必要な場合が多いようです.
ちなみに kernel を re-build する際にも必要です.
該当の kernel の version と同じ kernel-header な rpm package がありますので,
それを rpm command で install しましょう.



Redhat Linuxの場合、kernel-sourceパッケージになりますね。
ftp://ftp.riken.go.jp/pub/Linux/redhat/updates/9/en/os/i386/
に公式での最新があります。(ミラーの1つですが)
kernel-source-2.4.20-31.9.i386.rpm がソレです。
インストールすると、/usr/src以下に配置されると思います。
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2004-07-31 00:28
install-sh の 766 行目ですね。
ちょっと上の 749 行目を見ると、

> if [ -d /usr/src/linux-${KERNEL_VERSION}/include/linux/ ]; then

これは、/usr/src/linux-${KERNEL_VERSION}/include/linux/ というディレクトリ (-d) が存在するならばと言うことを指しており、その else 処理の中に 766 行目があるということですからなければならないディレクトリ「/usr/src/linux-${KERNEL_VERSION}/include/linux/」がないということです。

> ちなみに私の環境で、/usr/srcの直下には"redhat"と"debug"というディレクトリがあり
> ました。

確かにないようです。。。^^

私もRedhat 9 を導入した自分の環境で確認してみましたが、

/usr/src/linux-2.4.20-8/include/linux

というディレクトリが存在します。

ということは、インストール時にカーネルのソースコードがインストールされていないようです。

> ln -s /usr/src/KERNEL_VERSION /usr/src/linux
> シンボリック・リンク(?)を作成する?
> 分からないようです。

シンボリックリンク=ショートカットだと考えるのが簡単でしょうか。(実際には違いますが)

$ ln -s a b

とすると、a が実体ファイルで、b が a へのリンクになります。(この説明も良くない?!)
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-07-31 00:37
失礼しました.
引用:

瀬戸っぷさんの書き込み (2004-07-31 00:20) より:
引用:

kazさんの書き込み (2004-07-31 00:00) より:
kernel-header という rpm package を必要とします.
Linux では device driver を build する際にこれが必要な場合が多いようです.
ちなみに kernel を re-build する際にも必要です.
該当の kernel の version と同じ kernel-header な rpm package がありますので,
それを rpm command で install しましょう.



Redhat Linuxの場合、kernel-sourceパッケージになりますね。
ftp://ftp.riken.go.jp/pub/Linux/redhat/updates/9/en/os/i386/
に公式での最新があります。(ミラーの1つですが)
kernel-source-2.4.20-31.9.i386.rpm がソレです。
インストールすると、/usr/src以下に配置されると思います。


今,ftp を見に行ってきました...
確かに header だけの package は RedHat9 では source に統合されてるようですね.
header だけの rpm package は 7.2 までのようです.
水無月 遊々
大ベテラン
会議室デビュー日: 2003/10/22
投稿数: 139
お住まい・勤務地: お星様☆彡
投稿日時: 2004-07-31 12:39
お昼頃ですが、おはようございます^^;

引用:

優花さんの書き込み (2004-07-30 18:12) より:
また、その他検索エンジンなどで調べてみたもののよく分からないことです。
 ・Kernel headerとは?
   Kernelの署名(?)だか何なのか、よくわかりません。
 ・In -s /usr/src/KERNEL_VERSION /usr/src/linuxとは?
   シンボリック・リンク(?)を作成する?
   何のことだかよく分かりません
 ・コピーするときのエラー(/rootへはコピー禁止?) 
   ドライバをFDから/rootへコピーしようとすると、何度やっても
   ”入力/出力エラーです”といわれ駄目でした。
   testというディレクトリを作り、/root/testへコピーしたら
   できました。
 ・Widowsでファイルが見れない
   ターミナルコマンドラインの実行様子をコピーし、"gedit"という
   エディタに貼って"result.txt"という名前でFDに保存しました。
   しかしながら、WidowsでそのFDを開いてみると、そのファイルは
   表示されません。



 ヘッダーの対処法については皆様がコメントしておりますので、ここでは質問について書いてみたいと思います。

1.Kernel headerとは?

 そもそも、headerとはC, C++のプログラムをしない人にはあまり縁がありません^^; なので、理解できないのも無理がないかな…と思います。イメージ的には、次のような感じですね。たとえば、優花さんがプログラムを作成したとします。でも他の人が作成した、既存の機能をもう一度作成するのは無駄ですよね? なので、その既存の機能をそのまま利用しようと考えます。しかし、利用している機能は古いバージョンでは存在していない場合もあるのです。そこで、既存の機能が存在するかチェックをしなくてはなりませんね。考えた結果…利用するものの機能リストと照らし合わせて、機能が存在するときのみ利用できるようにする方法が良さそうだ…と結論に達します。この時、機能リストとして利用できるものがheaderです。

 なので、「kernel header」とはカーネル機能リストを指しており、ドライバはこれがないのでチェックが出来ないとエラーを出しているわけです。(headerの正確な意味は違うのですが、これは、APPの開発を出来るようになってからでもよいでしょう)


2.In -s /usr/src/KERNEL_VERSION /usr/src/linuxとは?

 あんとれ様がコメントをつけていますので省略しますね。


3.コピーするときのエラー(/rootへはコピー禁止?) 

 …わかりません^^;(すいません) 通常はパーミッション(ディレクトリ属性)によって書き込みできたり出来なかったりするのですが、「testというディレクトリを作り」とあるのでパーミッションの問題では無いように思います。経験上「/root」にファイルがおけないとか特に制限を受けたことはないです。


4.Widowsでファイルが見れない

 FD上にファイルそのものが存在しないのでしょうか? それとも、ファイルはあるけど中身がぐちゃぐちゃなのでしょうか? 前者の場合、FDを「mount」にて利用している場合は、「umount」をしていないんじゃないかな…と思います。Linuxではディスクキャッシュを長時間メモリ上においておいて、マシンが暇になったときにまとめて書き込みを行おうとします。その関係で「umount」をする前にFDを抜いてしまうと、キャッシュが書き込まれずデータが空ということもあります。

 後者の場合、文字コードが違うので漢字関係はぐちゃぐちゃになります^^; あと、改行もキチンとされないでしょう。Windows上では、IEを起動してDrag&Dropできちんと表示されます。


それから…気になっていることなのですが、カーネルのソースは20MBぐらいあるはずなので^^; FDではやりとりできませんね(笑) なので、以下のCD-ROMで起動するLinux…「Knoppix」を利用してLinuxのパーティーションに直接ダウンロードしてしまうのがよいかと思います。ハードウェアの認識率もすばらしいので、たぶん、自動でネットワークにもつながると思いますよ。(Windowsのディスクも読めるので、Rescue Diskとしても利用出来ます。ただし、NICが新しいようなので、Knoppixもなるべく最新のものがよいでしょう)

↓Knoppix 
http://unit.aist.go.jp/it/knoppix/

ちなみに、Knoppixを利用してHDDの書き込みは以下の通りです。

ルートシェルを開いて…

 1.「/mnt」に移動してください。
    # cd /mnt

 2.ディレクトリの中身を表示します
    # ls

 3.「hda1 〜 hda?」といったディレクトリがあると思います。これがHDDです。
   (ディスクがほかにもある場合は「hdb1 〜 hdb?」になっています。)
   (SCSIの場合は「sda1 〜 sda?」になると思います。)

 4.書き込みしたいデータのあるHDDを探します。
   (lsコマンドで探してください)

 5.書き込み可能にします。(以下はhda1の場合)
    # remountrw /dev/hda1 /mnt/hda1

# 長文、乱筆にて失礼しました。
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-07-31 13:04
遊々様へ補足として,
引用:

 ・コピーするときのエラー(/rootへはコピー禁止?) 
   ドライバをFDから/rootへコピーしようとすると、何度やっても
   ”入力/出力エラーです”といわれ駄目でした。
   testというディレクトリを作り、/root/testへコピーしたら
   できました。


具体的に「どのように copy しようとしたのか?」を書き込まれることをお奨めします.
それによって「それでは NG」「この方がよい」という書き込みが続くでしょう.
Windows でその fd へ driver を格納する際は format しましたか?
copy した後,fd にあることを確認しましたか?
Linux で読み出す際には mount しましたか?した場合の option は?
mtools を使ったのならその option は?
といった内容があると良いでしょう.
引用:

 ・Widowsでファイルが見れない
   ターミナルコマンドラインの実行様子をコピーし、"gedit"という
   エディタに貼って"result.txt"という名前でFDに保存しました。
   しかしながら、WidowsでそのFDを開いてみると、そのファイルは
   表示されません。


こちらも同様です.
editor で格納した後,cat などで内容を参照してみるとよいでしょう.
で,# sync などと2回ほどやってから umount するともっと良いでしょう.
Windows と違って Linux や UNIX は
filesystem を「mount する」という行為が必要になります.
Windows では OS が勝手にやってくれるので「なにもしなくても」と思いがちですが.

以上,つまらないことですが「やっておくと仕事を遡る」ことが無いと思われる点でした.

スキルアップ/キャリアアップ(JOB@IT)