2016/08/31

[作業記録]Ubuntu on Windows を導入して mintty から操作できるようにする

Autoware という、Linux ソフトウェア動かしたい。 しかし、これを VM で動かすのは厳しいのでは...? との思いから、使えたらラッキーくらいの気持ちで試してみる。

CPFL/Autoware: Open-source software for urban autonomous driving : https://github.com/CPFL/Autoware/

前提条件

  • OS : Windows 10 Home Edition
  • msys2 導入済み

必要な手順

  1. Windows10 Anniversary Update の導入
  2. Windows Subsystem for Linux の有効化
  3. wslbridge のビルド
  4. 起動用の設定

Windows Subsystem for Linux の有効化

Windows10 Anniversary Update を導入していれば、 「Windows の機能の有効化または無効化」から有効化できる。

有効化したうえで、コマンドプロンプトから bash.exe を起動し、インストールを行い、初期設定する。

有効化

  1. 「スタートメニュー右クリック -> プログラムと機能」
  2. ウィンドウ左の「Windows の機能の有効化または無効化」リンクをクリック
  3. 「Windows の機能」の一覧から、「Windows Subsystem for Linux」を探してチェックを入れる
  4. OK 押して再起動
  5. 「スタートメニュー -> 設定 -> 更新とセキュリティ -> 開発者向け -> 開発者モードを選択」
  6. 再起動
  7. コマンドプロンプト

インストール

コマンドプロンプトで C:\Windows\System32\bash.exe を起動する。

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\Users\mikoto>C:\Windows\System32\bash.exe
-- ベータ機能 --
これにより Windows に Ubuntu がインストールされます。Ubuntu は Canonical によって配布される製品であり、
次のサイトに示される条件に基づいてライセンスされています。
https://aka.ms/uowterms

続行するには、"y" を入力してください: y
Windows ストアからダウンロードしています... 100%
ファイル システムを展開しています。この処理には数分かかります...
既定の UNIX ユーザー アカウントを作成してください。ユーザー名は、Windows のユーザー名と一致する必要はあり ません。
詳細: https://aka.ms/wslusers を参照してください
新しい UNIX ユーザー名を入力してください: mikoto
新しい UNIX パスワードを入力してください:
新しい UNIX パスワードを再入力してください:
passwd: password updated successfully
インストールが正常に終了しました
環境が間もなく開始されます...
ドキュメントを参照できる場所: https://aka.ms/wsldocs
mikoto@MNHOMEWIN:/mnt/c/Users/mikoto$

初期設定

sudo cp /etc/hosts /etc/hosts.bkup
sudo sh -c 'echo 127.0.1.1 $(hostname) >> /etc/hosts'
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bkup
sudo sed -i -e 's%http://.*.ubuntu.com%http://ftp.jaist.ac.jp/pub/Linux%g' /etc/apt/sources.list
sudo apt update
sudo apt upgrade

Windows Subsystem for Linux の導入は以上。

wslbridge のビルド

windows 側

Bash on Ubuntu on Windows の最高の端末環境らしいので導入する。 msys2 環境を開いてそこで git clone and make.

$ cd /c/Users/mikoto/project/
$ git clone https://github.com/rprichard/wslbridge.git
Cloning into 'wslbridge'...
remote: Counting objects: 156, done.
Receiving objects:  82remote: Total 156 (delta 0), reused 0 (delta 0), pack-reused 156
Receiving objects: 100% (156/156), 54.63 KiB | 0 bytes/s, done.
Resolving deltas: 100% (66/66), done.
Checking connectivity... done.
cd wslbridge/frontend
$ make
mkdir -p ../out
g++ -std=c++11 -fno-exceptions \
        -static -static-libgcc -static-libstdc++ \
        -D_GNU_SOURCE -DWSLBRIDGE_VERSION=0.1.1-dev \
        -Wall -O2 wslbridge.cc ../common/SocketIo.cc -o ../out/wslbridge.exe

Ubuntu 側

sudo apt install git g++ make
cd /mnt/c/Users/mikoto/project/wslbridge/backend/
make

起動用の設定

「wslbridge のビルド」の成果物 wslbridge.exe, wslbridge-backend を Windows のパスの通った場所にコピーする。

ショートカットを作成する。/PATH/TO/mintty.exe -e wslbridge.exe

以上。

参考資料

0 件のコメント: