対象の資材 各設定の説明 partitionの設定 u-boot用の設定 Linux kernelの設定 マウント設定 rauc用鍵の作成 アップデート設定 update-bundleの作成 妥協した点 終わりに 前回の記事で行ったラズパイのアップデートについて、内容を説明する。 aimdevel.hate…
初めに 環境 作ったもの アップデートツール 概要図 パーティション構成 ブート~アップデート~再起動の流れ 使い方 動作確認 終わりに 初めに 前回の記事で作成したLinuxのセキュリティ機能を盛り込んだラズパイをアップデートできるようにしていく。 aimd…
初めに 環境 作ったもの 概要図 パーティション構成 ブートの流れ 使い方 起動確認 各設定の説明 partitionの設定 u-boot用の設定 FIT imageの設定 initramfsの設定 dm-verityの設定 dm-cryptの設定 overlayfsの設定 ユーザ設定 その他 終わりに 初めに 今ま…
Linuxのセキュリティ機能を自分で試した記事のまとめページ 機能を組み合わせて試した記事 セキュリティ機能を使用したLinuxをyoctoで作成 セキュリティ機能有効なLinuxのアップデート例 機能を組み合わせて試した記事 上から順番に作業して、最終的にinitra…
初めに 前回はdm-verityとoverlayfsを組み合わせて、read onlyなrootfsの一部を描きこみ可能領域に設定した。 aimdevel.hatenablog.com 書き込み可能領域は構築するシステムに応じて自由に設定できて、ユーザ固有の情報やログなども保存できる。 ただし、組…
初めに 前回はrootfsをdm-verityで検証してから起動するように設定した。 aimdevel.hatenablog.com ただし、そのままではrootfsがすべてread onlyになってしまうので、必要なディレクトリを書き込み可能にしたい。 そこで今回はOverlayFSを使用して書き込み…
初めに 前回はBuildrootでinitramfsを作成し起動する方法を試した。 aimdevel.hatenablog.com 今回は、本番用rootfsをinitramfs + dm-verityで検証することで改ざんを検知できるようにしていく。 dm-verityとは dm-verityとは、linux kernelに備えられたブロ…
初めに 手順 Buildroot動作確認 Buildrootでパッケージ追加 initramfsとして動かすための仕込み initramfsとして組み込み、起動 残件 Buildrootを触った感想 終わりに 初めに 前回の投稿でbusybox単体でinitramfsを動かすところまでは確認した。 aimdevel.ha…
前回はラズパイ実機でu-bootとFIT imageを使用してLinuxを起動した。 aimdevel.hatenablog.com 今回はそこから進んでFIT imageにinitramfsを含めて起動する。 initramfs起動後はパーティション2に存在するrootfsに切り替えてLinuxを起動するところまで実施す…
初めに 作るもの 実施環境 手順 終わりに 参考資料 前回ラズパイでu-bootを動作させた。 aimdevel.hatenablog.com 今回はさらにu-bootからlinuxを起動する。 初めに u-bootまで起動しているのでラスパイ特有の手順はほぼない。 せっかくu-bootを使用するので…
初めに 実施環境 手順 用意する資材一覧 u-bootを作成 sdカードを編集 起動する まとめ 参考情報 ラズパイ4Bでu-bootを動作させたので、手順をまとめる。 基本的には以下の記事のu-bootの部分をなぞっただけなので、詳しくはこちらを参照。 https://hechao.l…
概要 前回から引き続き、ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、I2C LCD1602を試した。 環境 I2C LCD1602を使用する。 Raspberr Pi Picoとを以下のように…
概要 前回から引き続き、ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、Segment Displayを試した。 環境 74HC595と7セグメントディスプレイを使用する。 Raspber…
概要 ラズパイ入門キット「SunFounder Da Vinci Kit for Raspberry Pi」に入っている機器をRaspberr Pi Pico + Zephyr OSで動かしてみた。 今回は、RGB LEDを試した。 環境 Raspberr Pi PicoとLEDを以下のように接続する。接続方法はSunFounderのチュートリ…
概要 概要 作業手順 デバイスツリーを追加する。 ビルドする 基板に転送して動作を確認する。 ソースコード確認 デバイスツリー servo pwm_ch4b_default pwm サンプルコード 1. デバイスツリーから情報を取得 2. pwm構造体をバリデート 3. pwmのパルス幅を設…
概要 環境 作業手順 開発環境構築 アプリをビルド 実行 ソースコード確認 aliasでデバイスツリーのノード識別名を取得 gpioノードの構造体を取得 gpioの構造体をvalidate gpioピンを設定 gpioのon/offを切り替え まとめ 概要 Raspberry Pi Pico上でZephyr OS…
概要 実験環境 使用結果 1. KERNEL_FEATURESを設定する方法 2. 独自のcfgファイルを使用する方法 3. defconfigをレシピから渡す方法 比較 まとめ 参考情報 概要 yoctoでlinux kernelをビルドする際にconfigを変更する方法は複数あり、 どの方法を使えばよい…
前に書いたRustのコードをGitHubにおいていたら、脆弱性情報が通知されていたので、それに対応した。 別のところで同じ対応をするときに困らないように、行った作業をまとめておこうと思う。 対応したリポジトリは以下。 GitHub - aimdevel/part-mount: tool…
rustでツールを作成する際にはまった箇所をメモしておく。 以下のドキュメントを参照しながら自分の理解をまとめる。 The Rust Programming Language 日本語版 - The Rust Programming Language 日本語版 何にはまったのか? 結論から言うと、値の所有権を理…
sdカードイメージファイルの特定のパーティションをマウントするツールを作成した。 作ろうと思った背景 ラズパイOSイメージなどのイメージファイル内のパーティションをマウントする方法は以下などがある。 losetupでパーティションをloopデバイスとしてみ…
yoctoのレシピ作成に使用する変数のhover機能を、vscodeの拡張機能として作成した。 作ったものは以下。 GitHub - aimdevel/yocto-variable-hover: vscode extension that enables hover of yocto variables 背景・目的 yoctoのレシピを作成したり、設定を変…
概要 vscodeの拡張機能でデータベースを使いたくなったため、TypeScriptからデータベースを使えるSequelizeを試してみた。 使用したデータベースはSQLiteで、以下のページを参考に作業した。 Getting Started | Sequelize インストール $ apt update $ apt i…
最近こんな記事を見つけたので、この機会にcontainerd+wasmを動かしてみた。 www.publickey1.jp 概要 以下のページの手順に従ってサンプルを実行を試す。 その後、rustのHello Worldを動かす。 GitHub - containerd/runwasi: Facilitates running Wasm / WAS…
前から存在だけ知っていたyoctoのcve-checkを実際に動かしてみる。 作業概要 yoctoのレイヤmeta-raspberrypiの最小構成でcve-checkを実施し、どのような結果が得られるか確認する。以下のページの「3.34 Checking for Vulnerabilities」 を参考に作業する。 …
概要 ベースとするソースコードの入手 importの追加 初期化処理の編集 hover用関数を実装 hover用関数をサーバに登録 Hoverレスポンスの構造 概要 vscode拡張機能にhoverを実装するために以下を行う。 今回はlanguage serverとして実装する。 * ベースとする…
yoctoのレシピを書く際に変数設定のオペレータの意味を正確に理解できていなかったため調べてまとめ、手元で動作確認を行った。 動作確認の方法は、local.confに変数を記述して、それがどのように反映されるかをbitbake-getvarで確認するという手順を使った…
概要 ネイティブlinuxが推奨されるyoctoだが、windowsのwsl2上でも動作するのか試した。 今回はラズパイ用OSイメージのビルドが成功するところまで確認した。 目次 概要 目次 環境の準備 wsl2インストール wsl2追加設定 vscodeに拡張機能をインストール ビル…
vscodeのhighlight拡張機能勉強の続きです。 今回はsemantic highlightの作り方をサンプルコードを読むことで理解します。 semantic highlightを使用すると、language serverからhighlightの設定をすることが可能になるので、単純な正規表現でのマッチング以…
vscodeでソースコードなどを表示すると、キーワードなどに色がついて表示されます。 ただし、色が付くのはvscode側がそのプログラミング言語に対応している必要があり、例えば社内の独自言語などがあった場合には当然vscodeで表示しても全く色が付きません。…
概要 ソースコードの特定の文字列を置き換えるような修正、例えばバージョン番号の変更など、を手動で行うのは手間もかかるし作業ミス発生の可能性もあると思います。 そこで、今回は以下が自動で行われるGithub Actionsのworkflowを作成しました。 Issueのd…