Open k-okada opened 3 years ago
wsl 1 -> wsl 2 に移動するにはどうしたらよいでしょうか?
ちょっと求められてるのと違う気もしますが、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だともっと遅くなりそう。
遅くなりました
基本的に普通にWSL2をインストールすればいいので,調べて出てくる内容と同じかと思います Hyper-Vを使うのでVirtualBox等の他の仮想マシンが時々落ちるようになりますが,最近は大分,改善されている気がします
VcXsrvのインストール(chocolatyがない場合は手動でインストール)
choco install vcxsrv -y
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
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
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%}"
5. PCを再起動する
6. 変数を設定する
set ubuntu_ver_dot=18.04
set wsl_name=
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)"
8. WSL内で以下の設定をする
sudo sh -c 'echo "[interop]" > /etc/wsl.conf' sudo sh -c 'echo "appendWindowsPath = false" >> /etc/wsl.conf'
sudo sh -c 'echo "[automount]" >> /etc/wsl.conf' sudo sh -c 'echo "options = \"metadata\"" >> /etc/wsl.conf'
sudo sed -i -e 's#^(PRUNEPATHS=.*)"#\1 /mnt"#' /etc/updatedb.conf
9. bashrcに以下を追加する
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
\rm /tmp/omninames-* 2>/dev/null
10. WSL内で通常のUbuntuの環境構築をする
ありがとう.ちなみに普通にWSLでUbuntuを入れたときは以下の画像のように「WSLにチェック」→「再起動」→「ストアでインストール」だったんだけど, 普通にWSL2をインストールも同じようにできないのかな?
それともストアでインストールした後に,1-10をやるのかな?それとも,すとーあでインストールの代わりが3-7のコマンドなのかな.
ストアでのWSL1のインストール手順は7.1のset appfile=%USERPROFILE%\Downloads\wsl-ubuntu-%ubuntu_ver%.appx
からubuntu%ubuntu_ver% run exit
までに該当します
(7を7.1と7.2に分離しました)
すみません
- WSL内で以下の設定をする(必須ではない)
に必須な部分があったので一部修正しました(ご存知かもですが,その設定がないとcatkin buildが動きません)
wslでemacs & すると日本語が入力できない,と言われたんだけど,どうしている?emacs -nw だと出来るらしい。
すみません,見逃してました
僕は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(不要かも)
choreonoid を wsl で動かす方法はどうしたらよいでしょうか?
@kindsenior