100円ショップダイソーのmicriSDを購入

先日100円ショップのダイソーに数カ月ぶりに行ったところ550円で32GのmicroSDとUSBメモリが売られていました.
秋葉原や通信販売であれば著名メーカーの同等以上のものが変える値段ですが,今日必要と行った場合には家電量販店やコンビニエンスストアでもっと高い値段で売られています.(未だにclass 4なんかも売っていたり……)
メーカーは磁気研究所で謎メーカーよりは良さそうだし保証期間も1年あるので普通に使えるようなら急に必要になったときに便利かもとmicroSD を1枚買って少し試してみました.

daisos microsd sale

続きを読む

Raspberry Pi が起動しなくて困る(未解決・microSD不良?)

先日AmazonでmicroSD cardを購入しました.Samsung ドライブレコーダー向け microSDカード32GB 正規代理店保証品 MB-MJ32GA/ECというものです.

これにRaspberry Pi向けのイメージを書き込んで起動しようとすると,RaspberryPiでLEDがピカッピカー.って感じで2回光って消えます.そしてSerialには以下のメッセージが表示され起動しません.

Error: invalid dtb and unrecognized/unsupported machine ID
  r1=0x00000c42, r2=0x00000000
Available machine support:

ID (hex)        NAME
ffffffff        Generic DT based system
ffffffff        BCM2835
Please check your kernel config and/or bootloader.

はじめに試したイメージは自作のものだったのでそのせいかと思ったのですが,Raspbian Buster Lite 2019-09-26 でも同様の動きになります.
ボード側をRaspberry Pi Zero/ZeroW/A+と試しましたがどれでも同じ動作です.

でもmicroSDを交換すると起動します.microSDが怪しそうです.
f3で速度や容量を確認してみました.

容量は問題無さそうなのですが,

最大読み出し速度100MB/s、最大書き込み速度30MB/s

とのことですが実際は読み込み20MB/s前後,書き込み速度は10MB/s前後くらいなので遅すぎる感じがします.
ということでmicroSDが怪しいのでとりあえず返品しようかと思います…….

microSD cardが壊れたので高耐久モデルのmicroSD cardを入手

Raspbery Pi に使っていた 4GB の microSD が壊れてしまいました.wipefsでパーティション情報を消すのに数分.OSイメージを書き込みしようとしても1日動かしても終わりません.
とりあえずデジタルカメラに使っていた SD card を microSD アダプタ経由でと思いましたがどうもアダプタの制度がいまいちなのかすぐ SD を見失ってしまいちょっとつらい感じです.ということで数年ぶりに microSD を購入しました.

容量としては4GBあればok,しかしそのへんの容量はもう殆ど無いし割高.山の奥とかSanDiskとかも考えましたが,TranscendのMLC高耐久モデルが高耐久の割には安い感じです.ECCも付いています.とりあえずAmazonのカートに入れておいたら100円引きクーポンが現れたのでそのタイミングで購入しました.
1,780円から100円引きで1,680円でした.

カタログスペックはこんな感じ(気になるところの抜粋)

容量	16 GB/32 GB/64 GB/128 GB
フラッシュ種類	MLC NANDフラッシュ
動作環境温度	-25°C (-13°F) ~ 85°C (185°F)
動作電圧	2.7V ~ 3.6V
スピードクラス	UHS-I U1  Class 10
読出し(最大)	90 MB/s
書込み(最大)	50 MB/s
耐久性(最大)	16 GB: 3,000時間
保証	2年保証

耐久性の 3,000時間というのは 製品情報シート(pdf) によると26 Mbpsのときの時間のようです.
26 Mbps を 3000 時間 → ( 26 / 8 ) * ( 3000 * 60 * 60 ) = 35100000 MB → 35.1 TB かな?
全領域を使うドライブレコーダーならこれに近い数字が出そうですが OS 領域として使うならもっとずっと少ない書き込みで壊れそう.
(圧縮すると数倍伸びそう?Btrfs?JFFS2?FuseCompress??ウェアレベリング…据え置きならSSDのほうがいいか)

Transcendの他のMLCモデルのほうが少し安いが,説明では書込み頻度の高い使用環境では高耐久モデルを勧めている.

ドライブレコーダーや監視カメラなどの書込み頻度の高い使用環境では、保証対象外となりますので、高耐久microSDカードをご使用下さい。推奨型番:TS16GUSDHC10V

04日に注文して07日にコンビニに届いたので受け取ってきました.金色!

45780982671 d761eb6c1f45056103954 e34355a8cc44867753465 999996904d

念の為製品照合システムで本物か確認しておきます.
シリアル番号を確認してこのページのフォームに入力することで照合できます.

シリアル番号はパッケージには見当たらず本体の裏面にありました.肉眼では見にくい.

