AirVideoServer on FreeBSD 9.1-STABLE

iPad(第4世代)を導入したのにあわせてAirVideo Server(以下AVS、Linux用jar版)を自宅のFreeBSD stable/9環境で動かした記録。
例によって各プロンプトは #=root、%=一般ユーザ(今回の場合はminecraft)として記録、またこの記録は個人的なものであり、この記述を真似・参考にされるなどした際に問題が起きても当方はいかなる責任も負わない。

環境

  • FreeBSD 9.1-STABLE(r251971) amd64
  • 専用のjail環境を作成した
  • AirVideoserverLinux 2.4.6-beta3
  • OpenJDK7 (openjdk-7.25.15)
  • AVSのインストール先:/usr/local/airvideo
  • AVS専用ffmpegのインストール先:/usr/local/airvideo/bin

portsからインストール

  • audio/faad
  • multimedia/x264
  • java/openjdk7
  • multimedia/mpeg4ip

AVSのインストール先作成とAVS専用ffmpeg用意

# mkdir -p /usr/local/airvideo
# cd /usr/local/airvideo
# mkdir src bin
# cd src
# fetch http://inmethod.com/air-video/download/ffmpeg-for-2.4.5-beta6.tar.bz2
# tar xvjf ffmpeg-for-2.4.5-beta6.tar.bz2
# cd ffmpeg
# ./configure --enable-pthreads --disable-shared --enable-static \
--enable-gpl --enable-libx264 --enable-libmp3lame \
--extra-cflags="-I/usr/local/include -I/usr/local/include/lame" \
--extra-ldflags="-L/usr/local/lib"
(configureの引数、特にライブラリへのパス等は環境に合わせて変更すること;portsからデフォルトのインストール先にインストールした場合は上記で特に問題ないとおもわれる。)
# gmake
(makeだとコンパイルできない。)
# cp ffmpeg ../../bin/

AVSの取得と設定

# cd /usr/local/airvideo
# fetch http://inmethod.com/air-video/download/linux/alpha6/AirVideoServerLinux.jar
# vi test.properties
---
path.ffmpeg = /usr/local/airvideo/bin/ffmpeg
path.mp4creator = /usr/local/bin/mp4creator
path.faac = /usr/local/bin/faac
password = password
subtitles.encoding = windows-1250
subtitles.font = Verdana
folders = share:/path/to/directory
---
  • path.ffmpeg: ffmpegへのパス(AVS専用ffmpegへのパス)
  • path.mp4creator: multimedia/mpeg4ipでインストールされたmp4creatorへのパス(portsからインストールした場合このパスにインストールされる)
  • path.faac: audio/faadでインストールされたfaadへのパス(portsからインストールした場合このパスにインストールされる)
  • password: AirVideoから接続する際のパスワード、適宜変更の事
  • subtitles.encoding: どこの例をみてもwindows-1250(中央ヨーロッパ言語(Windows)らしい)を指定しているので真似した、文字化けとかは無い。
  • subtitles.font: どこの例を見ても指定してるので真似した、上記と同様、ちゃんとした項目の意味は不明。
  • folders: AirVideoで公開するディレクトリのパス。公開名:パス の形式でカンマ区切りで複数指定可

AVS起動

# java -jar AirVideoServerLinux.jar test.properties

クライアントから接続できればOK。

自動起動設定

自作スクリプト使用。

# cd /usr/local/etc/rc.d
# fetch http://www.funi2.jp/files/airvideoserver
# chmod 700 airvideoserver
# vi /etc/rc.conf.local
---
airvideoserver_enable="YES"
airvideoserver_dir="/usr/local/airvideo"
airvideoserver_conf="test.properties"
---
# service airvideoserver start (起動)
# service airvideoserver status (起動してるか否か)
# service airvideoserver stop (終了)

自作スクリプトについては別記事参照

参考サイト

Minecraft Server on FreeBSD 9.1-STABLE

