mini PC(GMKtec G3 Plus)にArchLinux天体観測環境を構築する

星をみています
Screenshot

まえおき

以前,Raspberry Pi 5 にAstroArchをインストールして赤道儀とCMOSカメラを使って天体観察する方法にトライしました.手探りながらも全体像がぼんやりと見えてきました.

AstroArchはArchLinux上で整合性のとれたKstars, Ekos, INDIパッケージが用意され,必要なネットワーク設定も完了しており,インストール後すぐ使える素晴らしい環境です.

ただ,Raspberry Pi 5だとパワー不足からかリモート接続が安定しないなどの問題もあり,いっそmini PCにしてみてはどうかと思い立ちました.AstroArch側でもmini PC上でpacmanを使えばパッケージ群が使えるように用意してくれています.従って,初期インストールと,リモート接続環境を自分で設定すれば快適な観測環境が用意できそうです.

mini PCはN97搭載品かN150搭載品で迷いましたが,メモリ搭載量が多いN150にしました. SSDも512GBあれば十分ですが,Windowsとのデュアルブートを想定して1TBのものを選びました.メーカーはGMKtec,機種はG3 plusにしました.

16GB+1TB SSD ミニpc GMKtec G3 plus

この子の良いところは,メモリとSSDがオンボードではなく自分で差し替えができる点, SSDはNVMeに加えSATAの空きスロットがあり,いざとなれば拡張できる点です. 一方で電源は従来のUSB Type-Cではなく,12V 3A出力のACアダプタからの供給になっています.ポータブル電源を持って行く時は良いですが,モバイルバッテリー利用時はトリガーケーブルの用意などが必要で,別途考慮が必要です.また,SSDは増設できることにはできますが,小型PCは電源がボトルネックになり,CMOSカメラの動作が不安定になることがあるので, 結局,余計なSSDを搭載しない方が無難かもしれません.

Screenshot

ここではインストール手順を残しておきます.

目的

Windowsがインストールされたmini PCに、Arch LinuxをUEFIデュアルブートで導入します. Arch Linuxでは Kstars, Ekos, INDIを使い,自作Onstep赤道儀とZWOのCMOSカメラを制御します. さらにmini PCをWi-fiアクセスポイント化し,外部PCからリモート接続できるようにします.

インストール手順

1) Windowsのパーティション変更

mini PCのWindows11を起動し,「ディスクの管理」からパーティションを縮小します.

初期状態では, EFI・Windows本体・Recoveryの3つがありますが,このうちWindowsの領域を512GBに縮小しておきます.

また,新しくできた約430GB分の領域の後半16GBをSWAP用にさらに分割しておきます.

(補足)購入時はBitLockerは有効化されていないのでそのまま処理できると思います.有効化した場合は一時停止が必要です

2) Arch Linux のインストールUSB作成(macOS)

公式サイトhttps://archlinux.org/download/からISOをダウンロードします. リンク下部に各国のミラーサイトがあります. 適当なサイトから”archlinux-2025.08.01-x86_64.iso”をダウンロードします.(日付は随時変わると思います)

macOSの場合は初期化してもよいUSBメモリを接続して,下記のようにddコマンドを使って書き込みを行います.

diskutil list
diskutil unmountDisk /dev/diskN
sudo dd if=~/Downloads/archlinux-2025.08.01-x86_64.iso of=/dev/rdiskN bs=4m status=progress
diskutil eject /dev/diskN

(補足)WindowsはRufusが簡単です.

3) UEFIブートメニューからUSBを起動

USBメモリをmini PCに差し込み, mini PCを起動します. UEFIブートメニューから「Arch Linux install medium」を選択します。

4) パーティションのマウント

まずは次のコマンドを入力してパーティションの確認を行います.

lsblk -f

すると

nvme0n1
├─nvme0n1p1 vfat   EFI
├─nvme0n1p2 
├─nvme0n1p3 ntfs   Windows
├─nvme0n1p4 ntfs   Recovery
├─nvme0n1p5        (空き領域、Linux用)
└─nvme0n1p6        (空き領域、Linux用)

