みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

raspberrypi3

ラズベリーパイ3の(ソフトウェア)PWMで回転サーボを動かす

はじめに 秋月電子でも入手可能な回転サーボ FS90R を入手したので動かしてみる。 環境はwarrior(Yocto 2.7)でmeta-raspberrypiを使用する。 環境構築 ここの「環境構築」を参照。 local.confに下記の内容を追加する。 IMAGE_INSTALL_append = " rpi-gpio" c…

ラズベリーパイ3 warriorのglimagesinkがエラー

2019/10/09 追記 はじめに warrior(2.7)でcore-image-baseを作ってgstreamerで遊ぼうとしたら、次のコマンドでエラーが発生した。 $ export GST_GL_WINDOW=dispmanx ; export GST_GL_API=gles2 ; export GST_GL_PLATFORM=egl $ gst-launch-1.0 v4l2src devic…

raspberrypi3 yoctoでLinuxカーネル5.0を試す(ラズパイカーネル編)

はじめに RPiのカーネルはこっちで管理されているが、まだ5.0-rc8なのでバニラカーネルを試すことにした。 もう-rc8が取れてたので、こっちも動かしてみる。 基本的な方針は前回と変わらずに下記のようにする。 meta-raspberrypiのカーネルとはバージョンが…

raspberrypi3 yoctoでLinuxカーネル5.0を試す(バニラカーネル編)

はじめに Linuxカーネル5.0がリリースされたのでmeta-raspberrypiの環境で試そうと思ったら、いろいろと罠があって4日も経ってしまった。 RPiのカーネルはこっちで管理されているが、まだ5.0-rc8なのでバニラカーネルを試すことにした。 meta-raspberrypiの…

Yoctoターゲットのセルフコンパイル環境でカーネルモジュールをビルド

はじめに Yoctoのセルフコンパイル環境でout-of-treeのカーネルモジュールをビルドする。 普通にビルドしようとエラーが発生するのでその回避方法をメモしておく。 hello-mod 今回はrecipe-skeleton/recipes-kernelにあるhello-modをラズベリーパイ3上でビル…

yoctoでkodiをつくる

メディアセンターのディストリビューションをつくってみる。 環境構築 ラズベリーパイ3向けの環境。いつものやつ。 sumo(2.5)をベースにすると後述のCMAのエラーが発生するため、thud(2.6)をベースにする。 ソース取得 $ mkdir -p rpi-kodi/layers $ cd rpi-…

ラズベリーパイ3 Yoctoでdebパッケージを使用する

Yoctoでは、デフォルトでrpmを使用してレシピごとのパッケージを作成し、 OSイメージを作成する段階で、それらをインストールすることでソフトをインストールしている。 core-image-minimalやcore-image-base、rpi-basic-imageの最小構成のイメージでは、 パ…

ラズベリーパイ3でthudを試す

yoctoの最新版がやっとリリースされた。バージョンは2.6で、コードネームは「Thud」. 早速、ラズベリーパイ3で動かして見る。 環境構築 いつものやつ。 INITはsystemdで。 ソース取得 $ mkdir -p rpi-thud/layers $ cd rpi-thud/layers $ git clone git://gi…

raspberrypi3 model b+ USBブート

ラズベリーパイ3 Model B+は、初期状態でUSBブートが可能になっている。 もともとのラズベリーパイ3(Model B)では、 OTPという一度だけ書き込みができる特殊なメモリの設定を変更することでUSBブートができるらしいのだが、 間違った設定をすると文鎮化する…

Flask-Bootstrap + Ajax(jQuery) + RPi.GPIOでLEDを制御してみる

ここ何回かにわたって、pythonでFlask-BootstrapやAjaxのお話をしてきた。 Flaskでpythonのウェブアプリケーションを作る Flask-Bootstrapを使ってみる Flask-BootstrapでjQuery Flask-BootstrapでAJAX(jQuery) なぜ急にFlaskでAjaxだったのか。実は今回のこ…

yocto raspberrypi3でNFSブート

raspberrypi3のルートファイルシステムをNFSでマウントする。 ベース環境の取得 $ git clone git://git.yoctoproject.org/poky.git -b pyro $ cd poky $ git clone git://git.yoctoproject.org/meta-raspberrypi -b pyro 使用するのはpyroブランチ。 oe-init…

yocto raspberrypi3でA2DP レシーバ

スマートフォンなどの音源を、Bluetooth経由でラズベリーパイ3からならす。 OSはいつもどおりyoctoprojectを使用して作成。 BluetoothではA2DPを使用し、sinkとなるようにする。 実際に音を鳴らすのはpulseaudioで、ラズベリーパイ3が他の端末からオーディ…

Python ラズベリーパイ3でHTTPサーバを動作させ、ネットワーク越しにLEDを操作する

PythonでのHTTPサーバの実装には、BaseHTTPServerを使用する。 まず、プログラム全体を載せる。 HTTP server with python メインプログラム メインプログラムの流れは 図 1 のようになる。 図 1: メインプログラム. 非常に簡単。 このプログラムの肝となるの…

meta-raspberrypi mortyでcore-image-satoが起動できない時の対処 その2

先日の記事の続き。 vc4graphicsを有効化した状態でこれをcocopar 5 インチIPSハイビジョンLCD ディスプレイで動かそうとすると、画面が真っ黒になった。 調査したところ、cocoparのLCDのようにEDIDを取得できないデバイスの場合KMSの初期化で弾かれてしまい…

