Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WSL で動かす方法 #342

Open
k-okada opened this issue Mar 31, 2021 · 8 comments
Open

WSL で動かす方法 #342

k-okada opened this issue Mar 31, 2021 · 8 comments

Comments

@k-okada
Copy link
Member

k-okada commented Mar 31, 2021

choreonoid を wsl で動かす方法はどうしたらよいでしょうか?

@kindsenior

@k-okada
Copy link
Member Author

k-okada commented Mar 31, 2021

wsl 1 -> wsl 2 に移動するにはどうしたらよいでしょうか?

@YoheiKakiuchi
Copy link
Member

ちょっと求められてるのと違う気もしますが、docker for windowsはどうでしょうか。
https://docs.docker.jp/docker-for-windows/install.html

以下から、docker-compose.yaml をダウンロードして、
https://gist.github.com/YoheiKakiuchi/11757132d13ce5433bdbb392c76dac60

以下で開始します。(1回めはイメージダウンロードするのでそれなりに時間がかかる)

docker-compose -f docker-compose.yaml up

ブラウザから接続できるxサーバーを使っているので、chromeなどで localhost:3000 に接続すると、画面が見れます。
linuxとwindowsで動作確認できてます。多分macでも大丈夫なのではないかと。

このxサーバーを使って、P50(linux)でシミュレーションが2.5倍くらい遅い、
P50でネイティブのxserverのnvidiaで、シミュレーションが1.37倍くらい遅い。
非力なwindowsだともっと遅くなりそう。

スクリーンショット (3)

@kindsenior
Copy link
Contributor

kindsenior commented Apr 2, 2021

遅くなりました

基本的に普通にWSL2をインストールすればいいので,調べて出てくる内容と同じかと思います
Hyper-Vを使うのでVirtualBox等の他の仮想マシンが時々落ちるようになりますが,最近は大分,改善されている気がします

  1. VcXsrvのインストール(chocolatyがない場合は手動でインストール)
choco install vcxsrv -y
  1. VcXsrvの設定と自動起動化(このZIPのconfig.xlaunchを%conf_file%とする)
set conf_file=%USERPROFILE%\Documents\config.xlaunch
set command_str=C:\PROGRA~1\VcXsrv\xlaunch.exe -run %USERPROFILE%\Documents\config.xlaunch
reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v VcXsrv /t REG_SZ /d "%command_str%" /f
  1. WSLのインストールのための設定
dism /online /Enable-Feature /FeatureName:Microsoft-Hyper-V-All /NoRestart
rem Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
dism /online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /NoRestart
  1. WSL2のインストールのための設定
dism /online /Enable-feature /Featurename:VirtualMachinePlatform /all /norestart

set update_msi=%USERPROFILE%\Downloads\wsl_update_x64.msi
curl https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi -o %update_msi%
powershell -command "start-process powershell -wait -verb runas -argumentlist {-command msiexec /i %update_msi%}"
  1. PCを再起動する

  2. 変数を設定する

set ubuntu_ver_dot=18.04
set wsl_name=<ubuntu-name>
set wsl_user=<user-name>
set wsl_dir=c:\wsl\

set ubuntu_ver_dot=%ubuntu_ver_dot:~0,5%
set ubuntu_ver=%ubuntu_ver_dot:~0,2%%ubuntu_ver_dot:~3,2%
set org_ubuntu_name=Ubuntu-%ubuntu_ver_dot%
if not exist %wsl_dir% mkdir %wsl_dir%

7.1 WSL1のインスタンスを作成する(Windowsストアから手動でインストールしてもよい)

set appfile=%USERPROFILE%\Downloads\wsl-ubuntu-%ubuntu_ver%.appx
if not exist %app_file% curl -L https://aka.ms/wsl-ubuntu-%ubuntu_ver% -o %app_file%

PowerShell -command "Add-AppxPackage %app_file%"

ubuntu%ubuntu_ver% run exit

7.2 WSL1からWSL2へ変換する

