車を買い替えてからずっと、ポータブル式のカーナビ(Panasonic Strada Pocket CN-SP700L-K)を使っていたのですが、ついに壊れてしまいました。
過去の日記を漁ってみると、購入したのは2010年の8月末(2010年9月5日の日記参照)のようですね。丸7年頑張ってくれたことになります。すごい。
今まで壊れたデジタル系の家電は突然ウンともスンとも言わなくなる壊れ方ばかりでしたが、このカーナビだけは「昭和のアナログテレビか?」と思うくらい最後まで粘りました。
真っ白、起動画面、ノイズ画面、ハングor強制リセット、ナビゲーション音声が「300m先を斜め…ブツッ!」と切れる、「地図データエラー」が出る、現在位置が違う位置で止まる、などなど、かなり多彩でした。
いくつか動画に収めることができたのでStradaさんとのお別れに代えて載せておきます。
スプラッシュの後に白画面で死ぬパターンです。「起動後ずっと白画面」以外で一番出ていた故障はこれかなあ。
突然エラーコードを表示することもありました。
EC:43「正しい地図micro SDHCカードを挿入してください」エラー
起動して安全の注意(この後、ナビ画面が出る)まで辿り着いたけど、白画面で死ぬパターン。珍しいパターンでした。
今は完全に真っ白な画面しか表示されず、完全にお亡くなりになったようです。悲しい。
Strada Pocketはちょっと高かった気がしますが、ルート検索や道を間違えたときの再検索も速かったし、ナビとしての基本性能は言うことなしでした。7年はかなり長持ちした部類に入ると思います。
お疲れ様でした、ありがとう!
ナビ以外にはワンセグ視聴とSDカードのメディア再生機能があったみたいですが、一度も使わずじまいでした。もはや試すことすらできないので、謎のままお別れです。ごめんね。
カーナビが壊れたあと梅田から自宅に帰りました。新御堂筋に乗るルートすらわからなくて、大変難儀しました。カーナビ無しの生活はもはやありえません。次もカーナビを買おうと思っています。
今まで7年も頑張ってくれたから、次だってナイスなStrada Pocketを買おうと思うじゃないですか?しかし残念なことにStrada Pocketはブランドごと絶版(※)になり、もう手に入りません。何てことするのPanasonicさん。
(※)現在もPanasonicはポータブルカーナビを製造しています。ただしStrada PocketブランドではなくGorillaブランドです。なぜかというとPanasonicがSANYOを吸収したときSANYO側のカーナビブランドGorillaを存続させStradaを廃止したためです。恐らくGorillaの方がネームバリューがあったと判断されたのでしょう。
選択肢はいくつかあって、
ポータブル型のカーナビ。これが一番安全でしょう。
ただ過去にも悩んでいた(2013年4月7日の日記参照)とおり、今の時代、ポータブルのカーナビ専用機って微妙です。ヨドバシでいくつか触りましたが、いずれも動きが遅いタブレットという印象を拭えないです。
タブレットは一番良い候補だと思っていました。
自分の利用シーンを考えると、固定できるか?地図をどこから取得するか?真夏の車内に放置して故障しないか?辺りが問題です。
固定は何とかなりそうですが、地図は良い方法がなさそうです。放置については一々持って歩けば解決しますが、忘れそうだし面倒です。イマイチ。
スマホはさらにイマイチです。
基本的に持ち歩くので車内に放置する問題はありません。その代わり、画面が小さい、別用途にも使うので、毎回ナビを再設定する必要があるなど、使いやすさの点で難ありです。
うーん、これというものが無いですね。しばらく悩んでみるか……。
会社で使っていたSONY MDR-DS1000(ヘッドフォンMDR-XD050とポータブルアンプDP-1000のセット)のヘッドフォンが壊れました。
代わりに好きなの買って良いよ〜って言われた(当然、予算以内で)のでSHURE SRH440-Aにしました。SHUREは高い奴はバカみたいに高いですが、これは下に近いレンジで1万円くらいです。
それでもヘッドフォンだけでMDR-DS1000(ヘッドフォン+アンプ)の倍くらいの値段ですから、素人の自分でも違いがわかるだろうと期待していました。
で、その期待は思わぬ形で叶いました…。
ヘッドフォン以外は何も変えていないのに「シュー、パチパチ」という音がずーっと聞こえます。耳がおかしくなりそう。
というのが少し前の話。シューシュー言うノイズがあまりにも気になるので少し調べました。
あまり考えたくない私の耳がおかしくなった可能性ですが、ヘッドフォンのプラグをアンプから外すとノイズが聞こえなくなるので、私の耳のせいではなさそうです。
次にライン入力にノイズが乗っている可能性ですが、MDR-DS1000にはライン入力と光入力があったので、光入力で同じ音を聞いてみましたが、やはり何かシューシュー言っています。これも違うようです。
最後にアンプ自体がダメな可能性ですが、ちょうど机の上に違うアンプDENON AVR-3311があったので、アンプを変えてみました。するとシューシュー言わなくなりました。なんと、アンプのせい?
しかし先代のヘッドフォンでは全くノイズは聞こえなかったのに、突然こんなことになった理由が良くわかりません。アンプとヘッドフォンが合ってないのか……?
昨日(2017年9月7日の日記参照)の続きです。会社のヘッドフォンをSHURE SRH440-Aに換えたら、やたらとノイズが聞こえて困っている話です。とりあえずアンプ換えたら直ったので、アンプのせいなんでしょうけど、理由が良くわかりません。
ヘッドフォン側の差は何かあるのかなと思って、カタログを調べてみるとSONY MDR-XD050の互換機MDR-XD100(70Ω)とSHURE SRH440-A(44Ω)のインピーダンスが全然違うようです。
インピーダンスは交流に対する抵抗値のようなものです。ヘッドフォン出力は定電圧回路のはずですから、インピーダンス高い=電流が流れない=音が小さい、インピーダンス低い=電流が流れる=音が大きいです。間違ってたらゴメンよ。
SHUREを繋いだ時にノイズだらけになるのは、インピーダンスが低すぎてアンプに負荷が掛かり(流れる電流が想定より多すぎて)、リミットが掛かっているのかもしれません。
仮にインピーダンスの差だとすると、手持ちのaudio-technica ATH-TAD500(35Ω)や、Pioneer SE-M290(32Ω)を繋いだら、さらに激しいノイズが聞こえるはずです。
どうもヘッドフォンを抱えて電車に乗って会社に行くのは、かなり抵抗がありますが…。試してみたいところ。
アンプについて調べていた時 ヘッドホンアンプの出力とか、インピーダンスについて(前半)- Sandal Audioと、ヘッドホンアンプの出力とか、インピーダンスについて(後半)- Sandal Audio、の記事が大変参考になりました。
アンプ出力特性の低インピーダンス側の制約(電流がこれ以上流せない制約)に当たっているのかもしれません。しかし奇妙なのはだいぶボリュームを小さく(ウルサイの嫌いなので、ほぼ最小です)していても、シューシュー言ってることです。余程、低インピーダンスにおけるドライブ能力が低いアンプなんですかね……?
インピーダンスはヘッドフォンに入力する周波数によって変動する(あまり変動しないヘッドフォンもある)そうなので、ヘッドフォンのインピーダンスを測る方法はある?と思って調べてみました。
ヘッドフォンは周波数によってインピーダンス特性が変わるので、LCRメーターでは測れません。いや測れるには測れるんですが、望みの条件にならないので、意味がありません。
ちなみにLCRメーターでは難しい測定対象をどう測れば良いか?については、圧電素子のインピーダンス測定 - エヌエフ回路設計ブロック、が大変参考になりました。
けど、どうも素人には計測不可能みたいです。まず紹介されている計測器はクッソ高くて250万円します。他の機器を代わりにしたくても、動作原理に「正弦波発生器+フーリエ変換でゲインと位相を計測」とか書いてあって、そこらのテスターじゃ出来そうにありません。
そこまで電気回路の知識もないし。諦めよう、うん。
流行に2周遅れくらいですが、ハンドスピナーを買ってみました。Innoo Tech虹色(IN7-B002)とiSpin S3です。どちらも良く回ると評判の商品です。
ハンドスピナーの遊び方を知らずに買ったのですが、どうやら特に遊び方はなく自由で、手で持っても良いし、テーブルに置いて回しても良いそうです。
今回買った2つはいずれも回転時間を稼ぐためか、重目に出来ていて、手で持つのはちょっと辛いです。
テーブルに置くと「シューーー」と音を立てながら、いつまでも回っています。
ボールベアリングってすごいなあ。
メモ: 技術系の話はFacebookから転記しておくことにした。
Amazonでハンドスピナーを検索するとわかると思いますが、ほぼ同じ商品が全く違うメーカーから発売されています。
特に虹色のハンドスピナーは似たような商品が多くて、訳がわかりません。すこぶる検索しづらいです。
そもそもInnoo TechからしてAmazonの商品ページのタイトルが
「Innoo Techハンドスピナー レインボーカラー3〜5分回しHand Spinner指スピナー おもちゃ プレゼント」
ですよ。こんなタイトルじゃ意味わからんでしょう。
プレゼントとかどうでも良いこと書く前に、商品名に愛称か型番を書いてくれと思いました。せっかく良く回るし、色も綺麗なのに勿体ない宣伝の仕方です。
そういう意味ではiSpinは探しやすかったですね。
最近、アイスの包装の写真と感想を残すようにしています(リンク)。
アイスの包装の写真がいつの間にか35種類になっていました。暇なときに写真を撮っていますが、Wikiへのアップロードが意外と面倒くさいなあ……。
数えてみたら赤城乳業のアイスが一番多かった(16種類)です。赤城乳業はガリガリ君でおなじみのアイス専業メーカーです。名前に反して牛乳は作っていないのだとか。
今日は土曜日で祝日(秋分の日)です。
サラリーマンや学生は土曜日も祝日も休みという意味では区別がなく、土曜日と祝日が重なると残念な気分になるけれど、当然ながら世の中には土曜日が休みではないお仕事もあります。
我が家に毎週ヤクルトを配達してくれるヤクルトレディーの方に聞いたら、土曜は休みではないが、祝日は休みらしいです。だから先週は休みじゃないけど、今週は配達がお休み。
今まで土曜日と祝日に区別が無くて当然の生活をしていたけど、区別がない仕事と、あるお仕事はどちらが多いのかなあ?
JARGA日本レトロゲーム協会の展示会に行ってきました。
会場は阪南市の山中の民家です。道が狭く場所が無いので、車で行くとご迷惑になります、というか、なりました……。
展示会では写真に挙げたような、古いゲーム機がたくさん見られます。ファミコン世代は全く知らない70年代のゲーム機も多数あります。
ゲームソフトも大量に所蔵しているそうですが、場所の都合でハードしか置けなかったそうで。
ゲームコーナーもありました。子供もいましたよ。古すぎて見たこと無いはずのゲームを、みなさん楽しそうに遊んでいたのが印象的です。
展示会は無料で見られますが、これだけのもの見せてもらって、タダで帰るのもなあ…、と思って、奥さんと共にJARGAの賛助会員になってみました。
会員になってから知りましたが、JARGAはNPO法人なんですって。会員になった記念?に、JARGA理事長の石井さんが会場を簡単に案内してくれました。
お仕事は中古ゲームショップ経営で、海外旅行が趣味。欧州を半年だか1年だったか掛けて、巡ったこともあるとか。海外ではゲームの博物館があるのに、ゲーム先進国の日本にないのはおかしい、と思ったのが、協会を作った動機だそうです。
将来的には日本橋辺りで博物館を開く予定のようです。しかし日本では博物館は金にならないのも分かっていて、実現できたとしても期間限定だろうとも仰っていました。
文化財に相続税を掛けないようにすれば、節税対策として金持ちが文化財を買い漁って、ついでに綺麗に保管してくれそうなのになあ……。
メモ: 技術系の話はFacebookから転記しておくことにした。
目次: Android
Twitterでボヤきまくっていたけど、流れて消えちゃうのでメモ。Linuxのメモリ管理がさっぱりわかりません。CMA(Contiguous Memory Allocator)とTHP(Transparent Huge Pages)の動きが謎過ぎます。
CMAとは、ある領域を特別な領域として定めて、普段はユーザプロセス用のメモリとして使い、ドライバが要求するなどここぞというときにユーザプロセス用のメモリを強制立ち退き(Page Migration)させてDMA用のメモリとして使う技術です。
私が思いつく利点としては、
THPは仮想連続の4KBのページを512枚集めてきて、2MB(ARMの場合)のHuge Pageに置き換えてしまう技術。のはずです。あまり調べてないので、違ってたらゴメンなさい。
私が思いつく利点としては、
これらの技術のコンセプトは素晴らしいので、ぜひ使いたいと思って使っていますが、動きが謎過ぎて困っています。困っている問題は3つ。
THPはkhugepagedというカーネルスレッドが裏でひっそりと活動してページを置き換えます。こいつが使うメモリページはPageCompoundという属性になっていて、なぜかPage Migrationできません。なぜなのか理由はわかりません。
それでいてTHPはCMA領域をガンガン消費します。なぜかはあまり調べていませんが、おそらく、
辺りがCMAから大きいサイズの領域を取りやすい理由だと思います。
しばらく放っておくとCMA領域がTHPで埋まってしまうため、ドライバのdma_alloc() がENOMEMとかで失敗するようになって、ドライバが動かなくなってしまいます。
解決方法を知りたくて、頑張ってBuddy Allocatorまでコード読んでみましたが、khugepagedも結局alloc_pages() でHuge Pageを取っているだけでした。つまり他の用途のメモリの取り方と何ら変わりません。当然ながらCMA領域を避けて取るとか、そんな機構があるようには見えなかったので、この問題を回避する方法はわからないままです。
THPはGFP(Get Free Pages)フラグが少し特殊ですので、Buddy Allocatorでフラグを見てTHPをCMA領域に割り当てないように改造することは出来ましたが、本当にこんな改造が要るんでしょうか?
私が見た範囲では、フラグをチェックしてメモリの割り当て処理を変えている個所は見当たりませんでしたから、何か別の方法が隠れているかもしれません。
誰も困っていないのでしょうか。それとも私の設定がマズいだけでしょうか?
Buddy Allocatorの詳細な仕組みはここでは説明しきれませんが、メモリはゾーンという大きな括りで分けられており、各ゾーンには5つのリストがあります。アロケータはこの5つのリストのどれかからページを割り当てます。/proc/pagetypeinfoで各リストの残量を見ることができます。
カーネルにメモリページの取得リクエストが来ると、基本的には上4つのリストのどれかからページが取得されます。どのリストになるのかはGFP(Get Free Pages)フラグに何を指定したか?によって決まります。ユーザプロセス用のメモリであればMIGRATE_MOVABLEから取られます。
ではMIGRATE_CMAはいつ使われるのか?というと、これが良くわからないんです。
実機でメモリを使いまくるプロセスを立ち上げ(yes | sortとか)/proc/meminfoの様子を見ていると、
こんな動きになります。3番目のページキャッシュ減少が起きると、システムが遅すぎて使い物になりませんので、もっと早めにCMA領域を利用していただきたいのですが、なぜかそうなりません。
Buddy Allocatorのコードを見るとMIGRATE_MOVABLEが枯渇というか、ページ割り当てに失敗したときに初めてMIGRATE_CMAからのページ割り当てに挑戦するようになっているように見えます。
個人的にはMIGRATE_CMA → MIGRATE_MOVABLEの順に割り当てた方が良かったのではないか?と思いました。ドライバがCMA領域を使う時はPage Migrationがあるわけですから。
MIGRATE_MOVABLE → MIGRATE_CMAの順に割り当てMIGRATE_MOVABLEを先に使い果たしてしまうと、CMA領域からユーザプロセス用のページをMigrationしようにも移動させる先がありません。これではPage Migrationが役に立ちません。
どうもイマイチです。設定か何かが間違っているのでしょうか。
あまりに訳の分からない動きをしているので、CMAが正常に動いている例が見たかったのですが、手元のAndroidデバイスでCMAを使っているシステムが全くありませんでした。ショック。
CMAは組み込みのように制約の多いハードウェア、かつ、メモリ容量に制限のあるシステム向けの機能です。AndroidであればION Carveout Heapだとメモリ占有が多すぎて耐えられないボンクラハードウェアや、メモリの搭載量が非常に少ないシステム向けの最終兵器のはずです。
GoogleもAOSPで紹介している(Low RAM Configuration | Android Open Source Project のCarveouts, Ion and Contiguous Memory Allocation (CMA) の節)ほどなのになあ。
でも身の回りの製品では誰も使っていません。CMAって誰が使ってるんだろう??
目次: Android
昨日(2017年9月29日の日記参照)の続きです。各問題への所感です。
THPを諦める、すなわちCONFIG_TRANSPARENT_HUGEPAGEをLinuxのconfigで無効にしてしまえば回避できます。
私の場合THPは無くてもそんなに困らないですから、仮にTHPかCMAの排他的二択がLinuxの現状の仕様だったとしても構いません。
今のところ調整方法もへったくれも見つけられず、本当にどうしようもなくて困っています。
Buddy Allocatorを書き換えてMIGRATE_CMAから先にページ割り当てするように改造したところ、ユーザプロセスもドライバもそれなりにご機嫌に動いていますが、魔改造なことこの上ないでしょう。
このデバイスはCMA使ってる、とか、お前の確認方法は間違っているとか、何か知っている人が居たら愚かな私に教えてほしいです……。
Androidデバイスならadbで繋いで /proc/meminfo見たときにCmaFreeって項目があればCMAを使っているはずです。
もしくは古いカーネルだと /proc/buddyinfoにCMAという項目があるかもしれません。