などと表示されると思います.

私の場合, 実態はWindows領域とRecoveryの間にLinux用の領域があるはずですが, ナンバリングは5, 6となっていました.

Windows領域やRecovery領域を消さないように細心の注意を払って,Linuxをインストールするパーティションを初期化します.

mkfs.ext4 /dev/nvme0n1p5

次に,フォーマットした領域をマウントします. EFIのマウント先を/mnt/boot/efiにしています. ここを/mnt/bootにすると後の手順でEFIパーティションにOSをインストールしてしまうため, このようにしています.

mount /dev/nvme0n1p5 /mnt
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi

swapを設定するので

mkswap /dev/nvme0n1p6
swapon /dev/nvme0n1p6

とします.

5) ベースシステムのインストール

pacstrapを使って,必須の項目をインストールします.

pacstrap /mnt base linux linux-firmware sudo nano networkmanager grub efibootmgr os-prober

6) fstabの生成

genfstab -U /mnt >> /mnt/etc/fstab

7) chrootでインストール環境に入る

arch-chroot /mnt

8) キーマップ設定

loadkeys jp106

9) ホスト名とネットワーク設定

echo astropc > /etc/hostname

systemctl enable NetworkManager

10) rootパスワードの設定

passwd

11) GRUBのインストールと構成

Windowsとのデュアルブートのための設定を行います.

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

次に/etc/default/grubを編集します

nano /etc/default/grub

一番最後行のコメントアウトを外します.

GRUB_DISABLE_OS_PROBER=false 

設定を反映させます.

grub-mkconfig -o /boot/grub/grub.cfg

これで設定ができているはずなので, EFIの起動順位を確認しておきます.

efibootmgr

GRUBが先頭にあればOKです.必要に応じてefibootmgrで修正します.

12) ユーザー作成とsudo設定

ユーザーを追加します.uucpのグループに割り当てておかないと,USBに接続した機器に対してアクセスできずにエラーがでます.

useradd -m -G wheel,uucp -s /bin/bash hoge
passwd hoge

/etc/sudoersを編集して

# %wheel ALL=(ALL:ALL) ALL 

の行の#を削除して,有効化します

13) 再起動

exit
umount -R /mnt
reboot

再起動後は先ほど作成したユーザーでログインしてsudoを使います

起動後の初期設定

14) タイムゾーン・キーマップ設定

timedatectl set-timezone Asia/Tokyo
sudo hwclock --systohc
sudo localectl set-keymap jp106

15) ロケールとキーボード設定の確認

localectl status

16) pacman設定(AstroArch常時有効+KStars除外)

sudo nano /etc/pacman.conf

以下を追記する.場所は[core]よりも前にしておいて優先的に読み込むようにしておきます.

[astromatto]
SigLevel = Optional TrustAll
Server = http://astroarch.astromatto.com:9000/$arch

編集後にリポジトリ情報を同期しておきます.

sudo pacman -Syu

17) パッケージインストール

順番は注意が必要. 始めに以下のパッケージ群をインストール.

sudo pacman -S plasma-desktop plasma-nm xorg-server xorg-xinit plasma-x11-session kwalletmanager sddm konsole dolphin wireplumber network-manager-applet networkmanager-qt chromium gpsd qtkeychain stellarsolver astromonitor

ここで

 1) jack2 2) pipewire-jack

の選択肢がでたら2)を選びます. 他はデフォルトで良いです.

sudo systemctl enable sddm
sudo systemctl enable NetworkManager

として, 次回はGUIからログインできるようにします.

日本語のWebページを表示できるように

sudo pacman -S noto-fonts-cjk

としておきます.

次にBluetoothを使うために

pacman -S bluez bluez-utils bluedevil
sudo systemctl enable bluetooth

を実施.

18) GPGの設定

sudo pacman -S gnupg
gpg --full-generate-key

