備忘録

現在位置のナビ

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

説明

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

Raspberry Pi

Raspberry PiでI2Sを使う

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

2025年2月10日追記

最新のOSでは/boot/config.txtファイルが/boot/firmware/config.txtに移動したようです。

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

Raspberry PiでハードウェアI2Cを使う

以下の手順を踏みます。

  1. raspi-config を実行しI2Cを有効化する
  2. ユーザーが I2C グループに入っていることを確認する。 入っていなければ /etc/group をエディットする
  3. /dev/i2c-1 をopen() し、ioctl()する

FPGA

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個以上使うと、うまく働きません。 異なるモジュール間でレジスタ線を勝手に共有してしまいます。 解決しました。Verilog HDLが間違っていました。

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

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 で書き込めました。


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の時と同じ設定でいけます。


Ubuntu 24.04LTS で Gowin のIDEがエラーになるとき

./gw_ide: symbol lookup error: /lib64/libfontconfig.so.1: undefined symbol: FT_Done_MM_Var

このエラーが出るときの対処方法です。 シェルで以下のコマンドを実行します。

$ mv GowinEDA1.10.02/IDE/lib/libfreetype.so.6 GowinEDA1.10.02/IDE/lib/libfreetype.so.6.NG
$ ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so.6 GowinEDA1.10.02/IDE/lib/

USB Blasterのニセモノ

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

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

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


Altera FPGAに書き込む順序

  1. USB BLASTERをターゲット基板に接続する
  2. USB BLASTERをホストに接続する
  3. quartusを起動する
  4. ターゲット基板に電源を供給する
  5. コンフィグレーションの準備をしてプログラマーを起動する
  6. 書き込む
  7. やり直すなら、コンフィグレーションの準備に戻る

Windows

Windows10 でtrimが有効かどうか確認する方法

Trim の状態を調べるには、このコマンドを実行します。

fsutil behavior query DisableDeleteNotify

Trim の状態を有効に設定するには、このコマンドを実行します。

fsutil behavior set DisableDeleteNotify 0

Trimを無効にしたい時は、先のコマンドの引数0を1に変えます。

Linux

自分でオーサリングしたDVDをkodiで再生できない

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


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

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


Ubuntu Linux 24.04 LTSからUbuntuの日本語パッケージがなくなった対応

Ubuntu本家サイトから国際化イメージをインストールして、OSが起動した後に次のコマンドを実行する。

$ sudo wget https://www.ubuntulinux.jp/sources.list.d/noble.sources -O /etc/apt/sources.list.d/ubuntu-ja.sources
$ sudo apt -U upgrade
$ sudo apt install ubuntu-defaults-ja

その他

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

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

更新日

2023年9月21日 初出

2025年7月22日 追記


back button 雑記帳へ