備忘録

現在位置のナビ

トップコンピュータの国雑記帳 → 備忘録

説明

自宅でパソコンなどを使っていてトラブった時の対策を記録しておきます。

1. トラブル 自分でオーサリングしたDVDをkodiで再生できない

Linuxディストリビューションのkodiではなくて、https://kodi.tvサイトからダウンロードすれば対応しています。

2. トラブル xosviewをインストールしたけど 7x13bold フォントがなくて落ちてしまう

xfonts-base パッケージをインストールして、X windowを再起動します。

3. Raspberry PiでI2Sを使う

/boot/config.txtファイルを次のように編集します。

  1. #dtparam=i2s=on
    のコメントを外す
  2. dtparam=audio=on
    をコメントアウトする
  3. dtoverlay=hifiberry-dac
    の行を追加する

4. Lattice社のFPGA MachXO3をLinuxからコンフィグレーションする

diamondコマンドをインストールする

  1. Lattice社のサイトにアカウントを登録する
  2. Lattice Diamond設計ソフトウェアから Lattice Diamondをダウンロードする(Linux版あり)
  3. ダウンロードしたパッケージがRPMなので、Alienをインストールする
  4. AlienでRPMパッケージをインストールする
  5. /usr/local/diamond/3.10_x64/*/*tar.tzを展開する。 /usr/local/diamond/3.10_x64/bin/lin64にシェルの実行パスを通す
  6. Lattice社のサイトで無料ノードライセンスを発行する。EthernetインタフェースのMACアドレスが必要になる。 登録したメールアドレスにライセンスファイルが届くので、/usr/local/diamond/3.10_x64/license/に置く。 他の場所に置いても読み込んでくれるようなふりはするけど、読み込んでくれない
  7. /usr/local/diamond/3.10_x64/bin/lin64/diamondの初回起動時にライセンスファイルの場所をきかれる
  8. Mach XO3L Starter Kitのサンプルプロジェクトは こちらからダウンロードできる

diamondコマンドを使う

  1. ProcessウィンドウのProcessタブを選択し、『JEDEC file』にチェックを入れて全部『rerun』する

programmerを使う

  1. archlinuxのサイトを参考にudevの設定をする。 /etc/udev/rules.d/51-lattice.rulesファイルを作って以下を書き込む。
    SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1134", ATTRS{idProduct}=="8001", MODE=="0660", GROUP=="username:x:1000:", SYMLINK+="lattice-%n"
    SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE=="0666", GROUP=="username:x:1000:", SYMLINK+="ftdi-%n"
    SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", RUN+="/bin/sh -c 'basename %p > /sys/bus/usb/drivers/ftdi_sio/unbind'"
    username:x:1000のところは、diamondを使用するユーザーに合わせてIDとグループIDを変更する

コンフィグレーションを書き込めるところまで来た…と思う。

Crescentに重要な情報を発見。 MachXO3L Starter Kitは、NVCMという書き込み回数の少ないROMを使っているため、フラッシュROMの感覚で何度も書き換えることができないそう。 何度も書き換える場合は、MachXO3LF Starter Kitを使うべし。 先に言ってよ。

さらに調べてみると、MachXO3L Starter Kitに乗っているFPGAチップにはNVCMを内蔵しているけど、外付けでSPI Flash ROMを搭載。 SPI Flash ROMを何度も書き換えてテストすればよい。

ProgrammerでSPI Flash ROMを書き換えるには、まずSRAMをEraseしてから、SPI Flash ROMに書き込む。 SRAMをEraseするときの設定は、以下。

SPI Flash ROMに書き込むときの設定は、以下。

2024年3月9日追記

diamondのVerilog HDLでは、レジスタ線を含むモジュールを1個定義して、同じモジュールを2個以上使うと、うまく働きません。 異なるモジュール間でレジスタ線を勝手に共有してしまいます。

2024年4月19日追記

Linux をアップデートすると、プログラマーを起動するときに"drivers were not detected" というエラーが出ることがある。 udev のルールを次のように書き換えるとよい。

SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="1134", ATTRS{idProduct}=="8001", MODE=="0660", GROUP=="username:x:1000:", SYMLINK+="lattice-%n"
SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE=="0666", GROUP=="username:x:1000:", SYMLINK+="ftdi-%n"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", RUN+="/bin/sh -c 'basename %p:1.0 > /sys/bus/usb/drivers/ftdi_sio/unbind'"

2024年10月28日追記

udevのルールを書き換えた後、有効化する手順。

sudo udevadm control --reload-rules

5. Sipeed の Tang Nano 4k をLinuxからコンフィグレーションする

Tang Nano 4kをコンフィグレーションするとき、GW IDE 1.10.02付属のプログラマーだと「このデバイスはGW1NSR-4だよ」とエラーメッセージを出します。 GW1NSR-4Cを正しく認識してくれません。 GW IDE 1.9.9 付属のプログラマーだと書き込みできました。 書き込んだ内容が正しいかどうかは、まだ確認できていません。

2024年11月9日追記

Linuxの openFPGALoader v0.12.1 で書き込めました。

6. YamahaのAVアンプ DSP-AX1900 が落ちる

HDMI経由でパソコン出力をDSP-AX1900につないでいるとき、再生する動画によってアンプの電源が落ちることがありました。 試行錯誤した結果、メインボリュームを下げることで解決しました。 音声のオーバーフローで、変な領域をアクセスしていたのかな?

7. Sipeed の Tang Nano 9k をコンフィグレーションする

Tang Nano 9kをコンフィグレーションするとき、GW IDE 1.10.02付属のプログラマーだとSRAMには書き込めるのですが、Flash ROMに書き込めません。 Linux の openFPGALoader v0.12.1 で書き込めました。

GoWinのサポートによると、GW IDE 1.10.02付属のプログラマーにバグがあるそうです。 「古いバージョンのプログラマーを使え」と言われました。

udevのルールは、MACH XO3の時と同じ設定でいけます。

8. USB Blasterのニセモノ

Altera(一時Intel)のFPGAをコンフィグレーションするには、USB BlasterなどのJTAGを使います。 このUSB Blasterはニセモノが出回っているようです。

CQ出版社『インターフェース2024年10月号』付録の『FPGAマガジン特別版No.3』の39ページに3種類のニセモノの写真が並んでいて、動作しないニセモノについて書いてありました。

Webmasterが先日購入したのも動かないニセモノだったので、買い直しました。

更新日

2023年9月21日 初出

2024年11月19日 追記


back button 雑記帳へ