Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-

2 814 vues

Publié le

組み込みLinuxをビルドする場合、通常であればLinux環境の用意が必要です。Windows 10 Anniversary UpdateからWSL(Windows Subsystem for Linux)が提供され、Ubuntu 14.04(64ビット版)のバイナリパッケージがそのまま実行可能となりました。そこで、WSLを使って組み込みLinuxをビルドする方法を紹介します。組み込みLinuxのビルドにはbuildrootを使用し、Raspberry Pi 3をターゲットとした既定のブートイメージの作成を例に説明します。

Publié dans : Logiciels
  • Soyez le premier à commenter

Windows subsystem for linuxで始める組み込みlinux ラズパイ3のブートイメージを作ってみる-

  1. 1. Windows Subsystem for Linuxで始める 組み込みLinux - ラズパイ3のブートイメージを作ってみる - .NETラボ勉強会 2017年2月 2017/02/25 小松 豊彦 (komat) © 2017 Toyohiko komatsu
  2. 2. このセッションの目的 組み込みLinuxをビルドする場合、 通常であればLinux環境を用意する必要がある Windows 10 Anniversary Updateから Windows Subsystem for Linux (WSL) が提供され、 ubuntu 14.04のバイナリパッケージをそのまま実行可能 (64ビット版) そこで、 1
  3. 3. このセッションの目的 WSLを使って組み込みLinuxをビルドする方法を紹介する 組み込みLinuxのビルドには buildroot を使用し、 Raspberry Pi 3 をターゲットとした 既定のブートイメージを作成する 2
  4. 4. 注意事項  本資料は、個人で準備した環境において、個人的に実施した結果 や調査をもとに作成されています  著者および発表者が、本資料の内容について、その正確さや個々 の目的への適合性を保証するものではありません  著者、発表者およびそれらの関係者を含む第三者は、本資料の利 用の結果として生じた損失・損害等について、一切責任を負いま せん  本資料に記載されている製品名は各社の商標または登録商標です。 本資料では登録商標マーク ® は省略しています 3
  5. 5. 注意事項  現時点で Windows Subsystem for Linux は Beta版 です そのため、将来のバージョンアップで仕様が変更される可能性が あります 4
  6. 6. 自己紹介  小松 豊彦 (こまつ とよひこ) komat (こまっと)  組込系のソフトウェア技術者らしい  C#が好き  組み込みLinuxって面白いね 5
  7. 7. WSLとは  Windows Subsystem for Linux (WSL)  Windows上でLinuxバイナリの実行を実現するサブシステム  実際にはBash on Ubuntu on Windows (BUW)で提供される bash.exeコマンドを介して利用する 6
  8. 8. BUWとは  Bash on Ubuntu on Windows (BUW)  ubuntuのファイルシステムと必要最低限のパッケージを提供  Windowsからbash.exeを起動することで、 WSL+BUWで動作する「bash」が利用可能となる 7
  9. 9. このセッションでは WSL+BUW環境を「WSL」と呼ぶこととする ユーザーから見れば Bash on Ubuntu on Windows と呼んだ方が 良い気もするが… Bash on Windowsと呼ぶ人もいる。公式もそう呼んでたりとか 8
  10. 10. WSLをインストールしよう まずはWSLをインストールしないと始まらない WSLのインストールは簡単だが「動作条件」がある 9
  11. 11. WSLの動作条件  Windows 10 Anniversary Update (Ver.1607) 以降 [64ビット版]  Homeエディションでも64ビット版であれば動作可能  開発者モードへの変更  インターネット接続環境  インストール時に追加パッケージのダウンロードを行うため 10
  12. 12. 開発者モードへの変更  スタートボタン → [設定] → [更新とセキュリティ] → [開発者向け] → [開発者モード]を選択 11
  13. 13. WSLのインストール  スタートボタンを右クリック → [プログラムと機能(F)] → [Windowsの機能の有効化または無効化] → [Windows Subsystem for Linux (Beta)] にチェック 12
  14. 14. bash.exeの起動 最初にbash.exeを起動すると、各種パッケージがダウンロードされ、 下記の入力を要求される  ユーザー名  パスワード 上記はWSLでのみ使用される。Windowsの認証情報と一致させる必要はない パスワードはsudoコマンドで使用する 13
  15. 15. bash.exeの起動 14
  16. 16. bash.exeの起動 もう一度bash.exeを起動する場合は、  bash.exeを直接起動  スタートメニューから 「Bash on Ubuntu on Windows」をクリック 15
  17. 17. 準備完了 これでWSLが利用可能となった apt-getコマンドでパッケージを追加したり、 wgetコマンドでファイルをダウンロードしたり・・・ ただし、WSLからWindowsのバイナリは実行出来ない (Creators Updateで実行可能となる予定) 16
  18. 18. 表示の不完全さが気になる貴方へ  WSLはベータ版であり、コンソールの対応が不完全 日本語やcursesの表示が化けることが多々ある  正しく表示できるコンソールアプリがある 例えば ConEmu https://conemu.github.io bash.exe向けの設定もある 17
  19. 19. Windows環境とのファイルの交換  /mnt/c フォルダ経由で行う Dドライブがあれば /mnt/d フォルダも存在する  例 C:¥Users¥komat¥Documents → /mnt/c/Users/komat/Documents 18
  20. 20. /mnt/c フォルダの制限事項  owner/groupの変更が出来ない  常にroot:root  大文字/小文字の区別が無い  WSL側では区別されるが、Windows側では区別されない  パーミッションの変更はWriteモードのみ  Read/Executeモードは常に付与される 19
  21. 21. 作業フォルダには /home を使おう  /mnt/cフォルダにはWSL特有の制限がある  Linuxのファイルシステムを想定したパッケージは 正常に動作しない可能性が高い  作業フォルダには /home を使おう  作業フォルダのバックアップには tarコマンド 等を使うと良い 20
  22. 22. WSLの再構築 システムファイルや重要なパッケージをうっかり削除した場合に 環境を作り直す事が可能 コマンドプロンプトを起動し、  lxrun /uninstall  lxrun /install 上記の場合、/home フォルダは消されずに残る apt-get等でインストールしたパッケージは再インストールが必要 21
  23. 23. やっと本題 WSLの準備が出来たので、組み込みLinuxをビルドしてみる 22
  24. 24. buildrootとは  シンプルで効率的で使いやすい組み込みLinuxの構築ツール  公式サイト https://buildroot.org 23
  25. 25. Buildrootによって出来ること  プリセットされたターゲット設定  コンパイラやパッケージのダウンロード  クロスコンパイラおよび関連ツール群の生成  パッチの適用(buildrootに含まれるもの)  Linuxおよびパッケージのビルド  ブートイメージ、ディスクイメージの生成 上記ことを、少ないステップ数で簡単に行える 24
  26. 26. では早速ビルドしてみよう!  buildrootのパッケージは公式ページからダウンロード可能 最新版は buildroot-2016.11.2 (2017/2/18現在) https://buildroot.org/download.html  パッケージのダウンロードが行われるため インターネット接続環境で行う(光などの固定回線を推奨) 25
  27. 27. では早速ビルドしてみよう!  buildroot-2016.11.2.tar.gz をダウンロード wgetコマンドで直接作業フォルダにダウンロードしても良い  /mnc/c フォルダから /home フォルダにコピーして、 tarballを展開  cd ~/buildroot-2016.11.2  make raspberrypi3_defconfig  make 26 これだけで既定のイメージのビルドが出来る
  28. 28. しかし! このままではビルド出来ない もう少し準備が必要・・・ 27
  29. 29. buildroot向けの準備  パッケージの追加インストール 素のWSLにはビルド環境が入っていないため コンパイラのコンパイルにはコンパイラが必要(^_^;  sudo apt-get update  sudo apt-get upgrade  sudo apt-get install build-essential autoconf unzip git ncurses-dev libc6-dev-i386 28 ターゲットが32ビットの場合に必要 1行で入力
  30. 30. buildroot向けの準備  /etc/mtab ファイルの作成 buildrootが使用する tune2fs コマンドが失敗するため  sudo touch /etc/mtab 空の /etc/mtab ファイルを作成する 29
  31. 31. buildrootの修正  fakerootパッケージの設定変更 現時点でWSLが System V IPC をサポートしていないため  cd ~/buildroot-2016.11.2  sed -i -e '/$(eval/iHOST_FAKEROOT_CONF_OPTS = --with-ipc=tcp' ./package/fakeroot/fakeroot.mk “HOST_FAKEROOT_CONF_OPTS = --with-ipc=tcp” を ./package/fakeroot/fakeroot.mk の “$(eval” の前の行に追加 30 1行で入力
  32. 32. 気を取り直してビルド!  cd ~/buildroot-2016.11.2  make raspberrypi3_defconfig  make なお、初回はダウンロードとビルドに4時間程度必要 所用時間は環境にもよるが、気長に待とう・・・(^_^; 31
  33. 33.  手順に漏れやミスがなければ、SDカードのイメージが出来上がる ./output/images/sdcard.img ビルド完了! 32
  34. 34. SDカードへの書き込み  WSLではSDカードのRAWデバイスへのアクセスが出来ない ddコマンドでのイメージ書き込みが出来ない  仕方が無いので、イメージ書き込みが出来るアプリを使う  例えば、DD for Windows http://www.si-linux.co.jp/techinfo/index.php?DD%20for%20Windows 33
  35. 35. カスタマイズ  メニュー形式でパッケージやカーネルの設定を変更可能  make menuconfig buildroot自体、パッケージ等の設定  make linux-menuconfig linuxカーネルの設定  make help ヘルプの表示 34 設定を変更したら make
  36. 36. 活用は貴方次第  Raspberry Piでは公式でRaspbianのディスクイメージを提供 https://www.raspberrypi.org/downloads/raspbian/  一方、buildrootを使用することで、起動の速いイメージや いつでも電源断が可能なイメージを作る事が可能  Raspberry PiのハードやLinuxカーネルの勉強にもオススメ 35
  37. 37. おわり END ご静聴ありがとうございました 36
  38. 38. Creators Update Windows 10の次期大型アップデート”Creators Update”では WSLが強化される予定  ubuntu 16.04 対応  WSLからのWindowsアプリの起動  アンチウイルスソフトとの連携の強化  コンソールのVT対応の強化  他… 37
  39. 39. WSLのフォルダの所在  WSLのフォルダは下記の場所に作成される %localappdata%¥lxss C:¥Users¥<UserName>¥AppData¥Local¥lxss このフォルダ内のファイル群は絶対に変更しないこと! Do not change Linux files using Windows apps and tools https://blogs.msdn.microsoft.com/commandline/2016/11/17/d o-not-change-linux-files-using-windows-apps-and-tools/ 38
  40. 40. WSL関連リンク  Microsoft/BashOnWindows - GitHub https://github.com/Microsoft/BashOnWindows  Bash on Ubuntu on Windows https://msdn.microsoft.com/commandline/wsl/about 39

×