-
Notifications
You must be signed in to change notification settings - Fork 20
q_and_a
ASSERTION FAILED:../src/device/peripheral/vdev/vdev_udp.c:device_init_vdev_udp:106:err == STD_E_OK
というエラーメッセージが出てアプリが起動しません
- まず、
sim stop apps
、続いてasp deep stop
を実行します。その後にアプリが起動するか試してください。 - 起動しない場合、または上記コマンドが反応しない場合は、VSCodeを閉じ、Windows PowerShell(またはWindowsターミナル)から
wsl --shutdown
してからetrobo環境を起動しなおしてください。 - それでも起動しない場合は、まず
make sample
が動作するか試してみてください。動作しない場合はetrobo環境のインストールに失敗しています。
-
sim
を単体起動して今年度参加クラスを選択し、TOOL
→環境
からL/Rコース初期位置の右側にある初期設定
ボタンを押します - スタート位置を微調整する場合は値を変更し、シミュレータを閉じます
-
sim import launch
で一度走らせると、設定ファイルを今年度クラスのスタート位置で初期化できます。
-
sim
でシミュレータを単体起動します - 必要に応じて走行体位置を手動で変更します
-
make skiphrp3 app=プロジェクト名 sim start
でビルド&実行します- 一度プロジェクト名を指定してビルドした後は、次回以降プロジェクト名の指定を省略できます
- ビルド済みのアプリは
asp
で実行可能です
- 「Windows PowerShell (管理者)」または「Windowsターミナル (管理者)」を開く
dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
-
Y
を押して再起動する - 「Windows PowerShell」または「Windowsターミナル」を開く
wsl --install -d Ubuntu-20.04
-
Y
を押して再起動する
- 「Windows PowerShell (管理者)」または「Windowsターミナル (管理者)」を開く
dism /online /enable-feature /featurename:VirtualMachinePlatform
-
Y
を押して再起動する - 「Windows PowerShell (管理者)」を開く
-
wsl --list
→ インストールされているUbuntuの名前を確認(後ろに「(既定)」が付いているもの) wsl --update
wsl --shutdown
wsl --set-default-version 2
-
wsl --set-version Ubuntu-20.04 2
←Ubuntu-20.04
の部分は上で確認したUbuntuの名前
- VSCodeのターミナルから
update
を実行します。 - ターミナルにメッセージが流れ、プロンプトに戻ります。
- VSCodeのターミナルから
make sample
と入力します。 - ターミナルにメッセージが流れます。
- しばらくするとETロボコンシミュレータが起動します。
- もうしばらくすると、VSCodeのターミナルで
3...2...1...GO!!
とカウントダウンします。 - ETロボコンシミュレータ上でロボットが走っていれば、正しくインストールされています。
昨年度のetrobo環境からアップデートする場合、以下の手順でetrobo環境コア周りのアップデートが必要です:
- etrobo環境を起動し、
update
する。FATAL ERRORが出るはず。 - etrobo環境を閉じる
- 「Windows PowerShell」または「Windowsターミナル」から
ubuntu
(Win)・ターミナル(Mac)・端末(Linux/ChromeOS)を開く - Win/Linuxの場合、
./startetrobo update
を実行する。Macの場合、./startetrobo_mac.command update BeerHall
を実行する - ターミナル/端末を閉じ、etrobo環境を起動する
-
update
する - etrobo環境を閉じる
- Linux(Ubuntu)の場合、OSを再起動する
Tiger Lake(第11世代 Intel Core) プロセッサ、 及びAlder Lake(第12世代 Intel Core)プロセッサを搭載したPCで実行する場合、Ubuntu 20.04以降を使用する必要があります。20.04で動作しない場合、上記手順でetrobo環境コアをアップデートしてください。
上記以外で問題を抱えている方は、下記「WSL2にetrobo環境を構築したのですが、make sample
でもロボットが走りません」もご参照ください。それでも動かない場合はetrobo環境のインストールに失敗していますので、etrobo環境を再インストールしてください。
"WSL1で使用されているブリッジされたネットワークアダプターからの変更で、
WSL2は、ホストネットワークインターフェイスカード (NIC) にブリッジするのではなく、
その仮想ネットワークに対してネットワークアドレス変換 (NAT) サービスを使用します。"
とあることからWSL1とWSL2の、ネットワーク通信仕組みの違いによりホストOS上のシミュレータと通信が出来ていないと考えられます。
参考:WSL 1 と WSL 2 の比較
対処方法として
「Windows Defender ファイアウォール」にシミュレータアプリ(etrobosim.exe)のネットワーク通信を許可するように設定します。
~ネットワーク上での通信を許可する
欄の全てを忘れずにチェックしてください。
このチェックを忘れていた場合、[Windows]
+[S]
キーからファイアウォールとネットワーク保護
を開き、そのファイアウォールによるアプリケーションの許可
から、「etrobosim.exe」に関する項目の全てにチェックを入れてください。
これでも動作しない場合は、ご使用のセキュリティソフトでもファイアウォールの設定をする必要があります。 追加の許諾が必要なのは以下の3つです。
- WSL(C:\Windows\System32\svchost.exe)の「SharedAccess」サービス…
- Inbound(受信・内向き)のTCP/UDP通信を許可
- ETロボコンシミュレータ(etrobosim.exe)の全サービス…
- Inbound(受信・内向き)のTCP/UDP通信を許可
- ETロボコンシミュレータ(etrobosim.exe)の全サービス…
- Outbound(送信・外向き)のTCP/UDP通信を許可
この際、セキュリティソフトの仕様や設定されているポリシーによっては、WSL(svchost.exe)へ許可設定ができないものや場合があることが判っています。 これにはWindows側でWSL向けのネットワークプロキシを動作させる必要があります。方法が判らない場合は技術委員にお尋ねください。
(2022年5月末現在、ESET社製およびSymantec社製のセキュリティソフトでは上記の設定が必要であるものとこちらでは認識しています)
update sim public
で、サイボウズアカウントを空エンター2回でスキップすると公開版シミュレータに変更できます。参加者向けに戻す場合はupdate sim
してください。
Linux/ChromeOSの場合、アップデート後にVSCodeとターミナルを一度閉じて、新しいターミナルを開いてから ./startetrobo
する必要があります。
Macの場合、セッションの復元によってzshで起動する場合があり、この場合、2~3度etrobo環境を起動し直すとbash(etrobo環境)で起動するようになります。
その他のOSでも、このVSCodeのセッション復元機能が煩わしい場合は、「管理」の「設定」([Ctrl]+[,]
)から「設定の検索」欄にenable persistent
ぐらい入力すると
「ウィンドウの再読み込み時にワークスペースのターミナル セッションを保持します」のチェックを外してください。
Copyright (C) 2020-2024 ETロボコン実行委員会, Released under the MIT License.