Raspberry Pi 4 Model B 8GBにUbuntu 20.04を入れてMinecraft(マインクラフト)のサーバーに

息子はマイクラにまぁまぁハマっておりまして、普段はiPadを使って遊んでいます。
私はマイクラのことは、ほとんどわかりません。
ただ、最近、将来の夢を聞いたところ「建築士になりたい!」と言っており、マイクラのワールド内で建物を建てるなど、建築士っぽいことをしているので、無駄にはなってないような気もしています。

そして、最近ではマイクラのMODという拡張機能のようなものを使いたいと言いだし、それはiPadでは使えなくパソコンだけで使えるとのこと。
ふ~ん、よくわからないがまぁやってみたいならどうぞと、環境を整えることにしました。

まず、MODが使えるサーバーが欲しいらしく、まだ触ったことのない「Raspberry Pi 4」を使ってみることに。
ネット情報を見るとRaspberry Pi 3だとスペック不足らしいとのことで、最高スペックのRaspberry Pi 4 8GBを買ってみました。

よく調べもせず買ったので、まずUSBのコネクタがUSB-Type Cになっており、今までのACアダプタが使えず、さらに8GBモデルを買ったにもかかわらず、Raspberry Pi OSにはまだ正式な64bit版はリリースされていなかったので、Ubuntu 20.04 の64bitをインストールしました。

その時のメモです。

参考にしたサイト。
https://linuxconfig.org/ubuntu-20-04-minecraft-server-setup

Ubuntuのインストール

Raspberry Pi Imagerというソフトをダウンロードしてインストールする。

OS:にUbuntu 20.04 LTS 64-bit server OSを選択。

書き込むSDカードを選択。

「WRITE」で書き込む。

かなり簡単にシステム用SDカードが出来上がり。

SDカードをRaspberry Piに装着して起動。

Ubuntuの設定

初期ユーザーとパスワードでログイン

User:ubuntu Password:ubuntu

システムアップデート

sudo apt update
sudo apt upgrade

キーボードの設定

sudo dpkg-reconfigure keyboard-configuration

Generic 105-key PC(intl.)のJapaneseを選択。

Wifiを有効化

sudo nano /etc/netplan/50-cloud-init.yaml

設定内容はこちら。

network:
  ethernets:
     eth0:
       dhcp4: true
       optional: true
  wifis: <-- ここから追加
    wlan0:
      dhcp4: false
      optional: true
      addresses: [固定IP/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [192.168.1.1, 8.8.8.8, 8.8.4.4]
      access-points:
         "ABCDEFGHIJK": <-- WifiのSSID
            password: "???????" <-- Wifiのパスワード

SSHの設定

sudo nano /etc/ssh/sshd_config

ポート変更をするときは上記ファイルにポート番号を追記する。

port 10022

ユーザーの追加とロック

sudo adduser USERNAME
sudo adduser USERNAME sudo

sudo passwd -d ubuntu
sudo passwd -l ubuntu
sudo passwd -l root

USERNAMEは今後利用するユーザー名。

Minecraft(マインクラフト)のインストールと設定

使うMODによってJavaのバージョンを選択する必要がある。今回はopenjdk-8-jre-headlessを利用。

sudo apt install openjdk-8-jre-headless
sudo apt install wget screen nmap

マインクラフトをインストール。

sudo useradd -m -r -d /opt/minecraft minecraft

sudo mkdir /opt/minecraft/survival

sudo wget -O /opt/minecraft/survival/minecraft_server.jar https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar

MODを動作させるためにforgeをインストール。使うMODによって対応してるforgeのバージョンが異なる。
今回は、1.12.2を利用。クライアントPCにも同じバージョンをインストールする必要がある。

sudo wget https://files.minecraftforge.net/maven/net/minecraftforge/forge/1.12.2-14.23.5.2854/forge-1.12.2-14.23.5.2854-installer.jar

sudo java -jar forge-1.12.2-14.23.5.2854-installer.jar nogui --installServer
sudo bash -c "echo eula = true> /opt/minecraft/survival/eula.txt"

sudo chown -R minecraft /opt/minecraft/survival/

sudo cp /opt/minecraft/survival/forge-1.12.2-14.23.5.2854.jar /opt/minecraft/survival/minecraft_server.jar
sudo nano /etc/systemd/system/minecraft@.service

ファイルに設定する内容はこちら。

[Unit]
Description=Minecraft Server: %i
After=network.target

[Service]
WorkingDirectory=/opt/minecraft/%i

User=minecraft
Group=minecraft

Restart=always

ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx6G -jar minecraft_server.jar nogui

ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN IN 5 SECONDS. SAVING ALL MAPS..."5'
ExecStop=/bin/sleep 5
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"5'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"5'


[Install]
WantedBy=multi-user.target

-Xmx6G の6Gの部分は、マイクラサーバーに割り当てるメモリサイズ。

ポートを開ける。

sudo ufw allow 25565

マイクラサーバーを起動して、起動状態を確認。

sudo systemctl start minecraft@survival

sudo systemctl status minecraft@survival

Raspberry Pi起動時にマイクラサーバーも起動するように設定。

sudo systemctl enable minecraft@survival

まとめ

インストールするバージョン違い等ですぐには動作しなかったですが、なんとか動かすことができました。

サーバーを立てれば誰でも入って遊べるのかと思っていたのですが、どうやら3,000円でソフトを購入してアカウントを作成しないと自分で立てたサーバーにもログインできないらしく、これならただクライアントPC内で完結させればよかったです。

今後、娘がやりたいと言いだしたら、もう1つアカウトを作ってサーバーで遊んでもらってもいいかなと思っています。

Raspberry Pi 4は、やはり3よりも発熱が多いようです。ちょっと、IoTには使いづらくなってしまいました。