コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2024年5月29日 >>> 2024年5月16日
link もっと後

2024年5月29日

Yoctoのビルドディレクトリとテンプレートディレクトリ

目次: Yocto

Yocto Scarthgap(5.0.1)のメモです。Yoctoの使い方は以下の2手でした。

Yoctoのビルド方法
$ source oe-init-build-env
$ bitbake core-image-sato

テンプレートディレクトリを元にしてビルドディレクトリ(正確にはbuild/confディレクトリ)を作成します。Yoctoのドキュメント(Creating a Custom Template Configuration Directory - The Yocto Project)によると、テンプレートディレクトリのパスはTEMPLATECONF環境変数で指定できるとあります。

もし何も設定しないと.templateconfファイル内に書かれた設定をデフォルトの設定として使います。内容はこんな感じです。

テンプレートディレクトリの位置が書かれた.templateconfファイル
$ less .templateconf

# Template settings
TEMPLATECONF=${TEMPLATECONF:-meta-poky/conf/templates/default}

テンプレートディレクトリの中にあるファイルはこんな感じ。

テンプレートディレクトリ内のファイル一覧
$ ls meta-poky/conf/templates/default/

bblayers.conf.sample  conf-summary.txt   local.conf.sample.extended
conf-notes.txt        local.conf.sample  site.conf.sample

テンプレートファイルからビルドディレクトリを作成する際は、単なるコピーではなく##OEROOT##のような変数をパスに展開した内容がコピーされます。下記はOEROOTの展開例です。

テンプレートファイルの展開例

$ diff -u meta-poky/conf/templates/default/bblayers.conf.sample build/conf/bblayers.conf

--- meta-poky/conf/templates/default/bblayers.conf.sample       2024-05-30 13:17:58.926938821 +0900
+++ build/conf/bblayers.conf    2024-05-31 14:58:51.741378271 +0900
@@ -6,7 +6,7 @@
 BBFILES ?= ""

 BBLAYERS ?= " \
-  ##OEROOT##/meta \
-  ##OEROOT##/meta-poky \
-  ##OEROOT##/meta-yocto-bsp \
+  /home/katsuhiro/share/projects/oss/poky/meta \
+  /home/katsuhiro/share/projects/oss/poky/meta-poky \
+  /home/katsuhiro/share/projects/oss/poky/meta-yocto-bsp \
   "

ぱっと見だとテンプレートディレクトリの場所はどこでも良さそうですがそんなことはありません。テンプレートがpoky/meta-poky/conf/templates/defaultだとしたら、

テンプレートディレクトリを配置できる場所の条件
poky/meta-poky/conf/templates/
の2つ上のディレクトリの下のconf/layer.confすなわち、
poky/meta-poky/conf/layer.conf
が必要です。

一言で言えばテンプレートがあるディレクトリの2つ上(Yoctoを例にすればmeta-poky)にconf/layer.confが存在しないエラーですが、そんな制約知らんわー……。

ちなみにテンプレートディレクトリを作成する場合は手で作成するのではなく、bitbake-layers save-build-confコマンドを使用するそうです(ドキュメント参照)。

ビルドディレクトリの中身

セットアップディレクトリによって、ビルドディレクトリbuildが生成され、BBPATHとBUILDDIRがビルドディレクトリを指すようになります。ビルドディレクトリ下には、テンプレートディレクトリからbuild/confディレクトリが生成されます。ファイルの中身を見ると、

ビルドディレクトリ内の設定ファイルの内容
#### build/conf/bblayers.conf

# POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf
# changes incompatibly
POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/katsuhiro/share/projects/oss/poky/meta \
  /home/katsuhiro/share/projects/oss/poky/meta-poky \
  /home/katsuhiro/share/projects/oss/poky/meta-yocto-bsp \
  "


#### build/conf/conf-notes.txt

### Shell environment set up for builds. ###

You can now run 'bitbake <target>'

Common targets are:
    core-image-minimal
    core-image-full-cmdline
    core-image-sato
    core-image-weston
    meta-toolchain
    meta-ide-support

You can also run generated qemu images with a command like 'runqemu qemux86-64'.

Other commonly useful commands are:
 - 'devtool' and 'recipetool' handle common recipe tasks
 - 'bitbake-layers' handles common layer tasks
 - 'oe-pkgdata-util' handles common target package tasks


#### build/conf/conf-summary.txt

This is the default build configuration for the Poky reference distribution.