meta-raspberrypi mortyでcore-image-satoが起動できない時の対処

素の状態でbitbake core-image-satoで作成したイメージを起動すると、 真っ黒い画面にマウスカーソルのみが表示されるという状態になる。 シリアルコンソールでログインし、/var/log/Xsession.logを表示したところ下記のようになっていた。 $cat Xsession.lo…

raspberrypi3 meta-raspberrypiでuartコンソール

2017/01/18修正 ラズベリーパイ3にシリアルコンソールでログインしたい。 少し古い情報だと、ラズベリーパイ3はオンボードのBluetoothの影響で、すこし複雑な設定を行う必要があるとなっているが、最近のラズベリーパイ3向けのカーネルでは、config.txtにena…

yocto raspberrypi3でmorty

ちょっと時間が経ってしまったが、yocto 2.2(morty)がリリースされたので、raspberrypi3で動かしてみる。 ベース環境の取得 $ git clone git://git.yoctoproject.org/poky.git -b morty $ cd poky $ git clone git://git.yoctoproject.org/meta-raspberrypi …

yocto meta-raspberrypiでVC4 graphics driverを試す

このように、RaspbianではVC4のgalliumドライバが使用できていたのだが、 最近、meta-raspberrypiでもこの対応が入ったので試してみる。 local.confにMACHINE_FEATURES += "vc4graphics"の行を追加することで、galliumドライバが有効になり、X11環境からOpen…

raspberrypi3 yoctoでSSD1306 OLEDディスプレイを動かす

アマゾンで安価に入手できるOLEDディスプレイを購入した。 I2Cで、VCC、GND、SCL、SDAの4本のみの結線で使用できる。 制御用のICはSSD1306とのこと。 このデバイスはArduinoなどの電子工作用となっているが、意外とラズベリーパイでの動作報告が見当たらな…

raspberrypi3 yoctoでkernel4.8を試す

インターフェース11月号の記事で、linuxカーネルのバージョン4.8からラズベリーパイ3の64ビットが対応されるという情報があった。 筆者が紹介したカーネルは、Electron752さんが4.5および4.6のカーネルに64ビット対応したものだったので、今回はもともと64ビ…

raspberrypi3 yocto PiTFT3.5を赤く染める(SDKの作成)

先日の記事の最後で、「前回の記事で作成したfirst_window.cのコンパイル結果を実行すると、PiTFT35が赤く染まる」と書いたが、具体的な手順について解説する。 まずはじめに環境を整える必要がある。 PiTFT35の手順でmeta-pitft35-rpiのビルド環境を作成 rp…

raspberrypi3 yoctoでfbcp

PiTFTなどSPI接続のLCDではGPUを使用した描画処理は行えない。 そのためOpenGLESなどのアプリケーションはPiTFTでは使用できない。 しかし、fbcpを使用するとこの問題が解決できる。 fbcpは「Framebuffer Copy」のことで、GPUに描画されているデータをSPI側…

raspberrypi3 yoctoでPiTFT35

以前PiTFT35をyoctoで動作させるためにmeta-pitft35-rpiを作成した^1が、 最近のmeta-raspberrypiでは動作しなくなっていた。 一度、リポジトリの方に問い合わせが来たが、その人がうちのパッチをまとめて(勝手に)meta-raspberrypiにPRを送っていた。 meta-r…

raspberrypi3 yocto 64bit kernel

raspberrypi3のCPUのコアはCortex-A53のため、64bitコードを動作させることができる。 しかし、オフィシャルでリリースしているカーネルは現状32bit版のみとなっている。 探してみたところ、すでにraspberrypi3のカーネルをaarch64で動くようにした猛者がい…

raspberrypi3 yocto2.1

やや時間が経ってしまったがyoctoの2.1がリリースされた。 コードネームは「Krogoth」 RPi3で動作を確認してみる。 作業ディレクトリ 今回は「~/work/yocto/rpi」で作業を行う。 また、ソースコードなどダウンロードしたデータを格納するディレクトリを「~/w…

raspbian以外のOSでcocopar 5inch HDMI LCDディスプレイを使用する

cocopar 5 インチIPSハイビジョンLCD ディスプレイを購入した。 HDMI接続のLCDディスプレイとSPI接続のタッチパネルの機能を持つ。 これも基本的にはRaspbianで使用する前提のもののようだが、pokyで動作させたのでメモ。 カーネルは4.1を使用した。 このデ…

raspberrypi3のオンボードのbluetoothをRaspbian以外のOSで使用する方法

poky(yocto)などのRaspbian以外のOSでRPi3のオンボードのbluetoothを使用したいと思うケースは多いと思う。 しかし、現時点(20160329)でこれらのOSではおそらくbluetoothはそのままでは機能しない。 (少なくともmeta-raspberrypiの)カーネルからデバイスが見…

raspberrypi3でyocto

技適取得済みのRPi3が入手できた。 箱に技適マークが確認できる。 基板はこんな感じ。 meta-raspberrypiもmasterであればRPi3に対応しているようなので動かしてみる。 作業ディレクトリの作成 作業ディレクトリは~/rpi3とする。 $ mkdir ~/rpi3 && cd ~/rpi3…