Windows Update エラー

イメージ
インストールエラー 0x80070306 はい、また出ました。 最近のMicrosoftの品質管理はどうなってしまったのでしょうか? 今回は、KB5079473を入れようとして、エラー。 再試行してエラー。 日をおいて試してもエラー。 ということで、Updateのたびにエラー表示されるのもイラッとするので、修正する。 まずは、 管理者でコマンドプロンプトを開く dism /online /cleanup-image /restorehealth sfc /scannow を実行する。 イメージのバージョンが異なっているので、更新したかいが有るとよいが…。 sfcは若干時間がかかるが、まぁチェックだけはしておこう。 続いて、 設定 → システム → 回復 → Windows Updateで問題を解決する → 今すぐインストール これを実行すると、Windows Updateの画面が開き、以下のような作業が始まる。 修復バージョンをダウンロードして、それで書き込むっぽい 結構時間がかかりますが、まぁ順調に進みます。 完了すると「再起動」しろと言ってくるので、再起動を実施。  ↓ サインイン画面でサインイン  ↓ ここが、いつもの10倍くらい時間がかかった。  ↓ 無事にデスクトップが表示される 「更新プログラムのチェック」を押しても何も候補は出てこなくなる。

ERROR: Failed to build gem native extension.

arduinoでfirmata

とりあえずVirtualBoxのLinux上で、ruby+arduinoの動作は確認できている。
しかし、いちいちarduino側のプログラムを更新していくと、ホストPC上のRubyの更新もあって、管理が煩雑すぎるなぁ…。と思って検討する中にfirmataが良さそうだ。

基本的な通信プログラムと、IO周りを全て面倒見てくれて、Rubyから自分のポートのようにアクセスすれば、arduino上のポートにアクセスできるミドルウェアだ。

じゃあ、Linux上のarduio-IDEでStandardFirmataを書き込んでみようとしたら、なぜかエラーを吐きまくる。
avrdude: stk500v2_ReceiveMessage(): timeout
が繰り返し出力されて、上手くいかない。
随分調べたけれども、stk500v2ではなくwiringを使えとか…。書き込みにAVRISP mkIIではなくAVRISPを使えだとか…。ボーレートを変更しろとか…。

どれもダメだった。

ここで、止まっていても埒が明かないので、HOSTのMac側で書き込むことにする。
こちらからの書き込みは問題なく完了した。

arduio_firmataのインストール

動作テストをしなければ、始まらないので、Linux上でテストする。
$ sudo gem install arduino_firmata
とこれだけですね。
Fetching: args_parser-0.1.4.gem (100%)
Fetching: event_emitter-0.2.2.gem (100%)
Fetching: arduino_firmata-0.2.3.gem (100%)
Successfully installed args_parser-0.1.4
Successfully installed event_emitter-0.2.2
Successfully installed arduino_firmata-0.2.3
3 gems installed
Installing ri documentation for args_parser-0.1.4...
Installing ri documentation for event_emitter-0.2.2...
Installing ri documentation for arduino_firmata-0.2.3...
Installing RDoc documentation for args_parser-0.1.4...
Installing RDoc documentation for event_emitter-0.2.2...
Installing RDoc documentation for arduino_firmata-0.2.3...
無事完了です。

さて動作テストを行なってみる。
$ arduino_firmata analog_read 1
Resource temporarily unavailable
ふむ。上手くいかない。
ちなみに各バージョンは
ruby -v #=> ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux]
arduino_firmata -v #=> ArduinoFirmata v0.2.3
怪しいなぁ。
しゃあない。これはVirtualBoxからUSB接続するという荒業のせいかもしれない。ということで、HostのMac上で再度テストして見ることに。

$ sudo gem install arduino_firmata
Building native extensions.  This could take a while...
ERROR:  Error installing arduino_firmata:
ERROR: Failed to build gem native extension.
        /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/serialport-1.1.0 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/serialport-1.1.0/ext/native/gem_make.out
ありゃりゃ。こんどはgemで失敗している。
調べてみると、Xcodeのツール(Command line Tools)を自分でインストールしてやらないと、デフォルトでは入れない仕様に変更になっているらしい

ということで、Xcode -> Preferences -> Downloadsから入れる必要あり。
早速いれて、再度gemからinstallを実行する。
$ sudo gem install arduino_firmata
Building native extensions.  This could take a while...
Successfully installed serialport-1.1.0
Fetching: args_parser-0.1.4.gem (100%)
Successfully installed args_parser-0.1.4
Fetching: event_emitter-0.2.2.gem (100%)
Successfully installed event_emitter-0.2.2
Fetching: arduino_firmata-0.2.3.gem (100%)
Successfully installed arduino_firmata-0.2.3
Installing ri documentation for serialport-1.1.0
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Installing ri documentation for args_parser-0.1.4
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Installing ri documentation for event_emitter-0.2.2
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Installing ri documentation for arduino_firmata-0.2.3
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
Done installing documentation for serialport, args_parser, event_emitter, arduino_firmata (1 sec).
4 gems installed
今度は、問題なくインストール終了。
さて、arduinoをMac側に認識させて、テストしてみる。
$ arduino_firmata analog_read 1
295
うまくいった。
これで、ruby上で操作ができるようになりそうだ。

さて、問題はLinux上で動作できるかだけれども…。
引き続き、Tryしてみよう…。

一向に進まぬ開発に、ちょっと気が遠くなってきたど…。

コメント

このブログの人気の投稿

Ubuntu24.04 でGUIが死んだ

VirtualBoxが異常

MEGAにも弱点があった?