マルチスレッド環境でのtar

最近ではCPUはマルチコアであることが多く、プログラムがマルチスレッドに対応している場合、 処理時間を大幅に短縮することができる。 意外と機会の多いtarコマンドによる圧縮伸長処理はデフォルトではシングルスレッドで動作するため、 マルチコアCPUの恩…

pyconnmanで遊んでみる。

pyconnmanを使用するとconnmanの機能にpythonからアクセスできるようになる。 クラス pyconnmanモジュールには次のクラスが定義されている。 クラス 概要 ConnTechnology tecnology ConnManager connman本体 ConnCanceledException ConnInterface ネットワー…

yoctoのbitbakeで作ったLinuxでPyCharmのリモートデバッグ環境をつくる

これがしたかったために、有償版を買った。 PyCharmを使った普通のリモートデバッグ環境の構築はたくさんあると思うので、 yoctoで作ったラズベリーパイ3向けの環境でリモートデバッグする環境を作る。 その際にハマったところピックアップする。 確実に名前…

avahi-autoipdでDHCPサーバが無い場所でもIP通信

USB-Ethernet変換を使って、ラズパイなどのボードと1対1で接続するようなケースでは、 DHCPサーバをいちいち用意するのが面倒。 そういう場合でも、SSHでログインなどしたかったりするのでTCP/IPで通信したい。 そこでavahi-autoipdを使うとIPアドレスを解決…

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

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

Flask-BootstrapでAJAX(jQuery)

これらの続き Flaskでpythonのウェブアプリケーションを作る Flask-Bootstrapを使ってみる Flask-BootstrapでjQuery 前回Flask-BootstrapでjQueryを使用する方法を紹介したが、ブラウザ側でボタンのラベルを書き換えるだけだった。 今回はAJAXを使用して、ブ…

Flask-BootstrapでjQuery

これらの続き Flaskでpythonのウェブアプリケーションを作る Flask-Bootstrapを使ってみる Webアプリケーションでボタン操作などちょっと格好いいことをしようとするとjQueryは外せない。 じつは、Flask-Bootstrapで基本となっているbootstrap/base.htmlは次…

Flask-Bootstrapを使ってみる

前回のつづき pythonでWebアプリケーションをつくる場合、Flaskが便利。 Webアプリケーションでは、デザインを定義するためにCSSが必要だが意外とめんどくさい。 そこで定義済みのCSSフレームワークを使用することで、手間を軽減することができる。 そのうち…

Flaskでpythonのウェブアプリケーションを作る

pythonでWebアプリケーションを作成する方法はいくつかあるが、 Flaskを使用すると非常に簡単に作成することができる。 インストールはpipでできるので、詳細は省く。 使い方 ディレクトリ構成 作業ディレクトリのルートにpythonスクリプトを置き、「templat…

Yocto raspberrypi3でbootchartを試す(systemd編)

Yoctoのbootchartのおはなし systemdを使用する場合は「systemd-bootchart」が使用できる。 本当は、systemdの時もbootchart2を使用して同じ条件で計測してみたいところだけど。 raspbianはsystemdなので、そちらとの比較の場合は有効な手段かもしれない。 l…

yocto raspberrypi3でbootchartを試す(sysvinit編)

bitbakeで作成したlinuxの起動時の状況を知るためにbootchartを使用したい。 pokyには「bootchart2」が収録されているので、これを使用する。 meta-raspberrypiの組み込みおよび、bitbake rpi-basic-imageまで作成できている事を前提とする。 local.confの修…

BBC micro:bit上のmicropythonのプログラムをPyCharmで開発する

BBC micro:bitを購入した。 任意のウェブブラウザーからブロックエディター、Javascript、Python、Scratchなどを使ってプログラムすることができます。ソフトのインストールは必要ありません。 とのことで、micropythonでプログラミングの学習に使用するつも…

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で作ったLinuxでQt5 アプリケーションのフォントが表示されない

yoctoでmeta-qt5を組み込んで、Qt5アプリケーションを起動させた時に、次のようなエラーメッセージが表示され、文字が正しく表示されない問題が発生した。 QFontDatabase: Cannot find font directory /usr/lib/fonts. Note that Qt no longer ships fonts. …

yocto core-image-minimalなどで自動ログイン

