- - PR -
インターネットをしたいです
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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 しましょう. 以上,ご参考までに. | ||||||||
|
投稿日時: 2004-07-31 00:20
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-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 へのリンクになります。(この説明も良くない?!) | ||||||||
|
投稿日時: 2004-07-31 00:37
失礼しました.
今,ftp を見に行ってきました... 確かに header だけの package は RedHat9 では source に統合されてるようですね. header だけの rpm package は 7.2 までのようです. | ||||||||
|
投稿日時: 2004-07-31 12:39
お昼頃ですが、おはようございます^^;
ヘッダーの対処法については皆様がコメントしておりますので、ここでは質問について書いてみたいと思います。 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 # 長文、乱筆にて失礼しました。 | ||||||||
|
投稿日時: 2004-07-31 13:04
遊々様へ補足として,
具体的に「どのように copy しようとしたのか?」を書き込まれることをお奨めします. それによって「それでは NG」「この方がよい」という書き込みが続くでしょう. Windows でその fd へ driver を格納する際は format しましたか? copy した後,fd にあることを確認しましたか? Linux で読み出す際には mount しましたか?した場合の option は? mtools を使ったのならその option は? といった内容があると良いでしょう.
こちらも同様です. editor で格納した後,cat などで内容を参照してみるとよいでしょう. で,# sync などと2回ほどやってから umount するともっと良いでしょう. Windows と違って Linux や UNIX は filesystem を「mount する」という行為が必要になります. Windows では OS が勝手にやってくれるので「なにもしなくても」と思いがちですが. 以上,つまらないことですが「やっておくと仕事を遡る」ことが無いと思われる点でした. |