備忘録

現在位置のナビ

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

説明

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

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'"

更新日

2023年9月21日 初出

2024年4月19日 追記


back button 雑記帳へ