woremacx.com

WD80EAAZ の IntelliPark 回避がうまくいっているようだ

WD80EAAZ に対して ATA NOP Command を送ることにより、IntelliPark を回避できるか試していたが、無事成功している。

前回の記事より 20 ほどロードサイクル進んでしまっているが、全体の初期化や、何度か再起動や初期化などを行った際に増えてしまった。

1 週間前

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

この記事の post 時点

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

WD の IntelliPark 付き HDD の Load_Cycle_Count 増加を抑制する

Synology DS223j に IntelliPark を無効化できない WD80EAAZ (x2) を載っけてみました。

ディスクにダミーの読み書きアクセスをすることなくヘッドのアンロードを防ぎたかったので、他の方法を採用しました。

ATA NOP Command という何もしないコマンドを送ってみたところ、無事 Load_Cycle_Count が増えることなく動いているようです。

NAS 内に常駐させる場合の流儀とか調べるのが面倒だったので、コンテナを常時起動させることにしました。

ソース

AI() 様にほとんど書いてもらった。

動かし方

Container Manager を入れる

docker pull する

以下の記事によれば、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 コマンドを送るようにしてみたい。

Windows 10 の入ったディスクのバックアップが clonezilla で外形的にできることがわかった

systemrescuecd に同梱されている clonezilla を使ってまるまる取った Windows 10 のバックアップが戻せるか不安で仕方なかったので、VirtualBox に戻せるか試した。

そもそもなぜ clonezilla を試したかったのか?

  • OSS のツールが欲しかった。
  • 確実に余計なことをしないツールが欲しかった。
  • OSS なやつの NTFS サポートが 2020 年の Windows 10 時代においても戦えるものなのか知りたかった。

clonezilla のウィザードに従っては自動レストアできなかった

ターゲットディスクのパーティションが作り直されたあとで、書くパーティションごとのレストアを進行するはずだが、

"gzip: stdin: unexpected end of file"

みたいなやつがでて、そもそも個々のイメージをうまく読み込めない致命的な問題が発生。

*.gz.aa を全部結合したうえで展開して sda4.ntfs-ptcl-img のようなファイルに置き換えてもダメ。

ログに残っていた ocs- から始まるコマンドを実行してみてもダメ。

partclone.restore で手作業レストアで解決

partclone.restore というコマンドがあったので、これを試したらうまくいった。

cat sda4.ntfs-ptcl-img.gz.* | gunzip | partclone.restore --overwrite /dev/sda4

各パーティションごとにやれば何も問題なく完了。

理由は知らないけど、dstat で見てると 10MB/s くらいずつしか処理されてない感じがあってちょっとつらかった。

レストア終了後にやったこと

AQUOS テレビのリモコンが効かなくなったので代替手段を Arduino 的な物で代替できるか調べる

自宅の 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 で公開されているプログラムを動かすぐだけではありますが、久しぶりに “電子工作” を再開することができました。

めでたしめでたし。

go-slackproxy というものを作った

複数の slack のネットワークにつないでいて、滅多に発言無いけど超重要なネットワークがあった場合、普段使ってる側に全文転送したい。

そこで、outgoing webhook で中継用の http な go-slackproxy に POST して、go-slackproxy が別の slack の incoming webhook を叩く君を作った。

slack のインテグレーションの設定画面で迷子になったけど、便利になった!

https://github.com/woremacx/go-slackproxy

2015年の振り返り

2015年も残りわずかとなったわけですが、自分にとっては初の試みである振り返りをしてみる。

8月

変な電子工作頑張った。

12月

qiita の advant calendar がんばった。

まとめ

  • 来年はもうちょい「これやったよー!」って言えること頑張っていきたい!

Atmel AVR ATmega32U4 で Matias Half Keyboard っぽいのを作った

背景

タブレットの裏にキーボード貼ったら 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 ハードディスクにバックアップ

やりたいこと

タイトルの通り、OSX の TimeMachine で exFAT な USB ハードディスクにバックアップをとりたい。

手順

  • ディスクユーティリティでスパースバンドル作る
  • 開いたスパースバンドルを開く
  • diskutil list でどの /dev/diskXsY に割り当てられているか調べる
  • diskutil enableOwnership /dev/diskXsY
  • tmutil setdestination '/Volumes/hogehoge'
  • システム環境設定の TimeMachine 見るとバックアップ先が変わっている

参考

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy