ASRock B450Pro4 に無理矢理非対応NVMeSSDを繋ぐ

ASRockの一時期のマザーボードのM.2は、設計不良により一部のNVMe接続のM.2 SSDが認識不良を起こします。

先日私が秋葉原で衝動買いしたLexarのNM710も正にその一枚です。

https://www.asrock.com/support/qa/Not%20Compatible%20Storage%20Device.pdf

非公式pdfで名指しされてるマザーボードは

Fatal1ty AB350 Pro4 / AB350 Gaming K4

B450 Pro4 / Fatal1ty B450 Gaming K4

X370 Pro4

これ以外にも認識不良を起こすマザーボードがあるとは言われてますがウチで使ってるのはB450 Pro4だけなので割愛。

表面の冷却パッドはヒートシンク取り付けにあたって剥がしました

裏面にパーツナンバーやシリアルナンバーなどが記されたラベルが貼られています

ヒートシンクを熱伝導テープで貼り付けてます

コントローラのところが一段低く、テープを3枚重ねて厚さを増してヒートシンクと接触させています

とりあえずこの状態でB450 Pro4のM.2_2に取り付けたところ、BIOSの

Advanced – Storage Configuration – NVMe Configuration のページはスッカラカン

確かに認識していません

ここから先は完全にマザーボードやNVMeの保証が受けられなくなる改造を施します

内容は調べればすぐ見つかる内容なので、ここでは割愛します

改造処置を施してB450 Pro4のM.2_2に接続して起動したところ、無事認識

最近のNVMe SSDでは大手メーカー製でこの手の認識不良が起こりますし、ASRockが公表していないモデルでも、挿してみないと解らない という博打になってます

NVMe自体も、WDのNVMeがビミョーに変な動作する報告が上がってきてますし、情報収集は大事

(私としては、昔みたく動くか動かないか解らないパーツを、挿して祈れ、と動かしていた懐かしい時代がまた戻ってきたなあと感じてますが)

YAMAHA TX802のリプレース

YAMAHAのFM音源シンセサイザTX802

YAMAHAのWebサイトには旧製品かつ相当昔の製品なのに製品情報があったりします。

TX802

https://jp.yamaha.com/products/music_production/synthesizers/tx802/index.html

FM音源大好きな私は、20年ほど前にYahoo!オークションで入手し、以後ちょこちょこと愛用してまいりましたが、さすがに製造年数が30年も超えてきてるので、一大改修することにしました。

今回手を入れるのは電源回路部分と、アナログオーディオ出力部分です。

なお20年前に入手したのち、オペアンプを072からLF412、4558をTI NE5532Pに交換してありました。

たぶんその時にカップリングコンデンサも東信工業(TK)の電解コンに換えていたと思います。

CR2032もタブ付きの元から付いていた物からソケットに変更。

まずは電源部分。

平滑用の電解コンデンサを交換。

東信の低ESR電解コンUTWRZに。

ACの入力ケーブルはVCTFK 0.75SQで代用中。

電源のACラインにTDKラムダのEMCフィルタも追加してみます。

メイン基板のコンデンサ類も交換します。

各ICのデカップリングコンデンサとして付いているセラコンも昔ながらの円盤状のから積層セラミックへ。

オーディオ出力部のカップリングコンデンサとして付いている両極性電解コンデンサもTKの4.7uFからニチコンMUSE ES 10uFに交換。

他、諸々付いてる電解コンも全てニチコンKAに交換。

オペアンプ回りについているフィルムコンデンサとマイラコンデンサはそのままです。

オペアンプですが、ほぼ同じ構成で作られているであろうTX81Zでオペアンプをいくつか試した結果、LF412とNJM2114DDの構成で落ち着いたのでその構成を踏襲します。

20年前の交換時にICソケット化していたので、そこはTI5532PをNJM2114DDに差し替えるだけに。

ヘッドフォンアウト部分のオペアンプは使う事もないので昔交換したNJM5532DDのままに。

ヘッドフォン回路のカップリングコンデンサは大きめのをつけておきます。

(当時下手くそだったので裏面のハンダ付けでパターン一箇所めくってしまったのでジャンパしてあるのはご愛嬌)

オーディオジャック基板も、電解コンをMUSE ESにすると共に、抵抗をVishay/DALE RN55の金属皮膜抵抗に、パスコンも積セラに置き換えます。

各端子についているトランジスタは2SC2878。ミュート用トランジスタという珍しいタイプ。これはそのままです。

とりあえずトランジスタ以外を全部抜いて、新しい部品を装着。

一通り交換してこのような感じに。

要所要所で組み換えては電源入れてMIDI繋いで発音してというのを試してましたが、都度パラメータがシッチャカメッチャカになってしまい、最初は壊してしまったかな?って思うくらいMIDIのノートを受け入れてくれませんでした。

いくらキー叩いても音が鳴らないw

