• 締切済み

デバイスドライバのプログラミングの勉強方法

デバイスドライバのプログラミングを勉強したいと考えています。 Linuxで開発という話が多いので、中古ノートPCを windows 7 と CDROM (KNOPPIX.iso)の unix 環境で扱えるようにしました。 /dev 以下のデバイスに mount するようなところは分かるのですが。 unix で、kernel-devel, kernel-headers などを用いて プログラミングするというあたりで、つまづいています。 対応するハードウェアもないと無理だと思い、 PIC のシリアル、USB接続なども見たりしていますが、 デバドラ開発につながるような、入門者用の良い学習方法がありましたら アドバイス頂きたく思います。よろしく御願いします。

みんなの回答

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.1

開発するのってLinuxのデバイスドライバ? CDブートLinuxだけで開発するのは至難の業と思うので、HDDを パーティション分けしてLinuxを入れるか、それが嫌でPCがUSB ブートできるなら下記のようなUSBメモリにLinuxをインストール して使うと良い。汎用デバイスを使って学習するなら仮想マシン という手もあるかもしれないけど。 何にせよ、開発環境動作用と動作試験用に2つLinux環境を用意 するのが効率的と思うよ。 親指サイズUSBメモリの例 http://www.amazon.co.jp/dp/B00LLEODCK # 上のはUSB3.0で64GBのだけど、Linux自体は16GBもあれば十分いける # Ubuntuなどは7GB以上のパーティションでインストールできるので # あと遅くて良ければUSB2.0も可 # なお親指サイズは付けっぱなしで邪魔にならないためなので # 気にならないなら大きいのでもOK

QQnet_4639
質問者

お礼

御回答頂いていたことに気づかず、御礼が遅れ申し訳ありません。自己スレ的になりますが、確かに開発するなら、USBブートの方がいいと思います。いわゆる組込Linux開発のイメージが漠然としていたのですが、スターターキットを調査してPICと比較している内に、無線ポート付のデータロガーぐらいならPICも良いけど、PC周辺機器や通信を本格利用するなら(カーナビなど)組込Linux ボードを利用した開発になると思いました。その意味で一般的なドライバ用パッケージが揃っている、開発環境が良いなどの理由で Linux が多いのだと納得しました。SUZAKUやAKI, ルネサンス等のスタータキットに挑戦してみようと思うのですが、入門者用の良いキットがありましたら教えて頂きたく思います。よろしく御願いします。

