Linuxデバイスドライバ入門 udev(汎用的なLinuxにおけるUeventを扱う仕組み) ueventはAOSPだけでは無く、Ubuntu等の汎用的なLinuxにおいても使われている仕組みです。代表的な物にudevがあり、udevの構成要素である、ueventの情報を取得できるudevadmと、ueventの情報を元に設定した各種処理を行うudevdについて、紹介します。 2024.05.04 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 Ueventによるドライバからユーザランド層への通知 Linuxデバイスドライバにおいて、ドライバからアプリケーション等の上位層へ通知して、制御を変える方法としてueventを、kobject_uevent等のカーネル層制御とuevent_next_event等のユーザーランド層制御の両方を交えて説明しています。 2023.10.27 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 システムコールによるインターフェース呼び出し Linuxデバイスドライバにおける、インターフェースを通したアプリケーション等の上位層からの制御として、システムコールによる制御を、代表的なopen、read、write、ioctrlを交えて説明しています。 2023.09.20 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 ドライバとユーザーランド層のやり取り はじめに Linuxは、ドライバやOSの本体が動作するカーネル層と、ライブラリ含めたアプリケーションが動作するユーザーランド層に分かれています。この2つの層は、MMU(Memory Management Unit)により、異なる仮想的なメ... 2024.05.04 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 devtmpfs Linuxデバイスドライバにおけるインターフェースとして、ドライバへの制御に関連するインターフェースを上位層に提供する為のファイルをRAM上で提供する仕組みである、devtmpfsについて説明しています。 2023.09.19 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 sysfs Linuxデバイスドライバにおけるインターフェースとして、ドライバに関連する情報をやり取りする為のファイルをRAM上で提供する仕組みである、sysfsについて説明しています。 2023.09.15 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 ドライバにおけるインターフェースの初期化処理 はじめに 前章の内容でハードウェアを制御する準備が完了しました。本章では、デバイスドライバと上位層とのインターフェースを準備する内容について説明します。このインターフェースは、ローダブルモジュールでは用意した時点で使われる可能性がある為、... 2023.09.15 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 割り込みを用いた制御 Linuxデバイスドライバにおける割り込みを用いた制御方法について、GPIOでの割り込みを中心に、代表的なAPIであるrequest_irq、enable_irq、enable_irq_wakeを交えて説明しています。 2023.09.13 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 GPIOを用いた制御 LinuxデバイスドライバにおけるGPIOを用いた制御方法について、入出力High/Lowの制御を行うgpiolibと、モード等の設定変更を行うpinctrlの各種APIを交えて説明しています。 2023.09.10 Linuxデバイスドライバ入門
Linuxデバイスドライバ入門 I2Cを用いた制御 LinuxデバイスドライバにおけるI2Cを用いた制御方法について、代表的な関数である、i2c_master_send、i2c_transfer、i2c_master_recvを交えて説明しています。 2023.09.05 Linuxデバイスドライバ入門