個人情報保護方針 お支払いについて お問い合わせ

VMwareへのRaspberryPiOS Desktop(bullseye)のインストール


RaspberryPi用のアプリケーションを開発する際にターゲットデバイスを使用する代わりに、より高速なPCを使用する方法があります。USB経由でのFPGAボードへの接続アプリなら動作確認もPCあるいはPC上の仮想PC上で行うことができます。ホストPCにPCIeスロットがある場合にはPCIeデバイスを使用したボード開発も行えるはずです。ただし、ターゲットデバイスはx86ではなくARMなので、最終的にRasipberry Pi上でアプリケーションをコンパイルする必要があります。またドライバもPC用はx64/x86用、ターゲットはARM用を用意する必要があります。それでもPC上でおよその開発がおこなえるのは大変メリットがあります。ここではRaspberryPi公式サイトで公開されいてるx64/x86用のRasipberry Pi OS (bullseye)をWindowsPC上の仮想PCにインストールする手順を説明します

1) ISO イメージのダウンロード

RaspberryPiの公式サイトから、Raspberry Pi desktop (for PC and Mac) のISOイメージをダウンロードします。32bit版のみです。64bit版が必要な場合にはUbunthを使用してください。

Raspberry Pi Desktop 32bit
https://www.raspberrypi.com/software/raspberry-pi-desktop/



2) 仮想PCへのインストール

仮想PCを作成するのにVMWare Playerを使用します。ほかの仮想PCソフトウェアでも基本的に同じはずです。



新しい仮想マシンウイザードで1)でダウンロードした2022-07-01-raspios_bullseye-i386.isoを指定します。




ゲストOSの選択はLinux / その他の Linux 5.x以降のカーネルを指定します。



仮想PCの名前と保存場所を指定します。



ストレージの容量はRaspberyPi4B/ComputeModule4最大の32GBとします。



ハードウェアは4コア、メモリ4GB、USB3.1を指定します。Smart-USB Sigmaシリーズと最大パフォーマンスで接続するにはUSB3.xが必要です。





ハードウェアの設定が完了したらインストールに進みます。











GRUBのインストール先は/dev/sdaを指定します。





インストールが終了し、再起動すると初回起動画面で言語を選択します。ユーザー名とパスワードを入力。日本語をインストールした後、再度再起動します。ソフトウェアのアップデートはあとからでも構いません。






ここで一旦仮想PCのゲストOSをシャットダウンします。
Smart-USBシリーズをUSBケーブルで接続してもゲストOSで認識できない場合には、作成した仮想PCのインストールフォルダ以下の.vmxファイルに下記の1行を追加してください。

usb.restrictions.defaultAllow = "TRUE"

3) OSを最新の状態にする

下記のコマンドをターミナルから順次入力しOSを最新の状態にします。Ubunth20.04は最新の開発中バージョンではないので頻繁に更新はされません。

$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
$ sudo apt update
$ sudo apt upgrade
$ sudo reboot





4) VMWareToolsのインストール

ホストOSのウインドウサイズとゲストOSの画面サイズとの連携、マウスカーソルのスムースな移動、クリップボードを利用したホストOS/ゲストOS間のCut&Paste、等仮想PCを使用するために便利な機能をインストールします。ゲストOSでGUIを使用している場合、VMWareのウインドウに表示されるvm-ware-toolsではなく、open-vm-tools-desktopをインストールします。

$ sudo apt install open-vm-tools-desktop
$ sudo reboot




5) libusb1.0の開発用パッケージのインストール

USBにアクセスするにはlibusbライブラリが必要です。libusbは0.1と1.0があり、それぞれ互換性はありません。RaspberryPiOSでは1.0がインストールされています。プライムシステムズ社のライブラリはlibusbの1.0を使用します。インストールされているバージョンを確認するには下記のコマンドを入力します。

$dpkg -l libusb-1.0*



RefAppQtを実行するだけなら、開発用パッケージは必要ありません。ここまでのインストールでストレージの使用量は14.4GB程度になります。Qt5でアプリケーションを作成したり、変更して再ビルドする場合には開発用パッケージが必要になります。

