PetaLinuxの練習兼ねてPetalLinuxでKR260用のROS2を作ろうとしました。
公式のUbuntu上ではなく、オリジナルのROSです。
ただ最後のビルドが上手くいかなかったので途中までのメモです。
KR260とPetaLinuxでROS2を作ろうとしたメモ
Kria KR260の評価ボード(ROBOTIC START KIT)を購入しました。
※下記記事で紹介しています。(リンク先はこちら)
この記事作成中は、まだXilinx公式からROSのアプリケーションが出ていませんでした。
そのためPetaLinuxの勉強を兼ねて、下記海外の記事を真似てROSを作ろうとしました。
ただ、最後にビルドで失敗していますので途中までの記事です。ご了承ください。
PetaLinuxをインストールする
LinuxのPCにPetaLinuxをインストールしておきます。
記載しているのはあくまで一例です。公式ドキュメントもご参照下さい。
https://docs.xilinx.com/r/en-US/ug1144-petalinux-tools-reference-guide/Introduction
Xilinxの公式ページからインストーラーをダウンロードして、実行します。
PetaLinuxのインストールに関しては下記記事が大変参考になりました。
https://zenn.dev/nao23/articles/be7cd663eb09cd
インストーラーファイルをダウンロードして、実行します。
必要なライブラリも予めインストールしておく必要があります。
1 2 3 |
sudo apt-get install -y python gawk gcc git make net-tools libncurses5-dev tftpd zlib1g:i386 libssl-dev flex bison libselinux1 gnupg wget diffstat chrpath socat xterm autoconf libtool tar unzip texinfo zlib1g-dev gcc-multilib build-essential screen pax gzip chmod 777 ./petalinux-v2022.1-04191534-installer.run sudo chown -R USER_NAME:USER_GROUP /opt/petalinux/2022.1/ |
またPetaLinuxを起動させる前には下記コマンドを実行します。
「~」箇所は各自で保存した場所です。
1 2 3 4 5 6 7 8 9 10 |
iotengineer@iotengineer-Inspiron-3650:~$ source /opt/petalinux/2022.1/settings.sh PetaLinux environment set to '/opt/petalinux/2022.1' WARNING: /bin/sh is not bash! bash is PetaLinux recommended shell. Please set your default shell to bash. WARNING: This is not a supported OS INFO: Checking free disk space INFO: Checking installed tools INFO: Checking installed development libraries INFO: Checking network and other services WARNING: No tftp server found - please refer to "UG1144 2022.1 PetaLinux Tools Documentation Reference Guide" for its impact and solution |
./petalinux-***-installer.run の前にsudoをつけない
インストール時にsudoを付けたくなりますが、エラーになりますのでご注意下さい。
sudo ./petalinux-v2022.1-04191534-installer.run -d /opt/petalinux/2022.1/
下記のようなエラーが発生します。
ERROR: Exiting Installer: Cannot install as root user !
BSPファイルをダウンロードする
ここからは冒頭でも紹介した、下記記事を真似ているだけです。
https://news.accelerationrobotics.com/ros-2-humble-in-amd-kr260/
XilinxのwikiからKriaのBSPファイルをダウンロードしときます。
Production K26 SOM →BSP Download Link →2022.1
BSPファイルを下記のようにpetalinux-createします。
1 2 3 4 5 6 |
iotengineer@iotengineer-Inspiron-3650:~$ petalinux-create -t project -s xilinx-k26-som-v2022.1-04191534.bsp INFO: Create project: INFO: Projects: INFO: * xilinx-k26-som-2022.1 INFO: Has been successfully installed to /home/iotengineer/ INFO: New project successfully created in /home/iotengineer/ |
そして、petalinux-configします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
iotengineer@iotengineer-Inspiron-3650:~$ cd xilinx-k26-som-2022.1/ iotengineer@iotengineer-Inspiron-3650:~/xilinx-k26-som-2022.1$ petalinux-config --silentconfig [INFO] Sourcing buildtools [INFO] Generating Kconfig for project [INFO] Silentconfig project [INFO] Extracting yocto SDK to components/yocto. This may take time! [INFO] Sourcing build environment [INFO] Generating kconfig for Rootfs [INFO] Silentconfig rootfs [INFO] Generating plnxtool conf [INFO] Adding user layers [INFO] Generating workspace directory [INFO] Successfully configured project |
ROS2関連のファイルをダウンロード・設定。
また記事に従って、bblayers.conf、petalinux-image-minimal.bbappendも編集・作成する。
1 2 3 4 5 6 7 8 |
iotengineer@iotengineer-Inspiron-3650:~/xilinx-k26-som-2022.1$ git clone https://github.com/vmayoral/meta-ros -b honister-humble project-spec/meta-ros Cloning into 'project-spec/meta-ros'... remote: Enumerating objects: 89825, done. remote: Counting objects: 100% (412/412), done. remote: Compressing objects: 100% (131/131), done. remote: Total 89825 (delta 277), reused 410 (delta 276), pack-reused 89413 Receiving objects: 100% (89825/89825), 29.83 MiB | 3.31 MiB/s, done. Resolving deltas: 100% (60160/60160), done. |
petalinux-buildでエラーになる
一応petalinux-buildは動作したが、途中で失敗しました。
冒頭箇所とエラーの一部分を切り取りしています。
1 2 3 4 5 6 7 |
iotengineer@iotengineer-Inspiron-3650:~/xilinx-k26-som-2022.1$ petalinux-build [INFO] Sourcing buildtools [INFO] Building project [INFO] Sourcing build environment [INFO] Generating workspace directory INFO: bitbake petalinux-image-minimal NOTE: Started PRServer with DBfile: /home/iotengineer/xilinx-k26-som-2022.1/build/cache/prserv.sqlite3, Address: 127.0.0.1:33703, PID: 9019 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
| Cloning into 'orocos_kdl-507de66'... | fatal: unable to access 'https://github.com/orocos/orocos_kinematics_dynamics.git/': error setting certificate verify locations: CAfile: /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-petalinux-linux/etc/ssl/certs/ca-certificates.crt CApath: none | -- Had to git clone more than once: | 3 times. | CMake Error at /home/iotengineer/xilinx-k26-som-2022.1/build/tmp/work/cortexa72-cortexa53-xilinx-linux/orocos-kdl-vendor/0.2.2-2-r0/build/orocos_kdl-507de66-prefix/tmp/orocos_kdl-507de66-gitclone.cmake:31 (message): | Failed to clone repository: | 'https://github.com/orocos/orocos_kinematics_dynamics.git' | | | ninja: build stopped: subcommand failed. | WARNING: exit code 1 from a shell command. ERROR: Task (/home/iotengineer/xilinx-k26-som-2022.1/components/yocto/../../project-spec/meta-ros/meta-ros2-humble/generated-recipes/orocos-kdl-vendor/orocos-kdl-vendor_0.2.2-2.bb:do_compile) failed with exit code '1' NOTE: Tasks Summary: Attempted 5882 tasks of which 5875 didn't need to be rerun and 1 failed. Summary: 1 task failed: /home/iotengineer/xilinx-k26-som-2022.1/components/yocto/../../project-spec/meta-ros/meta-ros2-humble/generated-recipes/orocos-kdl-vendor/orocos-kdl-vendor_0.2.2-2.bb:do_compile Summary: There was 1 WARNING message shown. Summary: There was 1 ERROR message shown, returning a non-zero exit code. ERROR: Failed to build project. Check the /home/iotengineer/xilinx-k26-som-2022.1/build/build.log file for more details... |
ビルド中にgitcloneが出来ずに失敗した様子。
ca-certificates.crtが無いというが、petalinuxのフォルダにも存在していた…、解決できず。
上手くパス・設定が繋がっていないのか…?
エラーを調査すると、おそらく下記バグの様子?"recurse submodule" issueの様子。
一旦ここで止めておきます。
まとめ
PetaLinuxの練習兼ねてPetalLinuxでKR260用のROS2を作ろうとしました。
公式のUbuntu上ではなく、オリジナルのROSです。
ただ最後のビルドが上手くいかなかったので途中までのメモです。
●2022/8/12追記
Xilinx公式からも、Ubuntu上でROSをインストールする手順が紹介されていました。
下記記事でTSN関連と一緒にROS2もインストールしています。
TSN Ethernetの実装をFPGA(KR260)で試してみた
コメント