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なモニタにするべきか、それともボードを替えるべきか、悩む今日この頃。


2022年3月21日月曜日

dvdstyler

 以前拾ってあったdvdstylerをbionicでbuild。Prebuild配ってるところがあるけど、動かないので。 あんまり細かく記録してないけど。

dvdstyler - 3.1.2 (今見たら、古かったね。)

これをbuildするにはwxWidgetsとwxsvgが必要。

wxWidgetsは最初3.0.5でチャレンジしてたけど結局dvdstylerのbuildには当時至ってない。何でだっけ?

今回もそこから始めたけど途中悩んでいるうちに、新しい物があることがわかったので、改めてgitから新しいものを拾ってきてbuild。cloneしただけだといくつかsubmoduleが足らず。次のものを追加。

3rdparty/pcre, catch, nanosvg

src/jpeg, tiff

configure、make終了するのでwxsvg(1.5.22)をconfigure、make。これも問題なく終了。いずれもmake install。

で、dvdstylerにいってconfigure、make。しかし、libwx_gtk2u_mediaがないと怒られるので、wxWidgetsに戻って、--enable-mediactrlつけて改めてconfigureしてmake。gstreamer1.0のplugins-badが必要。

これで動くものを作れた。

ただ、windowsのprebuildだと、タイトル選択メニューで画像を表示できるんだけど以上の手順で作ったものでは"Failed to load image from file ***"(***は書き込み対象のファイル)と言われてしまう。

実際にまだ書き込みは行ってないので、作られたdvdがどうなるのかわからんけど、たぶん、まだどこかにスイッチが足らないんだと思う。しかし、あんまりそんな所に触れてる記事ってないんだよね…。

 

で、使い勝手は良いのか? うーん、よく分かりません。 

DVD容量に対して最低ビットレートを指定しているはずで、書き込みイメージファイルを追加する時には「それを割らない」と判断しているようなのに、実際に書き込みしようとすると「収まんないからビットレート下げるか書き込みデータ減らせ」と言われてしまう。よく分からない。