simotin13's message

simotin13といいます。記事の内容でご質問やご意見がありましたらお気軽にコメントしてください\^o^/

yoctoでビルドしたイメージをBeagleBoneBlackで動かす~【kirkstone的令和最新版】~

2019年にyoctoに入門してみたという記事を書いていましたが、久しぶりにyoctoを触ってみると yocto project も4.x系がリリースされており記事を書いた当時と状況が変わっています。

mcommit.hatenadiary.com

2019年に書いた記事の内容に沿って、yoctoでビルドしたイメージをBeagleBoneBlackで動かそうとした動かなかったので改めて最近のyoctoでビルドしたイメージをBeagleBoneBlackで動かす手順について触れておきたいと思います。

目次

  • 目次
  • kirkstoneを使ったビルド
    • 環境構築
    • Poky の入手
    • local.conf の変更とビルドの実行
  • 重要!SDカードへのイメージの書き込み手順
    • SDカードのデバイスファイルについて
    • 手っ取り早く試したい人向け~ddコマンドによるイメージの書き込み~
  • 自分でSDカードに必要なファイルを配置していく方法
  • 実機での起動
  • まとめ

kirkstoneを使ったビルド

今回の記事では直近のLTSとして公開されている Kirkstone(4.0)を使ったビルドしてみます。

公式サイトからはQuick Buildの記事が公開されています。
docs.yoctoproject.org

続きを読む

gstreamerでRTSPのストリーミングを音声付で録画する

ここ最近 gstreamer をよく使っているのですが、gstreamer は日本語の情報が少ないので使い方などについてメモ書きしておきたいと思います。

目次

  • 目次
  • gstreamerとは何か
  • インストール
  • 利用するカメラについて
    • C210の初期設定
  • gstreamerを使って録画してみる
    • 映像のみの動画を録画する
    • 音声ありの動画を録画する
  • まとめ

gstreamerとは何か

一言で言えば動画や音声を扱う便利なオープンソースのライブラリ+ツール一式でしょうか。
gstreamerではカメラの映像を配信することや配信されている映像をファイルに録画したりと色々な機能が提供されています。
動画のみや音声のみ、あるいは特定プロトコルやコーディックのみをサポートしたオープンソースのマルチメディア系のライブラリはありますが、gstreamerはサポートしているコーディックや機能が幅広く、マルチメディア系ライブラリの一強と言っても過言ではないかと思います。

ちなみに、公式のドキュメントは整備されていますが、やりたいことに対して具体的に何をする必要があるのか・どういったパイプラインを記述するのかなかなか直ぐには分かりません。
gstreamer.freedesktop.org

続きを読む

flockでは排他できない

ずいぶんと煽ったタイトルをつけてみましたが、Linuxでファイルアクセスを排他しようとして苦労したので書いておきたいと思います。

結論

結論から申しますと、上書きモード(fopenのオプションで言うと"w")で書き込みを行うファイルに対してはflockで排他ができません。

flockを普段から使っていなかった私にとってはこのふるまいに割と衝撃を受けたのですが、確信を得るために検証コードでの動作確認と、ファイルシステム(システムコールからVFSあたりまで)のコードを読んでみました。
もし、この記事の内容で認識が違ってそうな点などありましたらコメントやTwitter(@simotin13)でご指摘頂けると幸いです。

なお、この記事で書いている確認用コードは以下のレポジトリにまとめています。
github.com

続きを読む

Intel Pin を使ってコードカバレッジツールを作ってみた

一年ほど前にGDBを使ったコードカバレッジツールを作っていましたが、
mcommit.hatenadiary.com
最近少し時間ができたのでIntelPinという動的バイナリ計装エンジン(Dynamic Binary Instrumentation Engine)を使う形で改めて作ってみました。
IntelのPinプラグインを書くのは初めてだったので使い方やバイナリ計装について調べたので諸々を記事に書いておきたいと思います。

  • Intel Pin とは何か?
  • DBI は何をしているのか?
  • Pinの使い方
    • Pinの実行方法
    • Pin のAPIの利用法
    • Makefileについて
  • Pinを使ってみたきっかけ
  • 作ってみたカバレッジツールについて
  • 参考書籍・参考サイト
  • 感想

Intel Pin とは何か?

Intel Pin は文字通りIntelが公開している動的バイナリ計装エンジンです。ユーザアプリケーションを実行時に計装くれて、実行した命令やメモリアクセス、関数呼び出し時のレジスタの値など、様々な情報を収集することができます。プラットフォームはLinuxWindowsに対応しているようです。
正式名称は Pin のようなので以降はPinで統一して記載します。

Pin本体はDBI(Dynamic Binary Instrumentation)のエンジンであり、Pinの利用者はPinが提供するAPI(C++)を使って実行時の情報を取得するコードを実装することができます。Pinの様々な機能(API)を利用したツールやサンプルのソースコードは公開されていますが、Pinの本体のソースコードは公開されておらず実行モジュールとして提供されています。

続きを読む

自宅に太陽光発電を設置した結果~1年目~

