0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WSL2でCan't open displayが出た時の対処

Last updated at Posted at 2022-02-17

はじめに

WSLのUbuntuでGUIを使いたくXmingを導入してみました。
その際すんなりいかず、色々調べたのでまとめてみます。
何番煎じか分かりませんが...

export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print \$2}'):0.0

この設定で上手くいかなかった人向けです。

環境

  • WSL2
    • Ubuntu 18.04 LTS
  • Xming X server 6.9.0.31

方法

.bashrcに既に下記が書いてあるものとします。

.bashrc
export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print \$2}'):0.0

結論から言うとProgram fileにあるXmingのX0.hostsというファイルに下記のようにwslのipアドレスを書き込むだけです。

X0.hosts
localhost
aaa.bbb.ccc.ddd //wslのipアドレス

ubuntuターミナルでip aをして、eth0のinetの部分がwslのipアドレスになると思います。
X0.hostsはここ C:\Program Files (x86)\Xming
X0.hostsは管理者権限がないと書き込めません。

脇道

wslは起動毎にipアドレスが変更されるため、自動で書き込むbatファイルを作りました。すごい泥臭いやり方をしている気がするので、もっと勉強していきたいです。
利用は自己責任でお願いします。

hoge.bat
cd C:\Program Files (x86)\Xming
wsl touch temp1
wsl touch temp2
wsl touch temp3
echo | wsl ip -4 a > temp1
echo | wsl grep 172 temp1 > temp2
echo | wsl awk -F'[ /]' '{print $6}'  temp2 > temp3
wsl sed -i '1i localhost' temp3
wsl cp temp3 X0.hosts
wsl rm temp*

上記をbatファイルを管理者権限のコマンドプロンプトで実行したら自動で書き込まれます。

終わりに

タスクスケジューラで、wsl起動時に設定したかったけど面倒そうなのでやれませんでした。
いつかはやりたい。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?