はじめに コンテナ技術としてはDockerが有名だが、こちらはアプリケーションコンテナとなっている。 LXDはシステムコンテナという位置づけになっているが、これらがどう違っているのかわからなかった。 DockerとLXDの大きな違いはセッションのライフサイクル…
はじめに USBハブにはper-port power switching(PPPS)という機能に対応しているものがある。 これはポート毎に給電を制御するものであって、これが使えるとそのハブに接続されたUSB機器の電源をPCから制御することができる。 USBハブのポートが供給する電力…
はじめに 私のベアメタルの心の師匠であるdwelch67さんが、さっそく何か作っていたのでパクる勉強するべく中身を眺めていた。 リンカスクリプトの下記の部分のLENGTH = 0xFCが引っかかったので調べてみた。 MEMORY { flash : ORIGIN = 0x10000000, LENGTH = …
はじめに ラズベリーパイPico(RPi Pico)が入手できた。 開発環境としてラズパイ4が必要とされているが実際のところそうでもなさそうなのでUbuntu 20.04に開発環境(SDK)を構築しLチカを動かしてみる。 pico_setup.shについて C/C++の開発環境を構築するために…
はじめに CMakeにはCTestというテストランナーがある。 CTestはテスト用の実行ファイル(テストバイナリ)が1つのテストとして認識される。 GoogleTest(GTest)のようなテストフレームワークの場合、1つのテストバイナリに複数のテストケースが含まれることが常…
はじめに C++でコードを書く時にユニットテストも書きたい。 CMakeにはテストを実行するための仕組みがある。 CTest CTestはいわゆるテストランナーで、CMakeがサポートするテストランナーの中では一番シンプルなもの。 指定されたものを実行するだけのシン…
はじめに SPI接続のILI9341のLCDが欲しくてこれを買ったがSPIではなく届いてみると8ビットパラレルのモジュールだったので絶望した。 きっとポチッとしたときは眠たかったんだと思う。 しかし買ってしまったものは仕方ないので動かしてみることにした。 Plat…
はじめに bitbakeではビルドするパッケージの脆弱性をCVEによってチェックを行う機能がある。 使い方 local.confに下記を追加する。 INHERIT += "cve-check" すると、各パッケージのタスクにdo_cve_checkが追加される。 bitbakeを実行すると、このタスクが実…
はじめに Dockerに入門してみる。 作業環境はUbuntu 20.04 環境設定 aptでも提供されているが、Install Docker Engine on Ubuntuの手順でインストールしたほうがトラブルは少なそう。 apt版のアンインストール $ sudo apt purge docker docker-engine docker…
はじめに Giant BoardをDebian GNU/Linux 9 (stretch)で動かす動かしたGiant BoardをYoctoProjectに対応する。 ここでは新規ボード向けにYoctoProjectのレイヤを作る最小限の手順を紹介する。 新規ボードのレイヤを作る YoctoProjectが未対応のボードに対応…
はじめに カーネルデバッガが便利だという噂は聞いたことがあったが、実際使ったことがなかった。 kdbをすこしだけ試してみたのでメモ。 kdb vs kgdb Linuxのカーネルデバッガを調べるとかならずkdbとkgdbが引っかかる。 これらは別物で、どちらが良い悪いは…
はじめに pandocでマークダウンをPDF化する(LaTexなし)でwkhtmltopdfの存在を知った。 この記事ではWindows環境での話だったので、Ubuntu20.04で同様のことができないか確認した。 wkhtmltopdfのインストール Stableなリリースはここで確認できる。 執筆時点…
はじめに bitbake meta-toolchainや-c populate_sdkで作成したSDKを使用してOut-of-treeのカーネルモジュール(ドライバ)をビルドする時に少しハマったのでメモしておく。 SDKにカーネルソースを含める 作成されたSDKに確実にカーネルのソースコードを含める…
はじめに meta-clangの使い方を調べた。 meta-clangはbitbakeでのパッケージのビルドやSDKでgccの代わりにclangを使えるようにするためのレイヤ。 meta-clangを使う 既存のビルド環境にmeta-clangを組み込むには下記のようにする。 $ git clone https://gith…
はじめに Qt 6 in OpenEmbedded and Yoctoが気になったので試してみる。 ここを見る限りまだdevっぽい。 meta-qt6を覗いてみる layer.conf ...(snip)... LAYERDEPENDS_qt6-layer = "core" LAYERSERIES_COMPAT_qt6-layer = "zeus dunfell gatesgarth" ...(sni…
はじめに recipetoolでバイナリパッケージを作ってみる。 ちなみに今回は作ることが目的のため、作ったものの動作確認はしていない。 reciptool オプションの確認 $ recipetool create --help NOTE: Starting bitbake server... usage: recipetool create [-…
はじめに u-bootのスタンドアロンアプリのサンプルを動かす。 ターゲットはBeagleBone Black(BBB) ただ、BBBを使うといろいろと罠がある。 動いてるu-bootが違う SDカードにMLOを含めてu-bootやカーネルを入れたはずなのに、UARTコンソールで表示されるu-boo…
はじめに YoctoProjectのリリースバージョンを確認するにはReleasesのページを参照する。 その際にSupport LevelがEOLになっているものは既にサポートが切れていると言えそう。 1つ気になったのはDunfell(3.1)のSupport Levelを見るとLong Term Supportとな…
はじめに 例えば既存のbbclassにデバッグ用のログを追加したり独自の改造を実験したい場合でも、 既存のレイヤのソースコードに手を加えるのは避けたい。 そのような場合、ちょっとした工夫で自分のレイヤから既存のbbclassの挙動を上書きすることができる。…
はじめに ちょっと前にツイッターでLinux上で動くmacOSのエミュレータDarlingというやつの情報が流れてきた。 wineのmacOS版みたいな感じのようだ。興味が湧いたので自分でも試してみる。 環境はUbuntu 18.04。 依存パッケージのインストール sudo apt insta…
はじめに 以前にもCMakeLists.txtの書き方をまとめたが内容が古くなったので改めて調べ直した。当時の理解が甘かったところやCMakeが3になってできることなども対応した。 Ubuntu 20.04では3.16に対応しているため、そのバージョンで使用できる機能を紹介す…
はじめに なにか適当なレイヤをでっち上げて、kasのコンフィグファイルを作ってみる。 サンプルのレイヤとしてラズパイ向けにハローワールドプログラムを追加したレイヤを作成する。 環境の作成 ソース取得 ラズパイ環境のビルドのためのレイヤをダウンロー…
はじめに meta-raspberrypiのQuick Startを眺めていると、Quick Start with kasという項目ががあった。 kasというコマンドに見覚えがなかったので調べてみると、下記のようにあった。 This tool provides an easy mechanism to setup bitbake based projects…
meta-raspberrypiでbitbakeして作成されるイメージがいつの間にかrpi-sdimgからwic.bz2になっている。 イメージを書き込む手順もddやEtcherからbmaptoolになっている。 dunfellのブランチを使用して、最近の手順で試しにラズパイ4を動かしてみる。 構築手順 …
はじめに meta-oeなどには様々なライブラリのパッケージが提供されている。 その中には依存関係のあるパッケージのビルド時にだけ使用する、*.aしか提供しないパッケージも存在する。 SDKを使用してアプリケーションを開発する際にそのようなパッケージの提…
はじめに Jetson NanoにYocto環境を作ってLogtech Unifyingのキーボード・マウスを接続したが、 全く反応しなかった。 原因 イメージに必要なドライバがインストールされていないことが原因だった。 下記のコマンドでカーネルコンフィグを確認したところ必要…
Giant Boardが届いた。 このボードにはCortext-A5コアのATSAMA5D27-D1G-CUが搭載されている。 MICROCHIPによると、こういうものらしい。 The SAMA5 series are high-performance, ultra-low power ARM Cortex-A5 core based MPU devices. They support multi…
はじめに タイトルいったい何のことか伝わらないと思うので。 いわゆる2次元配列っぽいことをしたいというか、要素数の異なる複数のテーブルを多重ループで回す感じ。 2次元配列が近いと思って調べたけど、自分のやりたいこととうまく合致しないかな。と。 b…
はじめに ShigezoneでDigisparkを購入したのPlatformIOで動かしてみる。 書き込みの時にコツがいるのでメモっておく。 プロジェクトの作成 作業用ディレクトリを次のように作成する。 $ mkdir -p ~/pio/digispark $ cd ~/pio/digispark このボードのCPUはATT…
はじめに NuttXはASFのIncubatorプロジェクトへ採択され、リポジトリがBitBucketからGitHubに変更された。 今後はプルリクエストなどもGitHubで受け付ける。 ソースコードを取得 GitHubからソースコードを取得するには次のようにする。 $ git clone https://…