aguea asia
Linuxデバイスドライバ入門
@linux_driver
Joined August 2023
Tweets
43
Following
2,242
Followers
474
Likes
588
Photos and videos
Photos and videos
Tweets
Linuxデバイスドライバ入門
@linux_driver
5 May 2024
旧8章9章の内容とudevの内容を、"ドライバとユーザーランド層のやり取り" として、新8章にまとめました。
linux-driver.com/2024/05/04/…
1
17
382
Linuxデバイスドライバ入門
@linux_driver
5 May 2024
[新規] udev
linux-driver.com/2024/05/04/…
ueventはAOSPだけでは無く、Ubuntu等の汎用的なLinuxにおいても使われている仕組みです。代表的な物にudevがあり、udevの構成要素である、ueventの情報を取得できるudevadmと、ueventの情報を元に設定した各種処理を行うudevdについて、紹介します。
1
5
291
Linuxデバイスドライバ入門
@linux_driver
2 May 2024
linux-driver.com/
へ移転しました。今年は質の向上と内容の拡充をしていければと思います。
1
6
288
Linuxデバイスドライバ入門
@linux_driver
3 Nov 2023
[新規] 待ち合わせ処理
linux.coresv.com/2023/11/03/…
非同期による遅延処理や後述する割込み処理 と、元の処理において待ち合わせを行い、同期を取る為の仕組みがLinuxカーネルにおいて用意されています。照度センサドライバでは使用されていませんが、 代表的な物として、wait_eventやwait_for_completion
3
495
Linuxデバイスドライバ入門
@linux_driver
27 Oct 2023
Ueventによるドライバからユーザランド層への通知
linux.coresv.com/2023/10/27/…
ドライバからユーザーランド層へ通知して、制御を変える方法として、照度センサデバイスドライバでも使用されているueventを説明します。ueventは、Linuxカーネルとユーザーランド層のプログラム間のコミュニケーションを実現
2
373
Linuxデバイスドライバ入門
@linux_driver
20 Oct 2023
9章は、「ドライバからユーザランド層への通知」ぐらいの題で、kobject_uevent等について記載したいと思います。
1
2
315
Linuxデバイスドライバ入門
@linux_driver
20 Oct 2023
I2Cを用いた制御
linux.coresv.com/2023/09/05/…
の補足として、writing-clients 和訳
linux.coresv.com/2023/10/20/…
を追加
3
290
Linuxデバイスドライバ入門
@linux_driver
14 Oct 2023
[改版] devicetree
linux.coresv.com/2023/09/01/…
Linuxのデバイスドライバに関連するソースコードは、ロジック部を記載しているドライバのファイルである「*.c」の他に、設定値等のパラメータ部を別のファイルとして持っています。このファイルが「*.dts」「*.dtsi」となり、
5
398
Linuxデバイスドライバ入門
@linux_driver
13 Oct 2023
[改版] I2Cドライバの登録 (i2c_add_driver)
linux.coresv.com/2023/08/31/…
I2Cドライバの登録は、照度センサドライバ等のI2CクライアントドライバをLinuxカーネルのI2Cコアドライバに登録し、コールバック関数を呼び出してもらう為の処理です。i2c_add_driverが、I2Cクライアントドライバを登録する為の関
1
4
512
Linuxデバイスドライバ入門
@linux_driver
12 Oct 2023
[改版] Wakelock
linux.coresv.com/2023/08/29/…
WakelockとはCPUがsuspend状態に入るのを止める仕組みです。タブレット端末等では、CPUをsuspend状態に入れることで、消費電流を削減します。しかし、特定の条件(音楽再生中等)ではデバイスを動作させ続ける必要があります。このような際は、Wakelockにより
1
382
Linuxデバイスドライバ入門
@linux_driver
9 Oct 2023
[改版] 排他制御 (spin_lock, mutex_lock)
linux.coresv.com/2023/08/28/…
排他制御は、複数のスレッドが共有リソースにアクセスする際に競合を防ぐ為の仕組みです。一方の処理が終わるまで、他の処理を止める事ができます。Linuxカーネルで使用可能な主要な排他制御には、mutex_lockとspin_lockがあり、
4
342
Linuxデバイスドライバ入門
@linux_driver
8 Oct 2023
[改版] Timer処理
linux.coresv.com/2023/08/27/…
Timer処理は、特定の処理を一定の時間経過後に実行する為の仕組みです。繰り返しTimer処理を行うことによって、定期的な処理も実現する為にも使用されます。Linuxカーネルで使用可能なTimerには、代表的な物としてHZ Timer、High-Resolution Timer、Alarm Ti
1
306
Linuxデバイスドライバ入門
@linux_driver
4 Oct 2023
[改版] 遅延処理(workqueue, delayed_workqueue, kthread_queue)
linux.coresv.com/2023/08/30/…
遅延処理は、別のスレッド用いて、特定の処理を非同期に遅らせて実行する為の仕組みです。代表的な物としてworkqueue、delayed_workqueue、kthread_queueの3つがあり、それぞれについて説明します。
2
309
Linuxデバイスドライバ入門
@linux_driver
1 Oct 2023
[改定] アトミック操作
linux.coresv.com/2023/08/26/…
アトミック操作とは、複数のプロセスやスレッドから同時にアクセスされる可能性のある変数へのアクセスを同期化するために使用される方法の1つです。アトミック操作は、複数のCPUで同時に実行されている場合でも、互いに競合することなく実行されます。
1
279
Linuxデバイスドライバ入門
@linux_driver
28 Sep 2023
[改定]メモリ確保 (kmalloc, vmalloc)
linux.coresv.com/2023/08/24/…
本章のメモリ確保とは、mallocの様な関数を用いて、動的にメモリを確保する処理を示します。Linuxカーネルのメモリ確保関数として、kmallocやvmallocが用意されていますので、それぞれについて説明します。
2
276
Linuxデバイスドライバ入門
@linux_driver
27 Sep 2023
[改定]ドライバの登録
linux.coresv.com/2023/08/23/…
ドライバの登録は、ドライバをLinuxカーネルに登録し、コールバック関数を呼び出してもらう為の処理です。4章の「ドライバの初期化処理について」の「driverとしての初期化」で始めに出てきたplatform_driver_registerが、ドライバを登録する為の関数に
235
Linuxデバイスドライバ入門
@linux_driver
26 Sep 2023
[改定] ログ出力
linux.coresv.com/2023/08/22/…
本章のログ出力は、printfの様な関数を用いて、ログ領域に文字列を残す処理を示します。Linuxカーネルの中では、stdlib.hが使えない為、printf自体は使えません。標準出力自体が無い為、その他のputs等も使用できません。その代わりにLinuxカーネルのログ出力
200
Linuxデバイスドライバ入門
@linux_driver
25 Sep 2023
[改版] 読み解く照度センサとドライバについて
linux.coresv.com/2023/08/21/…
本章では、読み解く照度センサドライバと、そのドライバが制御する照度センサデバイスの概要について、説明します。
159
Linuxデバイスドライバ入門
@linux_driver
23 Sep 2023
[改版] デバイスドライバとは
linux.coresv.com/2023/08/20/…
デバイスドライバはハードウェアを制御するソフトウェアです。C言語だけを学んだ方は、ハードウェアを制御するとしてもライブラリ等を使用するので、その実態を知らない状態だと思っています。本章ではデバイスドライバが、どのようにハードウェ
1
3
524
Linuxデバイスドライバ入門
@linux_driver
20 Sep 2023
システムコールによるインターフェース呼び出し
linux.coresv.com/2023/09/20/…
前章の内容でデバイスドライバを通してハードウェアを制御する為のインターフェースが、準備できました。本章では、ドライバのインターフェースを通した上位層からの制御について説明します。基本的には7章で説明したsysfs、dev
163
Load more