「RaspberryPiで高画質ライブ配信」の版間の差分
2行目: | 2行目: | ||
|__TOC__ | |__TOC__ | ||
|} | |} | ||
+ | この情報は古くなっています。 | ||
+ | |||
GPUリソースを使用した高画質ライブ配信設備を作ってみます。 | GPUリソースを使用した高画質ライブ配信設備を作ってみます。 | ||
2022年6月24日 (金) 10:52時点における最新版
この情報は古くなっています。
GPUリソースを使用した高画質ライブ配信設備を作ってみます。
開発環境
ボード | Raspberry Pi 3B 2B Zero |
OS | Raspbian Stretch with desktop 2018-11-13 |
ストレージ | SanDisk Ultra microSDHC 16GB |
カメラ | Raspberry Pi Camera Modules V2 |
モノラルマイク | 秋月電子通商 MINI Microphone ミニUSBマイク スイッチサイエンス USB接続ミニマイク |
ステレオマイク | BUFFALO BSHSAU01BK audio-technica AT-HA2 AT9941 |
具合
GStreamer1.18.0でrpicamsrc要素が使えるようなのでこの情報は古くなっている可能性があります
機器 | 1080p@30fps CPU使用量 |
Raspberry Pi3 マイクなし・あり | 5%程度 |
Raspberry Pi2 マイクなし・あり | 10%程度 |
Raspberry Pi Zero マイクなし | 40%程度 |
Raspberry Pi Zero マイクあり | 100%程度 |
- RTMPが古い規格なのでMPEG-DASHなどの他の規格を考慮すべき
- YouTubeのパイプラインは全ての映像で音声が必要。
- IBM Cloud Video (Ustream)は音声入力ソース無し、且つ音声チャンネル無しで配信可。
- アンプ非搭載USBモノラルマイクは入力ゲインが低いためYouTube無音用が無難。
- YouTubeは720pまで?。
- YouTubeは配信が止まると新しいURLに変化してしまう。
- インターフェイスのモノラルマイクでエラーが出てる
PHP Notice: Use of undefined constant host - assumed 'host' in /usr/local/nginx/html/save.php on line 13 PHP Notice: Undefined index: host in /usr/local/nginx/html/save.php on line 13 PHP Warning: implode(): Invalid arguments passed in /usr/local/nginx/html/save.php on line 65 amixer: Invalid command!
準備
モニター、マウス、キーボード、カメラ、(マイク、LANなど)を取り付け
OSインストール
標準搭載のLAN or Wi-Fiの接続
設定省略
ホスト名
設定
Menu > 設定 > Raspberry Piの設定 > ホスト名
変更
livebot4
再起動
OK > はい
マイク
YouTubeのパイプラインは全ての映像で音声が必要
使わない場合は設定しない
優先順位確認
$ cat /proc/asound/modules 0 snd_bcm2835 1 snd_usb_audio
優先順位を内臓マイクからUSBマイクに変更
$ sudo nano /etc/modprobe.d/alsa-base.conf
alsa-base.confが無いので新規入力
options snd slots=snd_usb_audio,snd_bcm2835
options snd_usb_audio index=0
options snd_bcm2835 index=1
保存: Ctrl + o > リターン
終了: Ctrl + x
再起動
$ sudo reboot
優先順位確認
$ cat /proc/asound/modules 0 snd_usb_audio 1 snd_bcm2835
録音ボリューム
$ alsamixer
F6で0 USB PnP Audio Deviceを選択
F4 or F5で表示変更
録音を50程度に設定しEscで設定終了
録音テスト
モノラルマイクの場合
$ arecord --device=hw:0,0 --format S16_LE --rate 44100 -c1 test.wav
録音中 WAVE 'test.wav' : Signed 16 bit Little Endian, レート 44100 Hz, モノラル
ステレオマイクの場合
$ arecord -D plughw:0,0 -f cd test.wav
エラーが出なければOK
Ctrl+Cで停止
再生テスト
スピーカーは取り付けてないので他のPCで再生チェック
カメラ
遠隔操作のパソコンからカメラ映像を見ても、そのモニターに映像は映らない
Raspberry Pi直結のモニターには映る
遠隔操作設定前にカメラ設定をする
Menu > 設定 > Raspberry Piの設定 > インターフェイスタブ > カメラ有効 > OK > 再起動
GPUの配分を変更
Menu > 設定 > Raspberry Piの設定 > パフォーマンスタブ > GPUメモリ 256程度に変更 > 再起動
表示テスト
$ sudo nano camera.py
設定
from picamera import PiCamera from time import sleep camera = PiCamera() #camera.rotation = 180 camera.start_preview() sleep(600) camera.stop_preview()
保存: Ctrl + o > リターン
終了: Ctrl + x
起動
$ python camera.py
終了: Ctrl + c
映像が表示されればOK
カメラモジュール用レンズアタッチメントが同封されているのでピント調整しておく
削除
sudo rm camera.py
遠隔操作
標準で入っているRealVNCを使用
VNC有効
Menu > 設定 > Raspberry Piの設定 > インターフェイスタブ > VNC有効 > OK
解像度の変更
Menu > 設定 > Raspberry Piの設定 > システムタブ > 解像度 > 1280x960程度 > OK > 再起動
シャットダウンし、モニター、マウス、キーボードを取り外して電源入れ直し
WindowsPCなどのVNCクライアントから接続を試す
IP: livebot4.local username: pi password: raspberry
成功していれば、以降はVNCクライアントの窓の中で作業
インストール
nginx-rtmp
参考: Raspberry Pi に rtmp サーバーを立てる - Qiita
アップデート
$ sudo apt-get update $ sudo apt-get upgrade
インストール
$ sudo apt-get install libpcre3-dev libssl-dev
$ wget http://nginx.org/download/nginx-1.14.2.tar.gz
$ tar -zxvf nginx-1.14.2.tar.gz
$ sudo rm nginx-1.14.2.tar.gz
$ git clone https://github.com/arut/nginx-rtmp-module.git
$ cd nginx-1.14.2
$ ./configure --add-module=/home/pi/nginx-rtmp-module --user=www-data --group=www-data
$ make
$ sudo make install
自動起動設定
$ sudo nano /lib/systemd/system/nginx.service
設定
[Unit]
Description=A high performance web server and a reverse proxy server
Documentation=man:nginx(8)
After=network.target
[Service]
Type=forking
#PIDFile=/run/nginx.pid
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -q -g 'daemon on; master_process on;'
ExecStart=/usr/local/nginx/sbin/nginx -g 'daemon on; master_process on;'
ExecReload=/usr/local/nginxsbin/nginx -g 'daemon on; master_process on;' -s reload
ExecStop=-/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile $PIDFile
TimeoutStopSec=5
KillMode=mixed
[Install]
WantedBy=multi-user.target
保存: Ctrl + o > リターン
終了: Ctrl + x
設定
$ sudo systemctl enable nginx.service
再起動
$ sudo reboot
動作確認
http://livebot4.local
php
参考: Raspberry Pi にWebサーバ入れてphp動かす - Qiita
インストール
$ sudo apt-get install php7.0-fpm
設定
$ sudo nano /usr/local/nginx/conf/nginx.conf
43~46行目
location / { root html; index index.php index.html index.htm; }
65~71行目
location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; include fastcgi.conf; }
保存: Ctrl + o > リターン
終了: Ctrl + x
再起動
$ sudo reboot
新規作成
$ sudo nano /usr/local/nginx/html/index.php
設定
<?php
phpinfo();
?>
保存: Ctrl + o > リターン
終了: Ctrl + x
動作確認
http://livebot4.local
削除
$ sudo rm /usr/local/nginx/html/index.php
gstreamer
インストール
$ sudo apt-get install gstreamer1.0-x gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-omx gstreamer1.0-vaapi gstreamer1.0-libav
確認
$ gst-inspect-1.0 --version $ gst-inspect-1.0 $ gst-inspect-1.0 | grep omx
gst-rpicamsrc
参考: GitHub - thaytan/gst-rpicamsrc
インストール
$ sudo apt-get install autoconf automake libtool pkg-config libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libraspberrypi-dev $ git clone https://github.com/thaytan/gst-rpicamsrc.git $ cd gst-rpicamsrc/ $ ./autogen.sh --prefix=/usr --libdir=/usr/lib/arm-linux-gnueabihf/ $ make $ sudo make install
確認
$ gst-inspect-1.0 | grep rpicamsrc
$ cd ~ $ gst-launch-1.0 rpicamsrc bitrate=1000000 ! filesink location=test.h264
Raspberry Pi直結モニターには映像が映る
終了: Ctrl + c
削除
$ sudo rm test.h264
配信テスト
nginx.conf
バックアップ
$ cd /usr/local/nginx/conf
$ sudo cp nginx.conf nginx.conf.original
設定
$ sudo nano nginx.conf
変更
worker_processes 4;
末尾に追記
- 配信サイトの#pushのコメント(#)を消すと有効
- サーバURLとストリームキーを設定
- 複数設定するとマルチ配信
rtmp {
server {
listen 1935;
ping 30s;
ping_timeout 10s;
drop_idle_publisher 15s;
application live {
live on;
record off;
#IBM Cloud Video (Ustream)
#push rtmp://1.2345678.fme.ustream.tv app=ustreamVideo/123456789 playpath=ABCDEFGHIJKLMNOPQRSTUVWXYZ012345;
#YouTube
#push rtmp://a.rtmp.youtube.com/live2/ABCD-EFGH-IJKL-MNOP;
#Other
#push rtmp://XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;
}
}
}
保存: Ctrl + o > リターン
終了: Ctrl + x
再起動
$ sudo reboot
liveScript
- ライブ エンコーダの設定、ビットレート、解像度 - YouTube ヘルプ
- マイクのサンプリングレート、ビットレートがハードの規格に合わないとエラーになる
- YouTubeのパイプラインは全ての映像で音声が必要
設定
$ sudo nano live
マイクありの場合
#!/bin/sh
# SETTING ###############################
# VIDEO
WIDTH=1280 # 解像度(幅)
HEIGHT=720 # 解像度(高)
FRAMERATE=30 # フレームレート(fps)
PROFILE="high" # プロファイル baseline , main , high
BITRATE=1500000 # ビットレート(bps) (0-25000000) 0 for VBR using quantisation-parameter 規定値:17000000
VFLIP=false # 上下反転 規定値:false
HFLIP=false # 左右反転 規定値:false
ROTATION=0 # 回転(0,90,180,270) 規定値:0
EXPOSUREMODE=1 # 露出モード (0-12) 0:off 1:auto 2-12:etc. 規定値:1
EXPOSURECOMP=0 # 露出補正(-10-10) 規定値:0
WHITEBALANCE=1 # ホワイトバランス 0:off 1:auto 2-9:etc. 規定値:1
REDBALANCE=0 # AWB Gain for red channel when WHITEBALANCE=off (0-8) 規定値:0
BLUEBALANCE=0 # AWB Gain for blue channel when WHITEBALANCE=off (0-8) 規定値:0
SHUTTERSPEED=0 # シャッタースピード (0-6000000) 0:auto 規定値:0
ISO=0 # ISO感度 (0-3200) 0:auto 規定値:0
METERING=0 # 測光モード(0-3) 0:average 1:spot 2:backlist 3:matrix 規定値:0
STABILIZATION=false # 画像安定化 規定値:false
TIMESTAMP=true # タイムスタンプ 規定値:false
KEYINTERVAL=-1 # キーフレームインターバル (-1-2147483647) -1=automatic, 0=single-keyframe 規定値:-1
QUANTISATION=0 # 量子化パラメータ (0-2147483647) approx 10-40 with bitrate=0 for VBR encoding. 0=off 規定値:0
BLOCKSIZE=-1 # ブロックサイズ (0-4294967295) 規定値:4096(-1=default)
INTRATYPE=-1 # 周期的イントラ更新 -1:none 0:cyclic 1:adaptive 2:both 2130706433:cyclic-rows 規定値:-1
SENSORMODE=0 # センサーモード(0-7) 0:automatic 1-7:etc. 規定値:0
BRIGHTNESS=50 # 明るさ (0-100) ステップ1 規定値:50
CONTRAST=0 # コントラスト (-100-100) ステップ1 規定値:0
SATURATION=0 # 彩度 (-100-100) ステップ1 規定値:0
SHARPNESS=0 # シャープネス (-100-100) ステップ1 規定値:0
DYNAMICRANGE=0 # ダイナミックレンジ 0:off 1:low 2:medium 3:high 規定値:0
IMAGEEFFECT=0 # VFXイメージエッフェクト (0-22) 規定値:0
# AUDIO
VOLUME=0.5 # ボリューム(0-1.0)
CHANNEL=1 # チャンネル 1:mono 2:stereo
ASAMPLE=44100 # サンプリングレート(Hz)
ABITRATE=128000 # ビットレート(bps)
FORMAT=S16LE # フォーマット
# EXECUTE ###############################
CMD="gst-launch-1.0 \
rpicamsrc preview=false blocksize=$BLOCKSIZE bitrate=$BITRATE do-timestamp=$TIMESTAMP keyframe-interval=$KEYINTERVAL intra-refresh-type=$INTRATYPE hflip=$HFLIP vflip=$VFLIP rotation=$ROTATION iso=$ISO brightness=$BRIGHTNESS contrast=$CONTRAST saturation=$SATURATION sharpness=$SHARPNESS exposure-mode=$EXPOSUREMODE exposure-compensation=$EXPOSURECOMP image-effect=$IMAGEEFFECT quantisation-parameter=$QUANTISATION shutter-speed=$SHUTTERSPEED sensor-mode=$SENSORMODE drc=$DYNAMICRANGE video-stabilisation=$STABILIZATION metering-mode=$METERING awb-mode=$WHITEBALANCE awb-gain-red=$REDBALANCE awb-gain-blue=$BLUEBALANCE ! \
queue ! \
video/x-h264, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE/1, profile=$PROFILE ! \
h264parse ! \
flvmux name=mux streamable=true alsasrc device=hw:0 ! \
queue ! \
volume volume=$VOLUME ! \
audio/x-raw, format=$FORMAT, rate=$ASAMPLE, channels=$CHANNEL ! \
voaacenc bitrate=$ABITRATE ! \
queue ! \
mux. mux. ! \
rtmpsink location='rtmp://localhost/live/stream'"
$CMD
保存: Ctrl + o > リターン
終了: Ctrl + x
マイクなしの場合
#!/bin/sh
# SETTING ###############################
# VIDEO
WIDTH=1280 # 解像度(幅)
HEIGHT=720 # 解像度(高)
FRAMERATE=30 # フレームレート(fps)
PROFILE="high" # プロファイル baseline , main , high
BITRATE=1500000 # ビットレート(bps) (0-25000000) 0 for VBR using quantisation-parameter 規定値:17000000
VFLIP=false # 上下反転 規定値:false
HFLIP=false # 左右反転 規定値:false
ROTATION=0 # 回転(0,90,180,270) 規定値:0
EXPOSUREMODE=1 # 露出モード (0-12) 0:off 1:auto 2-12:etc. 規定値:1
EXPOSURECOMP=0 # 露出補正(-10-10) 規定値:0
WHITEBALANCE=1 # ホワイトバランス 0:off 1:auto 2-9:etc. 規定値:1
REDBALANCE=0 # AWB Gain for red channel when WHITEBALANCE=off (0-8) 規定値:0
BLUEBALANCE=0 # AWB Gain for blue channel when WHITEBALANCE=off (0-8) 規定値:0
SHUTTERSPEED=0 # シャッタースピード (0-6000000) 0:auto 規定値:0
ISO=0 # ISO感度 (0-3200) 0:auto 規定値:0
METERING=0 # 測光モード(0-3) 0:average 1:spot 2:backlist 3:matrix 規定値:0
STABILIZATION=false # 画像安定化 規定値:false
TIMESTAMP=true # タイムスタンプ 規定値:false
KEYINTERVAL=-1 # キーフレームインターバル (-1-2147483647) -1=automatic, 0=single-keyframe 規定値:-1
QUANTISATION=0 # 量子化パラメータ (0-2147483647) approx 10-40 with bitrate=0 for VBR encoding. 0=off 規定値:0
BLOCKSIZE=-1 # ブロックサイズ (0-4294967295) 規定値:4096(-1=default)
INTRATYPE=-1 # 周期的イントラ更新 -1:none 0:cyclic 1:adaptive 2:both 2130706433:cyclic-rows 規定値:-1
SENSORMODE=0 # センサーモード(0-7) 0:automatic 1-7:etc. 規定値:0
BRIGHTNESS=50 # 明るさ (0-100) ステップ1 規定値:50
CONTRAST=0 # コントラスト (-100-100) ステップ1 規定値:0
SATURATION=0 # 彩度 (-100-100) ステップ1 規定値:0
SHARPNESS=0 # シャープネス (-100-100) ステップ1 規定値:0
DYNAMICRANGE=0 # ダイナミックレンジ 0:off 1:low 2:medium 3:high 規定値:0
IMAGEEFFECT=0 # VFXイメージエッフェクト (0-22) 規定値:0
# EXECUTE ###############################
CMD="gst-launch-1.0 \
rpicamsrc preview=false blocksize=$BLOCKSIZE bitrate=$BITRATE do-timestamp=$TIMESTAMP keyframe-interval=$KEYINTERVAL intra-refresh-type=$INTRATYPE hflip=$HFLIP vflip=$VFLIP rotation=$ROTATION iso=$ISO brightness=$BRIGHTNESS contrast=$CONTRAST saturation=$SATURATION sharpness=$SHARPNESS exposure-mode=$EXPOSUREMODE exposure-compensation=$EXPOSURECOMP image-effect=$IMAGEEFFECT quantisation-parameter=$QUANTISATION shutter-speed=$SHUTTERSPEED sensor-mode=$SENSORMODE drc=$DYNAMICRANGE video-stabilisation=$STABILIZATION metering-mode=$METERING awb-mode=$WHITEBALANCE awb-gain-red=$REDBALANCE awb-gain-blue=$BLUEBALANCE ! \
queue ! \
video/x-h264, width=$WIDTH, height=$HEIGHT, framerate=$FRAMERATE/1, profile=$PROFILE ! \
h264parse ! \
flvmux ! \
rtmpsink location='rtmp://localhost/live/stream'"
$CMD
保存: Ctrl + o > リターン
終了: Ctrl + x
実行権限
$ sudo chmod +x live
動作確認
$ ./live
パイプラインを一時停止 (PAUSED) にしています... Pipeline is live and does not need PREROLL ... パイプラインを再生中 (PLAYING) にしています... New clock: GstAudioSrcClock Redistribute latency... #モノラルマイクの場合 参考: Latency - GStreamer
公開設定にしてるサイトで正常に配信されてるか確認
停止
Ctrl+C または端末を閉じる
インターフェイス
/usr/local/nginx/html/ | |
├ index.php | インターフェイス |
├ save.php | 設定値の保存用 |
├ cron.php | 日の出、日の入の確認用 |
└ save.txt | 設定値記録用 |
/usr/local/nginx/conf/ | |
└ nginx.conf | push先があれば外部配信 |
/home/pi/ | |
└ live | save.txtを読み込みローカル配信 |
- index.php > save.txt読み込み
- index.php設定完了 > save.txt 設定値保存 > nginx.conf URLとストリームキー書き換え > 再起動
- 再起動後 > live save.txtを読み込みローカル配信開始 > nginx.conf 外部配信開始
- 24H配信向け、日の出、日の入時刻にISO感度、シャッタースピードを自動的に変更する項目を用意 (※切り替え時、再起動するので注意)
登録
nginx停止
$ sudo systemctl stop nginx.service
ダウンロード version0.6
$ wget http://dz.plala.jp/wiki_data/livebot4v0.6.zip
$ unzip livebot4v0.6.zip
$ rm livebot4v0.6.zip
バックアップ
$ sudo mv /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.back
$ sudo mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.html.back
$ sudo mv /usr/local/nginx/html/50x.html /usr/local/nginx/html/50x.html.back
$ sudo mv /home/pi/live /home/pi/live.back
設置
$ sudo cp /home/pi/livebot4v0.6/nginx_conf/nginx.conf /usr/local/nginx/conf/nginx.conf $ sudo cp -r /home/pi/livebot4v0.6/nginx_html/. /usr/local/nginx/html/ マイクありの場合 $ sudo cp -r /home/pi/livebot4v0.6/live/live_mic_yes.sh /home/pi/live マイクなしの場合 $ sudo cp -r /home/pi/livebot4v0.6/live/live_mic_no.sh /home/pi/live
設定
実行権限変更
$ sudo chmod +x /home/pi/live
パーミッション変更
$ sudo chmod 0666 /usr/local/nginx/conf/nginx.conf
$ sudo chmod 0666 /usr/local/nginx/html/save.txt
タイムゾーン変更
参考: List of Supported Timezones
$ sudo nano /usr/local/nginx/html/save.php
38行目
date_default_timezone_set('Asia/Tokyo');
保存: Ctrl + o > リターン
終了: Ctrl + x
$ sudo nano /usr/local/nginx/html/cron.php
8行目
date_default_timezone_set('Asia/Tokyo');
保存: Ctrl + o > リターン
終了: Ctrl + x
cron設定
$ crontab -e
末尾に追加(最終行は改行のみの行を入れる)
*/10 * * * * php /usr/local/nginx/html/cron.php
自動起動設定
$ sudo nano /etc/rc.local
末尾のexit 0手前に追記
sleep 20;bash /home/pi/live
保存: Ctrl + o > リターン
終了: Ctrl + x
phpからamixerとrebootができるように設定
$ sudo nano /etc/sudoers
末尾に追記
www-data ALL=(ALL) NOPASSWD: /usr/bin/amixer, NOPASSWD: /sbin/shutdown
保存: Ctrl + o > リターン
終了: Ctrl + x
再起動
$ sudo reboot
動作確認
http://livebot4.local
延命対策
swap
無効化
Stretchの場合
$ sudo dphys-swapfile swapoff $ sudo systemctl stop dphys-swapfile $ sudo systemctl disable dphys-swapfile
fstab
設定
$ sudo nano /etc/fstab
nodiratime追記と末尾に追記
参考: fstab - ArchWiki atime オプション
PARTUUID=5cfaeb3f-02 / ext4 defaults,noatime,nodiratime 0 1 tmpfs /tmp tmpfs defaults,noatime,nodiratime,mode=1777 0 0 tmpfs /run/user/1000 tmpfs defaults,noatime,nodiratime,mode=1777 0 0 tmpfs /home/pi/.cache/lxsession/LXDE-pi tmpfs defaults,noatime,nodiratime,mode=1777 0 0
保存: Ctrl + o リターン
終了: Ctrl + x
再起動
$ sudo reboot
確認
$ df -h
systemctl
確認
$ systemctl list-unit-files -t service|grep enabled
rsyslog停止
$ sudo systemctl stop rsyslog.service $ sudo systemctl disable rsyslog.service 戻すなら $ sudo systemctl enable rsyslog.service
bluetooth停止
$ sudo systemctl stop hciuart.service $ sudo systemctl stop bluetooth.service $ sudo systemctl disable hciuart.service $ sudo systemctl disable bluetooth.service 戻すなら $ sudo systemctl enable hciuart.service $ sudo systemctl enable bluetooth.service
再起動
$ sudo reboot
確認
$ systemctl list-unit-files -t service $ systemctl list-unit-files -t service|grep disabled
folder2ram
RAMディスク化
インストール
$ sudo wget -O /sbin/folder2ram https://raw.githubusercontent.com/bobafetthotmail/folder2ram/master/debian_package/sbin/folder2ram $ sudo chmod +x /sbin/folder2ram $ sudo folder2ram -configure will now open the configuration file with your favourite text editor write its name and press enter (nano, vim, gedit are the most common) リターン
$ sudo nano /etc/folder2ram/folder2ram.conf
末尾に追記
tmpfs /var/log tmpfs /var/tmp tmpfs /var/spool tmpfs /var/cache/samba
保存: Ctrl + o > リターン
終了: Ctrl + x
$ sudo folder2ram -mountall $ sudo folder2ram -enablesystemd
再起動
$ sudo reboot
確認
$ df -h
journald
$ sudo nano /etc/systemd/journald.conf
追記
Storage=none
保存: Ctrl + o > リターン
終了: Ctrl + x
再起動
$ sudo reboot
更新履歴
- 2019.03.31 書き直し
- 2017.03.08 Pi Zeroで動作確認
- 2017.01.23 24時間配信対応に書き直し
- 2017.01.13 公開