「esp_core_dump_flash: No core dump partition found!」というエラーが起動時に表示されてしまう問題の解決方法.

Pocket

 

(2024-10-17 追記: いただいたコメントの内容を本文に追記しました.)

 

Freenove ESP32-S3-WROOM CAM ボード
Freenove ESP32-S3-WROOM CAM ボード (Arduino IDE 互換)、オンボード カメラ ワイヤレス、Python C コード、詳細なチュートリアル、サンプル プロジェクト | Freenove | ベアボーンPC 通販 https://www.amazon.co.jp/dp/B0BMQ8F7FN/ref=as_li_ss_shr?&linkCode=shr&tag=amazonoike-22



Freenove の「ESP32-S3-WROOM CAM ボード」を購入した.
「ESP32-WROVER CAMボード」のほうが少しだけ安いのだけど,こっちは microSDカードスロットがないとの噂があるので,実際のところはどうなのかはわからないけれど,ESP32-S3 のほうにした.
ちょっと思うところあって,SDカード読み書きを勉強というか,自分の理解を再確認したい.

 

チュートリアルにあるサンプルコードの「Sketch_17.1_CameraWebServer」が立派な Webアプリになっていて,これを書き込むだけでブラウザ越しに使える UI のあるワイヤレス Webカメラとして使える.
単なるワイヤレスカメラとして使うのだったら,私がやることはほとんどないわー.
とりあえず,Wi-Fi の接続を定期的にチェックして,接続が切れていたら自動的に再接続するコードを足しておしまい.
ほかにもいろいろと勉強(再確認)するんだー.

 

起動時に


E (nnn) esp_core_dump_flash: No core dump partition found!

というエラーが出てしまうのを解決するのに少し手こずったので,未来の自分のためにメモ書きしておきます.
これは,[Tools] -> [Partition Scheme] の設定をどうこうしても消えない.
要は,エラーメッセージのとおりで,core dump するためのパーティションを作れば解決します.

パーティションの設定は簡単で,Sketch_17.1_CameraWebServer に入っている partitions.csv を次のように書き換えればよいです.

 

書き換え前:

# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
fr, data, , 0x3e0000, 0x20000,

 

書き換え後:

# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
# fr, data, , 0x3e0000, 0x20000,
fr, data, , 0x3e0000, 0x1ff00,
coredump, data, coredump, 0x3fff00, 0x100,

(2024-10-17 追記)
lzpel さんからコメントをいただきまして,いつの頃からかパーティションのアライン単位が 0x100 から 0x1000 に変わっているようです.
もし,上に記した「書き換え後」のパーティション設定で
「Partition coredump invalid: Offset 0x3fff00 is not aligned to 0x1000」
というエラーが出てしまうときは,

# Name, Type, SubType, Offset, Size, Flags
nvs, data, nvs, 0x9000, 0x5000,
otadata, data, ota, 0xe000, 0x2000,
app0, app, ota_0, 0x10000, 0x3d0000,
fr, data, , 0x3e0000, 0x1f000,
coredump, data, coredump, 0x3ff000, 0x1000,

というふうに,0x1000 単位でパーティションを区切るとよいそうです.
コメントをくださって,どうもありがとうございました!

(2024-10-17 追記,ここまで)

 

coredumpパーティションのサイズに合わせて,直前の frパーティションのサイズを縮めるのが肝です.

partitions.csv を書き換えたら,スケッチのコンパイル & 書き込みをすれば,次回の起動時から「core dump 用のパーティションがない」というエラーは表示されなくなります.

この問題の解決には,次の URL の情報が大変役立ちました.ありがとうございました.

「M5stack core3でのカメラ操作 #PlatformIO – Qiita」
https://qiita.com/yutaka_m/items/0ae5cfe342c59db28338

「ESP32-CAM esp_core_dump_flash – Using Arduino / Microcontrollers – Arduino Forum」
https://forum.arduino.cc/t/esp32-cam-esp-core-dump-flash/1074812/54?page=3

 

 

 

==

 

Pocket

WordPress の「Recent Comments Widget Plus」プラグインの ‘Exclude pingback & trackback’ オプションが機能していない不具合を直した.

Pocket

 

「Recent Comments Widget Plus – WordPress plugin | WordPress.org」
https://wordpress.org/plugins/comments-widget-plus/

 

WordPress の「Recent Comments Widget Plus」プラグインの ‘Exclude pingback & trackback’ オプションが機能していない不具合を,とりあえず自分のサーバー上で直した.

