Linuxデバイスドライバ入門

Linuxデバイスドライバ入門

udev(汎用的なLinuxにおけるUeventを扱う仕組み)

ueventはAOSPだけでは無く、Ubuntu等の汎用的なLinuxにおいても使われている仕組みです。代表的な物にudevがあり、udevの構成要素である、ueventの情報を取得できるudevadmと、ueventの情報を元に設定した各種処理を行うudevdについて、紹介します。
Linuxデバイスドライバ入門

Ueventによるドライバからユーザランド層への通知

Linuxデバイスドライバにおいて、ドライバからアプリケーション等の上位層へ通知して、制御を変える方法としてueventを、kobject_uevent等のカーネル層制御とuevent_next_event等のユーザーランド層制御の両方を交えて説明しています。
Linuxデバイスドライバ入門

システムコールによるインターフェース呼び出し

Linuxデバイスドライバにおける、インターフェースを通したアプリケーション等の上位層からの制御として、システムコールによる制御を、代表的なopen、read、write、ioctrlを交えて説明しています。
Linuxデバイスドライバ入門

ドライバとユーザーランド層のやり取り

はじめに  Linuxは、ドライバやOSの本体が動作するカーネル層と、ライブラリ含めたアプリケーションが動作するユーザーランド層に分かれています。この2つの層は、MMU(Memory Management Unit)により、異なる仮想的なメ...
Linuxデバイスドライバ入門

devtmpfs

Linuxデバイスドライバにおけるインターフェースとして、ドライバへの制御に関連するインターフェースを上位層に提供する為のファイルをRAM上で提供する仕組みである、devtmpfsについて説明しています。
Linuxデバイスドライバ入門

sysfs

Linuxデバイスドライバにおけるインターフェースとして、ドライバに関連する情報をやり取りする為のファイルをRAM上で提供する仕組みである、sysfsについて説明しています。
Linuxデバイスドライバ入門

ドライバにおけるインターフェースの初期化処理

はじめに  前章の内容でハードウェアを制御する準備が完了しました。本章では、デバイスドライバと上位層とのインターフェースを準備する内容について説明します。このインターフェースは、ローダブルモジュールでは用意した時点で使われる可能性がある為、...
Linuxデバイスドライバ入門

割り込みを用いた制御

Linuxデバイスドライバにおける割り込みを用いた制御方法について、GPIOでの割り込みを中心に、代表的なAPIであるrequest_irq、enable_irq、enable_irq_wakeを交えて説明しています。
Linuxデバイスドライバ入門

GPIOを用いた制御

LinuxデバイスドライバにおけるGPIOを用いた制御方法について、入出力High/Lowの制御を行うgpiolibと、モード等の設定変更を行うpinctrlの各種APIを交えて説明しています。
Linuxデバイスドライバ入門

I2Cを用いた制御

LinuxデバイスドライバにおけるI2Cを用いた制御方法について、代表的な関数である、i2c_master_send、i2c_transfer、i2c_master_recvを交えて説明しています。