Installing an Embedded Linux Environment Using WSL
【特別企画】~i.MX8で学ぶ~ 組み込みLinuxハンズオン・セミナ
公開先: https://ahidaka.github.io/InstallingWSLEmbeddedLinux/
ソース: https://github.com/ahidaka/InstallingWSLEmbeddedLinux/
この資料は必要に応じて更新する場合があります。ご注意ください。
WSL2 Ubuntu-20.04 を使用する デバイス・ドライバ開発ハンズオンセミナ配布用のWSL2イメージを使用して、ハンズオン環境のインストールと準備方法を示します。
ハンズオン参加者は必ずこの手順に従った準備をお願いします。 このハンズオン環境構築には約1日近くの時間がかかりますが、ハンズオンセミナで役立つ内容を含むので、参加者ご自身での事前準備をお願いします。
PC環境やインターネットのダウンロード速度に大きく依存しますが、準備には最低1日、環境によっては2~3日かかります。事前に十分な余裕を持って用意をお願いします。
なおこのハンズオンセミナではWSL1を利用しないため、以降はWSL2のことをWSLと表記します。
次の条件を満たすノート型、またはデスクトップPCを用意します。 ハンズオンセミナではUSBケーブル、及びLANケーブルを介してターゲットデバイスへのデータ送信操作があるため、仮想環境の利用は想定していません。 また搭載メモリーが少なく、CPUとディスクが遅い非力な環境ほど、各処理に時間がかかるのでご注意ください。
ハンズオンで使用するWSLイメージのインストール領域として、Cドライブに150GB以上の容量が必要です。 それとは別にダウンロードとイメージ展開用に、約135GBの作業用ストレージが必要です。
次の作業をするので、ご自身の環境に合わせて判断して用意してください。 作業概要と注意事項を示します。
事前に次の手順でWSLをインストールして動作を確認しておきます。 すでにWSLをインストール済の場合は、以下を参考にして動作確認をしておいてください。
BIOSを起動して、次の条件を確認します。
ハードウェア仮想化オプションは、PC機種によって異なります。 以下を参考にして、ご自身で調べて有効化の確認をお願いします。
BIOS仮想化オプション設定項目名:
Intel: VMX または VTx, VTT, VT-d など
AMD: SVM Mode または AMD-V など
ハンズオンでは使用しませんが、コントロールパネルで操作して「Linux 用 Windows サブシステム」を有効化します。これにより bash.exe がインストールされ、トラブル時などに利用できます。
WSLを実際にインストールして動作確認します。
WSL状態表示コマンドで現在の状態を確認します。
> wsl -l –v
インストール可能な wsl ディストリビューション一覧を表示します。
> wsl --list –online
WSLモジュールを最新版に更新します。
> wsl --update
次のコマンドで、ディストリビューション一覧にある、Ubuntu 20.04 をインストールします。
> wsl --install Ubuntu-20.04
インストール完了時、にユーザー名とパスワードを入力します。 インストール後、再起動が必要な場合があります。
インストール後、作成したユーザー名でログインして以下のコマンドを実行して、ネットワークが正常動作することを確認します。
$ sudo apt update
$ sudo apt upgrade
ハンズオンセミナでは、このインストールしたWSL環境は使用しません。 WSLのインポート前の動作確認と、トラブル発生時の動作確認時のに起動して利用します。
ハンズオンイメージを入手、展開、インポートでインストールします。
以下からハンズオン環境用のWSL圧縮イメージをダウンロードしておきます。 約40GB あります。大容量なので注意してください。
ダウンロード URL(弊社運営オンラインショップ):
https://shop.dics.net/eshop/temp/train01.zip
任意の場所で、ダウンロードしたzipファイルをダブルクリックして展開します。 次の点に注意してください。
次の手順で、前項で展開して作成した train01.tar ファイルをインポートします。
次のコマンドで、WSLを全て停止します。
> wsl --shutdown
次に、コマンドを実行してハンズオン用 WSLイメージを展開します。
importの一般的な形式は次の通りです。
> wsl --import <ディストリビューション名> <配置先> <インポートtarイメージ>
例えば次のコマンドで実行します。
> wsl --import Ubuntu-20.04cq "%LOCALAPPDATA%\CQHandsOn-01" "D:\WSL\train01.tar"
インポート完了は、「この操作を正しく終了しました。」のメッセージを確認します。
最初にWSLの状況を確認します。
> wsl -l -v
次の様に、「Ubuntu-20.04」「Ubuntu-20.04cq」が「Stopped」状態で表示されていることを確認します。
NAME STATE VERSION
* Ubuntu-20.04 Stopped 1
Ubuntu-20.04cq Stopped 2
次のコマンドでWSLのデフォルト・ディストリビューションを設定します。
> wsl --set-default Ubuntu-20.04cq
デフォルトディストリビューションの変更を確認します。
> wsl -l -v
で現在のデフォルト・ディストリビューションが、Ubuntu-20.04cq であることを確認して、WSLを起動してログインします。
> wsl
インポート直後はルートユーザーでのログインとなるので、以下の手順で /etc/wsl.conf にデフォルトユーザーを設定します。
# cat >> /etc/wsl.conf
入力内容(cat コマンドの入力に貼り付けます)
[user]
default=train
wsl.conf の内容を確認し、必要があればエディタで修正します。
# cat /etc/wsl.conf
次の内容になっていることを確認します。
[boot]
systemd=true
[user]
default=train
再起動後、再度ログインしてデフォルトユーザーの設定を確認します。
# shutdown -r now
再起動し直して少し待ってログインし、train ユーザーでログインすることを確認します。
> wsl
インポート環境の動作を確認します。
次のコマンドで確認します。
$ sudo apt update
$ sudo apt upgrade
必要に応じて’Y’入力して更新します。
次のコマンドで確認します。
$ cd ~/toolchain/arm-gnu-toolchain-12.2.rel1-x86_64-aarch64-none-linux-gnu/bin/
$ ./aarch64-none-linux-gnu-gcc -v
を実行して次の様に表示されることを確認します。
...
一部省略
...
in for the A-profile Architecture 10.3-2021.07 (arm-10.29)'
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 12.2.1 20221205 (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24))
ここまで実行して、最後の aarch64-none-linux-gnu-gcc -v の表示の確認をしてください。 表示が確認出来れば準備が完了です。
異常がある場合は作業を見直して、ハンズオン当日までに必ず動作確認をお願いします。
イメージインポートにおいて、インポート先のCドライブの容量が足りない場合は、Import操作が終了しません。 コントロールCでコマンド中断後、wsl の停止を確認して、%LOCALAPPDATA%\CQHandsOn-01 フォルダーを削除、Cドライブの空き領域を拡張してから、次のコマンドでインストール済ディストリビューションを削除します。
> wsl --unregister Ubuntu-20.04cq
その後念のため再起動してから、WSLの停止を確認して再度インポートを実行します。
ハンズオン終了後の使用しなくなったWSLイメージの削除は、前項のトラブル対応とほぼ同じです。
wsl の停止を確認して、%LOCALAPPDATA%\CQHandsOn-01 フォルダーを削除、次のコマンドでインストール済ディストリビューションを削除します。
> wsl --unregister Ubuntu-20.04cq
組み込みLinuxでのWSL利用に関する追加情報です。
セミナーでは利用しませんが、WSLに他のPCからネットワーク経由でリモートアクセス可能にしておくと便利です。
Windows の管理者権限のPowerShell で、次の6行のコマンドを順番に実行します。
サービス状態確認
OpenSSHサービス状態を確認します。
> Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'
> Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
> Start-Service sshd
> Get-Service sshd
> Set-Service -Name sshd -StartupType 'Automatic'
> New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force
リモートからWSLにアクセスするためには、Windows の対象アカウントにパスワード設定が必要な点に注意が必要です。
前記リモートアクセス設定のYouTune 動画(途中から始まります)
https://youtu.be/S78OAxQjPoA&t=513
関連の SlideShare スライド
https://www.slideshare.net/slideshow/tips-and-tricks-for-wsl-users-two-easy-and-reliable-ways-to-get-started-with-openssl-server/271345097
以上