includes/functions.php の 122行目あたりにある
if ( 1 === $args[‘exclude_pings’] ) {

if ( $args[‘exclude_pings’] ) {
にする.

変数 $args[‘exclude_pings’] の型が boolean なので,整数 1 と === にならず,この if ブロックが実行されなかったことが不具合の原因.

このコードで以前は機能していたので,WordPress(か PHP ?)のどこかのバージョンから,この変数の型が整数から boolean に変わってしまったのだろうと思う.

 

 

「’Exclude pingback & trackback’ option wasn’t working, and I fixed it · Issue #4 · gasatrya/comments-widget-plus」
https://github.com/gasatrya/comments-widget-plus/issues/4

 

とてもあやしい英語で報告してきたけれど,Pull Request のほうが楽だったかもしれず… .

 

 

 

 

==

 

Pocket

RTB HOUSE の Web広告をブロックしました.理由は CRITEO のときと同じで,うにうに動いて目障りでものすごくわずらわしいから.設定方法をここにもメモ書きしておきます.

Pocket

 

RTB HOUSE の Web広告をブロックしました.
理由は CRITEO のときと同じです.

私は基本的に Web広告は普通に見る(ブロックしないで表示させておく)方針なのだけど,RTB HOUSE の Web広告はうにうに動いて目障りでものすごくわずらわしいのでブロックすることにしました.
動かない静止画だったらそのまま表示しておくのだけどなぁ.なんで静止画をわざわざ動かすのだろう.確かに目にはつくけれど,それで嫌われてどうするよ.広告の配信方法として本末転倒なんじゃないかなぁ?

 

例によって,自分のために設定方法をここにもメモ書きしておきます.

今回は,設定方法そのものを書いてある Web記事を見つけ出せなくて,少々手間取りました.
ブロックすべき RTB HOUSE の全ドメインを列挙するときに参考になった記事はこれ↓です.

「RTBHOUSEをブロックする方法を教えて下さい。 – うーん、新興… – Yahoo!知恵袋」
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14218075964

この↑記事中にある次の 2か所からブロックすべき RTB HOUSE の全ドメインを調べました.

「ns1.adpilot-rtb.net Reverse NS lookup – SecurityTrails」
https://securitytrails.com/list/ns/ns1.adpilot-rtb.net

「AS204995 RTB HOUSE S.A. details – IPinfo.io」
https://ipinfo.io/AS204995

 

その結果がこれ↓です.単純に上の 2か所から抜き出してきただけなので,アルファベット順にはなっていませんが,設定には影響ありません.

127.0.0.1 rtbhouse.com
127.0.0.1 boostthenews.com
127.0.0.1 creativecdn.net
127.0.0.1 rtb-house.it
127.0.0.1 rtbhouse.in
127.0.0.1 rtb-lab.pl
127.0.0.1 rtbhouse.es
127.0.0.1 rtbhouse.de
127.0.0.1 rtbhouse.eu
127.0.0.1 rtbhouse.it
127.0.0.1 sshfp.org
127.0.0.1 rtbhouse.tw
127.0.0.1 rtb-house.com
127.0.0.1 adpilot-rtb.pl
127.0.0.1 rtb-house.pl
127.0.0.1 rtb-house.co
127.0.0.1 rtbhouse.com.br
127.0.0.1 rtbhouse.jp
127.0.0.1 rtbhouse.be
127.0.0.1 rtbhouse.co.uk
127.0.0.1 rtbhouse.co
127.0.0.1 adpilotrtb.pl
127.0.0.1 rtb-house.fr
127.0.0.1 rtbhouse.pl
127.0.0.1 rtb-house.eu
127.0.0.1 rtbhouse.hk
127.0.0.1 rtbhouse.net
127.0.0.1 rtb-house.net
127.0.0.1 rtbhouse.asia
127.0.0.1 rtb-house.de
127.0.0.1 rtbhouse.fr
127.0.0.1 boostthenews.net
127.0.0.1 rtb-house.nl
127.0.0.1 rtb-house.es
127.0.0.1 selected.ai
127.0.0.1 rtbhause.com
127.0.0.1 tandemeffect.com
127.0.0.1 rtbhouse.com.tr
127.0.0.1 inventorycdn.net
127.0.0.1 adpilot-rtb.com
127.0.0.1 rtbhouse.nl
127.0.0.1 adpilotrtb.net
127.0.0.1 rtbhouse.co.kr
127.0.0.1 adpilot-rtb.net
127.0.0.1 rtbhouse.cn
127.0.0.1 rtb-house.co.uk
127.0.0.1 rtbhouse.cz
127.0.0.1 adpilotrtb.com
127.0.0.1 rtbhouse.biz
127.0.0.1 fajne-pixelki.com
127.0.0.1 rtb.link
127.0.0.1 creativecdn.com

 

あとは,CMerTV,TEADS,CRITEO のときと同じです.
Windows の場合は,
C:\Windows\System32\drivers\etc\hosts
に追記します.

このファイルは管理者権限を持っていても書き換えづらいのですが,書き換える方法としては次の 2通りがあると思います.

A.
hostsファイルを,一旦,別のフォルダにコピーし,そこで書き換えてから,
C:\Windows\System32\drivers\etc\hosts
に上書きコピーする.

B.
書き換えるアプリ(メモ帳など)を,管理者権限で起動して書き換える.

 

この設定をすることで,概ねブロックできているようです.
ただ,まれに漏れて表示されてしまうことがありますので,上に列挙したドメイン以外に「ここもブロックしたほうがいいよ!」という情報がありましたらお教えくださるとありがたいです.

 

 

 

 

==

 

2023年4月11日
CRITEO の Web広告はうにうに動いてものすごくわずらわしいのでブロックすることにしました.1年以上そうしているけれど何も問題なさそう.自分のために,ここにも設定方法をメモ書きしておきます.
https://noike.info/wp/knoike/2023/04/11/85196/

 

2015年09月05日
結局のところ,我慢しきれなくなったので,TEADS(teads.tv)の動画広告をブロックすることにした.
https://knoike.seesaa.net/article/425401478.html

 

2015年08月26日
TEADS(teads.tv)の動画広告の挿入の仕方はひじょーに不快だ.読んでいる本文に急に割り込んで本文を押し下げてでかでかと動画を挿入してくる.こんな不快な挿入をされるくらいだったら,最初っから本文中にでかでかと動画が埋め込まれているほうがはるかにマシだ.
http://knoike.seesaa.net/article/424796660.html

 

2014年02月26日
基本的に Web 広告は普通に見る(ブロックしないで表示させておく)方針なのだけど,CMerTV の勝手に音出し再生する広告だけは勘弁して欲しいので,hosts ファイルをいじってブロックしてしまいました.
http://knoike.seesaa.net/article/389791848.html

 

2013年11月22日
CMerTV の埋め込み広告はいきなり音付きで動画を再生し始めて迷惑だなー.こういうのをいいと(効果的だと)思っているのだろーか.CMerTV だけでなく,それで宣伝されている商品,サービス,会社自体の印象が悪くなった.
http://knoike.seesaa.net/article/380905090.html

 

 

 

 

Pocket

CRITEO の Web広告はうにうに動いてものすごくわずらわしいのでブロックすることにしました.1年以上そうしているけれど何も問題なさそう.自分のために,ここにも設定方法をメモ書きしておきます.

Pocket

 

そういえば書いていなかった… .

2022年 1月16日に CRITEO の Web広告をブロックしました.
1年以上そうしているけれど何も問題なさそう.
自分のために,ここにも設定方法をメモ書きしておきます.

基本的に Web広告は普通に見る(ブロックしないで表示させておく)方針なのだけど,CRITEOの広告はうにうに動いて目障りでものすごくわずらわしいのでブロックすることにしました.
なんで静止画をわざわざ動かすんだろう.目にはつくけれど,広告の中身が頭に入ってこない.広告の配信方法として本末転倒なんじゃないかなぁ?

 

ブロックする設定の参考になった情報源はここ↓です.

「見たくない広告を表示させない方法(Windows編)」 
https://qiita.com/takepan/items/4bbd8350c72731c89368

 

CRITEO が広告を配信している全ドメインが知りたかったので,とても参考になりました.
あとは,CMerTV や TEADS のときと同様に,これらのドメインを 127.0.0.1 に振ってしまう.

127.0.0.1 static.criteo.net privacy.as.criteo.com cat.jp.as.criteo.com ads.as.criteo.com

Windows の場合は,
C:\Windows\System32\drivers\etc\hosts
に追記すればいいのだけど,このファイルは管理者権限を持っていても書き換えづらい.
書き換える方法としては,次の 2通りがあると思います.

A.
hostsファイルを,一旦,別のフォルダにコピーし,そこで書き換えてから,
C:\Windows\System32\drivers\etc\hosts
に上書きコピーする.

B.
書き換えるアプリ(メモ帳など)を,管理者権限で起動して書き換える.

 

この設定方法で 1年以上ブロックしているけれど,何も問題なさそうです.

 

 

 

 

==

 

2015年09月05日
結局のところ,我慢しきれなくなったので,TEADS(teads.tv)の動画広告をブロックすることにした.
https://knoike.seesaa.net/article/425401478.html

 

2015年08月26日
TEADS(teads.tv)の動画広告の挿入の仕方はひじょーに不快だ.読んでいる本文に急に割り込んで本文を押し下げてでかでかと動画を挿入してくる.こんな不快な挿入をされるくらいだったら,最初っから本文中にでかでかと動画が埋め込まれているほうがはるかにマシだ.
http://knoike.seesaa.net/article/424796660.html

 

2014年02月26日
基本的に Web 広告は普通に見る(ブロックしないで表示させておく)方針なのだけど,CMerTV の勝手に音出し再生する広告だけは勘弁して欲しいので,hosts ファイルをいじってブロックしてしまいました.
http://knoike.seesaa.net/article/389791848.html

 

2013年11月22日
CMerTV の埋め込み広告はいきなり音付きで動画を再生し始めて迷惑だなー.こういうのをいいと(効果的だと)思っているのだろーか.CMerTV だけでなく,それで宣伝されている商品,サービス,会社自体の印象が悪くなった.
http://knoike.seesaa.net/article/380905090.html

 

 

 

Pocket

TP-Link の Tapo P105 に Zephyrus の 250W ACアダプタをつないで,Zephyrus のバッテリー残量を監視して自動的に充電開始/終了するスクリプトを書いた.タスクトレイに常駐する C#アプリを作るつもりでいたのだけど,もうこれでいいか… .

Pocket

 

TP-Link の Tapo P105 に Zephyrus の 250W ACアダプタをつないで,Zephyrus のバッテリー残量を監視して自動的に充電開始/終了するスクリプトを書いた.

普段は Thunderbolt 経由で給電しているのだけど,Zephyrus は ThinkPad と違って消費電力が大きいようで,GPUを特には使わない通常の作業をしているだけでじわじわじわじわとバッテリー残量が減っていく.
130W ACアダプタ Thunderbolt 給電だと,給電が消費電力に追いついていない感じ.
半日以上続けて使う場合は,付属の 250W ACアダプタを接続するのは必須のようだ.
かといって,250W ACアダプタにいつも通電させておくのはなんだか電気の無駄使いをしているような気もする… .

 

ということで,スクリプトを書いた.

スクリプトは,

 充電をしていないとき:
  バッテリー残量が 20% 以下になったら Tapo P105 を On にして充電開始
 充電をしているとき:
  バッテリー残量が 98% 以上になったら Tapo P105 を Off にして充電終了

 バッテリー残量の監視間隔は,15分

というふうにした.開始/終了のバッテリー残量値や,監視間隔はあとで調整するかもしれない.

 

バッテリー残量を調べる方法はいくつかあるけれど,なるべく汎用性のある方法にしたかったので,

powercfg /batteryreport /xml /output battery_report.xml > /dev/null

として,battery_report.xml を解析する方法にした.

簡単にできるつもりだったのだけど,名前空間あり XML の Python での解析に手間取って 3時間くらいかかってしまった.

 

「ElementTreeやlxmlで名前空間を含むXMLの要素を取得する – orangain flavor」
https://orangain.hatenablog.com/entry/namespaces-in-xpath

「Pythonで名前空間付きのXMLを操作する(ElementTree) – Qiita」
https://qiita.com/yuki2006/items/d84b37f07b70d02c5504

 

たとえ名前空間が 1つだけしかない XML でも,要素ひとつひとつに名前空間をベタに書かないとだめっぽい.むーん.
たとえば,3階層下の要素にアクセスしたいときは,名前空間を 3回も書くことになる.むーん.
名前空間をラベル化(ハッシュ化)して短く書くことはできるけれど,メンテナンス性というか見かけ上はあんまり変わらないなぁ.

まぁ,名前空間ってそういうものではあるのだけどさー,「いま処理対象にしている名前空間」を動的に設定できて,切り替えて使えるようになっているといいなぁ,と思う.
私がわからなかっただけで,ホントはできるんじゃないかなぁ… .

 

とりあえず,スクリプトはできた.
意図どおりに動いているような感じ.
スクリプトを動作させ続けて様子を観察すると,

充電していない時間: 5~10時間
充電している時間: 1時間強

だった.
バッテリーの劣化との兼ね合いもあるけれど,大部分の時間は充電をしていなくて,充電時間は 1時間強で済んでいるのだから,やっぱり,250W ACアダプタにいつも通電させておくのは電気の無駄使いのような気がする.

ということで,Tapo P105 による 250W ACアダプタ制御は意義がありそう.ばんざい.


このスクリプトは動作確認をするためだけのもので,本来はタスクトレイに常駐する C#アプリを作るつもりでいたのだけど,もうこれでいいか… .
なんか,くたびれてしまった… .

Zephyrus_Tapo_P105_Charge.png


 

 

 

==

 

2022年9月16日
TP-Link のスマートプラグ「Tapo P105」も,初期設定さえ済ませておけば,外部ネットワークのサービスを使わずにローカルネットワーク用の制御ツールで On/Off 制御できました.
https://noike.info/wp/knoike/2022/09/16/84744/

 

2022年7月27日
普段使いのPCが唐突にだめになってしまったので,急遽,新しくPCを購入しました.新しく買った PC は ASUS の ROG Zephyrus M16 で,RTX3070 が載った機種にしました.
https://noike.info/wp/knoike/2022/07/27/84707/

 

 

Pocket