WD80EAAZ に対して ATA NOP Command を送ることにより、IntelliPark を回避できるか試していたが、無事成功している。
前回の記事より 20 ほどロードサイクル進んでしまっているが、全体の初期化や、何度か再起動や初期化などを行った際に増えてしまった。
root@ds223j:~# date; for n in 1 2;do smartctl -a -d sat /dev/sata$n|grep Load_Cycle;done
Wed Oct 23 12:35:38 PM JST 2024
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 91
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 96
root@ds223j:~# date; for n in 1 2;do smartctl -a -d sat /dev/sata$n|grep Load_Cycle;done
Thu Oct 31 08:28:04 PM JST 2024
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 91
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 96
Synology DS223j に IntelliPark を無効化できない WD80EAAZ (x2) を載っけてみました。
ディスクにダミーの読み書きアクセスをすることなくヘッドのアンロードを防ぎたかったので、他の方法を採用しました。
ATA NOP Command という何もしないコマンドを送ってみたところ、無事 Load_Cycle_Count が増えることなく動いているようです。
NAS 内に常駐させる場合の流儀とか調べるのが面倒だったので、コンテナを常時起動させることにしました。
AI() 様にほとんど書いてもらった。
以下の記事によれば、ghcr.io は web 画面から設定できないようなので、docker pull する。
Adding ghcr (Github Docker Regustry) to Synology docker results in “Registry returned bad result” - Stack Overflow
root@ds223j:~# docker pull ghcr.io/woremacx/go-ata-nop:latest
latest: Pulling from woremacx/go-ata-nop
2af3ff7d3219: Pull complete
Digest: sha256:ad03a840f450bccfcd6fc3f0f01fc2a9117689c4757512f361e2d035aaa540b6
Status: Downloaded newer image for ghcr.io/woremacx/go-ata-nop:latest
ghcr.io/woremacx/go-ata-nop:latest
web から pull できていることを確認。
root@ds223j:~# docker run --restart=always --detach \
--privileged \
-u 0:0 \
-v /dev/sata1:/dev/sata1 \
-v /dev/sata2:/dev/sata2 \
ghcr.io/woremacx/go-ata-nop \
/app/go-ata-nop -verbose /dev/sata1 /dev/sata2
-verbose
つけてあるのでログが出ている。通常利用する場合は、-verbose
不要。
root@ds223j:~# while [ 1 ];do date; for f in /dev/sata?;do smartctl -a -d sat $f|grep Load;done;sleep 300;done
Sun Oct 20 05:32:38 PM JST 2024
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 72
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 78
---
Sun Oct 20 05:54:56 PM JST 2024
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 72
193 Load_Cycle_Count 0x0032 200 200 000 Old_age Always - 78
毎秒 /proc/diskstats をみて、一定時間アクセスがないと判断できた場合は NOP コマンドを送るようにしてみたい。
systemrescuecd に同梱されている clonezilla を使ってまるまる取った Windows 10 のバックアップが戻せるか不安で仕方なかったので、VirtualBox に戻せるか試した。
- OSS のツールが欲しかった。
- 確実に余計なことをしないツールが欲しかった。
- OSS なやつの NTFS サポートが 2020 年の Windows 10 時代においても戦えるものなのか知りたかった。
ターゲットディスクのパーティションが作り直されたあとで、書くパーティションごとのレストアを進行するはずだが、
"gzip: stdin: unexpected end of file"
みたいなやつがでて、そもそも個々のイメージをうまく読み込めない致命的な問題が発生。
*.gz.aa を全部結合したうえで展開して sda4.ntfs-ptcl-img のようなファイルに置き換えてもダメ。
ログに残っていた ocs- から始まるコマンドを実行してみてもダメ。
partclone.restore というコマンドがあったので、これを試したらうまくいった。
cat sda4.ntfs-ptcl-img.gz.* | gunzip | partclone.restore --overwrite /dev/sda4
各パーティションごとにやれば何も問題なく完了。
理由は知らないけど、dstat で見てると 10MB/s くらいずつしか処理されてない感じがあってちょっとつらかった。
自宅の AQUOS テレビのリモコンが効かなくなりました。
幸いにも RS-232C で制御できるタイプのテレビであったため、Arduino 的な物で代替できるか調べることにしました。
まずは、RS-232C の口が生きているかの確認です。
Go で実装されている
Go Library for SHARP AQUOS TV
の example を使って、コマンドが実行され生きていることを確認しました。
手元に USB の RS-232C 接続ケーブルがなかったので、
FT232RL USBシリアル変換モジュール
から
3V,3.3V,5V系−RS232レベル変換基板
につないで、信号レベルを RS-232C レベルにし、
IC テストクリップでテレビから延長してきた RS-232C コネクタのオスのピンをつまみ実験しました。
続いて、Arduino 的な物についてです。
困ったときにいつも参照させて頂いている ChaN 氏の
赤外線リモコン制御モジュール
を
手元の
ダ・ヴィンチ32U
上で動くようにし、USART につないだ FT232RL 経由で、リモコンのコマンドを受け取れるところまで確認できました。
ここで、なぜか SONY 形式の信号が検出され、SHARP の AEHA 形式な信号が来ないことから
BDレコーダのリモコンのTVメーカー設定がなぜかずれていたことに気づくことになりました。
再設定したところ、無事テレビが使えるようになりました。めでたしめでたしというしょーもない終わりになりました。
まー、やりたいことができること一応確認するという意味で、受け取ったリモコンの信号で RS-232C に指定した文字を吐くってのを PC 上でできたところで今回はおしまいということに。
テレビが壊れて無くてヨカッタ。
おかげで、AVR と、各種電解コンデンサの詰め合わせと、赤外線受光モジュールのストックを確保できました。
また、電線繋いで、Web で公開されているプログラムを動かすぐだけではありますが、久しぶりに “電子工作” を再開することができました。
めでたしめでたし。
curl で html 取ってきて、上下の不要部分を取り除いた後、calibre の ebook-convert 使って変換。
iPhone に入ったので、いつでもどこでも見れる!
https://github.com/woremacx/go-spec-epub
複数の slack のネットワークにつないでいて、滅多に発言無いけど超重要なネットワークがあった場合、普段使ってる側に全文転送したい。
そこで、outgoing webhook で中継用の http な go-slackproxy に POST して、go-slackproxy が別の slack の incoming webhook を叩く君を作った。
slack のインテグレーションの設定画面で迷子になったけど、便利になった!
https://github.com/woremacx/go-slackproxy
2015年も残りわずかとなったわけですが、自分にとっては初の試みである振り返りをしてみる。
変な電子工作頑張った。
qiita の advant calendar がんばった。
- 来年はもうちょい「これやったよー!」って言えること頑張っていきたい!
littlebits のコネクタを探していた。
HARDWARE DEVELOPMENT KIT
は、
- 2 Protoモジュール
- 1 Perfモジュール
- 12 bitSnaps(6オス、6メス)
が入って 5,400円。
BITSNAPS
(コネクタだけ)
は、6ペア $15.95、1,915円であった。
タブレットの裏にキーボード貼ったら iikanji に使えるんじゃねと思い、部品集めて作ってみました。
Matias Half Keyboard ってのが過去に出てたことはあるけど、すでに本家サイトでしか買えるところがなく、値段がかなり跳ね上がっておりました。
Matias Half Keyboard は左手で使う用に作られています。普通に文字を打つと、左手でタイプした文字が入力されます。
一方で、スペースキーを押している間だけ、右手領域の文字をタイプしたことにできるキーボードです。
詳しくは 半分サイズのキーボード「Matias Half-Keyboard」を読むと書いてあります。
それを作りたかったので、それっぽいものを作ってみました。
使った部品は以下の通り。
ソフトウエアは以下の通り。
tmk_keyboard が、既存のキーボードの基板を AVR で置き換えてキーバインドをこねくりまわすことに特化したソフトウェアで、データの取り方とかマトリックスの配列書くだけで、Fn とかの処理まで全部やってくれて、とても素敵でした。
ハードウェア的には、AVR 内蔵のプルアップ抵抗使ったので、がんばって電線を半田付けしただけのカンタン工作です。
キーボードマトリクスの ROW として PD0-1,PD4-7、COL として PB0-5 にキーボードの左半分を繋ぎました。
PD2-3 は、RXD TXD なので、デバッグ用として残してあります。
ROW は行の選択、COL は選択された行で押されているボタンの検出に使います。
まず、COL をプルアップ付き入力にしておきます。
つぎに、ROW を全部ハイインピーダンスにして切り離しておきます。
読み取りたい ROW だけを L にするループを回します。
それぞれの ROW に対して COL の状態を読み取りマトリックスに反映します。
COL は、プルアップされているので、1 になってるビットは押されてない、0 になってるビットは押されてるという風な流れです。
このような感じでマトリックスを作っておけば、あとは tmk_keyboard が色々面倒いところをやってくれるのです。
タブレットの裏にキーボード貼って頑張って使おうとすると、腕がつりそうになることがわかりました。
Enter キーの割り当てがよくないところにあるなーとか思っておりますが、完成初日以来二度と使っておりません。。。
満足感は半端ないので、ヨカッタ。
タイトルの通り、OSX の TimeMachine で exFAT な USB ハードディスクにバックアップをとりたい。
- ディスクユーティリティでスパースバンドル作る
- 開いたスパースバンドルを開く
diskutil list
でどの /dev/diskXsY
に割り当てられているか調べる
diskutil enableOwnership /dev/diskXsY
tmutil setdestination '/Volumes/hogehoge'
- システム環境設定の TimeMachine 見るとバックアップ先が変わっている