• 締切済み

Linuxデバイスドライバの開発入門

この度、新しい仕事先で組み込み系のLinuxのデバイスドライバを作成することになりました。 まだデバイスドライバの開発もLinuxそのものも未経験の分野であり、業務開始まで時間があるため、家で勉強したいと考えています。 本で勉強するのと並行して、何か具体的にハードを制御するようなものを作成してみるのが、やりがいもあっていいかなと思っています。そこで質問です。 (1) 上記のような目的にちょうど良い題材はないでしょうか? 例えば、このような目的のために作られた入門用の開発キットの ようなものでも良いですし、市販されている普通のデバイスでも 良いです。(予算は1万円くらいまで) デバイスの仕様さえ公開されていればドライバは書けるものなの かもしれませんが、できれば、具体的なおすすめを教えて頂けると 助かります。 (2) おすすめの勉強方法があれば教えてください。実体験に基づくものであれば、なお嬉しいです。

  • tk35
  • お礼率1% (2/108)

みんなの回答

回答No.1

こんにちは。私は昔Linux、今はNetBSDで組み込みハード (主にワンチップマイコンの制御)を行なうソフトを作っております。 Linuxでも同様ですので、かんたんにお答えしますと、CQ出版社から Interfaceという月刊誌が出ております。こちらの雑誌には定期的に 付属基板というものがついてきて、これをターゲットにLinuxで 制御する、という特集が結構な頻度で組まれます。また、同出版社の デザインウェーブ誌との連携もあります。まずはそこらへんをチェック なさってください(秋葉原の電波堂書店にバックナンバーがありました)。 それから、Software Designという雑誌がありますが、これもLinuxネタが 頻出しますので、要チェックです。 何度も同じ出版社で申し訳ありませんが、CQ出版社のご存知 「トランジスタ技術」にもLinuxで各種自作ハードを制御するネタが 載ります。私は高校の頃からアマチュア無線経由でこの世界にどっぷり 漬かり、自作マイコンボード(Z80とか8255Aとか)を作りました。 Linuxと自作ハード・プログラミングの総本山ともいえるのが、 みついわゆきおさんのサイトです。↓ http://mes.sourceforge.jp/h8/index-j.html この方、以前トラ技誌上でISAインターフェースボードの自作など 連載されていました。今はH8・AVRマイコンを中心に、GCCで 開発をなされているようです。 その他、時間があれば、秋月で\4kほどでワンチップマイコンのキットが 買えますので、これで勉強できます。 最後に、時間が許せば、Linuxカーネルやデバイスドライバに関する 定番本がいくつかオライリーから出版されていますので、こちらも ご一読ください(私は翻訳の質に満足がいかなかったので、 原書で読みました)。BSDでしたら悪魔本2冊です。加えて、Linux/BSDの カーネルソースをgrep/findで熟読です。これにまさる参考書はありません。 以上、質問者様の既知の内容である場合はご容赦ください。

