kunih

Linux

[Linux] user watchdog を使う

Linux には user watchdog が備わっていて、ドライバが有効であれば利用することができます。watchdog とは、システムが何らかの障害で応答できなくなってしまったときに、強制的に止めたりリセットを掛けて復帰させるための仕...
Linux

[Linux] ドライバの再起動

Linux ドライバを無効にしたり再起動して有効にしたい場合、モジュールとしてビルドして filesystem にインストールし、modprobe(insmod)/rmmod で 有効化・無効化します。 ここでは、kernel に静的...
Linux

[Linux] SRAM を使う

メモリマップドI/O の SRAM は misc/sram ドライバを使って読み書きすることができます。ここでは kernel module から genpool API で扱う場合と、userland から sysfs で扱う場合を見てみ...
Linux

[Buildroot] ローカルソースツリーを指定する

buildroot で Linux kernel や bootloader をビルドする場合、その元となるソースツリーはリポジトリから取得するか、アーカイブをダウンロードするのが一般的です。ここでは、事情によりローカルフォルダに展開されたツ...
Linux

[Buildroot] 外部設定ファイル(BR2_EXTERNAL)を作成する

「ramfs image の展開・再構築」では ramfs イメージの展開・再構築する方法を書きましたが、元となる開発用 root filesystem は buildroot を使うと容易に生成できます。ここでは、buildroot に直...
Linux

[U-Boot] FIT image の作成

U-Boot から Linux kernel を起動する際に、3つのイメージバイナリ (Linux kernel・devicetree・root filesystem)を読み込んでそれぞれの読み込んだメモリアドレスを指定して起動しますが、こ...
Linux

[Linux] Arm Generic Timer と arm_arch_timer ドライバ

Linux/arm64 では 基準となるタイマに Arm Generic Timer を使用してスケジューラや時刻の管理を行います。このタイマは CPU 内に実装されており、どの SoC でもほぼ共通でこのタイマを使用しています。
Linux

[Linux] 物理 RAM 上の固定領域に ramdisk を作る

Linux で ramdisk を作る方法はいくつかあります。root filesystem であれば initramfs、それ以外なら tmpfs を使ったり、BLK_DEV_RAM を有効にすれば /dev/ramN に ramdisk...
Arm CPU

[TF-A] Armv8.2 CPU ID

Armv8.2 CPU は基本的な動作は Armv8 と等価で考えていたのですが、ふと Trusted Firmware-A ソースを見ていた時に Armv8.2 の記述があったので、何が違うのか見てみました。
Linux

[QEMU][Linux] virt model の構成を見てみる

QEMU の aarch64 標準モデル virt の中身を guest kernel から探ってみます。ここではソースではなく、userland で得られる情報から見てみます。特に QEMU では virt モデルを使用する場合は dev...
タイトルとURLをコピーしました