Dockerを利用したインストール#
情報
このページでは Docker固有の情報について説明しているため、詳細な情報が必要な場合はソースインストールも併せて参照することをお勧めします。
DockerでAutowareをインストールする2つの方法は以下のとおりです:
- 1つ目の方法は事前に構築されたイメージを使用してAutowareを起動するクイックスタートです。この方法ではAutowareシミュレータの実行のみが可能でAutowareの開発はできない初心者向けです。
- 2つ目の方法は開発イメージを使用してAutowareを起動することです。これはDockerを使用したAutowareの開発と実行をサポートします。
クイックスタート#
開発者向けのDockerインストール#
トラブルシューティング#
特定のエラーに対する解決策は次のとおりです:
cuda error: forward compatibility was attempted on non supported hw#
(メッセージ翻訳)cudaエラー: サポートされていないハードウェア番号で上位互換性が試行されました#
NVIDIAグラフィックスのGPUサポートを有効にしてDockerを起動すると次のエラーが発生する場合があります:
docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"process_linux.go:432: running prestart hook 0 caused \\\"error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: cuda error: forward compatibility was attempted on non supported hw\\\\n\\\"\"": unknown.
ERROR: Command return non-zero exit code (see above): 125
これは通常、新しいNVIDIAグラフィックスドライバーが(通常はapt経由で)インストールされているが、システムがまだ再起動されていないことを示します。サスペンド後の再開などの理由でグラフィックスドライバーが使用できない場合にも同様のメッセージが表示されることがあります。
これを修正するには新しいNVIDIAドライバーをインストールした後にシステムを再起動します。
NVIDIA GPUを搭載したDockerがarm64デバイス上でAutowareを起動できない#
例えばNVIDIA Jetson AGX xavierといったarm64デバイス上のNVIDIAグラフィックスに対してGPUサポートを有効にしてDockerを起動する場合、次のエラーが表示される場合があります:
nvidia@xavier:~$ rocker --nvidia --x11 --user --volume $HOME/autoware -- ghcr.io/autowarefoundation/autoware-universe:humble-latest-cuda-arm64
...
Collecting staticx==0.12.3
Downloading https://files.pythonhosted.org/packages/92/ff/d9960ea1f9db48d6044a24ee0f3d78d07bcaddf96eb0c0e8806f941fb7d3/staticx-0.12.3.tar.gz (68kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-m_nm8mya/staticx/setup.py", line 4, in
from wheel.bdist_wheel import bdist_wheel
ModuleNotFoundError: No module named 'wheel'
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-m_nm8mya/staticx/
...
このエラーはrockerツールの現在のバージョンに存在し、rockerのos_detection関数に関連しています。
このエラーを修正するにはrockerのソースコードを一時的に変更する必要がありますがお勧めできません。
現段階ではarm64デバイスではNVIDIA GPUを有効にせずにdockerを実行することをお勧めします:
rocker -e LIBGL_ALWAYS_SOFTWARE=1 --x11 --user --volume $HOME/autoware -- ghcr.io/autowarefoundation/autoware-universe:latest-cuda
このチュートリアルはrockerの公式修正後に更新されます。
ヒント#
非ネイティブのarm64システム#
このセクションではqemu-user-static
を使用してamd64システム上でarm64システムを実行するプロセスについて説明します。
はじめにamd64システムは通常arm64システムと互換性がありません。 以下のコマンドを実行して結果を確認します:
$ docker run --rm -t arm64v8/ubuntu uname -m
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
standard_init_linux.go:228: exec user process caused: exec format error
qemu-user-staticをインストールするとamd64システム上でarm64イメージを実行できるようになります。
$ sudo apt-get install qemu-user-static
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
$ docker run --rm -t arm64v8/ubuntu uname -m
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
aarch64
Autowareのarm64アーキテクチャのDockerイメージを実行するにはサフィックス-arm64
を追加します。
$ docker run --rm -it ghcr.io/autowarefoundation/autoware-universe:humble-latest-cuda-arm64
WARNING: The requested image's platform (linux/arm64) does not match the detected host platform (linux/amd64) and no specific platform was requested
root@5b71391ad50f:/autoware#