2021年に太陽光発電・蓄電池を設置していました。
発電が開始されたのは2021年の6月からでしたが、1月~12月の期間での1年の結果が出たことになるので記事を書いてみたいと思います。
太陽光発電については東京都が条例で設置を義務付けしたり、詐欺会社のことがニュースになったりと話題が多いですが、実際に設置した人の声というのはまだまだ世の中に出ていないような気もするので参考になるのではないかと思います。

設置の経緯

そもそもなぜ設置したかというと、2021年に太陽光発電の営業をしている会社の人が来られたのがきっかけでした。
太陽光発電には特に興味はありませんでしたが、再エネ賦課金による電気代の値上がりが続いていることと、保証制度がそれなりに充実してたので蓄電池と合わせて設置を決めました。
我が家は子供が多いので、他の家庭と比べてかなり電気を使っています。契約内容にもよりますが、電気代は使えば使う程に単価が上がっていく仕組みになっており、更に再エネ賦課金も固定料金ではなく従量課金制度です。

FITの制度自体はどうかと思う面はありますが、家族構成上どうしても電気を使う以上、太陽光発電は「得をするから導入する」というよりは「導入しないと損をする」という消極的な理由から導入してみました。

2022年の発電実績

設置した設備はパナソニックの設備になりますが、発電量や蓄電量はモニター端末で確認できます。
2022年のデータとグラフを見てみましょう。

2022年年間データ
2022年年間グラフ

見ての通り、2022年の発電量は2,378kWh。売電量は386kWh。買電量は2,397kWhでした。
ちなみに我が家に設置した太陽光発電の発電量は2.3kW。蓄電池の容量は5.6kWhになります。
また、発電システムの動作はいわゆる環境優先モードにしており、使わない電気は極力蓄電池にためています。
売電量が発電量と比べて少ないのはこのためになります。

シミュレーション結果との比較

導入時に営業の人が発電量のシミュレーションの結果を持ってきてくれたのですが1年経った結果と見比べてみましょう。

営業の人が持ってきたシミュレーション
営業の人が持ってきたシミュレーション

シミュレーションと実績を比較して分かることは、

  1. 全体で発電実績が500kWh程シミュレーションより少ない
  2. シミュレーションより発電実績が多い月はない

という点です。
500kWhを単価20円で計算してみると10,000円に相当します。太陽光発電は10~15年スパンで損得を考える商品ですが、年間10000円の誤差は割と大きいと思います。1年間目の結果として言えることは営業トークは嘘とまでは言いませんが、若干間引いて聞いておくとよいのかもしれません。

感想

設置して1年(実質的には1年半ですが)経った感想ですが、太陽光発電のお陰で毎月の電気代は下がっているのは事実なので付けない方がよかったという感覚はありません。例えば発電量が増えてくる4~5月、9~10月頃は消費電力も少なくなるので電気代自体は実質0円になります。
しかし、かといってつけといてよかったなぁという程のお買い得感も今のところ感じていません。

太陽光発電については様々は批判がありますが、化石燃料を使う発電や原子力発電にもそれぞれ問題はあるので単純に太陽光発電自体の問題を捉えて批判するはどうかと思うのですがコスパがいいかどうかを考えると微妙な商品かなと思います。

再エネ賦課金について

再エネ賦課金については最近の物価高の影響を踏まえて実質税金で肩代わりする案が政府・国会で検討されているようです。
肩代わりされるとなると、私を含む太陽光発電を導入した人達は、電気代が安くなる上に売電益を税金で払って貰っている形になるので、その分得をしている状態となります。これはありがたい反面、FITの制度自体おかしいと思う気持ちもあるので複雑な心境になります。

できるだけ電気を使わない生活を意識する

発電にはそれぞれ一長一短がありこれがあれば全て問題解決という発電方法やエネルギー源は今のところ存在しません。結局のところ、少ないエネルギーで生活できるならそれに越したことがないというのが結論なのかなと思います。できるだけ電気を使わなくても夏や涼しく、冬は暖かく過ごせるよう工夫するのが大切な気がします。

私は夏の暑さには比較的耐えられるのですが、寒いのが苦手で、しかも冷え性なので室内でも手足が冷えるため冬場は暖房や電気ストーブを強めに使っています。太陽光発電を設置したことで割と電気代を意識するようになりましたが、今年の冬はできるだけ暖房を使わないように今年の冬はPCの作業用の手袋を使ったり、室内用の防寒スリッパを使って節電しています。

特に手袋の方は、指が冷えるとまともにキーボードが打てないくらい冷えていたので作業効率も上がりました。
冬場に使う電気ストーブは300W~1000W程度の電力を消費しますので身に着ける室内用の防寒衣類で寒さをしのげるのはかなり節電に効果があります。

去年までの実績だと太陽光発電があっても冬場の電気代は月に7000円~1万円程度にはなっています。
今年の冬は急な寒波で寒い日が続いていて、暖房器具に頼っていますが、少しでも消費電力を減らしていけるよう工夫していきたいと思います。

追記

2年目(2023年)の結果についてはこちら

mcommit.hatenadiary.com