関連するQ&A

  • RedHat Linux 7.2とCD-ROMのマウント

    以前に全く同じ質問をしたものですが、再度御願いします。 RedHat Linux 7.2を投入しまして正常に作動を確認後、必要が在ってCD-ROMのマウント使用としたのですが、マウントされません。 mount: /dev/cdrom is not a valid block deviceと表示されます。ちなみにfstabの関連のラインは次の通りです。 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu 0 0となっています。mount -t iso9660 -o ro /dev/cdrom /mnt/cdromも作動しませんでした。どなたか解決策が在りましたら、教えてください。

  • Red Hat Linux 9でcd-romをマウントできません

    超初心者です。 Red Hat Linux 9 をインストールしてApacheをCD-ROMからインストールしようとしているのですが、CD-ROMをマウントできません。 su でログイン後、マニュアルに書いてある通り、 cd /mnt/cdrom mount /dev/cdrom /mnt/cdrom/ と入力しても”mount: /dev/cdrom はブロックデバイスではありません”とはねられてしまいます。 ちなみに、OSをインストールした状態では/mnt/cdromも/dev/cdromも存在しておらず、自分で作成しました。 また、マウントが成功した時に anacnda-ks.cfg install.log install.log.syslog と言うファイルが出来ていたことから、そのファイルを/root 以下に見つけ、 mount /root /mnt/cdrom/ /rootのファイルを/dev/cdromへコピーしてから再度 mount /dev/cdrom /mnt/cdrom/ を行いましたが結果は同じでした。 何卒、よろしくお願いします。

  • mountできなくなりました

    ノートPCのCD/RW使えるようにしたくて、まず /etc/conf.modulesに alias scsi_hostadapter ide-scsi alias block-major-11 ide-scsi 次に cd /dev mv cdrom cdrom.org ln -s scd0 cdrom 次に /etc/fstabのcdromを /dev/scd0 /mnt/cdrom iso9660 noauto,owner,ro,user 0 0 にして mountしようとしたら このカーネルは /dev/cdromをブロックデバイスとしては認識しませんと表示されます。どうしたら元に戻りますか?改善しますか?

  • CD-ROMのマウントについて

    最近、UNIXを使い始めたのですが、CD-ROMのマウントができません。UNIXの本などを見てその通りにコマンドをタイプしている(mount -r /dev/sr0 /cdrom等)のですが、うまくいきません。初歩的な質問で申し訳ありませんがよろしくお願いします。搭載されているOSはDigital UNIX 4.0というものです。

  • CDROMの利用

    VAIOノートパソコン(Z505GR/K)にRedHatLinux9を インストールしました。 インストール時には何の手も加える事なく認識して使用できたCDROM(PCGA-CDR51)をインストール後にはどのようにCDROMを認識させればよいかわからずに困っています。 mount /mnt/cdrom mount /dev/cdrom /mnt/cdrom などで"スペシャルデバイスCDROMが見つかりません。" とエラーメッセージがでます。 超初心者ですが宜しくお願いします。

  • Linuxを使っていてCD-ROMのマウントができません

    Linux MLD4を使っていてCD-ROMのマウントができません。 コマンドを実行すると下記のようなメッセージが出ます。 #mount -t iso9660 /dev/cdrom/mnt/cdrom mount:invalid option --l Usage:mount [-hv] mount -a[-nfFrsvw] [-t vfstypes] mount [-nfrsuw][-o options] special | node mount [-nfrsvw][-t vfstype][-o options] special node A special device can be indicated by -[label or -U unid . [root@localhost /root]#df /cdrom df: /cdrom:No such file or directory Filesystem 1k-blocks Used Available Use% Mounted on 対処方法など分かる方がいましたら教えて下さい。

  • CentOSでのCDマウントがうまくできない

    virtualboxにCentOS6.2をゲストOSとしてインストールしています。 CDのデータをターミナルでファイル操作をしたいため CDのデータをファイルシステム上の/mntにマウントしたいのですができません。 ホストOSに音楽CDを挿入すると(ホストOSではDドライブ)、ゲストOSであるCentOSのデスクトップ上にCDのアイコンが出てそれを直接開けます。 /mntにマウントするときのデバイス指定が/dev/cdromにすべきなのか/dev/dvdにすべきなのかもよく分かりません。 ホストOSはwindows7 HomePremiumでDVDマルチドライブです。 [root@centos ~]# mount -t iso9660 /dev/cdrom /mnt mount: ブロックデバイス /dev/sr0 は書き込み禁止です、読込み専用でマウントします mount: 間違ったファイルシステムタイプ、不正なオプション、 /dev/sr0 のスーパーブロックが不正、コードページまたは ヘルパープログラムの未指定、或いは他のエラー In some cases useful info is found in syslog - try dmesg | tail or so マウントのやり方が基本的にわかっていないようなので困っています。 上記のやり方で何が間違っているのでしょうか? 初歩的な質問ですみません。よろしくお願いします。

  • CD-ROMのマウントが・・・

    RedHat Linux8.0のX Windowから、アイコンを使っても、コマンドプロンプト からもCDROMがマウントできません。以前はちゃんと出来たのですが、ハード を追加してからおかしくなりました。 本来なら、追加したハードを外して動作確認したいところなのですが、現状 ではすぐにそう言った事が出来ないもので・・・。 何か策はありませんでしょうか・・・。 # mount -t iso9660 /dev/cdrom /mnt/cdrom とコマンドを打つと、下記のメッセージが返ってきます。 mount : 間違ったファイルシステムタイプ、不正なオプション、      /dev/cdromのスーパーブロックが不正、或いはファイルシステム      のマウントが多すぎます      (could this be the IDE device where you in fact use ide-scsi sothat sr0 or sda or so is need ? ) fstabには下記のように記述されていて他のマシンと見比べても同じです。 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 マウントはrootで行っていましたが、試しに一般ユーザーで入り、suになっ て、mountコマンドでマウントしようとしても同じエラーが返ってきました。 CDのメディアは、他のマシンではマウントされましたので、それ自体には問 題無さそうなのです。 $eject や、eject -v /dev/cdrom 等のコマンドや再起動、接触等の確認も 行いましたが、効果が無く、どうもに手詰まりです・・・。 ただ、dmesgに、 「scsi1 : SCSI host adapter emulation for IDE ATAPI devices Vendor: COMPAQ Model: CRN-8245B Rev: 2.19 Type: CD-ROM ANSI SCSI revision: 02 」 と書かれていた部分がありました。これが気になってはいるのでが・・・。 よろしくお願いいたします。

  • RedHat Linux7.2でCD-ROMを認識させるには

    RedHat Linux 7.2をインストールしました。その後CD-ROMから追加のプログラムを投入しようとしてCD-ROMをいれてmount /mnt/cdromあるいはmount -t iso9660 -o ro /dev/cdrom /mnt/cdromとしましたが認識されませんでした。2台の異なるマシーンで試しましたが同様に読み込めませんでした。その他の機能は全く問題がなくサーバとして作動しています。wu-ftpを投入しようとしてCD-ROMを入れたら認識しなかったというわけです。どなたか同じような環境からCD-ROMを読めるようにされた経験がございましたら、ご教授御願いします。X WindowやGnomeは使用していません。超初心者です。

  • Macでプログラミング

    中学生です。PC等の知識はかなりある方だと思います。 今までWindowsでJavaを使ってのプログラミングを入門程度にやってきました。しかし、Macに乗り替え、また、将来的にiPhoneアプリの開発をしたいと思っています。UNIX系のコマンドも分かりませんし、iPhoneアプリの開発言語はオブジェクトCなので、これからそちらを勉強しようと思い始めました。もちろん、途中でJavaを投げ出すのには抵抗があったのですが、この方法が一番合理的かな、と思っています。 そこで質問ですが、オブジェクトCとC言語はどう違うのでしょうか。互換性はあるらしいですが、どのように勉強したらいいか分かりません。また、違いがあったとして、片方勉強すると、ごっちゃになったりしませんか? Mac向けのいい書籍を御存じの方も教えてください。