途中, 自分の名前とメールアドレスとパスフレーズを聞かれるので適当に入力しておきます.

19) Kstars+INDIのインストール

kstarsをインストールしてからindi-3rdparty-driversをインストールします.

sudo pacman -S kstars
sudo pacman -S indi-3rdparty-drivers

(補足)INDI関連のライブラリを先に明示的にインストールしたらうまく動かなかったので, ますはpacmanでkstarsに関連したものをインストールさせるようにしてください. その後, indi-3rdparty-driversをインストールします.

19) Wi-Fiアクセスポイントの設定

Wi-Fiの設定をします. 観測時に直接PCにアクセスしてリモートログインできるように設定するためです. まず下記のパッケージをインストールします.

sudo pacman -S iw wpa_supplicant dnsmasq dhcp dnsmasq 

完了後, GUIの”System setting”からネットワークの設定画面を開きます.

新規にWi-Fiを追加して適当な名前をつけます.

  1. “General”のタブでは”Connect automatically with priority”と “All users may connect to this network”にチェックを入れる
  2. “Wi-Fi”のタブでは,
    • SSIDにも適当な名前をつける
    • ModeはAccess Pointを選択
    • “Store password for all users”を選んでおく.
  3. “Wi-Fi security” のタブでは”WPA/WPA2 personal”を選んでパスワードを設定.
  4. “IPv4″のタブではMethodを”Shared to other computers”にする

20) sshdのインストール

sshdをインストールします

sudo pacman -S openssh
sudo systemctl enable --now sshd

アクセスしたい端末からsshでログインできるか確認してください

ssh hoge@10.42.0.1

再インストールを繰り返しているとsshがうまくログインできなくなる時があります.そのときは

ssh-keygen -R 10.42.0.1

などとして古い鍵を消してみてください.

21) Paruのインストール

paruをインストールします. pacmanでインストールするとトラブルが起こったので,ここでは下記の方法でインストールしています.

sudo pacman -S --needed base-devel git
cd ~
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si

ルートパスワードを聞かれるのと, Repository extra 1) rust 2) rustupを聞かれますが,1としておきます.

22) NoMachineのインストール

リモートアクセス用にNoMachineをインストールします.paru経由

paru -S nomachine

途中確認とrootパスワードの入力を要求されるので,確認と入力を行います.

インストールが完了したらサービスを起動します

sudo systemctl enable --now nxserver.service

デスクトップの右下のアイコンリストにボタンが追加されているので, 右クリックします.するとメニューの中に, ”Show server status”という項目があるのでクリックします. 新しいウィンドが開くのでその中の”Port”を開きます.
NX4000番がNot running になっていたら選択してConfigureボタンをおします.パスワードを聞かれるので入力を行います. 新しい画面が開くので, “Start”をおせばOKです.

23) ローケールの変更

ローケールを変える時は/etc/locale.genを編集します.例えば

sudo nano /etc/locale.gen 

で開いたら,

# ja_JP.UTF-8 UTF-8

という行があると思うので#を消してコメントアウトを解除します.つづいて,

locale-gen
localectl set-locale LANG=ja_JP.UTF-8

を実行すれば日本語環境になりますが,日本語フォントを入れておかないと豆腐の嵐になるのと,個人的には日本語化は不要かなという気もしています.お好みで.

トラブルシューティング

  • EFIを /boot にマウントしない
    → /boot/efi にマウントしないとEFIボリュームがあふれます
  • GRUBにWindowsが出ない.
    os-proberのインストールと GRUB_DISABLE_OS_PROBER=falseの設定を確認してみてください

まとめ

これでAstroArchと同じような環境がmini PCで構築できると思います.KStarsとINDI関連のインストールではパッケージのコンフリクトが解決できずこまったのですが,AstroArchのMattiaさんによるパッケージメンテとアドバイスによって無事インストールできました.この場を借りてお礼申し上げます.

コメント

タイトルとURLをコピーしました