core-image-minimalなどのコンソール環境で自動ログインする。 昔はIMAGE_FEATURESにautologinとか入れれば、実現できたらしいが 機能の実現に使用していたパッケージがメンテナンスされてなかったらしく、 この機能が削除されてしまったらしい。 基本的には…

ROCK64をyoctoで立ち上げ

秋月でROCK64ボードを購入した。 今回はコスト優先でメモリ1GBのモデルにした。 このボードはラズパイの40ピンと互換のGPIOヘッダが搭載されているが、電源コネクタがマイクロUSBではなくDCプラグとなっている。 ただ、このDCプラグが曲者で、秋月で売ってい…

yocto raspberrypi3でA2DP レシーバ

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

yoctoで日本語入力

今まで、yoctoで作成したLinuxでは日本語を表示できる環境はよく見かけたが、 meta-oeにはuimとanthyのパッケージが存在するのに、日本語を入力できる環境を見たことがなかった。 今回、仕事がらみで日本語入力環境について調べたところ、uimのレシピに不具…

Ubuntu16.04でローカルのdebファイルを依存関係を解決しながらインストール(gdebi)

debファイルをインストール 例えばUbuntuにgoogle chromeなどをインストールする場合、debファイルをダウンロードしてきてインストールする必要がある。通常だと次のような感じでdpkgコマンドを使用する。 $ sudo dpkg -i ./google-chrome-stable_current_am…

ラズベリーパイ3 pyroでweston

meta-weston-rpiにRPi3対応しないの?というコメントがついたので、一応調べてみた。 すでに、waylandはrpi-backend.soのサポートをやめてしまっているので、実はmeta-weston-rpiは使えない。 もっと言うと、vc4graphicsが使用できることから、これがなくて…

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

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

raspberrypi3 yoctoでavahi

avahiを使うと、DHCPなどでIPアドレスが一定しない環境でも、hostname.localのように固定的な名前でネットワーク越しにアクセスできるようになる。 avahi自体はzeroconfのLinux向けの実装のことらしい。これが、yocto環境でも使えるということなので、試して…

blockdiagを試す

テキストから図を生成するツールの一つにblockdiagがある。 次のような特徴を持つ。 ブロック図の生成 シーケンス図の生成 アクティビティ図の生成 ネットワーク図の生成 パケット図の生成 ラック図の生成 パケット図の生成は他のツールを使用していた時に、…

ラズベリーパイゼロでyocto

日本でもようやくラズベリーパイゼロ(RPi0)が入手しやすくなったので、あきばお〜の店頭で入手してみた。 RPi0はmeta-raspberrypiでも対応済みなので、早速bitbakeをしてみる。 今回購入したのはベースキットなので、ピンヘッダからケーブルから一通りついて…

bash-history-sqliteを使用する

GUI上でBashを使用していると、bash_historyが各端末ごとで共有できず、最後に閉じた端末の履歴のみが保存される。 このため、全てのBashを閉じてしまうと、最後に閉じた端末以外の履歴をさかのぼることができなくなる。 bash-history-sqliteを使用すると、G…

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

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

yocto /lib/firmware以下へのファイルの追加

通常のレシピによるインストールではrootfsに反映されない 以前は、各レシピでdo_install と FILES_%{PN}で/lib/firmwareにファイルを追加すれば、 問題なくrootfsに反映されていたが、oe-coreにlinux-firmware_git.bbが導入されてから、状況は一変した。 li…

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

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

ConnectCore i.MX6UL スターターキット: PiTFT3.5を動かす

ConnectCore i.MX6ULスターターキットの続き その1 その2 その3 その4 その5 PiTFT3.5 PiTFT3.5をccimx6ul starterのラズベリーパイ互換ピンヘッダに実装して動かしてみる。 meta-pitft35-digiの使用 ccimx6ul starterでPiTFT3.5を使用できるようにするため…

ConnectCore i.MX6UL スターターキット: connmanによるWifi設定

ConnectCore i.MX6ULスターターキットの続き その1 その2 その3 その4 ここでは/etc/wpa_supplicant.confや/etc/network/interfacesを直接編集する方法が記載されているが、 YoctoProjectではconnmanが簡単に使用できるため、connmanを使用してWifiを設定す…