FC2ブログ

環境構築のカテゴリー記事一覧


---------------------------------------------------------------------------------------------------------------------------------------------
メイン

シングルボードコンピュータの多くは製造元からOSをダウンロードしてSDカードなどに書き込んでから設定します。
設定はMacなどPCからリモート操作をしながら行っていくことになります。

Mac、シングルボードコンピュータの双方で必要になる項目を記載します。



●Macで必要なもの
SDカードのフォーマッター、書き込みソフト、リモート操作ソフトなどが必要になります。

・SDカードリーダー
USB3対応のものをおすすめします。

SDメモリカードフォーマッター(日本語、無料)
Raspberry PiやNano PiなどSDメモリカードにシステムをインストールするシングルボードコンピュータを使用する際、メモリカードのフォーマットを行うがその際に必要になるソフト、上記環境を構築する際には必須。

ApplePi-Baker(英語、無料)
Raspberry PiやNano PiなどSDメモリカードにシステムをインストールするシングルボードコンピュータを使用する際、配布されるシステムイメージファイルを書き込むために必須。
このソフトはバックアップ機能もあるためおすすめです。

QuickHash GUI(英語、無料)
シングルボードコンピュータのOSイメージファイルや、Astrometry.netのインデックスファイルなど非常に大きなサイズのファイルをダウンロードする際、ファイルが破損する可能性があります。
このようなファイルにはHash記号が示されており、その符号を入力し、ファイルを検証することでファイルの破損確認ができます。

NoMchine(英語、無料) ーおすすめ
デスクトップリモートコントロールソフト。
Macは標準でデスクトップリモートコントロール機能がありますが、このソフトはWindows、Linux、シングルボードコンピュータ(Linux)などさまざまな環境で使用できます。
どの環境でも簡単にインストールできるため、リモートコントロールで複数のPCを使用する場合便利です。
サーバ、ビューアの組み合わせで使用します。
VNCを使用する場合はChicken of the VNCをインストールしておきましょう。

他にはMac標準で付属のターミナルを使用します。



●シングルボードコンピュータで必要なもの
製造元で配布されているOSイメージ、OSをインストールするSDカード、LANケーブルなどが最低限必要です。製造元で配布されているOSイメージにSSHサーバがない場合はモニタも必要になります。

・シングルボードコンピュータ本体
現状であれば天体制御環境の構築が最も容易なのはRaspberryPi3以上です。
この機種は複数のOSを選択できますし、天体制御環境をセットしたディストリビューションもあります。
OSから環境を構築する場合はUbuntu系のOSを選んでください。(環境構築にかかる難易度がもっとも低いです。)

・SDカード
Astrometry.netサーバを使用する場合は巨大なインデックスファイルのインストールが必要になりますので、32GB以上をおすすめします。
ドライブレコーダーなどで使用される高耐久のものが良いです。

・製造元で配布されているOSイメージ
デスクトップ環境のあるUbuntu系のOSイメージがある機種を購入することを強くおすすめします。
Ubuntuを前提として初期段階でインストールするソフトは以下になります。

・SSHサーバ
Macからのリモート操作で必要です。

・VNCサーバ、もしくはNoMachine
Macからのデスクトップリモート操作で必要です。

・Synaptics
GUIのアプリインストールで使用します。標準環境で入手できるアプリはこのソフトでインストールするのがもっとも簡単です。

・テキストエディタ(私はLeafEditを使用しています。)
設定ファイルの書き換えなどに使用します。

・Gdebi
パッケージをダウンロードしてインストールする際に使用します。
このソフトがないとターミナルからコマンドベースで操作になるため一気に敷居が上がります。

・SpaceFM
Macでいうところのファインダーのような役割を果たすソフトです。
このソフトの良いところはルートで操作ができることです。
この機能があるため、GUIから設定ファイルを変更できます。


まずはこんなところが必要になりますが、PCに比べて敷居が高いですね。。
興味ある方はその後ぼちぼちと私の構築した環境を記載していきますのでチャレンジしてみてください。





スポンサーサイト



RaspberryPi3以上であれば、StellarMateAstroberryなどのディストリビューションを用いて簡単に環境を構築できますが、他のシングルボードコンピュータを使用する場合はターミナルからSSHなどを用いてリモートでコマンド入力を行い環境を構築します。(SSHサーバの構築はサイトに多数記載があるため省略します。)

以下に天体用アプリ、及び関連して必要になる可能性のあるインストールコマンドを列記します。
環境構築の際の参考にしてください。



--system用各種アプリ、設定--

