2023年1月4日水曜日

Windows11にupgrade

Dual bootでハマるまえから、さすがにE-450でWindows10はキビシー。Windows10が最後のナンバリングwindowsじゃなかったのかよと思いつつ、ならWindows11にできるハードを…と思って、とうとうアマゾンのセールで、Ryzen5/5500とA520に16GのRAMを調達しました。正確には、A520はその価格では欠品していて、入荷未定、だったんですが、2週間ほど待って見て、結局ステータスに変更なく、キャンセルしてドスパラで調達。

ライセンスの移行

Windows、引っ越すべきか、それともイメージ使って再セットアップを試みるか?

仕事ではWindowsノートを使わざるを得ないので使いますが、それ以外はLinux、結果Windowsはエンドユーザー以外の何物でもないのですが、インストール済みのものを考え、HDD(SSDですが…)そのままマザーボード交換、で行ってみることにしました。日頃からそんなに使うわけじゃないんで、過剰っちゃ過剰なんですけど。

まずはE-450で稼働しているWindows10上で、ライセンスを購入して使っているアプリケーション類からすべてライセンスを引き上げます。Windowsライセンスは、これはWindows8からupgradeして使っているものですが、Microsoftアカウントを使っているので、一旦、ローカルアカウントに切り替えを行います。…、という詳しい説明をしてくれていたサイトがこちら

Scrap & build

Ryzen5 + A520をセットアップします。SSDをつないでやって起動してみると、アプリケーションを正しく起動できませんでした(0xc000007b)と言われる。mmc.exeがアプリケーションエラーを起こしているようで、DISM /Online /Cleanup-Image /RestoreHealth で修復して、立ち上がりました。必要なライセンス再セットアップしておしまい。やれやれ。でもどうしてそうなったかっていう原因はわっかんないままなんだよね…。

Windows11に…

これでハードウエア的にWindows11にも問題なく対応できてるよねーと思ってWindows Updateの状態を確認してみると、引き続き「このPCは現在(以下略)」。
あれれーと思い、windowshealthchecksetup.msiからチェックをかけてみると、セキュアブート対応してないことが問題だとわかる。
セキュアブートのためには、ブートにmbrではなくuefiを使う必要がある。
E-450が載っているE45M1-M自体はuefi biosを搭載しているはずで、dual bootをセットアップしたときもuefiを使っている認識だったんだが…と思いつつ確認してみるとgptではなくmbrになっているという。そういえば、パーティションタイプをgptでセットアップしようとしてたのに、なぜかできずmbrにしてた、ということを思い出した。

mbr2gpt

これが成立するにはプライマリパーティションが3つまでとかよくわからない制限がある。このディスクのパーティションは4つ全部使ってあって、一つは修復用のパーティションになっていました。usbメモリで回復ディスクを再作成しようとすると、「このPCでは回復ドライブを作成できません」???WindowsREがDisabledになっていたんだけどこれもよくわかんないなぁ…。だって回復ドライブ前は作れてたじゃん、とは思うものの、確かにWindows8セットアップ当初からあったか、それとも、WindowsREのためにあとからスペースを確保したのか、ちょっと記憶にない。どっちにしろ3つにしなければならないようなので、それに合わせるようパーティション調整。これでmbr2gpt実行してみると、最後にFailed to update ReAgent.xmlと言われる。これは、WindowsREが回復用に使うパーティションの設定の合わせこみをすることで対処。

BIOS変更 → Windows11

これでようやくセキュアブート可能に。

正常に立ち上がったようなので、ようやくWindows11に。

結構トラブルありましたね…もう少しあったような気もしますが、実施してからもう一ヶ月近く経過していることもあって、chromeの履歴から手繰れるだけ手繰ってみました。

Windows8からの持ち上げってのが、結構余計な条件を作っていたのかもしれない。回復ディスクを使って、様々再インストールしたほうが全然早かったかもしれません。

多彩なx86 CPUが存在していたXP時代には、同様、当初セットアップしたPCの故障などでハード変更を余儀なくされたときに、バイナリ互換問題に起因して、そもそも起動できないケースが存在していたことを思うと、楽になった、の、かもしれません(むしろMicrosoftのポリシーが、ハードウエアくくりつけからアカウントくくりつけに変わった- ということでよいのかな…- 、という方が大きいのかもしれませんが)。

後記

E-450は、Linuxを改めてセットアップしたんだけど、エコ設定だと、結構微妙なパフォーマンスだな、やっぱり。Rock64よりはそれでも速いようには思うんだけど、Raspi3でやってるレコーダーを移すほうが優先度は高いかもしれない。

2023年1月3日火曜日

BTヘッドホンのmicroB電源端子を修理してみる

 うちの家族は、いわゆる「インナーイヤータイプ」のヘッドホンと相性が悪いようで、なぜか密閉型、しかもスマホが変わってもプラグ形状の影響を受けないBTタイプを好んで使っているのだけど、概ね海外製で、プラ部品が割れてみたり、これは海外製には限らないけどUSB2.0 microBを給電端子として使っていたりして、ご存知の通りこいつはUSBケーブルもとへ電源ケーブル抜き差しの際に、こじったりすると、覿面に壊れる。

大抵はプラ部品を破壊してくれるんで、破壊した場所によって、ワイヤを埋め込んで溶着させてみたりする(当然見栄えは悪くなる、のだけども、だいたい自宅内でしか使ってないのでかんけいない)。

microBコネクタがほぼ破壊されたものが、まだ捨てられずに残っていたので、直してみる気になった。

ヘッドホンの各部構造については、オーディオテクニカさんのサイトへとリンクさせてもらいました。

構造を一通り見回してみて、スピーカーが収まっているハウジングに一緒にBT受信+PA、それに電池が入っていることは間違いないので、まずイヤーパッドを外せればなんとかなりそう。電源端子がついているのは左側で、右側に電源とボリュームがついていることから、そちらにBT一式が入っていると分析。なら左だけ分解できればことは足りそう、きっとはめ込みだろうと思って、合わせ目を探って外してみると、ひねると外せる構造となっていた。幸い、爪は破壊されなかったので、もとに戻せそう。
スピーカー部分は3本のネジでハウジングに止められているので、分解してみると、案の定受電用のmicroBと、リチウム二次電池、それと、右側のBT+PAと接続、以上をまとめて行う一枚基板となっていた。念の為、基板裏側の写真。これは、各部配線をこの基板から外し、後に戻すために撮影したものです。

問題のUSB microBの、挿入口だけが見えてます。

microBコネクタは今やアマゾンで手に入るのだけども、こいつには形状が複数あり、同じ形状じゃないとなかなか交換がうまく行かない。

基板を見ると、やはり電源だけ使用していて、USBデバイスとしては機能しないようだ。

もともと搭載されていたのは、おそらくこじり対策を兼ねている、コネクタハウジング自身を、PCBに貫通させはんだ付けができるタイプだった。勘合側電極部分はもう粉々になってしまっているので、到底これでは機能しない、ので取り外す。

手元にあったのは表面実装用のものだったので、まずはこれで交換を試してみたが、やはりハウジングのはんだ付けだけでは強度が足りず、microBオスを差し込んでみると剥がれてしまう(本来、広く取られる必要があるはんだ面積がほぼないので、そういうことが起こる、ことはわかっちゃいたんですが)。と、案の定そのときにコネクタパターンも壊れてしまった。実際問題、電源としてしか使われていないため、ちょっと面倒になっただけでそれ自体対策ができないものではない。

アマゾンに同一形状品があったのでオーダーしたのだけども、届いたのはなんとワニ口クリップと、どこをどう商品登録を誤ったのやらと即刻返品処置。まぁ、この手の業者が何を送ってきても、あんまり驚いちゃいけないのだけど、流石に今回はため息付きました…。結局、若干形状が異なる、他の表面実装品を、何度か購入させてもらっていて大丈夫だと思っている業者から手に入れ(リールカット品が届きました)、ハウジング貫通はんだ付け用のホールを利用して錫メッキ線を渡し、補強的な構造をとってみることにした。
一応、これで、「正確に」(笑)抜き差しする分にはなんとかなりそうなので、組み立て、USB電源をさして起動してみると、ちゃんと動作してくれました。まぁ、ガシガシやられたら、また壊れるのは間違いなさそうですが。

microBコネクタって、結構こじりに弱く、Type-Cが登場するとまたたく間に退場してるんじゃないかと思います。たいていはケーブル側がだめになるんですが、今回のように本体側(デバイス側)がだめになっているケースも少なからずあります。
SBCでも結構使われてますけど、そういうボードでは、できる限り拡張コネクタ側にある電源端子を使うようにしてます。そもそも、特にUSB2.0向けには1A以上供給できる必要もないので、ケーブルや、ACアダプタもほとんど1Aまでしか供給できないこともあり、小規模なボードじゃないと、挙動不審にすぐに陥りますんで。

2022年11月5日土曜日

Dual bootに はまるなんて

 特定のアプリケーション、特にマルチメディア関係のアプリを使うために、Windows10なPCが数台あるのだけども、そのうち使用頻度が高く、しかしもっとも遅いものだけ、ubuntuを別ディスクにインストールしデュアルブートにしてある。部屋の模様替えを含むちょっとした『家庭の事情』で、このPC、概ね2ヶ月ほど電源を入れる機会がなかった。

ようやく事態も落ち着いたので、では久しぶりに、と電源入れてubuntuを立ち上げ。
このPCは、一時、DLに関する調査の関係で、18.40である必要があったんですが、もう20.04でよくなったので、upgradeすることにする(しかしまだ22.04にはできない)。

そもそも、この18.04→20.04て結構手間取るので、終わったやれやれと再起動すると、grubが、"grub_file_filters not found"と言ってくるで、あぁそうそう、自ディスクだけじゃなくてどっちでも起動しやすいようにwindows側もgrub動かしてたんだっけ、と、grub-install、update-grubして、ubuntuはOKOK。
やおらWindows10を立ち上げようとすると、まったく立ち上がらない。最初、窓ガ出て白点の『ぐるぐる』、暗転してマウスカーソルの青い『ぐるぐる』のままでまったくログインが立ち上がらない。

さて…。今までの経験から、犯人はgrubを再インストールしたことにあるんだが…と思い、回復ディスクで起動してbootrec /fixmbrしても解決しない。bootrec /scanosすると、「Windowsのインストールとして認識された合計数:0」と言われる。これに関して調べてみると、大抵、bootrec /rebuildbcdで解決する、で終わってる。それやって再起動してもなぁんも解決してない。
さぁ、どうしたもんかなぁ、もう一日以上費やしてるし、再インストールが頭をよぎるけど、決定打はここでした!最終的にはMicrosoft JPのお世話になった、ということですね…。

uefiになる前は、LinuxとWindowsのデュアルブートなんて長らくやってきて、再起動面倒なのでvmwareだなんだーってやっていたのに。今ではWSL2という手段もあり得るとはいえ、こんなところで引っかかるなんて…。
復旧が都度都度面倒なので、Windowsサイドのディスクには、grub入れんのもうやめよー。

なお、このPC、E-450なので、言うまでもなくWindows10も重たく、到底11対象外でもあるので、更新考えないといかんです。一時、11 upgradeは10月5日までか??という情報が流れてだいぶ焦りましたが、そうだな、Ryzen5/4500が安くて乗り換えやすいかもなーと思う今日この頃。

2022年10月15日土曜日

ESP32でBTスピーカー、そして。

先週は、pcm5102からの出力が、ステレオミニプラグだけで…と言うところで終わってました。発注していたステレオミニプラグが届きましたので今週はその続き。

オーディオって、昔は真空管アンプとか作りはしてましたけど、そこから置き去りにされているので、5V単一で動いて安くて、ということでD級アンプなんて買っちまったのでハマるとは…。

さて、pam8403の入力側にプラグをつけて、pcm5102にさしてみるとプツプツプツプツ言ってる件。これなんだったかってぇとおマヌケなことに、GND配線を誤っていたからでした。とっても恥ずかしいお話m(_ _)m。


D級アンプって、以前、仕事の関係で、同僚が扱っていたことはあれど私自身はまったく触る機会がなく、なんだか判ってません。しかももう20年くらい前ですかねぇ…。
今回使うスピーカーは、PCにつないで使っていた関係で、これがまたステレオミニプラグになってます。ふつーに、アンプって言えばマイナスコモンでスピーカーにつなげりゃ音出るでしょ、って、大抵思うでしょ? しかしD級アンプはそうはいかんかったんですよ。


なぁんとなく、マイナスコモンじゃないんですよーって話があったな…と、遠い記憶にはありつつ、どうgoogleにお伺い立てたら良いかも思いつかぬままキーワードを試すも結論でず、まぁ、ヘッドホンアンプみたいにマイナスコモンのステレオミニプラグでOKでしょ?と思い込んだのが運の尽き。

pcm5102の出力を、普通のアンプに食わせてみると問題なく鳴る、それも結構クリアに。おー、これが聴ければOKじゃんと思いpam8403を継げると、プツプツ言うかシーンとしているか。はて、これ電源か?と思ってesp32+pcm5102とpam8403の電源を分離すると、プツプツは言わんけどシーンとしてる。はてこれは壊した?と思い、2台セットの片割れに入れ替えても状況が変わらない。

これはきっとヘッドホンアンプとしてマイナスコモンで使おうというのが誤りなんだと考え直したのがすでに今日着手してから4時間後。改めて、『pam8403 ヘッドホンアンプ 』とお伺い立てると、あるわあるわ…、orz。

https://nheroshi.blogspot.com/2019/08/pam8403.html

などなど複数のサイトを参考にさせていただきました。

トランスを入れるのが本式のようですが、スペースファクタの問題もあり、ジャンク箱漁って10Ωを2つめっけだして使うことで、目的を達することができました。これで娘に渡せます。

使ったもの:

ESP32-SDevKitC-32E
GY-PCM5102
GF1002
ケースは何だっけ、SW-75Bだったかな。ESP32を保持することを目的に、ユニバーサル基板をネジ止めしそこにESP32を載せてあります(写真撮れよ…)。

pam8403/GF1002には電源スイッチついてますが、電源出力がない関係で、ESP32の+5V端子から電源貰っており、pam8403だけの電源切るかたちになってますんで、ほとんど意味ありませんね…。

2022年10月10日月曜日

ESP32でBTスピーカー

 GW以降から今年の夏は色々あって、週末のみならず夏休み中も大汗かいて『作業』していたせいか、それが終わって1ヶ月以上経っているというのに、色々行動を起こすのがとても億劫で、しかもすぐ眠くなる。これ、結局は夏の疲れが残っている、と言うことなんだろうと、勝手に割りきっちゃいるのだけども、イコール、何も作る・試す気にならないという事にもつながってしまっている。


いやいや、そんなことじゃ遺憾でしょう…


その『作業』の期間、話の流れとしては遠く関係、ないかも知れないけど、娘が、タブレットでオーケストラ聴いてるので『なんぼなんでもそりゃ音悪いしょ〜」から始まって、なら、これが落ち着いたら、使ってないスピーカーがあるからそれをbtスピーカー化しようかね、と、ここまではありがちな話。

で、アマゾン調べりゃきっと何かあるでしょ!と思って見てみると、あるこたあるけど、同じデバイス使っててもお高いもの以外、ことごとくTELECは通してない。そういうのお使いの向きもあるとは思うけど、電波暗室内じゃないと使えんのじゃ?ということでことごとく却下。

なら組み込みボードで…も、ラズパイ以外は有意な差は無いので、やるとなったらUSBのbtアダプタ利用か…とか考えつつ、でも、娘に、「こいつは電源入れるときと切るときは…」とか「つながるまでちょっと時間掛かるんで、このLCD見て確認して」などと、マルチタスクが故の制約があるlinuxベースであれこれ用意しておいて教えたところで、『そういうの面倒だからいらない』となること請け合い。
色々悩んで、WROOM32ならbt4使えんじゃん、電源バチバチやっても(たぶん)大丈夫だし、しかもTELEC通ってるのあるし!ということで、WROOM-02ではI/O的に足らない使い方をしようと思いつつ、死蔵していたWROOM32Eを引っ張り出した。

…、そこから1ヶ月、復帰できず再び放置。いやいやダメダメ、ということでようやく今月着手。

ただ、WROOM32は、「WROOM-02と同じようにarduino IDEでつかえんでしょ?」程度にしか思っておらず、『死蔵」の名のとおり、購入してからもう一年くらい放置(^^;;;; btプロファイルも詳しいわけではないので、btスピーカーってば…と調べると、どうもesp ideのサンプルコード利用事例、プラスM5stackでの事例。

やり方はありそうね、ということで、ハード集め。nanopiで、mpd serverやらせることを考えていた、同じく死蔵のpcm5102モジュール(gy-pcm5102だと思う)を持ち出したけど、こいつはライン出力しかないので、『スピーカー』と名乗るにはパワーアンプも必要。
btスピーカーの面倒なところは、電源どうするか? もちろん、ACアダプタ使うのだけども内部に電源系統が様々生じるのは、考えないとならないことが増えるので、5Vか3.3V単一のシステムにできてほしい。5Vで動いてくれりゃスマホ用のACアダプタを使える。
しかし、5Vで動いてくれるD級アンプって、ものすごい少なく、結局だいぶ安価な、2個セットのpam8403利用のボードを調達。

以上をつないで(今回は最終的に箱に納めないとなんない、ということとWROOM32Eがでかい関係で、ブレボで試し組せず直接ハンダ付けして組み立て。pcm5102は入力側I2Sも出力側アナログも端子に出ているので、そこにワイヤを半田付けして、WROOM32 - pcm5102 - pam8403を接続。

で、WROOM32Eに、esp ideサンプルから、README.mdどおりにa2dp sinkをビルドして書き込み。そしてリセットすると…

WROOM32Eはちゃんとa2dpとしてbtホスト(rock64にbluez他インストールし、btつかえるようにしてある) から見えていて、ちゃんとコネクト。しかし音が出ないいやむしろプツプツプツプツ言ってる。

はて?何か間違ってるんか…?と思い、pcm5102のステレオジャックから、他のオーディオセットにつないでみると、チャンと鳴るじゃん!あれー?パワーアンプまわりで何か間違えてる??と言うほど配線ないし…。今度はpcm5102のステレオジャックにつないだままpam8403にスピーカーつなぐと、今度は鳴ってくれる。

おっとぉ、どうやら、pcm5102の端子は、ステレオジャックに接続していないと出力が出ない設計になっているようだ。えー、スペースファクタ面で大ダメージじゃん。
とはいえ何とかケース内に収めることができそうなので、アマゾンでポチポチして、後は来週ーっ。ということで、今回はtext only。

2022年5月22日日曜日

rock64日本語環境短縮メモ、その後…。

 ayufan 0.11.2、…

 やはり、重くて重くてやってられない…。ので、スパッと諦めてarmbianに乗り換える事にした。先にも書いたとおりで、Linux5以降は、デフォルトではHDMI-VGAアダプタをサポートできる設定になっていない。xrandrを使ってデフォルト周波数を変更する、と言う対策がarmbian.comにも掲載されているけど、インストール都度はやってられない(覚えてられない)。もちろん新たなblogネタには良いのだけど…。
試して無いので、多分、という参考記事を、念のため(備忘のため)記録。

https://forum.armbian.com/topic/18881-fix-black-screen-blinking-flickering-with-hdmi-vga-adapter/

ということで、HDMI-VGAアダプタを使わなくて済むよう、HDMIディスプレイを調達することになる、ので、とにかく安かったのを調達。15.6"で1280x800対応、ということになっているけど、ディスプレイしてみるとさらに上の解像度、1080P以外はうまく同期してくれない。まぁ、それはそれで良いので、armbian21.08.1、これが多分このボードをサポートしている最終版、をセットアップ。

 そして新たな問題…。

インストール時点では問題なさそうなのだけども、upgradeしてセキュリティパッチなど導入したあと rebootすると、bullseyeでもfocalでも、ブートしてくれない。正確に言うと、u-bootの過程、/scripts/local-blockのところで、UUIDで指定されているHDDパーティションが見えない、として、initramfsのCUIに落ちる。

USB3.0な外付けHDDを使って起動しており、少なくとも、イメージをetcherで書き込みインストール終わるまでは問題なく、そのままならrebootもokだったのだけども、upgradeしてしまうと止まる。

う〜ん、と悩みつつ、USB3 HDDをUSB2ポートにつなぐと動く(起動する)。

USB2 HDDでUSB2ポートで起動し、USB3ポートにUSB3 HDDをつなぐと全体が止まる。抜いても復旧しない。

USB3ポートにUSB2 HDDをつなぐ場合は問題ない。ってことは、USB3ポートもUSB2として使う分には問題ない。

 これって、なにかモジュールが足りてないんじゃないの?と思ったのだけども、起動後ロードされているドライバを見たとき、initramfsに抜けていた可能性があるのはuasだけ、しかしそれをinitramfs -uして再起動しても状況は変わらない。

ということは、Linux5.15.25の時点では、rock64のUSB3はチャンとはサポートされてない、と言うことなんだね、と、割りきることとして(あぁ、ayufan様…)、USB2 HDDをUSB3ポートにつないでセットアップ続行、して、ようやくarmbian21.08.1が動き出し、諸般の再設定を行って、ここに至っております。


2022年5月6日金曜日

rock64日本語環境短縮メモ

 このボードもeolになって久しく、その前に、なるべくkernel新しくしておきたいなと思っていたのだけども。
Armbianは21.いくつか、これには5.15とか16とかあるものの、これらのカーネルはCUIでは問題ないのだけどGUIでは、HDMI-VGAアダプタを使っていると古いモニタで表示できない周波数が使われる問題がある。Raspi系では対応されているみたいだけどarmbianではできてない。そういうわけで、ayufanに頼ることになるのだけども、こちらももう更新されておらず、かつpre-releaseの0.11系はbootできず、私が使える環境下では0.10.12が最終、ということのようだ。

で、いつも感謝絶えないayufanはEUの方なので、当然日本語環境にはなっておらず、セットアップ後、私が使いたいのはfcitxなのにっ!という苦難がなぜかいつも待っている。なお、gnomeじゃなくて、focal & xfce4をいつも使ってます。

とにかくインストールするもの:

  fcitxとfcitx-mozcかfcitx-anthy、mozcでもanthyでもどっちでも良いけど歴史的経緯でうちにはanthyだけな物が多い。これに、fcitx-frontend-gtk2とgtk3を追加すれば大抵使えるようになっているように思うのだけども、実は0.10.12をクリーン状態でセットアップしたのはこれが初めてで、これだけではちゃんと動いてくれずに一日悩む結果に。

そもそも、xfce4では、そのままではログイン時にfcitx自体立ち上がってくれないので、fcitx-autostartをどこかですることになるんだが、それやってもコントローラ?(入力モード切り替えとか表示とかしてくれてる奴)が立ち上がってくれない。

fcitx-diagnoseしながら追加したのはつぎのパッケージ。

libgtk-3-bin、これだけじゃなくてgtk-query-immodules-3-0と2-0をマニュアルで/usr/bin/にsymlink。
fcitx-ui-classic

ここまでインストールして使えるようになったようだ。たぶん、fcitx-ui-classicがキーなんかな?と云うところまでは確認してない。

これでとりあえずは5.6.0…。このカーネルではgpuも効いてないようだし、HDMIなモニタにするべきか、それともボードを替えるべきか、悩む今日この頃。