コントローラ替わりに使ってたMicroKORGがMIDIノートナンバー送れてないのかと送出先をTX81Zにつなぎ替えてみたら音が鳴る。

ちゃんとノートナンバーは送れてる。

試行錯誤した結果、TX802のMIDI入力の設定を使える範囲に設定し直すことできちんと鳴るようになりました。

TX802ではMIDIの受け付けるノートを偶数音毎や奇数音毎にしたり、下限・上限を設けたり、音律を変更することが出来ます。

なので、上限が凄く下の方にアサインされてしまってたり、逆に下限が上の方にアサインされてしまっていると、そりゃいくらMIDIでノートナンバー送っても音が鳴りません。

ノートリミットをC0からB8まで、平均律(プリセットP01)、ノートシフトとデチューンもとりあえず0に。

マスターチューニングの値なんて+63になってましたから思わず苦笑。

プリセット音色で全てのチャンネルで音が鳴るのでホッとします。

一通り終えて、出てくる音にまず感動。

凄い音圧とダイレクト感。サーッとうっすら鳴っていたホワイトノイズも一切無し。

これであと30年戦える・・・!

フロントエンド部のスイッチ類がチャタリングやガタがきてるのでこの辺も追々換えてあげたいですね。

あと、調べてると液晶パネルも綺麗ないいやつが出回っているので、換えてみたいですね。

お役御免の受動素子たち。

中華製のマルチテスターで当たってみましたが、電解コンデンサの容量抜けは一つも有りませんでした。びっくり。

NE5532Pは導電スポンジに差し込んで予備役に。

[アマチュア無線]移動運用のバッテリー

移動時のハンディ運用として、ハンディ機にはバッテリがそもそも搭載されていますが、外部電源を別途使いたい場合があります。

純正バッテリは高いし、乾電池運用はコスパが悪い。

単三形充電池を使えば良いという選択肢もありますが、私が使っているFT-60は6本必要。

CQオームなどではUSB PD12V対応のケーブルが売っていますが、そもそもPD12V対応のモバイルバッテリが選択肢として少ない。

そして、東京マルイの電動ガン用に持っているタミヤ互換バッテリーが2本有ります。

ということで、タミヤ端子を経由してFT-60へ給電できるケーブルを作成。

途中にデジタルの電圧計を挟めるように中継ケーブルも作成。

なおバッテリーは今は販売されていない懐かしのニッケル・カドミウムバッテリーです。

容量は1500mAhなので純正バッテリの7.2V1400mAHとどっこいどっこい。そして重い。

今やこのサイズのタミヤ互換バッテリは2000~4000mAhの容量を持っている物が殆どなので、タミヤ端子ケーブルさえ作っておけばいくらでも流用が出来ます。

そして、こういうケーブルも作ってみます。

タミヤ互換バッテリを2個直列可能な変換ケーブルです。

手持ちの8.4Vバッテリでは直列だと16.8Vとなってしまい、一般的な無線機の入力電圧を超過してしまいますが、7.2Vを直列にすると14.4Vになります。

私は所有していませんが、ICOM IC-705では内蔵バッテリ運用では出力が5Wに押さえられたりしますが、この直列ケーブルのようなケーブルを使い14.4Vをインプットできれば最大送信出力を10Wまで上げることができるようになります。

長時間運用したい場合は7.2Vでバッテリを入替ながら、高出力で運用したい場合は7.2V直列で14.4Vという使い分けができそうです。

CentOS stream 8 にRTL8125Bのドライバを入れようとする

環境は我が家のファイルサーバ CentOS Stream 8

そこに入れるのはRealtek製2.5GbEコントローラRTL8125Bのドライバですが
オフィシャルサイトでソースコードで公開されています。

今日の時点では

2.5G Ethernet LINUX driver r8125 for kernel up to 5.6 9.007.01 2021/11/17

ということでこれをダウンロードしてtar.bz2のアーカイブを展開

出てきたソースをとりあえずautorunかけると失敗する。

ログ出す為にsrcでmakeかけると

[rance@ruriko src]$ make

CC: cc
CCVERSION: 8
KERNEL_GCC_VERSION: 8.5.0
KVER: 4.18.0-310.el8.x86_64
KMAJ: 4
KMIN: 18
KREV: 0
BASEDIR: /lib/modules/4.18.0-310.el8.x86_64
DRIVERDIR: /lib/modules/4.18.0-310.el8.x86_64/kernel/drivers/net/ethernet/realtek
PWD: /home/rance/www/rpm/driver/r8125-9.007.01/src
RTKDIR: kernel/drivers/net/ethernet/realtek

