ここでの前提条件
VirtualBox 6.1 に lubuntu-16.04.6-desktop-amd64.iso で、Lubuntu 16.04.6 の 64bit版をインストールした直後から実施した内容をメモ。
試行錯誤した時の教訓
ソフトウェアが英語ベースだからといって、調子に乗って(?)インストールも英語のままにしておくと、タイムゾーン、キーボード、文字入力など諸々で面倒な事になるので、日本語ベースでセットアップしてしまった方が結局楽だった。
VirtualBox側の不具合なのかLubuntu側の不具合なのかは不明だが、VirtualBox側のデフォルトの USB2.0コントローラ から USB3.0コントローラ に切り替えておかないと、USBデバイスが突然行方不明になる事象に悩まされ事になる。
USBBlaster自体は認識するが、FPGA を識別できない事象が起きた。
色々情報を探したところ、結局、激安 USB Blaster 側に根本の原因があった。(Windows版では認識したので物理故障ではないことが判明したので色々調べた結果、Windows版とLinux版では jtagd の初期化シーケンスが少し違っていることが影響しているらしい)
VirtualBoxの Guest Additions を入れるための準備
sudo apt update
sudo apt install -y dkms
sudo apt upgrade -y
reboot
*** 再起動後にログインして、VirtualBox側のメニューの「Devices > Insert Guest Additions CD images..」にて CD をマウントする ***
sudo /media/ユーザー名/VBox_GAs_6.1.38/VBloxLinuxAdditions.run
reboot
*** Shared Folders と Shared Clipboard の設定をする ***
気を付けるポイント
インストーラ自体が32bitバイナリなので、64bit版のOSに入れる場合にも 32ビットサポートが必須。
64bit版OSで32bit版バイナリを動かす準備
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libxft2:i386 libxext6:i386 libncurses5:i386
インストーラの取得・解凍
・・・省略・・・
インストール
./setup.sh
初回起動時に選択すべき項目
「Run the Quartus II software」を指定する
設定必須の環境変数
export PATH=$PATH:~/altera/13.0sp1/quartus/bin
必要な設定
以下の内容で /etc/udev/rules.d/51-usbblaster.rules を作る
SUBSYSTEM=="usb", ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="0666"
上記のファイルを作った後で、一旦 USB Blaster を Linuxから 抜いた状態にして下記のコマンドを実行し、その後、再びUSB Blasterを Linuxへ接続する。
sudo udevadm control --reload
これをやらないと「Insufficient port permissions」とか「Unable to scan device chain. Please check the hardware setup.」になる。
Linux で 激安 USBBlaster を使えるようにするおまじない
おまじないの前に対象を確認しておく。
~$ md5sum altera/13.0sp1/quartus/linux64/jtagd
2742cd1122c2b1014036fdfd8225074c altera/13.0sp1/quartus/linux64/jtagd
バイナリモードでエディタを開く。
~$ vi -b altera/13.0sp1/quartus/linux64/jtagd
:%!xxd
でダンプ表示に変える。
< 00012d70: 0000 00e8 f003 ffff 89c2 b800 0000 0085
---
> 00012d70: 0000 0090 9090 9090 89c2 b800 0000 0085
:%!xxd -r
でバイナリに戻してから保存。
~$ md5sum altera/13.0sp1/quartus/linux64/jtagd
f3a0a4ccdfdfdb4c143c126b7070f7a0 altera/13.0sp1/quartus/linux64/jtagd
出来上がり。
確認
~$ jtagconfig
1) USB-Blaster [1-2]
020B10DD EP2C5
よし!
~$ quartus --64bit
メニューの Tools > Programmer で Programmerの設定画面出して、
Hardware setup... > Hardware Settings タブ で USB Blaster をダブルクリックして選択状態にしてから Close。
Auto Detect を押下して EP2C5 を発見すれば完璧!