Linux [Linux] user watchdog を使う Linux には user watchdog が備わっていて、ドライバが有効であれば利用することができます。watchdog とは、システムが何らかの障害で応答できなくなってしまったときに、強制的に止めたりリセットを掛けて復帰させるための仕... 2021.05.06 Linux
Linux [Linux] ドライバの再起動 Linux ドライバを無効にしたり再起動して有効にしたい場合、モジュールとしてビルドして filesystem にインストールし、modprobe(insmod)/rmmod で 有効化・無効化します。 ここでは、kernel に静的... 2021.05.06 Linux
Linux [Linux] SRAM を使う メモリマップドI/O の SRAM は misc/sram ドライバを使って読み書きすることができます。ここでは kernel module から genpool API で扱う場合と、userland から sysfs で扱う場合を見てみ... 2021.05.06 Linux
Linux [Buildroot] ローカルソースツリーを指定する buildroot で Linux kernel や bootloader をビルドする場合、その元となるソースツリーはリポジトリから取得するか、アーカイブをダウンロードするのが一般的です。ここでは、事情によりローカルフォルダに展開されたツ... 2021.02.11 LinuxU-boot
Linux [Buildroot] 外部設定ファイル(BR2_EXTERNAL)を作成する 「ramfs image の展開・再構築」では ramfs イメージの展開・再構築する方法を書きましたが、元となる開発用 root filesystem は buildroot を使うと容易に生成できます。ここでは、buildroot に直... 2021.02.11 LinuxU-boot
Linux [U-Boot] FIT image の作成 U-Boot から Linux kernel を起動する際に、3つのイメージバイナリ (Linux kernel・devicetree・root filesystem)を読み込んでそれぞれの読み込んだメモリアドレスを指定して起動しますが、こ... 2021.02.11 LinuxU-boot
Linux [Linux] Arm Generic Timer と arm_arch_timer ドライバ Linux/arm64 では 基準となるタイマに Arm Generic Timer を使用してスケジューラや時刻の管理を行います。このタイマは CPU 内に実装されており、どの SoC でもほぼ共通でこのタイマを使用しています。 2020.12.21 Linux
Linux [Linux] 物理 RAM 上の固定領域に ramdisk を作る Linux で ramdisk を作る方法はいくつかあります。root filesystem であれば initramfs、それ以外なら tmpfs を使ったり、BLK_DEV_RAM を有効にすれば /dev/ramN に ramdisk... 2020.11.06 Linux
Arm CPU [TF-A] Armv8.2 CPU ID Armv8.2 CPU は基本的な動作は Armv8 と等価で考えていたのですが、ふと Trusted Firmware-A ソースを見ていた時に Armv8.2 の記述があったので、何が違うのか見てみました。 2020.10.13 Arm CPU
Linux [QEMU][Linux] virt model の構成を見てみる QEMU の aarch64 標準モデル virt の中身を guest kernel から探ってみます。ここではソースではなく、userland で得られる情報から見てみます。特に QEMU では virt モデルを使用する場合は dev... 2020.10.04 LinuxQEMU