30840856717 61f2c466d2
30841825187 8fa3335f57 m

本物でした :)

44867714815 2f337e8f00

安心したところでPCに挿してとりあえず簡易テストを.

$ dmesg -Tw
   :
[水 11月  7 21:33:42 2018] mmc0: new high speed SDHC card at address 59b4
[水 11月  7 21:33:42 2018] mmcblk0: mmc0:59b4 USDU1 14.6 GiB
[水 11月  7 21:33:43 2018]  mmcblk0: p1
^c
$ sudo wipefs -a /dev/mmcblk0
$ sudo hdparm -vtT /dev/mmcblk0

/dev/mmcblk0:
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 readonly      =  0 (off)
 readahead     = 256 (on)
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 geometry      = 478432/4/16, sectors = 30619648, start = 0
 Timing cached reads:   6072 MB in  2.00 seconds = 3039.10 MB/sec
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 Timing buffered disk reads:  62 MB in  3.07 seconds =  20.20 MB/sec
 $ zcat ./2018-10-09-raspbian-stretch-lite.zip | pv | sudo dd of=/dev/mmcblk0 bs=4M ;sync
 1.74GiB 0:00:14 [ 120MiB/s] [ <=> ]
 0+53380 レコード入力
 0+53380 レコード出力
 1866465280 bytes (1.9 GB, 1.7 GiB) copied, 271.655 s, 6.9 MB/s
$ uname -a
Linux raspberrypi 4.14.71+ #1145 Fri Sep 21 15:06:38 BST 2018 armv6l GNU/Linux

EDIT: eLinux.orgの簡易テストを追記( RPi SD cards – eLinux.org )

$ sync; dd if=/dev/zero of=~/test.tmp bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 74.6846 s, 7.0 MB/s
$ sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
3
$ sync; time dd if=~/test.tmp of=/dev/null bs=500K count=1024
1024+0 records in
1024+0 records out
524288000 bytes (524 MB, 500 MiB) copied, 22.9698 s, 22.8 MB/s

real    0m22.989s
user    0m0.002s
sys     0m2.790s

#ランダムもfioで少し試した → https://gist.github.com/matoken/6e3a4d07e36698470bac6ec75bb2c1d1

大体シーケンシャルリードで 20MB/s.シーケンシャルライトで 6.9MB/sくらいのよう.
カタログの 読出し(最大) 90 MB/s 書込み(最大) 50 MB/s からすると大分遅く感じますね.
といってもこれまで使っていたものの倍以上の速度は出ています.

てことでしばらくはこの card で Raspberry Pi を運用してみようと思います.

#こういう安いやつを買って壊れたら買い換えるほうがいいような気がしなくもない

microSDスロットの固定機構の壊れたRaspberry Pi 2 Bのバネを取り外して普通に使えるようにする

SANY0011

Raspberry Pi 2 Bを使っているのですが,以前からmicroSDソケットの固定機構が壊れてしまっています.セロハンテープで留めて更にケースに入れて動きにくくしているのですがたまにずれるようで起動中にストレージを見失ってしまうことがあります.(そして数回に一回は要fsckに)

ちょっと面倒なので対処したいなと思いながら放置していたのですが,また今日も起こったので調べてみることに.多分microSDを押し返すピンかバネを無くしてしまえたら解決しそうな気がします.でも内部が見えないのでどこにピンやバネがあるのかよくわからないです.

SANY0015

きっと先駆者が居るだろうと検索するといくつかそれらしいページを見つけました.

ソケットを交換するアプローチ

ソケットの中のスプリングを取り出してしまうアプローチ

後者のスプリングを取り出すのが簡単そうだし,最悪失敗しても前者のソケットを交換すればいいかなと試してみました.スプリングの場所が分かったのですが現物を見てもよくわからないです.光を当てながら少し斜めから見るとバネが見えました.バネの横の部分を一旦開けて中を確認する人も居るようです.

SANY0019

ここで安全ピンのピン先でこじるようにと思いましたがちょっと安全ピンが大きいせいかソケットが膨らむのでジャンパワイヤのオスを使いました.

ソケットのスプリングの上側からこじるとプラスチックのラッチが外れました.一旦ラッチを取り出して更にその奥をこじるとスプリングの反応がありました.スプリングを内側に倒してから引っ張り上げるようにして取り外せました.

SANY0020

この状態でmicroSDを差し込むとmicroSDは押し返されなくなりました!これで最近のRaspberry Pi Zero(多分3B/3B+も)と同じような使い勝手になったと思います.

SANY0022

今回はRaspberry Pi 2 Bでしたが,Raspberry Pi B+/Raspbery Pi A+もロック機構が壊れたら同様の機構なので同じように解決できると思います.

今だと最新のRaspberry Pi 3 B+を買う人が多いでしょうが.