はじめに なんとなく、Raspberry Pi 4 で Vulkan を試すと同様のことをPokyでもやってみた。 使用するのはラズベリーパイ4 動かすデモプログラムはSaschaWillems/Vulkan。これはVulkanのデモとしては有名なものらしい。 run_crops.sh(余談) gistに置いた。 …
はじめに CROPSを使用すると、ホスト環境の差異を気にせずにbitbakeができるようになるので 非常に便利だが、たまにhosttoolsを追加したりCROPSのDockerイメージを拡張したいケースがある。 その際にCROPSの提供物を直接編集することなく、Dockerイメージを…
はじめに "Yocto Project CROPSを使ってみる"を拝見して、、、Fedoraのpodmanでもできました。https://t.co/YGURc1j6hz— nb.o (@Nextremer_nb_o) February 9, 2022 私の記事を参考にして、meta-riscvをビルドしようとしたけどうまくいかないらしかったので試…
はじめに Yocto ProjectでもいくつかのレイヤでTPMをサポートしている。 ラズベリーパイシリーズはTPMモジュールは搭載されておらず、外付けのモジュールを使用するか エミュレータを使用する必要がある。 meta-security配下にあるmeta-tpmではTPMエミュレー…
はじめに 前回CROPSを動かしてみた。 CROPSでmeta-raspberrypiをビルドしてみる。今回はラズベリーパイ4を使用する。 run_crops.sh 今回も前回作成したrun_crops.shを使用する。 #!/bin/sh cmd="source /workdir/poky/oe-init-build-env" if [ $# -gt 0 ] ; …
はじめに 最近やっと時間が取れるようになって(なってない)、HONISTERをいじり始めた。 初っ端から下記のようなエラーが発生して面食らった。 ERROR: Variable DISTRO_FEATURES_append contains an operation using the old override syntax. Please convert…
はじめに Yocto Projectではbitbakeを実行するためのDockerコンテナを提供している。 そのコンテナはCROss PlatformS(CROPS)と呼ばれている。CROPSの詳細はSetting Up to Use CROss PlatformS (CROPS)を参照のこと。 使い方 使い方についてのざっくりな説明…
はじめに YoctoでビルドするZephyrアプリケーションのコンフィグを設定する方法を調べた。 micro:bitの5x5 LEDを有効化する。 最終的にはmeta-armの修正が必要となった。 作業環境はYocto Zephyrに独自のアプリケーションを追加してみるを使用する。 環境変…
はじめに Yocto ProjectでビルドしたZephyrのアプリケーション(elf)をqemuとgdbでデバッグしてみる。 環境 下記で作成した環境をベースに作業する Yocto BBC micro:bit V1向けのZephyrを試してみる Yocto Zephyrに独自のアプリケーションを追加してみる gdb-…
はじめに Yocto ProjectでビルドするZephyrに独自のアプリケーションを追加してみる。 環境構築 この環境をベースに作業する。 環境変数設定 bitbake関連のツールを使用するために環境変数の読み込みは行う。 $ source poky/oe-init-build-env build レイヤ…
はじめに YoctoでZephyrをビルドできるっぽいことは知っていたが、試したことがなかったのでやってみる。 使用するバージョンはhardknott 構築手順 ソース取得 下記のコマンドでソースを取得する。 $ mkdir -p mb-hardknott && cd mb-hardknott $ git clone …
はじめに 筆者はemacsでmarkdownを書く時にはmarkdown-modeのパッケージをインストールして、gfm-modeを使用する。 .emacs/init.elは多分こんな感じ。 ;; Markdown mode (use-package markdown-mode :ensure t :init (add-to-list 'auto-mode-alist '("\\.md…
はじめに Yocto Project 3.3(Hardknott)でラズベリーパイ4を動かすの環境をベースに、Hardknottで日本語入力環境を作成してみる。 かなり古いがyoctoで日本語入力も参考にする。 作業環境の準備 meta-oeをビルド環境に設定する。 $ cd rpi-hardknott $ sourc…
はじめに Yocto Project 3.3がリリースされていた。 リリースされた事自体は知っていたが、meta-raspberrypiをビルドする際に、bitbake-layers layerindex-fetchがうまく動かなかったので、しばらく様子を見ていた。 具体的には下記のようなこと。 OpenEmbed…
はじめに YoctoでChromiumをビルドする時に下記のようにエラーで終了する。 ... (snip) ... nterface.o | ninja: build stopped: subcommand failed. | WARNING: exit code 1 from a shell command. | ERROR: Task (/home/mickey/work/yocto/rpi-gatesgarth/…
はじめに 組み込みシステムの場合、製品として使用するようなケースではルートファイルシステムをリードオンリーとして、 本体が持つデータを書き換えられないようにすることがある。 Yoctoでは簡単に実現することができる。 実機でやったほうが楽しいのでラ…
はじめに Raspberry Pi Pico(Pico)は4つの64ビットタイマーを持っている。それぞれ割り込みを発生させることができる。 ここまででSysTickやその割り込みを使ってLチカをしてきたが、すべてビジーループでタイミングを測っていた。 今回はWFIを使ってスリー…
はじめに Yoctoでx86_64向けのボードを動かす。その際にUEFIセキュアブートも有効にしてみたいと考えた。そこで、meta-efi-secure-bootというレイヤを見つけた。 実機はROCK Pi X V1.4を使用する。 UEFIセキュアブート UEFIセキュアブートは秘密鍵を使用して…
はじめに bitbake-layersコマンドの便利なサブコマンドを見つけた(認識した)。 レイヤ間の依存関係 bitbakeで取り扱うレイヤではlayer.confに下記のようにLAYERDEPENDSを記述することで、依存関係を定義することができる。 LAYERDEPENDS_gnome-layer = "core…
はじめに デフォルトの設定でmeta-gnomeをビルドするとエラーが発生する。 エラーの内容 gnome-control-centerとsystmedがそれぞれで/usr/share/polkit-1/rules.dをインストールしようとしてコンフリクトしている。 Error: Transaction test error: file /us…
はじめに 前回作ったプログラムをFlashから実行できるようにしてみる。 RESUSについて追記(2021/3/10) Flash対応 Makefile diff -Narubp blink_ram_int_systick/Makefile blink_flash_int_systick/Makefile --- blink_ram_int_systick/Makefile 2021-02-27 1…
はじめに SysTick割り込みを使用してLチカをする。 2021-02-26 Raspberry Pi Pico Systickを使ってLチカを正確にするのコードをベースに作業する。 SysTick割り込み SysTick割り込みはm0+のコアで用意されている割り込みで、この割り込みが発生するとベクタ…
はじめに 「PicoでベアメタルのLチカ(RAMバージョン) その2」として。 これまで作ってきたLチカは、適当な値をforでビジーループするだけだったので、タイミングはいい加減だった。 Cortex-M0+ではコアにSysTickを持っていて、これは難しい設定することもな…
はじめに J-Link EDUが手元にあるので、OpenOCDでPicoのデバッグができないか試してみた。 接続 下記のように接続する。 Pico ARM-JTAG-SWD SWDIO SWDIO(7) SWDCLK SWDCLK(9) GND GND(4,6,8,10,12,14,16,18,20) VSYS VCC(1) 設定ファイル ${PICO_SDK_PATH}/.…
はじめに ツイッターでRaspberryPi4が無いケースでOpenOCDでデバッグするにはどういう手段があるか。という話題が出た。 ARM-USB-TINY-H + ARM-JTAG-SWD ARMのMCUのデバッグで安価で使い勝手が良いものとしてはARM-USB-TINY-Hが挙げられる。 しかしこのデバ…
はじめに ここまで作ってきたベアメタルのLチカはGCCでビルドしてきたが、それをclangでビルドしてみる。 clang-10のインストール Ubuntu 20.04環境でClangをインストールする。バージョンは10。 $ sudo apt install -y clang-10 lld-10 make Makefile ベー…
はじめに Raspberry Pi Pico SDKでのFlashからのブートについて調べたでは、Flashからブートするための仕組みを調査した。 Boot Stage2に相当する部分を自作するのは結構面倒だということがわかったので、コンパイル済み(CRC計算済み)のBoot Stage2である、 …
はじめに リンカスクリプト初心者がPico SDKのリンカスクリプトを眺める。今回眺めるのはmemmap_default.ld。 大きく分けて下記のようなブロックに別れている MEMORY ENTRY SECTIONS elfにもリンカスクリプトの詳しくないので間違っている情報があるはず。 M…
はじめに picoprobeでRAMに直接プログラムがロードできるようになったので、難しいboot2のことはおいておいて、 ベアメタルでLチカを試みる。 ホントは、コンパイル済みのboot2を組み込んでLチカしようと頑張ったが、現時点では挫折した。 心の師匠の成果物…
はじめに Raspberry Pi Pico(Pico)はRaspberry Pi4を使用して、SWDでデバッグすることが推奨されているようだが、 Picoが2台ある場合、そのうち1台にpicoprobeというプログラムを書き込むことで、デバッガとして使用することができる。 下記のようにPico SDK…