sudo apt-get upgrade

sudo apt-get -y dist-upgrade

sudo apt-get install x11vnc

sudo apt-get install synaptic

sudo apt-get install gdebi

sudo apt-get install ser2net


インストール後以下コマンドを実行し一番下の行に以下を追加

sudo nano /etc/ser2net.conf

4030:raw:0:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS'



Linuxではシリアル通信をdialoutにしないと使用できないようなので以下を設定

sudo gpasswd -a ユーザ名 dialout



●NTPサーバ

sudo apt-get install ntp

sudo nano /etc/ntp.conf

以下を書き換え

#server ntp.ubuntu.com
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
(server ntp.ubuntu.comをコメントアウト後3行を追加して保存)


sudo /etc/init.d/ntp restart




●gpsd

sudo apt-get install gpsd

sudo systemctl stop gpsd.socket

sudo systemctl disable gpsd.socket

sudo gpsd /dev/tty○○○ -F /var/run/gpsd.sock
(○○○は起動させたいGPS)

cgps -s
動作確認→動いたら


sudo nano /etc/defaults/gpsd

以下を記載
START_DAEMON="true"
GPSD_OPTIONS="/dev/tty○○○"
DEVICES=""
USBAUTO="true"
GPSD_SOCKET="/var/run/gpsd.sock"



--天体用アプリ--

●ccdciel

sudo apt-add-repository 'deb http://www.ap-i.net/apt unstable main'

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA716FC2

sudo apt-get update

sudo apt-get install ccdciel



●SKYCHART

sudo apt-add-repository 'deb http://www.ap-i.net/apt stable main'

sudo apt-add-repository --remove 'deb-src http://www.ap-i.net/apt stable main'

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys D79BF92A
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AA716FC2

sudo apt-get update

sudo apt-get install --no-install-recommends skychart

sudo apt-get install skychart-data-stars skychart-data-dso skychart-data-pictures



●phd2

sudo add-apt-repository ppa:pch/phd2

sudo apt-get update

sudo apt-get install phd2



●INDI(KStars、astrometry.netサーバ、INDI Web Manager)

sudo apt-add-repository ppa:mutlaqja/ppa

sudo apt-get update

sudo apt-get install indi-full kstars-bleeding

sudo add-apt-repository ppa:mutlaqja/libgphoto2

sudo apt-get update && sudo apt-get install libgphoto2

sudo apt-get install libgphoto2-6

sudo apt-get install astrometry.net

sudo apt-get install python3-pip

sudo -H pip3 install indiweb

sudo nano /etc/systemd/system/indiwebmanager.service


以下を記載

[Unit]
Description=INDI Web Manager
After=multi-user.target


[Service]
Type=idle
# MUST SET YOUR USERNAME HERE.
User=pi
ExecStart=/usr/local/bin/indi-web -v
Restart=always
RestartSec=5


[Install]
WantedBy=multi-user.target


上記コピペ、保存後
sudo chmod 644 /etc/systemd/system/indiwebmanager.service
sudo systemctl enable indiwebmanager.service
sudo systemctl daemon-reload
sudo systemctl status indiwebmanager.service



以上で環境構築が行えます。

正直敷居が高いですが、一つづつ動作確認を行いながら取り組んでください。(非常に手間がかかりますが。。。)

スクリプト化して半自動でインストールが行えるAstroPi3というスクリプト集もあります。

名称からRaspberryPi3用と思われがちですが、それ以外の環境でも使用できるスクリプトがありますので簡単に環境を構築したい方はお試しください。








シングルボードコンピュータで使用されているUbuntuなどはシステム、アプリとも多数更新されます。
INDIのドライバやKStars・EKOSも精力的に更新されていますが、場合によっては更新とともに動作不良をおこしてしまいます。

UbuntuなどLinux系のOSはリポジトリと呼ばれる管理リストでOS、アプリが管理されます。(一部を除いては)
そのため、更新をかけるとリポジトリに登録されたOSドライバ、アプリが更新されるためトラブルが出た際何が原因かが分かりづらくなります。

特に天体アプリはドライバやシステムと連動する機能も多く、アップデートで動作不良を起こす可能性が高いともいえます。(個別に更新をすることも可能ですが、非常に時間がかかります。)

そのため、必ずアップデートを掛ける前に、システム、アプリをまとめてバックアップしておきましょう。
Macであれば ApplePi-Baker、Winであれば Win32 Disk Imagerを使用して、OS、アプリの動作チェックが終了した使用環境をOSを含め、まるごとイメージにしてバックアップしましょう。

こうしておけばリストアも容易に可能ですので、バージョンアップでのトラブルも回避出来ます。
Linux系のOSと付き合うには必須になります。
(UbuntuなどLinux系OSを使用するようになってから、問題なく動作する環境の貴重さ(笑)を痛感します。)

動作確認が取れたらイメージにバックアップを癖付けましょう。



ラズパイ含めシングルボードコンピュータの多くはマイクロSDカードにシステムやアプリをインストールします。
いくつかの利点もありますが、問題点もあります。

以下に列記します。

利点
・バックアップ、リストアが容易
・トラブルの場合、SDカードを取り出し別のマシンで操作可能(上級者向け)
・上記の通り簡単にバックアップ・リストアができるのでトラブル時の予備システムを構築するのが容易

内蔵HD(もしくはSSD)と異なりシステムの入ったメディアに容易にアクセスできるため気軽に環境を構築出来ます。
Macであれば以前紹介した ApplePi-Baker、Winであれば Win32 Disk Imagerを使用して、構築した環境をまるごとバックアップ、リストアができます。


欠点
・遅い
壊れやすい(運が悪いと続けざまに。。)
・同じサイズのマイクロSDカードを購入しても製造ロット、メーカーの違いなどで微妙に容量が異なる

とても問題なのは壊れやすいことです。
システムが稼働するような頻繁なアクセスに弱いメディアです。
ドライブレコーダーなどに対応したMLCタイプを使用すれば少しは安心できますが、SSDやハードディスクと比較すると弱いメディアであることを念頭に置く必要があります。

そして、バックアップ、リストアの時に非常に問題になるのが、メーカーの違いなどで同じ容量記載のSDカードでも若干容量が異なります。
使用しているSDカードのバックアップを取っても、別のSDカードにリストア出来ないことが起こりえます

ApplePi-Bakerではバックアップ時に圧縮して、リストア時にリストア用マイクロSDカードの容量に合わせて展開する機能が付きました。

上記の問題を救出できる機能になりますので、Macでバックアップ、リストアを行っている方は、安定した環境が構築できたらすぐに圧縮バックアップを取りましょう

かくいう私も以前構築したNanoPi-M4のマイクロSDカードが壊れ、起動しなくなってしまいました。。
バックアップはとってあったのですが、新規に購入したマイクロSDカードが2枚とも微妙な容量不足でインストールできません。。

ダメ元で手許にあったSDカード(倍の容量)にバックアップしてあったシステムをリストアして、更に圧縮バックアップしたところ無事に購入したマイクロSDカードにインストールすることが出来ました。
(途中過程で圧縮ファイルの容量がかなり大きめに表示されており焦りましたが、バックアップが終了すると無事にバックアップ元のイメージファイルより容量が小さくなりました。)

今回は運良く倍のサイズのSDカード(マイクロではない)があったため、上記手順で乗り切ることが出来ましたが、マイクロSDカードは壊れやすいため、とにかくバックアップを習慣づける必要があります。

複数枚購入した際は最も容量が小さいマイクロSDカードに環境を構築すると上記トラブルを回避できる可能性が高くなります。
(正直正確な容量表示をしてほしいです。。)
以前は仕事用にOSXサーバを設置して各種サーバ(Web、WebDAV、Samba、メール、VPN、 CalDAVなど)設置していましたが、度重なる引っ越しに伴い自宅サーバを閉じました。

しかし、その中でもVPNサーバは構築しておくと何かと便利なので以前天体用に試し、その後あまり使用していなかったOrange Pi2plusにVPNサーバを導入することにしました。

ラズパイであればイメージファイルを書き込むだけのお手軽なディストリビューションもありますが、残念ながらOrange Pi2plusにはそのような便利なものはありません。
SoftEther VPNやOpenVPNを自分でインストールして環境設定をする必要があります。

私はサーバ制御アプリがマルチプラットフォームで揃っておりL2TP/ipsecにも対応しているSoftEther VPNで環境構築しました。

想像していたよりかなり多機能で設定箇所が多く手間取りましたが、なんとか無事に構築できました。
ラズパイ同様ARM環境なのでラズパイでVPNサーバを設置する記事が役立ちました。(サーバ関係は情報が多くて助かりますね。天体用の情報もこれくらい増えれば楽になるのでしょうが。。。)

これで安全に遠隔操作やファイル共有ができます。
構築は手軽ではありませんでしたが、シングルボードコンピュータなので運用は手軽で良いですね。
フレッツ光のルータではVPNサーバ機能を持つものもあります。
外からの利用が多い方にはLAN環境でできることが全てセキュアに外部から可能になるのでおすすめですよ。(天体機器の遠隔操作にも便利に使えます。)


天体機材の制御でSBCを使用する場合は、屋外ではWiFiのアクセスポイント機能を使用してタブレットなどからVNCなどでリモート操作ができると非常に便利です。

通常UbuntuやそのフレーバーのUbuntuMateなどではこの記事のようにシステム標準機能でGUIによりWiFiアクセスポイントを簡単に構築できます。

しかし、一部のSBCやArmbainなどのOSではこの機能が使えない(というか、存在しない)場合があります。
こうなるとWiFiのアクセスポイントの環境構築はかなりの大仕事になります。

ここで記載の説明は屋外でアクセスポイント機能を使用したいが、Ubuntu標準機能が使えない、もしくは何らかの関係でその機能が使えない方に向けてのものになります。(自分の備忘録も兼ねて)



前提条件

・ある程度Linuxの操作に慣れた方

・屋内では有線にて固定IPによるインターネット接続+リモート操作、屋外ではWiFiアクセスポイントにてインターネット接続がなくても独立してリモート操作を行いたい方。

・WiFiドライバなどがすでにインストールされてAP以外では使用できている方

・SynapticやSSHなど、環境構築の準備ができている方



システムに大分手を加えますので上記該当の方が対象になります。
上記環境構築でお困りの方はお試しください。
環境構築などの準備ができていない方はこちらこちらの記事をご参考にして事前に準備をしてください。



構築手順

1.SSHで端末からifconfigを入力して有線Lan、無線Lanの動作状況、名称確認をする。(後ほどここで得られた名称を使用します。私の環境は下図、有線Lanはenxb827ebedaa4b、無線Lanはwlan0でした。)

211.png


2.SSHで以下コマンドでhostapd、dhcpd、create_apをインストール

hostapdのインストールコマンド
sudo apt-get install hostapd

dhcpdのインストールコマンド
sudo apt-get install dhcpd

create_apのインストールコマンド
git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install
sudo mv ./create_ap /usr/local/bin/
sudo chmod +x /usr/local/bin/

上記によりcreate_apというスクリプトを用いてAPを構築します。dhcpd、hostapdは環境構築のために必要になります。

3.各種設定ファイルの変更
ネットワーク系のいくつかの設定ファイルを変更します。

・ネットワークインターフェイスの設定
有線Lanを固定IPでインターネット接続、無線Lanを独立したIPアドレスでルータのように機能させます。

SSHにて
sudo nano/etc/network/interfaces
上記ファイルを以下設定に変更

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

# The loopback network interface

#auto enxb827ebedaa4b
allow-hotplug ○○○
iface ○○○ inet dhcp

auto lo
iface lo inet loopback

allow-hotplug br0
iface br0 inet static
address 192.168.1.151
netmask 255.255.255.0
#network 192.168.1.1
gateway 192.168.1.1
broadcast 192.168.1.255
dns-nameservers 8.8.8.8 8.8.4.4

bridge_ports ○○○

auto △△△
#allow-hotplug △△△
iface wlan0 inet static
address 10.0.0.1
netmask 255.0.0.0
#gateway 192.168.1.1
network 10.0.0.1
iface default inet dhcp

以上をコピペします。〇〇○を有線Lanの名称に、△△△を無線Lanの名称に変更します。(私の場合は○○○はenxb827ebedaa4b、△△△はwlan0でした。)

上記ではルータアドレスを192.168.1.1、固定IPを192.168.1.151に、WiFiアクセスポイントはサーバとして10.0.0.1、dhcpにて接続側に10.0.0.2以降でアドレスを割り振る設定にしてあります。(つもり)
#印のついた部分は機能しません。(参照用として記載しました。)



・dhcpdの設定

SSHにて
sudo nano /etc/dhcp/dhcpd.conf

最終行に以下をコピペ

interface wlan0
static ip_address=10.0.0.1


記述したら保存して自動起動にします。
sudo systemctl enable dhcpd
sudo systemctl start dhcpd



・hostapdの設定

SSHにて
sudo nano /etc/hostapd/hostapd.conf

以下内容に書き換え

interface=△△△
driver=nl80211
ssid=xxx
hw_mode=g
channel=
bridge=br0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=□□□
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
country_code=JP


interface=△△△部分は上記WiFiの名称に(私の場合はwlan0)
ssid=xxx部分は半角英字でお好みのアクセスポイント名を設定してください。
wpa_passphrase=□□□部分はWiFi接続時のパスワードになります。