関連するQ&A

  • Windowsデバイスドライバ開発の学習について

    Windowsデバイスドライバ開発の学習について 私は仕事でWindowsアプリケーションの開発をしております。 マネージ/アンマネージドアプリケーションの開発に必要な基礎知識は一通り身につけているつもりですが、デバイスドライバ開発に関する知識がありません。 いまのところ特に仕事などでデバイスドライバ開発が必要というわけではないのですが、もっとWindowsの内部を詳しく勉強したいと思っており、現在はデバイスドライバに興味を持っています。 現在の主流のドライバモデルとしては、従来のWDMと、新しいWDFがあることがわかりました。WDMは複雑でWDFのほうが入門しやすいとのことですが、どれから勉強していくのがよいでしょうか。WDFを先に勉強して、あとからWDMを勉強するという順番はありでしょうか。 また、おすすめの書籍やサイトなどがあれば教えてください(英語でも可)。

  • Linux入門

    Linuxは全く触ったことがないのですが、Fedora Core 5 を使ってみたくなりました。 最初はOSとしてOpen Officeとかを使って、最終的にはサーバーも少し勉強したいと思っています。 入門書としてどの本がお勧めですか? Amazon検索結果 Linux Fedora Core 5 http://www.amazon.co.jp/exec/obidos/search-handle-form/503-7788024-2551129 わたしとしては雑誌のLinux World今月号とFedora Core 5スターターキット Starter KIT seriesのどちらかを買おうと思うのですが、どちらがお勧めですか? http://direct.idg.co.jp/item_detail.command?item_cd=LW_200606 Fedora Core 5 For x86-compatible(32-bit) はCD-ROM5枚ですが、普通のDVDのものとはどう違うのですか?DVDドライヴのない古いPCでも動くと言うことですよね?

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

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

  • linux ubuntu開発への参加の方法

    linux ubuntu開発への参加の方法 タイトルどうり、linux ubuntuの開発に参加したいのですが。 いったい、どこから勉強していけば分かりません。 どなたか、参考書などを教えていただけ無いでしょうか。 一様、「30日でできる! OS自作入門」は、読んだことがあります。

  • デバイスドライバのプログラミングでおすすめの入門本

    Deamon Toolのような仮想マウントソフトを作りたいと考えています。 そこで、いろいろ調べているとWindows Device Kit(WDK)を使ってプログラミングをする必要があることが分かりました。 実際、この種のプログラミング本は少ないようで、おすすめの入門者が読めそうな本があれば教えてください。 ちなみに、C/C++言語の知識はあります。

  • ドライバ開発の勉強方法を教えてください。

    ドライバ開発の勉強方法を教えてください。 趣味でドライバの開発を勉強したいのですが方法が分かりません。 将来的にWin、LinuxでUSB機器やPCカード機器等のドライバ開発を行いたいです。 参考書籍情報等をお待ちしています。

  • 開発はウインドウズかリナックスか?

    将来、IT業界のエンジニア、もう少し枠をせばめるならばSI業界で働きたいと思っております。また、WEBエンジニアにも興味があります。 このような興味を持っているのですが、知人に相談したところ、「phpがとっつきやすいので、phpを勉強してみては?」と言われ、プログラミング言語はphpにしました。phpの入門書には、sqliteを最初は使ってみましょう、とあったので、データベースはsqliteになりました。webサーバはよくつかわれているapacheにしました。ここまでは順調だったのですが、問題は、開発はウインドウズかリナックスか、ということです。 LAMPという言葉があるくらいですから、リナックスで開発するものかと思っていましたが、「開発はウインドウズでおこなって、運用をリナックスで行う」という話も耳にしました。いったい、どちらのOSで開発を行ったら良いでしょうか? おそらく、案件によって違ったり、会社によって違ったりすると思うので、一般的な傾向を教えて頂ければ幸いです。 どうぞ宜しくお願い申し上げます。

  • おすすめのプログラム開発の入門書を教えてください。

    おすすめのプログラム開発の入門書を教えてください。 私はC++でWindows環境で動くパッケージソフトの開発をしています。 今までプログラマとして働いてきましたが、自ら望んでこの職種についたわけではなかったこと、元々文系でパソコンに苦手意識もあり、プログラムがあまり好きではありません。 転職を考えたりもしたのですが、プログラム開発の表面しか知らずに好きじゃないと決めつけていたことに気づき、プログラム開発というものを勉強して、プログラム開発を知り、好きになっていきたいと思っています。 言語の入門書ではなく、プログラム開発の入門書を探しています。 ネットワークやデータベースなど、専門的な部分を除き、要件定義、設計、プログラム、テストなど、プログラム開発全体の入門書はないでしょうか? 今まで受け身だった自分を変えたいと思っています。 よろしくお願いします。

  • Linuxでゲーム開発

    Linuxで(具体的にはLindows)ゲームを作りたいと考えています。 LinuxはツールがいろいろあってVBのようなGUIの統合開発環境がないようなのですが、何か良いツールはないものでしょうか? VBのようなツールが欲しいと思うのですが、なければそれに近いようなものでも構いません。 kylixを勉強しようかなあーとも思いましたが、どうも初心者向けの書籍がなく、インストールしたままです。WideStudio本も買いましたが、どうもrubyやC++などが必要のようで・・・。 Javaっていう話もありますが、それならWindowsでもいいじゃんっ!って思えてしまってどうも踏み込めません。 みなさん、どうやってゲーム開発などをされているんでしょうね??? QTを使うためにGLADE入れて、gtk+やGCC・・・・んーーいろいろと使えるのがLinuxの良いところですけども、GUIアプリの統合開発環境ともなると、ううううううううううむ、です。_| ̄|○ ちょっとゲーム開発したいだけなのに。。。 いろいろありすぎ!!(×_×)

  • デバイスドライバの作成

    デバイスドライバを作成するには、何を勉強したらいいですか? 動かしたいハードにより、全く異なるものなんですか?それとも、 だいたい同じような言語で書かれてるものなんですか?