make -C /lib/modules/4.18.0-310.el8.x86_64/build M=/home/rance/www/rpm/driver/r8125-9.007.01/src clean
make[1]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ に入ります
make[1]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ から出ます
make -C /lib/modules/4.18.0-310.el8.x86_64/build M=/home/rance/www/rpm/driver/r8125-9.007.01/src modules
make[1]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ に入ります
CC [M] /home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.o
/home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.c:62:10: 致命的エラー: linux/pci-aspm.h: そのようなファイルやディレクト
リはありません
#include
^~~~~~
コンパイルを停止しました。
make[2]: *** [scripts/Makefile.build:316: /home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.o] エラー 1
make[1]: *** [Makefile:1569: module/home/rance/www/rpm/driver/r8125-9.007.01/src] エラー 2
make[1]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ から出ます
make: *** [Makefile:176: modules] エラー 2

ということで、linux/pci-aspm.hが無いという事でエラー

これは今のカーネルVerでは削除されたヘッダファイルなので存在しません。

r8125_n_cファイルを開いて見てみますと

   60 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
   61 #if LINUX_VERSION_CODE < KERNEL_VERSION(5,4,0)
   62 #include <linux/pci-aspm.h>
   63 #endif
   64 #endif

 

どうもカーネルバージョンナンバーでヨシとするかダメとするかの構文で4.18が上手く拾えてないようだ。

   61 #if LINUX_VERSION_CODE < KERNEL_VERSION(4,4,0)

に書き換え

 

さらにこれでmakeかけると

 

[rance@ruriko r8125-9.007.01]$ make
make -C src/ clean
make[1]: ディレクトリ ‘/home/rance/www/rpm/driver/r8125-9.007.01/src’ に入ります
make -C /lib/modules/4.18.0-310.el8.x86_64/build M=/home/rance/www/rpm/driver/r8125-9.007.01/src clean
make[2]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ に入ります
make[2]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ から出ます
make[1]: ディレクトリ ‘/home/rance/www/rpm/driver/r8125-9.007.01/src’ から出ます
make -C src/ modules
make[1]: ディレクトリ ‘/home/rance/www/rpm/driver/r8125-9.007.01/src’ に入ります
make -C /lib/modules/4.18.0-310.el8.x86_64/build M=/home/rance/www/rpm/driver/r8125-9.007.01/src modules
make[2]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ に入ります
  CC [M]  /home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.o
/home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.c:12081:31: エラー: initialization of ‘void (*)(struct net_device *, un
signed int)’ from incompatible pointer type ‘void (*)(struct net_device *)’ [-Werror=incompatible-pointer-types]
         .ndo_tx_timeout     = rtl8125_tx_timeout,
                               ^~~~~~~~~~~~~~~~~~
/home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.c:12081:31: 備考: (‘rtl8125_netdev_ops.xe7x84xa1xe5x90x8d>.ndo_tx
_timeout’ 用の初期化付近)
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:316: /home/rance/www/rpm/driver/r8125-9.007.01/src/r8125_n.o] エラー 1
make[2]: *** [Makefile:1569: _module_/home/rance/www/rpm/driver/r8125-9.007.01/src] エラー 2
make[2]: ディレクトリ ‘/usr/src/kernels/4.18.0-310.el8.x86_64’ から出ます
make[1]: *** [Makefile:176: modules] エラー 2
make[1]: ディレクトリ ‘/home/rance/www/rpm/driver/r8125-9.007.01/src’ から出ます
make: *** [Makefile:41: modules] エラー 2

 

相変わらずエラー

該当文字列の処理を行ってるところで同じようにバージョン違いで

 

  338 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)
  339 static void rtl8125_tx_timeout(struct net_device *dev, unsigned int txqueue);
  340 #else
  341 static void rtl8125_tx_timeout(struct net_device *dev);
  342 #endif

13964 #if LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0)
13965 static void
13966 rtl8125_tx_timeout(struct net_device *dev, unsigned int txqueue)
13967 #else
13968 static void
13969 rtl8125_tx_timeout(struct net_device *dev)
13970 #endif   このあたりを   338 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)
13964 #if LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)

 

に書きかえて見る。

 

[rance@ruriko r8125-9.007.01]$ sudo ./autorun.sh
[sudo] rance のパスワード:

Check old driver and unload it.
Build the module and install
At main.c:160:
– SSL error:02001002:system library:fopen:No such file or directory: crypto/bio/bss_file.c:69
– SSL error:2006D080:BIO routines:BIO_new_file:no such file: crypto/bio/bss_file.c:76
sign-file: certs/signing_key.pem: No such file or directory
DEPMOD 4.18.0-310.el8.x86_64
load module r8125
Completed.

 

と、通ったようだ。

 

ドライバーソースのautorun.shをsudoに続いて発行するとドライバを適正位置まで配置してくれます。

 

[rance@ruriko r8168-8.049.02]$ ls /usr/lib/modules/4.18.0-310.el8.x86_64/kernel/drivers/net/ethernet/realtek/
8139cp.ko.xz  8139too.ko.xz  r8125.ko  r8169.ko.xz

 

r8169に8125が内包されてるようなのでのちほど除去

 

 

MENU
PAGE TOP