滅多に触るツールでもないので、しばらくしたらすぐ忘れそう...なのでここに書いときます。
ちょっと仕事で触る必要ができちゃったんで、petalinux tools 2025.1 のインストールをしようとしたのですが、これが思いのほかハマって..
慣れた人にはなんてことないんでしょうが、同じ轍を踏む人が出ないように、その顛末をここに記しておきます。
まず、仕事でよく使ってる環境がですね、今流行り?のクラウド上の仮想環境だったりするわけですよ。もうその時点でなんか嫌な予感ですが、一応 OS は RHEL の対応バージョンなので、インストールは普通に可能で、プロジェクト作成、Config、Build と順調に進むとおもいきや、さんざん時間かかって(最初はいろいろネットから落としてくるから時間かかりますよねぇ)結局止まる、と。
いやぁそういえば各個に割り当てられたディスク領域は NFS だったんだっけ。NFS 上にプロジェクト作るとトラブります。これが第一のハマリポイント。
今の職場には自由にいじれる Linux box がなかったので、次に考えたのは WSL2 上に環境を作ること。すでに WSL2 + Ubuntu 24.04 が動いてる環境があったので、そこにインストールしました。ただし、これもすんなりいったわけではなく、いくつか対処が必要でした。
まあ、必要な package 一通り入れて、インストーラ起動して、そこまでは問題なくいきます。
まずは、/bin/sh が bash になってるか確認。Ubuntu のデフォルトは dash みたいですね。リンクを貼り直しておきました。
次に、libtinfo.so.5 が無い、って怒られるので、libtinfo.so.6 からのリンクで誤魔化しときます。
cd /usr/lib/x86_64-linux-gnu
sudo.ln -s libtinfo.so.6 libtinfo.so.5
次に、cmake 実行時に 'GLIBCXX_.. not found' みたいなのが出るんですが (build 対象によるかも)、これは、petalinux tools に含まれるライブラリが不整合を起こしているためなので、置き換えで対応します。
petalinux tools のインストールディレクトリで、
cd components/xsct/lib/lnx64.o/Ubuntu
mv libstdc++.so.6 libstdc++.so.6.old
mv libstdc++.so libstdc++.so.old
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 .
ln -s libstdc++.so.6 libstdc++.so
ちなみに私の普段使いの環境は Mint 22.3 なんですが、そこでは .../lnx64.o/Ubuntu じゃなくて、.../lnx64.o/Default とすれば OK でした。
まあ、そういうトラブルを乗り越えるのも Linux 使いの楽しみ?ではあるんですが、このツール、ビルドに非常に時間がかかるんで、トライアンドエラーは大概にしたいところです。