2023,江端さんの技術メモ

症状:Win32 Disk Imageで作ったラズパイのSDカードのクローンでシステムが起動しない。

Symptom:  RaspBerry PI's SD card replica made with Win32 Disk Image does not boot the system.

ラズパイ SDカード イメージ コピー レプリカ

writable: recovering Journal
writable: Superblock needs-recovery flag is Clear, but Journal has data.
writable: Run Journal anyway
writable: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY,
(i.e., without -a or -p options)
fsck exited with status code 4
The root filesysten on /dev/mmcblk0p2 requires a manual fsck

BusyBox v1.30.1 (Ubuntu 1:1.30.1-7ubuntu3) built-in shell (ash)
Enter 'help' for a list of built-in commands.
(initramfs) fsck /dev/mmcblk0p2
fsck from util-linux 2.37.2
e2fsck 1.46.5 (30-Dec-2021)
writable: recovering Journal
Superblock needs_recovery flag is clear, but Journal has data.
Run journal anyway<y> yes
fsck.ext4:unable to set superblock flags on writable

writable: **********WARNING: Filesystem still has errors **********
(initramfs)

417512958.jpg

原因判明: マスタの128GBのSDカードが、クローンの128GBのSDカードの容量より、ほんのちょっと大きかった為に、システム全体がフルコピーできなかった(そう言えば、Win32 Disk Imageでそういう警告が出ていた)

Cause discovered: The 128GB SD card in the master was slightly larger than the capacity of the 128GB SD card in the replica, so the entire system could not be fully copied (come to think of it, Win32 Disk Image was giving that warning).

対応方法: Linux のddコマンドとか使えば、対応できそうであることは分かったが、現在、手元にLinuxBoxがない。WSLを使ってでできるかと思ったが、「失敗した」という報告もある。無理するとWindows11 Box壊すかもしれない(研究の内容がパーになりかねない)。

How to do it: I found out I can use Linux's dd command or something like that, but I don't have a Linux box. If I try too hard, I might break my Windows 11 Box (which might ruin my research).

考察: ddコマンド対応は、面倒くさい、時間かかりそう。途中で失敗するとPCの方を壊しそう。

Consideration: dd command support is tedious and time-consuming. If it fails in the process, it might break the PC.

現在対応中: たまたま、256GBのメモリカードがあったので、そっちにイメージをコピー中
(上手くいったら、自腹切って256のカード買う。PC壊すリスク考えれば、全然安い。ただし、ほんのチョットのブロックのために、256GBのメモリカード買うのは、本気で腹立たしいけど)