#### build/conf/local.conf

(設定項目がたくさんある、ここでは省略)


#### build/conf/templateconf.cfg

meta-poky/conf/templates/default

セットアップスクリプトの時点でもシステムの複雑さの片鱗が見え隠れしています。まともにコードで追うのを諦めて正解でした。そんなことしていたら日が暮れてしまいます。今回登場したファイル、ディレクトリは、

  • poky/oe-init-build-env
  • poky/.templateconf
  • poky/meta-poky/conf/templates/default/*
  • poky/meta-poky/conf/layer.conf
  • poky/build/conf/*

こんなもんでしょうか。次回はいよいよbitbakeに突入です。

編集者:すずき(2024/07/05 10:34)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年5月28日

Yoctoのセットアップスクリプトとビルドディレクトリ

目次: Yocto

Yocto Scarthgap(5.0.1)のメモです。Yoctoの使い方は以下の2手でした。

Yoctoのビルド方法
$ source oe-init-build-env
$ bitbake core-image-sato

今回は最初のsource oe-init-build-envを調べます。Yoctoのドキュメント(Source Directory Structure - The Yocto Projectの4.1.10 oe-init-build-env)によると、OpenEmbeddedのビルド環境をセットアップし、ビルドディレクトリを作成するスクリプトです。

コードを読んで依存関係を調べるのは時間が掛かるし辛いので、簡易的な調査手法として全ファイルを消してエラーを観察し、エラーの原因となるファイルを復活させて次ステップに進める手法で調べます。調べた結果oe-init-build-envを実行するには、

  • scripts/oe-buildenv-internal
  • scripts/oe-setup-builddir

が必要です。2つ目のoe-setup-builddirスクリプトによりビルドディレクトリが作成されます。次回はビルドディレクトリはどこから来るのか?を紹介します。

編集者:すずき(2024/06/04 00:02)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年5月27日

Hello Yocto

目次: Yocto

Yoctoのメモです。なおYoctoのバージョンはScarthgap(5.0.1)とします。他のバージョンだと当てはまらない場合があります。

買ったのに使ってないZybo Z7-20を使おうと思い立ったものの、XilinxのARMコアでLinuxを動かすときはPetaLinuxというYoctoの改造ツールを使うらしいです。ベースとなったYoctoもbitbakeコマンドを実行する程度の知識しかないのでPetaLinuxと並行してYoctoも調べたいと思います。

YoctoのQuick Build(Yocto Project Quick Build - The Yocto Project)なるドキュメントによればビルド方法はたったこれだけです。

Yoctoのビルド方法
$ source oe-init-build-env
$ bitbake core-image-sato

正常に動いているうちは良いですが、まともに動かなくてデバッグするときはYoctoの超複雑なシステムが災いをもたらします。bitbakeって何?どこを見たら良いの?全くわかりません。

次回からYoctoを破壊&直しながら、Yoctoを構成する要素を調べていこうと思います。

編集者:すずき(2024/06/03 23:46)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年5月26日

JTSA Unlimited大会参加2024

目次: 射的

JTSA Unlimitedの大会に参加しました。去年は選手登録をし忘れる痛恨のミスで参加できませんでしたが、今年は忘れずに登録&参加できました。

「木」ステージだけ全然ダメダメでしたが全体的に良い調子だったためか、結果は76.75秒で自己ベストを更新しました。実は大会で自己ベストが出る人は練習不足である説もありますが、そもそもガチ勢じゃないしあまり気にしても仕方ないでしょう。


JTSA Unlimited練習会+大会の記録

練習会の記録を見ても80秒を切るか切らないか……程度でフラフラしていてあまり早くなっている感じはしません。来月からはLimitedが始まるのでゆるゆると続けていくとしましょう。

編集者:すずき(2024/07/05 10:34)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2024年5月21日

Linux 6.1からLinux 6.6に手抜き更新したらハマった

目次: 自宅サーバー

Linux Kernelのlongtermバージョンが代替わりしてからしばらく経ちますが、更新をサボりにサボっていました。重い腰を上げて自宅サーバーのLinux 6.1をLinux 6.6に更新したところ、起動しなくなりました。悲しい。

Linux 6.1に戻せば起動しますからHWの故障などではないです。Kernelコンフィグが悪さをしていそうで、ドライバの有無を色々疑ったんですが、結果的にはCONFIG_UNIXがtristate(設定値にy/n/mを取れる)からbool(設定値にy/nを取れる)が原因でした。こんな経緯で起動しなくなったと思われます。

  • ある時点(※)でCONFIG_UNIXをmにできなくなった
  • menuconfigはCONFIG_UNIX=mにできないので、CONFIG_UNIX=nにする
  • Unixドメインソケットが使えないKernelが爆誕
  • 何ひとつ(systemdすら)起動できない

CONFIG_UNIX=mにできなくなったことなんて知りませんでした。気づけたのはmake oldconfigのおかげです。

make oldconfigが出すエラー
# make oldconfig

.config:917:warning: symbol value 'm' invalid for UNIX    ★★エラーが出ている★★
*
* Restart config...
*
*
* Configure standard kernel features (expert users)
*
Configure standard kernel features (expert users) (EXPERT) [N/y/?] n
  Load all symbols for debugging/ksymoops (KALLSYMS) [Y/?] y
    Test the basic functions and performance of kallsyms (KALLSYMS_SELFTEST) [N/y/?] (NEW)

私がいつもやっている手順ですと

  • 古いLinux Kernelのconfigを新しいLinux Kernelにコピー
  • make menuconfig

こんな感じなので、最初はCONFIG_UNIX=mに対するエラーに全く気づいていませんでした。もしmake oldconfigが存在しなかったら迷宮入りしていたと思います。

どこで変わったのか?

せっかくなので仕様が変更されたポイントを調べます。git annotateでnet/unix/Kconfigを見て、変更のもとになったコミットを調べます。コミットログは下記です。

CONFIG_UNIXがtristateからboolになったコミット
commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b
Author: Alexander Mikhalitsyn <alexander@mihalicyn.com>
Date:   Thu Jun 8 22:26:28 2023 +0200

    af_unix: Kconfig: make CONFIG_UNIX bool

    Let's make CONFIG_UNIX a bool instead of a tristate.
    We've decided to do that during discussion about SCM_PIDFD patchset [1].

    [1] https://lore.kernel.org/lkml/20230524081933.44dc8bea@kernel.org/

...以下略...

このコミットが本線に取り込まれたのはLinux 6.5みたいです。

コミットが取り込まれたバージョン探し
$ cd linux
$ git log v6.4...v6.5 | grep 97154bcf4d1b7

commit 97154bcf4d1b7cabefec8a72cff5fbb91d5afb7b

ちなみにLinux 6.1の次のLongterm kernelはLinux 6.6ですから、今日でなくてもいつか私はこの問題にハマる運命だったと言えましょう……。

編集者:すずき(2024/05/23 23:19)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする




2024年5月17日

TwitterがXに置換された

今日?あたりからtwitter.comにアクセスするとx.comにリダイレクトされるようになりました。twitter.comとの違いとしては、x.comはFirefoxにてTracking contentをブロックしているとこんなエラーが出て全く使えません。


Tracking contentをブロックしたときのx.comのエラー

エラーを回避するにはEnhanced Tracking ProtectionのException設定にx.comを追加します。


Tracking contentの設定変更

そんなにトラッキングしたいんですかね?x.comはイケてないな……。

ツイート内容の置換

Xは以前からTwitterという文字を滅ぼしたがっているようで、先月辺り(?)からツイートにあるtwitter.comをx.comに置換するようになりました。そのせいで下記のようにx.comとtwitter.comが両方入っているニュースがおかしなことになっています。


twitter.comをx.comに置換したためにツイートと代替テキストが食い違う様子

しかも画像の代替テキストは置換が行われないため、ツイートと画像の代替テキストが食い違うおかしな現象まで発生しています。twitter.comドメインを手放さない限り、どうせリダイレクトするのであれば一括置換する必要なかったんじゃないの……?手放したら手放したで悪用されまくると思いますし。

編集者:すずき(2024/07/05 10:35)

コメント一覧

  • hdkさん(2024/05/18 22:16)
    ドメインを変えたせいで別サイト扱いになってトラッキングプロテクションに引っ掛かるんですかねぇ。手元のFirefoxだとEnhanced Tracking ProtectionはStandardのまま、Exception追加しなくてもアクセスできています。
  • すずきさん(2024/05/19 03:41)
    Standardだと下記の設定になっているのでTracking Protectionが効いてないのかなと思います。
    Firefox blocks the following:
    - Social media trackers
    - Cross-site cookies in all windows
    - Tracking content in Private Windows ★★★★これ
    - Cryptominers
    - Fingerprinters

    私はCustomかつ、Tracking Protection: In all windowsにしているのでエラーになってしまうようです。Only in private windowsにするとx.comのエラーは消えます。
  • hdkさん(2024/05/19 07:45)
    なるほど、そういうことなんですね。ExceptionといってもせめてStandardにはしたいところですかね...
  • すずきさん(2024/05/20 13:16)
    そうですねえ、普通はStandardなので何も問題ないと思います。私もChromeやEdgeは特に何も設定変更してません。
    メインブラウザのFirefoxだけ一番厳しい設定にして、CookieやTrackingを全部ブロックしたときの色々な挙動(今回の日記の話とか)を観察してます。
open/close この記事にコメントする



2024年5月16日

イマドキ?のlocale設定方法

目次: 自宅サーバー

Localeの設定方法は未だによくわかってないのですが、最近ROCK 3CのDebian 11 (bullseye)でLocaleを設定したときの方法をメモしておきます。

ロケールの作成と設定
# localedef -i /usr/share/i18n/locales/ja_JP -f UTF-8 /usr/lib/locale/ja_JP.UTF-8
# localedef --add-to-archive /usr/lib/locale/ja_JP.UTF-8
# localectl set-locale LANG=ja_JP.UTF-8

これで切り替わりました。作成、登録、選択という感じ?です。Cロケールに戻すときはLANG=C.UTF-8です。

タイムゾーンの設定方法

一緒に変えたくなるであろうタイムゾーンの設定方法も書いておきます。

タイムゾーンの設定
# timedatectl set-timezone Asia/Tokyo

作成や登録の手間はなく簡単です。UTCに戻すときはEtc/UTCと指定します。注意点として、

大文字小文字に注意
# timedatectl set-timezone asia/Tokyo
Failed to set time zone: Invalid or not installed time zone 'asia/Tokyo'

タイムゾーン名は大文字小文字を区別するのでTypoにご注意ください。私は最初asia/Tokyoと打っているのに気づかずエラーになって困惑しました……。

編集者:すずき(2024/05/21 01:23)

コメント一覧

  • hdkさん(2024/05/21 08:55)
    システム全体のlocale設定はDebian系ならdpkg-reconfigure localesでいけると思いますよ! 覚えやすいし公式Wikiにも載っています!

    タイムゾーンは公式WikiのTimeZoneChangesを見ると変更後にdpkg-reconfigure tzdataを実行するのが正しいっぽい? Asia/Tokyoの他にJapanというのもあります。
  • すずきさん(2024/05/21 11:41)
    あー、確かにdpkg-reconfigureの方が楽だし正規の手続きですね。locale-genの内部を見たら、localedefを使っているみたいでした。localectlは使っていないのかなあ。
open/close この記事にコメントする



link もっと前
2024年5月29日 >>> 2024年5月16日
link もっと後

管理用メニュー

link 記事を新規作成

<2024>
<<<05>>>
---1234
567891011
12131415161718
19202122232425
262728293031-

最近のコメント5件

  • link 24年10月1日
    すずきさん (10/06 03:41)
    「xrdpで十分動作しているので、Wayl...」
  • link 24年10月1日
    hdkさん (10/03 19:05)
    「GNOMEをお使いでしたら今はWayla...」
  • link 24年10月1日
    すずきさん (10/03 10:12)
    「私は逆にVNCサーバーに繋ぐ使い方をした...」
  • link 24年10月1日
    hdkさん (10/03 08:30)
    「おー、面白いですね。xrdpはすでに立ち...」
  • link 14年6月13日
    2048player...さん (09/26 01:04)
    「最後に、この式を出すのに紙4枚(A4)も...」

最近の記事3件

  • link 24年10月31日
    すずき (11/04 15:17)
    「[DENSOの最終勤務日] 最終勤務日でした、入門カードや会社のPCを返却してきました。在籍期間はNSITEXE(品川のオフィ...」
  • link 22年7月8日
    すずき (11/02 20:34)
    「[マンガ紹介 - まとめリンク] 目次: マンガ紹介一覧が欲しくなったので作りました。5作品乙女ゲームの破滅フラグしかない悪役...」
  • link 24年10月30日
    すずき (11/02 20:33)
    「[マンガ紹介] 目次: マンガ紹介お気に入りのマンガ紹介シリーズ。最近完結した短めの作品を紹介します。マイナススキル持ち四人が...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www2.katsuster.net
RDFファイル RSS 1.0

最終更新: 11/04 15:17