はじめに
ゲームのためsteamdeckを購入したが、ゲームだけするのはもったいないので
開発とゲーム両立できるの環境構築方法を探して
最終はdistroboxを利用して、steamOS readonlyの状態でロボット開発環境を作った
例えばSteamDeckでgazebo
もしくはコントローラーとしてロボットをコントロール
1.事前準備
steammボタンを押して、「電源」で「デスクトップに切り替え」を選択デスクトップモデルに入れ
左下のapplicationでkonsoleを探す、これではdeckのterminal
passwd命令で新暗号を作成
passwd
1.1SSHサーバー(選択)
手元でbluetooth keyboardない人にオススメ
サーバー起動:
sudo systemctl start sshd
起動以降、パソコンから繋がって、commandの入力はやすくなる
パソコンでのssh client、オススメのはVS CodeとMOBAXTERM
2.Ubuntuコンテナを作る
直接steamOSでread onlyをoffして、ROSをインストールできた人もありますが
この操作は極めに不安定である、steamOS更新するときシステムが壊れる例もある
まだsteamOSはArch Linuxなので、無事にROSインストール成功しても、続き問題が起こる可能性がある
だからもっと簡単、安全の方法では、steamOSでUbuntuコンテナを作る、コンテナ中で開発環境を構築
2.1 distroboxをインストール
distroboxは簡単で任意linuxコンテナを作るのツール、windowsでのWSLみたい
これを利用してUbuntuコンテナを作る
steamdeckでインストールの手順参考は:
terlminal中で入力
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sh -s -- --prefix ~/.local
curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/extras/install-podman | sh -s -- --prefix ~/.local
環境変数を~/.bashrcに入れる
#distrobox
export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/.local/podman/bin:$PATH
xhost +si:localuser:$USER
sourceもしくは新しいterminalを起動
source ~/.bashrc
2.2 コンテナ作成
もうUbuntu 20.04コンテナを作ったので、こちらは18.04を作る
distrobox create -i ubuntu:18.04
秒でコンテナを作た
コンテナに入れる方法はterminal中で
distrobox enter ubuntu-18-04
2.3注意点:
コンテナに入れるとき複数のerror出たが
原因はコンテナとコンテナ、コンテナとsteamOSが同じファイルシステムを共有
~/.bashrcも含めて共有したので、コンテナ0ための環境変数はコンテナ1もしくsteamOSでerrorになった
でも一応問題にはならないらしいので、無視すればよい
そしてコンテナをアンインストールしたいの場合
まずはコンテナを停止
distrobox stop ubuntu-18-04
そしてアンインストール
distrobox rm ubuntu-18-04
3.ROSをインストール
Ubuntuコンテナで普通のインストール手順にすればよい
こちらはUbuntu 20.04コンテナ、ROS noeticインストール中は何のエラーも出てない
要注意のはコンテナは軽量化のため、多くのデフォルトパッケージがインストールされていない
例え:git,pip,vim......など
インストール中でたまにパッケージがない原因で失敗、対応のパッケージをapt-getでインストールすればよい。
例えばROSインストール最初の
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
こちら lsb_releaseなしで失敗したので
sudo apt-get install lsb-release
インストールしたら無事になる