たまに掃除は必要!熱暴走…

イメージ
 そんなに暑くないのに… 本日、午前中にオンラインで打合せをしていると、突然マシンがダウン。 一瞬、停電か?と思ったもののディスプレイの電源は入っている。 あれっ?と思い、すぐさまノートで打合せを継続。 その間に、再度マシンの電源を投入。 問題なく起動する。 でも、CPU温度がたまたま目に入り、95℃を超えて徐々に上昇していく。 105℃あたりで再度マシンダウン。 これは、熱暴走によるダウンの可能性が高い。 以前、CPUをRyzen7→9にした頃は、60℃〜70℃程度だった記憶がある。 本当はGW中にSSDの載せ替えを行う予定だったけれど、忙しくて先延ばしにしていた。 その時やっていれば、多分掃除もしただろうに…。 ということで、午後からマシンを解体し、掃除をすることに。 ケース本体のFANはホコリがかなり溜まっている。 GPUのFANは問題ない。 電源とCPU FANはひどい。 一旦、CPU FANを取り外し、きれいにする。ついでにCPUグリスも塗り直しセット。 動作確認すると、投入直後で40℃台。 そりゃ、熱暴走も起こすわけだ。 せっかくバラしたので、SSDの載せ替えを実施。 OSは500GBで、ユーザ領域(/home)は1TBを使用しているもののAIのmodelをいくつも落としていたり、DockerのImageが多種置いてあるため、結構容量を食っている。 今回、2TBのSSD( Hanye SSD ¥17,800- で入手済)を用意してあるので、 1TB→2TB, 500GB→1TBと玉突きで移動させることを計画していたので実施する。 本当は、ddコマンドで移すつもりだったのだけれど、3月にお客さんのところで使いそうだったので、 ORICOのクローン機能付SSDアダプタ を入手済。 裸族のSSD版ですね…。1万円程度の品です。 これに、新品のSSDとこれまでの1TBのSSDを差し込んでクローン開始。 そこそこ時間はかかるものの、放置でOK。 ただ、HanyeのSSDについているヒートシンクが引っかかるため、一旦取り外してクローン後取り付ける必要があった。 続いて、500GB→先程の1TBに書き込み。 ただ、1TB(samsungの980pro)が、先程のクローンでかなり熱くなっていたため、速度低下が激しい感じ。1TB→2TBよりも時間がかかった感じ。 ...

Sketch の書き込みができた on Ubuntu

Arduinoでトラブルが続いていた

現在、Ubuntu(12.04-32bit)+ruby 1.8.7 + Arduino Mega2560という組み合わせで、開発を進めているのだけれども、先の記録にもあるように、予想以上に苦労している。

今回、Arduino IDEからMEGA2560へのsketchの書き込みが、エラーで出来なかったものを、工夫することで書き込みができることが分かったので、まとめておこうと思う。

まずは設定

普通にArduino IDEを起動して、書き込みを行うと図のようにエラーが発生する。
例では、スケッチの例にあるStandardFirmataを読み込んで、Arduino Megaに書き込もうとしている所。

すると、
avrdude: stk500v2_RecieveMessage(): timeout
なんてエラーが延々と出て書き込みが終了しない。

こんなエラー情報では、何もわからないので、詳細な情報を得られるようにしておく。

「ファイル」->「環境設定」->「より詳細な情報を表示する」の「書き込み」にチェックを入れておく。
コンパイルの情報を見たければ、チェックを入れればいいのだけれど、今回はコンパイルまで終了し、書き込みに失敗しているので、書き込みだけでOK。

具体的な手順

この状態で、コンパイル&書き込みを行うと、さっきより格段に細かい情報が得られるのが分かるはず。

これが右の図。
すると、どんなデータを書き込もうとした。上手くいったとか失敗したとか…。

この状態が最低限必須。

この状態で先に進んでも良いのだけれど、詳細なLOGを見ているうちに、どんどんエラーが増えていくし、エラーをたくさん見ても意味が無いので、起動方法を変更する。

コンソール(Terminal)から、手動で起動してやると、あとの処理が楽になる。
$ arduino もしくは $ /usr/bin/arduino
か、異なるバージョンを入れてたりするなら、そのディレクトリで
$ ./arduino
で起動するはず。

ここまで来たら、書き込みたいsketchを開いて、書き込みを実行する。
すると当然のことながら、先と同じエラーが発生する。

ここで慌てずに、コンソール(端末)で中断(control+C)を実行する。

$ arduino
コンパイル後のスケッチのサイズ:15,196バイト(最大容量258,048バイト)
/usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build4946465769096413677.tmp/StandardFirmata.cpp.hex:i 
avrdude: Version 5.11.1, compiled on Oct 30 2011 at 10:41:10
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch
         System wide configuration file is "/usr/share/arduino/hardware/tools/avrdude.conf"
         User configuration file is "/home/satoshi/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping
         Using Port                    : /dev/ttyACM0
         Using Programmer              : wiring
         Overriding Baud Rate          : 115200
avrdude: wiring_open(): releasing DTR/RTS
avrdude: wiring_open(): asserting DTR/RTS
avrdude: Send: . [1b] . [01] . [00] . [01] . [0e] . [01] . [14]
^C

この時点で、コンパイルは終了しているので、書き込みだけ上手く出来れば良いわけで、この画面に表示されているコマンドをそのまま実行してやる。(上の赤い部分)
$ /usr/share/arduino/hardware/tools/avrdude -C/usr/share/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega2560 -cwiring -P/dev/ttyACM0 -b115200 -D -Uflash:w:/tmp/build4946465769096413677.tmp/StandardFirmata.cpp.hex:i 
勝手に改行とかせずに、表示されている行をそのままコピーして貼り付け実行してやればOK。
すると、細かい表示をしながらも、プログレスバーが表示されて、無事書き込みが終了する。

これでエラーが起きること無く、書き込みが完了し、動作させることができる。

結局IDE側(java)の処理の問題のようだ。
単純にforkしてやれば良いような気がするのだけれど…。何か変な処理をしているんだろうな〜と勝手に推測しているんだけれど…。

これで、母艦のMacで書き込んだり、Windowsで書き込んだりせず、Ubuntu上から気持よくは無いけど、とりあえず書き込みができます。

追記


  • 「ARDUINO 1.0.4」 が 2013.03.11
  • 「ARDUINO 1.5.2 BETA」 が 2013.02.06

にリリースされていましたので、パッケージ管理でなくてもいいやって人は、使えます。

コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?