$ sudo apt-get install libusb-1.0-0-dev
$ sudo apt-get install libudev-dev libudev1

6) USBデバイスのアクセス権の設定

新しいUSBデバイスが接続された場合、通常はOSかドライバがそれらにアクセスして必要なサービスを提供しますので、特権ユーザーのみにアクセス権があります。しかし、FPGAボード等のユーザー独自のハードウェアが接続された場合にはアプリケーションから直接アクセスしたいことになります。この場合、プログラムはユーザー権限で実行されますので、そのままではユーザープログラムUSBデバイスにアクセスできません。



USBデバイスにはそれぞれベンダーIDやデバイスIDが割り当てられており、/etc/udev/rules.d/*.rules ファイルを作成することで特定のデバイスが接続された時に、アクセス権限を指定することができます。

/etc/udev/rules.d/prime_systems.rules ファイルを作成します (ファイル名は.rulesで終わる必要があります)

$sudo vi /etc/udev/rules.d/prime_systems.rules

ファイルの中身は以下のようにします

SUBSYSTEM=="usb", ATTRS{idVendor}=="0a2f", MODE="0666"
SUBSYSTEM=="usb_device", ATTRS{idVendor}=="0a2f", MODE="0666"




下記のコマンドを入力して変更を有効にします。Smart-USBデバイスをいったん外して、再度接続して書込み属性が有効になっていることを確認します。

$ sudo udevadm control --reload-rules

$ ls -l /dev/bus/usb/00*
crw-rw-rw- 1 root root 189, 386 6月 2 19:00 003 (otherが書込み可になっていればOK)





これでPrimeSystems社製のSmart-USBシリーズが接続された場合にユーザーモードからアクセスできるようになります

7) Qt5.15/QtDesignerのインストール

LinuxでGUIアプリケーションを開発するにはQtを用います。WindowsのC#/WPFアプリケーションを移植できる方法も探してみたのですが、GUIレベルで使えるものは現在はなさそうです。Qtでのアプリケーションの作成方法はC#/WPFとはずいぶん違うようです。ぱっと見はWPFとQtDesignderでのGUIでのデザイン手法は似ていますが、似ているのはそこまでで、あとは共通なのはイベントドリブンであることぐらいです。またQtはC++であって、C#ではありません。とにかく他の方法はありませんので、QtでGUIアプリケーションを作れるようになるしかなさそうです。まずは、Qtをインストールしていきます。現在のQtの最新版は6.5ですが、安定している5.15LTSを使用することにします。

まずは次の1行を/etc/apt/sources.listに開発ソースを入力します。

deb-src http://raspbian.raspberrypi.org/raspbian/ bullseye main contrib non-free rpi





$ sudo apt update
$ sudo reboot






再起動後さらに続けます。

$ sudo apt build-dep qt5-qmake
$ sudo apt build-dep libqt5gui5
$ sudo apt build-dep libqt5webengine-data
$ sudo apt build-dep libqt5webkit5
$ sudo apt install libudev-dev libinput-dev libts-dev libxcb-xinerama0-dev libxcb-xinerama0 gdbserver
$ sudo apt install build-essential git qttools5-dev-tools libqt5gui5 qtmultimedia5-dev libqt5multimediawidgets5 libqt5network5 libqt5svg5-dev libqt5x11extras5-dev libxcb-icccm4-dev libxcb-ewmh-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-util0-dev libxcomposite-dev libxdamage-dev libxrender-dev libxcb-image0-dev libxcb-screensaver0-dev qtdeclarative5-dev fluxbox
$ sudo apt install qtbase5-examples qtbase5-doc-html qt5-doc qt5-doc-html
$ sudo apt install qtcreator





すべてのインストールコマンドを実行するとメニューからQt5デザイナを起動することができるようになっているはずです。




これでQt5の開発環境がインストールできました。この時点でのディスク使用料は14.7GBでした。仮想PCの場合にはこの時点のイメージを保存しておくことをお勧めします。なにかおかしくなった時に初期状態に戻すことができます。直接PCにインストールしたときにはバックアップツール等でバックアップを作成しておきましょう。

アクセスカウンター アクセスカウンター