wsl --set-version %org_ubuntu_name% 2
wsl --set-default-version 2

set tar_name=%USERPROFILE%\Downloads\%wsl_name%.tar

wsl --export %org_ubuntu_name% %tar_name%
wsl --unregister %org_ubuntu_name%
wsl --import %wsl_name% %wsl_dir%\%wsl_name% %tar_name%

powershell -command "Get-ItemProperty Registry::HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\*\ DistributionName | Where-Object -Property DistributionName -eq %wsl_name% | Set-ItemProperty -Name DefaultUid -Value ((wsl -d %wsl_name% -u %wsl_user% -e id -u) | Out-String)"
  1. WSL内で以下の設定をする
# wsl.conf (必須)
# exclude Windows path from PATH
sudo sh -c 'echo "[interop]" > /etc/wsl.conf'
sudo sh -c 'echo "appendWindowsPath = false" >> /etc/wsl.conf'

# mount windows file system with metadata (おすすめ)
sudo sh -c 'echo "[automount]" >> /etc/wsl.conf'
sudo sh -c 'echo "options = \"metadata\"" >> /etc/wsl.conf'

# updatedb (おすすめ)
# remove /mnt from updatedb's search path
sudo sed -i -e 's#^\(PRUNEPATHS=.*\)"#\1 /mnt"#'    /etc/updatedb.conf
  1. bashrcに以下を追加する
# GUI
unset LIBGL_ALWAYS_INDIRECT
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0 # need to accept VcXsrv in public networks when setting firewall

# openrtm
\rm /tmp/omninames-* 2>/dev/null
  1. WSL内で通常のUbuntuの環境構築をする

@k-okada
Copy link
Member Author

k-okada commented Apr 3, 2021

ありがとう.ちなみに普通にWSLでUbuntuを入れたときは以下の画像のように「WSLにチェック」→「再起動」→「ストアでインストール」だったんだけど,
普通にWSL2をインストールも同じようにできないのかな?

それともストアでインストールした後に,1-10をやるのかな?それとも,すとーあでインストールの代わりが3-7のコマンドなのかな.

キャプチャ

@kindsenior
Copy link
Contributor

kindsenior commented Apr 3, 2021

ストアでのWSL1のインストール手順は7.1のset appfile=%USERPROFILE%\Downloads\wsl-ubuntu-%ubuntu_ver%.appx からubuntu%ubuntu_ver% run exitまでに該当します
(7を7.1と7.2に分離しました)

@kindsenior
Copy link
Contributor

すみません

  1. WSL内で以下の設定をする(必須ではない)

に必須な部分があったので一部修正しました(ご存知かもですが,その設定がないとcatkin buildが動きません)

@k-okada
Copy link
Member Author

k-okada commented Apr 19, 2021

wslでemacs & すると日本語が入力できない,と言われたんだけど,どうしている?emacs -nw だと出来るらしい。

@kindsenior
Copy link
Contributor

kindsenior commented Jun 29, 2021

すみません,見逃してました

僕はCUI派なので-nwしか使ってませんでしたが,ctrl-\だと日本語入力できる気がしますが,
半角/全角キーとかを押すと is undefinedみたいなエラーが出ることを指してますか?

その場合は入力メソッドに何を使うかというので変わりそうですが,fcitxの場合以下でできそうです

# install input method you want to use
sudo apt install fcitx-skk # fcitxが入ってなくてもできたので不要?
fcitx # launch inpout method tool(↑と同様に不要?)

sudo apt install x11-xserver-utils # disable repeated hits of henkan in windows # 不要かも

以下を.bashrc等に追加(profileの方が的確かも)

# settings for fcitx
IM=fcitx
export XMODIFIERS="@im=$IM"
export GTK_IM_MODULE=$IM # 不要かも
export QT_IM_MODULE=$IM # 不要かも
export NO_AT_BRIDGE=1 # 不要かも

xset -r 49 # disable repeated hits of henkan in windows(不要かも)

fcitxの例
ibusの場合はこんな感じ?(試してない)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants