JETSON NANOで遊ぼうと思ったところ、ホストコンピュータ(開発用のPC)にx64版のUbuntu 18.04が必要ということで。
Windows 10のPCしかありませんが、Ubuntuですか?そうですか。そこを何とか。
Windows 10のPCに仮想環境のUbuntu 18.04をインストールして、GNOMEデスクトップにアクセスする手順を記録しておこうと思います。
※2019年4月現在、WSL(Windows Subsystem for Linux)を使用した新しいUbuntuのインストール方法も御座います。
こちらの方法は、以前からあるVagrantを使用した方法になります。ストアアカウント等が不要ということで、こちらを選択致しました。
目次
VagrantのUbuntu 18.04/GNOMEデスクトップインストール手順
全体的な流れはこのような感じです。
- VirtualBox、Vagrantのインストール
- VagrantでUbuntu 18.04をインストール(仮想マシンの作成)
- Ubuntu初期設定とアップデート
- X Window Systemインストール・VNCServer設定
- WindowsからVNC Serverへ接続・微調整
使用するPCは、CPU仮想化技術のIntel VTまたはAMD AMD-Vに対応している必要があるかと思います。Hyper-Vは使用しませんので、Windows 10 Homeでも大丈夫かと思います。
VirtualBox、Vagrantのインストール
こちらのサイトから、VirtualBox、VirtualBox Extension Pack、そしてVagrantをダウンロードさせて頂き、インストール致しました。
Intel VT-x,AMD-VのUEFI有効化や、Hyper-Vの無効化が必要な場合、こちらの記事を御覧ください。
インストール後、vagrantのコマンドを使って、VirtualBoxへ仮想マシンを作成する流れになります。
Ubuntu 18.04仮想マシンの作成
- PowerShellまたはコマンドプロンプトを起動します。
- 実行環境を格納するフォルダを作成、Ubuntu 18.04(ubuntu/bionic64)のboxを追加(イメージのダウンロード)、vagrant initでVagrantfile(設定ファイル)を作成しました。ゲストプラグインもインストールしておきます。
mkdir ubuntu1804 cd .\ubuntu1804 vagrant box add ubuntu/bionic64 vagrant init ubuntu/bionic64 vagrant plugin install vagrant-vbguest #vagrant plugin install vagrant-disksize
- Vagrantfileをテキストエディタで編集します。
rem notepad .\Vagrantfile start .
次の内容追加しました。
Vagrant.configure("2") do |config| # あとでVNCで接続するため、ゲストポート5901をホスト15901にマップ config.vm.network "forwarded_port", guest: 5901, host: 15901 # ストレージ容量変更(要プラグイン) #vagrant plugin install vagrant-disksize config.disksize.size = '60GB' #有効化 config.vm.provider "virtualbox" do |vb| # メモリーを2GBに変更 vb.memory = "2048" # USBを使用する場合 #ohci:1.0 ehci:2.0 xhci:3.0 vb.customize ["modifyvm", :id, "--usb", "on"] vb.customize ["modifyvm", :id, "--usbehci", "on"] # USB: NVIDIA Linux for Tegra # vb.customize ["usbfilter", "add", "0", "--target", :id, "--name", "Linux for Tegra", "--vendorid", "0x0955", "--productid", "0x7020"] #有効化 end end
X Window Systemを動かす都合から、使用するメモリーを1GBから2GBに変更しました。VNCのポートもマップしました。
- vagrant upで仮想マシンを起動後、vagrant sshでログインします。
vagrant up vagrant ssh
Ubuntu 18.04.2にログインできましたでしょうか?
Ubuntu初期設定とアップデート
VagrantのUbuntuオフィシャルイメージは、mirrorサイトの設定がされていないため、既定の設定では、遠くのアップデートサーバーを参照するようです。このあたりを調整しつつ、アップデートを行っておきます。
- /etc/apt/sources.listファイルを編集して(近くにある)ミラーサイトを参照するようにします。
# PowerShellで見やすいように、viの文字色を変更 echo syntax off | tee -a ~/.vimrc echo set nu | tee -a ~/.vimrc # sudo vi /etc/apt/sources.list
2箇所変更しました。
# deb http://archive.ubuntu.com/ubuntu bionic main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main restricted # deb http://archive.ubuntu.com/ubuntu bionic-updates main restricted deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main restricted
- アップデート・アップグレードしておきます。
sudo apt update sudo apt list --upgradable sudo apt upgrade
- ubuntuユーザのパスワードを設定しておきます。
sudo passwd ubuntu
X Window Systemインストール・VNCServer設定
ウィンドウマネージャーはgnome-sessionをインストールしましたが、手動でvncserverを動かした場合は特に問題ありませんでした。
もし手動ではなくsystemdから起動したい場合、どうもうまく動かないようですので、xfce等に変えられたほうが良いかもしれません。(vncserverプロセスからXサーバ本体を起動するタイミングで失敗するようです)
- ubuntu-desktopとgnome-sessionをインストールします。
sudo apt install ubuntu-desktop gnome-session
先程ミラーサイトを設定しましたので、既定の状態よりもダウンロードは早いかと思いますが、まあのんびり待ちましょうか。
正常にインストールされましたでしょうか?
- VNCServerをインストールします。
sudo apt install tigervnc-standalone-server
- 一度vncserverを起動して、パスワードを設定します。
vncserver
- 起動したvncserverを終了しておきます。
vncserver -list vncserver :1 -kill
- ~/.vnc/xstartupファイルを作成します。
echo "exec gnome-session &" | tee ~/.vnc/xstartup cat ~/.vnc/xstartup
- 最後に、外部からアクセスできるかたちでvncserverを起動します。
vncserver -localhost no
どうも(Vagrantの?)Ubuntu 18.04は、待ち受けIPアドレスが127.0.0.1:5901になるようです。localhost noオプションを付けると外部から接続できるようになりました。
以上で、基本的なインストールが完了しましたが、もう少し。
Vagrantを使っている=外部からパスワードでログインできないため、少し微調整が必要なようです。
WindowsからVNC Serverへ接続・微調整
WindowsからX Window Systemへアクセスするために、VNCクライアント(ビューワー)をインストールしました。
VNCクライアントは種類がありますが、Ultra VNCを使用させて頂きました。
今回の目的、Ubuntuの画面を表示する場合は、基本的にビューワーのみインストールすれば大丈夫かと思います。
VNC Viewerを起動後、VNC Server欄に「localhost:15901」と入力、Conectボタンをクリックします。先程、10番で入力したVNC接続用パスワードを入力します。X Window Systemの画面が表示されましたでしょうか?
- 画面の指示に従って、初期設定後。
- 画面左上、Activities→SHow Applications→Settingsを起動します。
- Power→Power Saving→Blank screenを「5 minutes」から「Never」へ変更しました。
デスクトップはvagrantユーザがログインしたかたちですが、パスワードを入力できないため、画面ロック後の解除ができません。これでロックしない=パスワードの入力が不要な状態になりました。
Vagrant操作コマンド(コピペ用)
# Vagrantfile変更後の反映
vagrant reload
# 仮想マシンのシャットダウン
vagrant halt
# 仮想マシンの削除
vagrant destroy
# USBデバイス確認
"%PROGRAMFILES%\Oracle\VirtualBox\VBoxManage.exe" list usbhost
# 各種環境フォルダへのアクセス
start "%USERPROFILE%\.vagrant.d"
start "%USERPROFILE%\.virtualbox"
start "%USERPROFILE%VirtualBox VMs"
start "C:\Program Files\Oracle"
以上で、Windows 10の中でUbuntu 18.04を動かして、VNCでデスクトップにアクセスできるようにしてみました。
デスクトップ上で何か設定を変更したり、ソフトウェアをインストールする場合、パスワードの入力が必要になりますが、7番で設定したubuntuユーザのパスワードを入力すれば大丈夫のようです。
画面サイズの調整は、vncserverのオプションを追加して行えます。
そのあたりの調整をしながら、実用的な環境を作ってみましょうか。