Akio's Log

ソフトウェア開発、プロジェクトマネジメント、プログラミング、ランニングなどなど

Linuxデバイスドライバ開発に関する参考情報

仕事で、Linux上のデバイスドライバを開発する事になったので、いろいろと調べた情報をまとめてみる。

ウェブ上の情報

Linux Device Drivers, Third Edition [LWN.net]
オライリーの「Linuxデバイスドライバ第3版」の英語版がPDFで無料で読める。
Linux Device Driver
少々古い情報。カーネル2.0/2.2対応のデバイスドライバ開発。
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/index.html
カーネル2.6のドキュメントの日本語訳版。
http://www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-9.html
こちらは少し古い情報。2000年前後。詳しくは読んでないが、ある程度は参考になりそう。
Linux Kernel Module programming (Kernel 2.4, デバイスドライバ)
カーネル2.4でのカーネルモジュールプログラミングの解説。
http://net-newbie.com/linux/driver/index.html
情報量としては多くないが、それなりにまとまっていて読みやすい内容。
はじめてのカーネル・ソース - はじめてのカーネル・ソース---目次:ITpro
日経ITProのコンテンツ。カーネルソースを読み始めるさいの取っ掛かりとして良いかも。
H8 developmet
Linuxによるマイコンプログラミング。
デバイスドライバーズ Linuxデバイスドライバ開発情報
「株式会社デバイスドライバーズ」という会社の技術情報。その名の通り、Linuxドライバ開発を多く手がけているようで、実践的なテクニックが多い。
http://www.devdrv.co.jp/download/LKC/2002/LKC2002-devicedriver.pdf
↑の会社によるパワポ資料。「Linuxにおけるデバイスドライバの開発とデバッグの実際」
http://www.freesoftwaremagazine.com/articles/drivers_linux
英語。20ページ少々で簡潔にまとまっている。
http://www.si-linux.co.jp/wiki/silinux/index.php?Linux-2.6%A5%C7%A5%D0%A5%A4%A5%B9%A5%C9%A5%E9%A5%A4%A5%D0
シリコンリナックスという会社の技術情報。
http://www.linux.or.jp/JF/JFdocs/Serial-Programming-HOWTO.html
シリアルポート制御に関するハウツー。
http://www.linux.or.jp/JF/JFdocs/Serial-HOWTO.html
シリアルポート制御に関するハウツー。
http://www.cc.toin.ac.jp/haya-lab/knowhow/doc5.html
簡単なデバイスドライバの製作手順。ただし1999年の情報。
http://www.linux.or.jp/JF/JFdocs/Linux-Kernel-Internals.html
カーネル2.4の内部構造など。
http://f42.aaa.livedoor.jp/~hassaku/crswikicrs/?%A5%B3%A5%E9%A5%E0
千葉大ロボット系サークルCRSのwiki。コラム内に、「LinuxDriverへの道」という一連の連載あり。
http://www.ht.sfc.keio.ac.jp/~suzuk/rinkou/linuxdriver/suzuk_7_FlowOfTime.ppt
パワポ。慶応SFCのどこかの研究室の資料。2と7しか検索で見つけれらなかった。
http://www.ht.sfc.keio.ac.jp/~suzuk/rinkou/linuxdriver/suzuk_4_DebuggingTechniques.ppt
パワポ。慶応SFCのどこかの研究室の資料。2と7しか検索で見つけれらなかった。
新参Linuxプログラマ向けのドライバ開発キットがリリース | OSDN Magazine
Linuxバイス・ドライバ開発キット。
組み込みLinuxカーネル構築の実際
組込みLinuxについて。
連載記事 「Linux Kernel Watch」
@ITの連載記事。Linuxカーネルの最新情報を得られる。
LinuxとWindowsのデバイスドライバ アーキテクチャ比較:Geekなぺーじ
Linux/Windowsそれぞれのデバイスドライバについてのアーキテクチャの比較。
http://cheesy.dip.jp/tutorialog/archives/6
共有メモリによるプロセス間通信における同期機構を、仮想デバイスドライバを使って行う手法の説明。
FrontPage - Linuxカーネルメモ
参考になりそう。
ITmedia エンタープライズ:Linuxハードウェア認識の基礎 (1/3)
UNIX USER 2004年4月号「Linuxはハードウェアをどう認識するのか?」より転載。

参考書籍

Linuxデバイスドライバ 第3版

Linuxデバイスドライバ 第3版

オライリーの超定番本。これがないと始まらない。

Linuxデバイスドライバプログラミング

Linuxデバイスドライバプログラミング

2008年出版。日本人著者なので、オライリーよりも読みやすい。

組み込みLINUXシステム構築

組み込みLINUXシステム構築

ドライバだけでなく、組込みLinux全般を扱った書籍。

Linuxカーネル2.6解読室

Linuxカーネル2.6解読室

Linuxカーネルの解説書。ドライバをコーディングするにあたり、何かとカーネルのソースを参考にすることが多くなると思うので、手元に置いておきたい。

ドライバ開発というよりも、そもそもLinux上でのgccプログラミングってどうやるの?という初心者向けに書かれた1冊。Linux/gccプログラミングを始めるにあたって、取っ掛かりの1冊として最適。

Linuxシステムプログラミング

Linuxシステムプログラミング

Linuxプログラミング全般を扱った書籍。デバイスドライバを開発するのに必要になる知識が満載。

Interface (インターフェース) 2008年 08月号 [雑誌]

Interface (インターフェース) 2008年 08月号 [雑誌]

雑誌Interface。特集は「実践デバイス・ドライバ&ミドルウェア作成技法」。
目次は、2008年8月号目次
Interface (インターフェース) 2008年 03月号 [雑誌]

Interface (インターフェース) 2008年 03月号 [雑誌]

雑誌Interface。特集は「デバイス・プログラミング,ハードウェアはこう叩く!」。
目次は、2008年3月号目次-