いろいろあって Minecraft のサーバーを自宅のFreeBSD stable/9 環境で動かした記録。
なお、各プロンプトは #=root、%=一般ユーザ(今回の場合はminecraft)として記録する。
また、この記録は個人的なものであり、この記述を真似・参考にされるなどした際に問題が起きても当方はいかなる責任も負わない。

環境

  • FreeBSD 9.1-STABLE (r251971) amd64
  • 専用のjail環境を作成した
  • Minecraft 1.5.2
  • OpenJDK7 (openjdk-7.21.11)
  • minecraftユーザ(/home/minecraft)で動作させる。
  • minecraft_server.jar 設置場所:/home/minecraft/server

portsからインストール

  • java/openjdk7 (Minecraftを動かすのに必要)
  • sysutils/screen (起動スクリプトが要求)

minecraftユーザの作成

# adduser
Username: minecraft
Full name: 
Uid (Leave empty for default): 
Login group [minecraft]: 
Login group is minecraft. Invite minecraft into other groups? []: 
Login class [default]: 
Shell (sh csh tcsh nologin) [sh]: csh
Home directory [/home/minecraft]: 
Home directory permissions (Leave empty for default): 
Use password-based authentication? [yes]: 
Use an empty password? (yes/no) [no]: 
Use a random password? (yes/no) [no]: 
Enter password: (パスワード)
Enter password again: (パスワード)
Lock out the account after creation? [no]: n

プログラムの取得

# su - minecraft
% mkdir ~/server
% cd ~/server
% fetch https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft_server.jar
% exit

起動スクリプト取得・自動起動設定

# fetch -o /usr/local/etc/rc.d/minecraft http://vidya.dyndns.org/stuff/minecraft
# chmod 0555 /usr/local/etc/rc.d/minecraft
# vi /etc/rc.conf.local
---
minecraft_enable="YES"
minecraft_user="minecraft"
minecraft_chdir="/home/minecraft/server"
minecraft_path="/home/minecraft/server/minecraft_server.jar"
---
# service minecraft start

psコマンド等でプロセスの起動を確認し、クライアントから接続して動作確認する。プロセスが起動しない場合は、起動スクリプトを使わずjavaコマンドで起動し、エラーを確認する。クライアントから接続できない場合はネットワーク周りを疑う(ネットワーク環境は個々に違うものなので、ここでは触れない。場合によってはファイアーウォールでのポート単位の通信制限の解除や、NAT配下の場合は特別な設定が必要になるだろう)

javaコマンドでの起動例
# java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing \
-XX:ParallelGCThreads=4 -XX:+AggressiveOpts -jar minecraft_server.jar nogui

サーバー起動・終了コマンド等

  • 起動:service minecraft start
  • 終了:service minecraft stop
  • restart は当方の環境では失敗する様だった。

サーバー設定変更

  • 生成された ops.txt に自分のIDを追加する
  • server.propertiesにてホワイトリストを有効化(white-list=true)

反映には再起動(service minecraft stop && service minecraft start)のこと。

Mod追加

準備(jarを展開する)

# service minecraft stop
% cd ~/server
% mkdir minecraft_server
% cd minecraft_server
% jar xvf ../minecraft_server.jar

Minecraft Forgeの導入とjar再生成

Minecraft Forgeはダウンロードし、 ~minecraft/serverにzipを配置済みとする。

% cd ~/server
% mkdir forge
% cd forge
% unzip ../minecraftforge-universal-1.5.2-7.8.1.737.zip
% cp -Rp . ../minecraft_server/
% mv ../minecraft_server.jar ../minecraft_server.jar.20130622
% jar cvfm ../minecraft_server.jar META-INF/MANIFEST.MF .

jarコマンドはtarライクだが、jar作成時にmオプションを指定し、マニフェストファイルの指定が必要とのこと。Mod導入の反映には要・Minecraft 再起動。

参考URL