デフォルトの BSP は、合理化された実稼働レベルの Linux BSP である Yocto プロジェクトに基づいてコンパイルされます。しかし、Ubuntu環境に慣れているユーザー、特にROSユーザーにとっては、Yoctoの操作は比較的複雑になります。この記事では、iMX8QM用のUbuntu BSPの作り方とROSの使い方を紹介します。
完全なUbuntu BSPには、u-boot、Linuxカーネル、Ubuntu rootfsが含まれています。Yocto BSP公式の6.1V BSPではu-bootとLinuxカーネルを使用し、rootfsは引き続きubuntu-base-18.04.4-base-arm64を使用します。コンパイル方法は、NXPフォーラムから取得されています。
まず、上記のリンクからubuntu-base-18.04.4-base-arm64.tar.gzをダウンロードし、解凍します。
$ mkdir ~/ubuntu-rootfs
$ sudo tar vxf ubuntu-base-18.04.4-base-arm64.tar.gz -C ubuntu-rootfs
スクリプトファイルをコピーして ch-mount.sh を作成します。
$ sudo chmod a+x ./ch-mount.sh
上記のダウンロードは基本的なUbuntuベースのファイルシステムであり、一般的に使用される多くのツールが欠落しているため、インストールする必要があります。このためには、qemu-user-static ソフトウェアをコンピュータにインストールして、arm64 の動作環境をシミュレートします。
$ sudo apt install qemu-user-static
Ubuntuベースのファイルシステムをマウントしてから、arm64環境で直接操作します。
$ sudo ./ch-mount.sh -m ubuntu-rootfs/
DNS サーバー (8.8.8.8 など) またはその他の使用可能な DNS サーバー IP を追加します。
# エコー ネームサーバー 8.8.8.8 > /etc/resolv.conf
関連するソフトウェアをインストールすることはもちろん、他のソフトウェアを追加することもできます。
# apt install language-pack-en-base sudo ssh net-tools \
ネットワークマネージャ iputils-ping rsyslog \
bash-completion htop resolvconf ダイアログ \
vim nano v4l-utils alsa-utils git gcc \
less resolvconf autoconf autopoint libtool \
バイソンフレックス GTK-doc-tools glib-2.0\
libglib2.0-devlibpango1.0-devlibatk1.0-devkmod pciutils -y
ユーザーを作成してパスワードを設定します(ここでのユーザー名はubuntuです)
# useradd -s '/bin/bash' -m -G adm,sudo ubuntu
# passwd ubuntu
# passwd root
# echo 'apalis-imx8' > /etc/hostname
この時点で、基本的なUbuntuが設定されています。
# exit
$ sudo ./ch-mount.sh -u ubuntu-rootfs/
インストールが完了したら、ubuntuユーザーを使用してデバッグシリアルポートにログインし、パスワードはubuntu. インストール後初めて起動するときは、初期化のために長時間待機してから、リージョン、ユーザー設定などの構成インターフェイスに入ります イーサネットをオンにし、DNSサーバーのIPを設定します。
ubuntu@mx8QM:~$ sudo ifconfig eth0 up
ubuntu@mx8QM:~$ sudo dhclient eth0
ubuntu@mx8QM:~$ sudo vi /etc/resolv.conf
ウェストンを開始します。
ubuntu@mx8QM:~$ export XDG_RUNTIME_DIR=/run/user/1000
ubuntu@mx8QM:~$ sudo -E weston --tty=1 &
ubuntu@mx8QM:~$ weston-flower
ROSテスト ROSプログラムはUbuntuシステムに非常に便利にインストールできます。詳細については、以下の手順を参照してください
http://wiki.ros.org/melodic/Installation/Ubuntu
http://wiki.ros.org/ROS/Tutorials
ubuntu@mx8QM:~$ sudo apt install lsb-core
ubuntu@mx8QM:~$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
ubuntu@mx8QM:~$ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
ubuntu@mx8QM:~$ sudo apt update
ubuntu@mx8QM:~$ sudo apt install ros-melodic-desktop
3つのSSHターミナルで次のコマンドを実行して、ROSノード間の通信をシミュレートします。
ubuntu@mx8QM:~$ source /opt/ros/melodic/setup.sh
ubuntu@mx8QM:~$ roscore
ubuntu@mx8QM:~$ ソース /opt/ros/melodic/setup.sh
ubuntu@mx8QM:~$ rosrun roscpp_tutorials トーカー
ubuntu@mx8QM:~$ ソース /opt/ros/melodic/setup.sh
ubuntu@mx8QM:~$ rosrun roscpp_tutorials リスナー
ドライバの制限により、iMX8 は Xorg をサポートしていないため、rqt などの ROS のデフォルトのグラフィカルインターフェイスツールを直接使用することはできません。