Proxmoxでサーバ構築

イメージ
これまでテスト用にi5第8世代の廃棄PCを使用してきた。 とはいえ今の所何も問題は起きていないが、入れ替えも視野に入れ予備サーバを用意することに。 - メモリ:16GB - SSD:500GB - DDNS+Let's Encrypt - Ubuntu24.04 この環境なので、すぐに構築し直すことは可能だが、とりあえずこのまま置いておいて別のサーバを立てることにする。 最初はRaspberryPiで構築しようと思ったけれど、本体電源+外付けHDD電源+ディスプレイ電源と考えると、邪魔なので廃案。 そこで廃棄しようと思っていた「Lavie NS300/N」が手元にあったので、これを利用することに。 一応バッテリーは正常に動作するので、UPS代わりにそのまま。 - Core™ i3-8145U(やや非力) - メモリ:8GB(少ないが…) - HDD:1TB なので、これまで使用しているものより、若干スペックダウン。 ただ用途は、非常勤で教えに行っている専門学校生用の練習マシンとする予定なので、まぁ問題なさそう。 Proxmox導入 直接、Linuxを導入してもよいのだけれど、今回は Proxmox を導入し、その上でUbuntu Serverを動作させる計画。 USBにProxmoxのイメージを焼いて、インストールすれば問題なく完了。 ただ、現在のバージョンはdebian - trixieがベースになっているので、若干参考になるサイトが少なめ。とはいえ旧版のは参考になるので調べつつ… HDDなだけあって、最初の起動は少し遅いものの、立ち上がってしまえば問題ない。 さぁ、VMにするかCTにするか…。 GUI使うのであれば、VMかなぁ。サーバだしCTでいいかぁ。 という程度の選定で、CT(コンテナ)で進めることに。 - メモリ:4GB - CPU:2 - HDD:20GB(root disk) - HDD:400GB(home用) - Ubuntu24.04 という構成で進めることにした。 テンプレートを用意して、初期設定を行い起動。 まぁすんなりと入った。 液晶を閉じたら、Suspendになってしまったので、若干設定変更。 $ sudo nano /etc/systemd/logind.conf HandleLidSwitch=ignore $ sudo sy...

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にも弱点があった?