記述が終了したら保存してこれも自動起動にします。
sudo systemctl enable hostapd
sudo systemctl start hostapd



・create_ap自動起動設定

SSHにて
sudo nano /etc/rc.local

exit0の前に下を追加
sudo create_ap -n △△△ xxx □□□

△△△部分はWiFiの名称(私の場合はwLan0)、xxx部分はアクセスポイント名(半角英字)、□□□部分にはパスワードを入力してください。(それぞれに半角スペースを空けてください)


以上が完了したら再起動してアクセスポイントが自動的に立ち上がっているか確認します。
有線Lanケーブルを接続しての起動や、外しての起動も試してみます。

上記前提条件を満たした環境ができたら終了です。



以前Windowsでの天体システムからINDIに移行する際、機材と接続するのをSBCにするかMiniPCかタブレットにするか迷ったときがありました。

ラズパイ3→転送系が遅い
タブレットPC→UBUNTUに不具合
NanoPi=M4→グラフィック系のドライバが不安定、使用できないソフトがある(最近ようやく改善)


と、どれも帯に短し襷に長しといった状態で決定打がないと感じていました。

・天体機器を接続するのでUSB端子が多数欲しい
・そこそこの処理能力で省電力(バッテリーで動く)
・安定環境(システム、ドライバ共)
・4GB程度のメモリ(画像処理の高速化Ubuntuならこれだけあれば充分)


あたりを考察するとNUCあたりが最善かなと思っていました。
そんな折、ネットを徘徊していたら中華の海外通販サイトで表題のBeelink-AP34を見つけました。

・インテルチップセットを使用(システムのドライバで悩まなくて済む)
・ギガビットイーサ、USB3搭載(足回りがしっかりしている)
・eMMC64GB搭載(NUCは別売り、NVMe.M2 SSDも追加可能(ハーフサイズで高いが。。)
・メモリも4GB搭載(NUCは別売り)


と良い線いっているように感じ、思わず購入(昨年ですが)

確かに上記要素満たしており、ドライバなども安定して使用でき、これが天体用のシステムをまとめる予定でした。。。
しかし、購入後一箇所だけ計算外の項目がありました。

なんとUbuntu標準のGRUB(システムブートローダー)が使用できず、UbuntuのインストールにrEFIndが必要だったのです。。。
このrEFIndがなかなかの曲者でときたま起動ディスクを取り違えることがあります。
(使用できないGRUBで起動してしまう)
そうなると、リモートでは操作出来ないのでモニターやキーボードを接続してGRUBを終了し、rEFIndで立ち上げ直さないと駄目。

現場でこんな面倒な作業が起こったら、時間ばかり過ぎてしまいます。
で、結局無難に使えるラズパイ3に戻る。。と

しかし、それから1年以上経過し、最近になってNanoPi-M4はシステムなど安定してきました。
この調子であればBeelink-AP34も改善できるかも、と淡い期待を込めて本日作業の合間に設定を試してみました。

システムが立ち上がらない。。。

まあ、もともとがWindowsマシンなのでこんなときは慌てずにBIOSを呼び出せばなんとかなるでしょう。

BIOSも表示されない。。。

。。。

しょうがないので、SSDを取り出し、外付けドライブにしてNanoPi-M4で中身を確認します。

確認した所システム・SSDも無事なようです。
しかし設定した箇所に付随するファイルのみ無くなっているようでもとの状態に戻せません。。。。

。。。うーん

結局SSDを数度出し入れして、設定をその都度調整してみましたが一向にブラックアウトしたままです。


。。。これはダメかもしれない。。


と、考えた矢先ふとあることに気が付きました。
このマシンはBIOSの呼び出しがDeleteキーみたいですが(これもネットで確認、F7とか書いてあるところも。。)
接続していたのがMacのキーボードでDeleteキーが2つあります。

。。。ひょっとして、キー配置ずれてます?

つないであったキーボードを変更した所、あっさりBIOS登場、システムを選び直した所、無事復旧。。。

ネットで調べること数時間、SSDの出し入れ5〜6回(その都度分解)、それがキーボードを変更するだけで治るとは。。。。

なかなかハマった一日でした。



プロフィール

TーStudio

Author:TーStudio
Macやシングルボードコンピュータを使用して天体を楽しむサイトです。
カテゴリから選択して順番に読むとアプリなどの使い方の説明となるようになっています。

カテゴリ
最新記事
最新コメント
月別アーカイブ
アクセスカウンター