I have a 256GB memory card, so I'm copying the image.
(If all goes well, I'll buy a 256 card at my own expense, which is cheap considering the risk of breaking my PC. However, it is annoying to buy a 256GB memory card for just a few blocks.)

どのくらい足りないかというと、ほんの0.027%だけ。
How "little" is "just 0.027% short"?

こちら(256Gのクローン)は無事起動を確認しました。
This one (256G clone) was confirmed to boot successfully.


以下試みてみたけど、上手く動かなかったこと
Here's what I tried and it didn't work

起動途中で /dev/sda5: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. と出て止まるな

ですが、以下の方法で上手く行きました。
But the following method worked.

Raspberry Pi の 起動OSバックアップで、サイズの違う MicroSDカードにイメージコピーする方法

AOMEI Partition Assistant(無償版)をインストールしました。
I installed AOMEI Partition Assistant (free version).

サイズの違うSDカードでもイメージコピーできるらしいのですが、256G(上記でクローン化に成功したもの)→128Gは、サイズが違い過ぎる、と言われました。
It seems possible to copy images from SD cards of different sizes, but 256G (which I successfully cloned above) -> 128G is too other.

仕方がないので、(壊したら後がないので、あまりいじりたくはないけど)現在稼動中の128Gをマスタとして、クローン作ることにしました。
I had no choice but to make a clone using the 128G currently in operation as the master (although I don't want to mess with it too much because if I break it, there is no way to fix it).

左側がマスタ、右側がクローン。右側のSDカードリーダは、ラズパイキットの中に含まれていました(助かりました)。
The left side is the master, and the right side is the clone. The SD card reader on the right side was included in the Raspi kit (thank goodness).

いつまで経っても終わらないので、上記の「全ての処理が完了した後にPCを自動でシャットダウンします」にチェックを入れて、昨夜はそのまま寝ました。
It took forever to finish, so I checked the "Automatically shut down the PC after all processing is complete" checkbox above and went straight to bed last night.

今朝、新しく作ったSDカードを使ってラズパイ立ち上げたら、無事起動しました。
This morning, I started Raspi using the newly created SD card, which booted up fine.

これで、256Gのカードを自腹で買う必要がなくなり、ほっとしています。
I am relieved that I no longer have to buy a 256G card alone.

以上

 


2023,江端さんの技術メモ

Win32 Disk Imager

"Win32 Disk Imager"の使いかたが結構分けわからん

まず、SDカード→PCへのコピーは、

Deviceでドライブ"e.f.[G\]"を選んで→
Image Fileの方にテキトーな名前を(d:\testtest20231010とか、絶対に存在しないファイル名にして)つけて
"Read"ボタンを押す。絶対存在しないファイル名にすることによって、間違った読み込みをすることはなくなる(はず)

PC→SDカードへのコピーは、
上記の逆転をやって
"Write"をボタンを押す。

この"Read"と"Write"を間違えて、ハードディスク丸ごと破壊したことを、ゆめゆめ忘れるな

2023,江端さんの技術メモ

私、ファイルのフォルダ管理をできるだけやらないようにしています。ファイルを作成したことを忘れてしまうからです。

なので、一つのフォルダに全部のファイルを突っ込んで、更新日時で並び換えをして、上位の方に作業中のファイルが集まるようにしています。

ただ、昔使ったファイルが上位に出てこないという問題が発生します。

ですので、ファイルを「上書き保存」とかして、更新日時を変更するようにしています。

ところが、動画は上書き保存できないので、いつも頭痛のタネでした。


で、この問題を簡単に実現してくれるツールを見つけたので、メモしておきます。

ファイルの更新日時を変更するフリーソフト - Change Timestamp

ダウンロードURL:https://dns-plus.net/download/ctime080.zip

使い方は、ファイルを、以下の表示の「対象ファイルまたはフォルダをここにドロップしてください」にドラッグするだけで終了です。

いやー、こういう便利なものがあると、本当に助かりますね。

作者の方に感謝いたします。

 

2023,江端さんの技術メモ

WordPressを管理モードで見ると、Important notice for administrators: The WordPress Popular Posts "classic" widget is going away! が表示されて、『近々、WordPress Popular Posts "classic"は使えなくなる』と脅されました(と思う)。

When I looked at WordPress in admin mode, I saw an Important notice for administrators: The WordPress Popular Posts "classic" widget is going away! I was threatened (I thought), "Soon, WordPress Popular Posts "classic" will no longer be available.

 

それは困るので、検索して色々試したのですが、たまたま動いた方法(代替手段)があったので自分用にメモしておきます。

That is not good, so I searched and tried various methods, but there was one that worked (an alternative approach), so I'll note it for myself.

管理画面から「外観」→「ウィジェット」から"カスタムhtml"を「汎用サイドバー」にドラッグ

From the admin screen, go to "Appearance" > "Widgets" and drag "custom html" to the "Generic Sidebar."

で、以下の通りに記入(タイトルは好きなように)

And fill in the following (title as you like)

なんか、良く分かりませんが、これで表示されるようです(カスタマイズは諦めました)。

I'm unsure what it is, but it seems to be displayed with this (I gave up customizing it).

"WordPress Popular Posts"の方は、強制的に使えなくなるまで、残しておきます。

I will leave "WordPress Popular Posts (classic)" until I am forced to turn it off.

以上


■参考にさせて頂いたページ

■Pages I have referred to
https://3nmt.com/new-wordpress-popular-posts-measures/

■ブロックエディタモードで実験してみたページ

wordpress popular posts テスト

 

2023,江端さんの技術メモ

Keyword: VScode vscode 図面 draw.io  drawio

 

毎年1本は、Officeを使って特許明細書を書かなければなりませんが、パワーポイントは、フローチャートやシーケンス図の作成にはあまり向いていません。はっきり言えば使い難い。

*.drawioで提出できればいいのだけど、それでは、私の図面を修正する人が困ってしまうので、最終的には*.ppt/pptx形式にしなければなりませんが、このコンバートの相性がどうも今一つ。

今、ちょっとテストしていたのですが、一応、以下でできるようですが、文字が出てこなかったりとか完璧な対応は難しいようです。

1.svg形式で保存して、emfファイルに変換 (私は、https://convertio.co/ja/を使ってみた)
2. Officeに「拡張メタファイル」で貼り付け
3. グループ解除

(参考:SVGファイルをPowerPointで編集できる図形として読み込むには?)

Drawio. integration がエクスポート/コンバートに、ppt/pptx形式をサポートしてくれれば嬉しいんだけど、ないものねだりをしても仕方ありません。

どなたか、「何を言っとるんだ? これで簡単にでできるだろう?」とアドバイスして頂ける方。お助け下さい。→ メールアドレス

2023,江端さんの技術メモ

IEがないと設定画面が表示されないので、サポートセンタに電話したら"EdgeからIEモードを起動する"でググって下さい、と教えて貰った(対応時間15秒)。で、

https://www.maspro.co.jp/support/security/pdf/edge_iemode.pdf

に説明が記載されているのので、http://192.168.0.2, login/password = admin/jvc(だったと思う) 指定URLとして登録したところ、

次の画面が表示されました。

2023,江端さんの技術メモ

対処方法

  1. FireFoxのURL欄にabout:configと入力してENTERキーを押す
  2. 動作保証外警告が出ますが、「危険を承知の上で使用する」をクリック
  3. 検索欄にnetwork.http.spdy.enabled.http2と入力
  4. ダブルクリックして値をfalseに変更する

対策として、設定の「プライバシーとセキュリティ」タブ(about:preferences#privacy)にある「Firefoxのデータ収集と利用について」欄のチェックボックスをすべて外すことで状況が改善するとのこと。

https://gigazine.net/news/20220113-firefox-problem/

 

で、まあ、現在、上手く動いていません。

2023,江端さんの技術メモ

まず動画の部分をクリックします。

メニューに「再生」タブが表われます。

「開始」をチェックして、「自動(A)」「再生が終了したら巻き戻す」にします。

これで、そのページの表示と同時に、動画が動き始めます(開始クリックの手間が省けます)。

時々上手く動かない時がありますが、その場合が動画部分をクリックすれば動き出すようです。

 

2023,江端さんの技術メモ

映像テストの実験用に使っているのですが、Mozcの日本語-直接入力がサクサクできず、ちょっとした検索もできず、困っておりました。

手当たり次第、探した結果、(私の場合は)このキーに割り当たっていたようでした。

ちゃんと設定すべきところ、それすら面倒くさくて ―― 私は、これで十分です。

ましてや、SKKを入れる気力は、絶無です。

2023,江端さんの技術メモ

今度のターゲットはVN-H68(カメラ)です。

で、取り敢えず、RTSPを取得できるかの確認作業に入りました。

VN-H68の初期設定IPアドレスは、192.168.0.2/24 になっており、私の自宅ネットワークのIPアドレスと見事にバッティングしていましたので、カメラのMACアドレスを使って、ルータに固定DHCPアドレスとして設定しなおして、ルータを再起動させました(ルータの再起動は、いつでもドキドキします)。

問題は、RTSPで転送したデータをどうやって表示するかですが、いつも通りVLCを使おうと思ったのですが、以下が失敗例です。

rtsp://192.168.0.2

rtsp://192.168.0.2:554

rtsp://192.168.0.2:544/XXXXX(適当なファイル名)

で、結局、製品の箱に入っていたCDファイルの中の
E:\VN-H68_VN-U78\VN-H68_VN-U78_ネットワークカメラAPIガイドV1.02.pdf

の中にあった以下の記載から、

VLCに以下の設定をしてみました。

rtsp://192.168.0.2/ONVIF/Streaming/channels/0

を設定しました。

なんか、レンズの配置を間違えたのか、逆さに写っているようですが、先ずは成功です。

次は、VLCを使わずに、Gstreamerを使って、直接RTSPを受信しました。
(結構すったもんだしましたが)結果として、以下のコマンドでラズパイで表示させることができました。

$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0 ! rtph264depay ! h264parse ! avdec_h264 ! queue ! autovideosink

  1. gst-launch-1.0: GStreamerのコマンドラインユーティリティの実行ファイル名です。1.0はGStreamerのバージョン番号で、バージョン1.0を使用していることを示します。
  2. rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0: RTSPソースを指定しています。locationパラメータには、ストリーミング元のURL(この場合はRTSPストリームのURL)を指定します。rtsp://192.168.0.2/ONVIF/Streaming/channels/0は、カメラなどのデバイスが提供するRTSPストリームのアドレスを表します。
  3. ! rtph264depay: RTP(Real-time Transport Protocol)パケットからH.264ビデオデータを取り出すデパケット化(デマルチプレクサ)エレメントです。
  4. ! h264parse: H.264ビデオストリームを解析して必要なメタデータを抽出するエレメントです。
  5. ! avdec_h264: H.264形式のビデオをデコードするためのエレメントです。avdec_h264は、GStreamer内部で使用されるデコーダの一つです。
  6. ! queue: デコードされたビデオデータを一時的にキューイング(バッファリング)するエレメントです。これにより、デコードと表示の間でのタイミングのずれを最小限に抑えることができます。
  7. ! autovideosink: 自動的に適切なビデオ出力を選択し、デコードされたビデオを表示するエレメントです。環境によっては、X Window System上で動作するxvimagesinkなどのビデオ出力プラグインが選択されることがあります。

ちなみに

cam@cam-desktop:~$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0 ! rtph264depay ! "video/x-h264, framerate=1/1" ! h264parse ! avdec_h264 !  autovideosink
cam@cam-desktop:~$ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0 ! rtph264depay ! "video/x-h264, width=1920, height=1080, framerate=1/1" ! h264parse ! avdec_h264 !  autovideosink
gst-launch-1.0 rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0 ! rtph264depay ! "video/x-h264, width=640, height=480, framerate=30/1" ! h264parse ! avdec_h264 !  autovideosink
これらは、表示側の問題であって、送信元のカメラのレートコントロールはできないみたい。
送信元カメラの送信制御は、

VN-H68(カメラ)の設定方法

のほうでやる必要がある。

 $ gst-launch-1.0 rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! x264enc tune=zerolatency key-int-max=30 ! mpegtsmux ! srtserversink uri="srt://:12345" latency=500

  • gst-launch-1.0: GStreamerのコマンドラインユーティリティの実行ファイル名です。
  • rtspsrc location=rtsp://192.168.0.2/ONVIF/Streaming/channels/0: RTSPソースを指定しています。locationパラメータには、ストリーミング元のURL(この場合はRTSPストリームのURL)を指定します。rtsp://192.168.0.2/ONVIF/Streaming/channels/0は、カメラなどのデバイスが提供するRTSPストリームのアドレスを表します。
  • ! rtph264depay: RTP(Real-time Transport Protocol)パケットからH.264ビデオデータを取り出すデパケット化(デマルチプレクサ)エレメントです。
  • ! h264parse: H.264ビデオストリームを解析して必要なメタデータを抽出するエレメントです。
  • ! avdec_h264: H.264形式のビデオをデコードするためのエレメントです。avdec_h264は、GStreamer内部で使用されるデコーダの一つです。
  • ! videoconvert: ビデオのピクセルフォーマットを変換するためのエレメントです。必要な場合にビデオストリームのフォーマットを変換します。
  • ! x264enc tune=zerolatency key-int-max=30: H.264形式のビデオをエンコードするエレメントです。x264encは、x264エンコーダを使用してビデオをエンコードします。tune=zerolatencyは、低遅延を設定してストリーミングに適したエンコード設定を指定しています。key-int-max=30は、キーフレームの最大間隔を設定して、頻繁にキーフレームを生成し、エラーの影響を最小限に抑えます。
  • ! mpegtsmux: エンコードされたビデオをMPEG-TSコンテナにパケット化するエレメントです。
  • ! srtserversink uri="srt://:12345" latency=500: SRTストリームを送信するためのエレメントです。uri="srt://:12345"でポート番号が12345のSRTストリームを待ち受ける設定になっています。latency=500は、500ミリ秒のバッファリングを指定しています。つまり、送信時にストリームに500ミリ秒の遅延がかかります。