2014/05/18

Raspberry Pi で DLNA

DNLAサーバにするために、ownCloudを抹消してMediaTombとSambaをインストールする。

ownCloud抹消
# rm -rf /var/www/owncloud
# rm /etc/apache2/conf.d/owncloud.conf

データ用フラッシュメモリのマウントポイント変更( /var/www ⇛ /ext )
# mkdir /ext
# vi /etc/fstab

/dev/sdb1       /var/www        ext4    defaults          0       0
 ↓
/dev/sdb1       /ext            ext4    defaults          0       0

※一旦再起動
# reboot

●MediaTombインストール
# apt-get install mediatomb

設定ファイル修正
# vi /etc/mediatomb/config.xml

<protocolInfo extend="no"/>

<protocolInfo extend="yes"/>

↓間に2行追加
  <import hidden-files="no">
    <filesystem-charset>UTF-8</filesystem-charset>
    <metadata-charset>CP932</metadata-charset>
    <scripting script-charset="UTF-8">

↓非コメント化
        <map from="avi" to="video/divx"/>

↓セクションに追加
        <map from="jpg" to="image/jpeg"/>
        <map from="jpeg" to="image/jpeg"/>
        <map from="gif" to="image/gif"/>
        <map from="png" to="image/png"/>
        <map from="m4a" to="audio/mp4"/>
        <map from="m4v" to="video/mp4"/>
        <map from="mp4" to="video/mp4"/>
        <map from="mpg" to="video/mpeg"/>
        <map from="MPG" to="video/mpeg"/>
        <map from="mpeg" to="video/mpeg"/>
        <map from="m2p" to="video/mpeg"/>

# vi /etc/default/mediatomb
INTERFACE=""
INTERFACE="eth0"

サービスのリスタート
# service mediatomb restart

他PCから「http://192.168.xxx.yyy:49152/」にアクセス
MediaTombの設定画面が開けばOK


●Sambaインストール
# apt-get install samba
# apt-get install samba-common-bin

ログ出力先整備(Ramディスク)
# vi /etc/init.d/make-logfile
sambaに関する記述追加

mkdir -p /var/log/samba
chown root.adm /var/log/samba

設定ファイル修正
# vi smb.conf

[global]
# Cap the size of the individual log files (in KiB).
   max log size = 1000
   max log size = 100

↓追加
hosts allow = 192.168.0. 127.



2014/05/11

Raspberry Pi をRead-Onlyで動かす

ラズパイを電源ブチ切りできるように

SDをRead-Onlyでマウントするシステムを構築

するためのメモ


※wheezy環境での構築メモです。
2018年を迎えた今でもアクセスがあるのですが、
構築に失敗したという情報も見受けます。
十分にご注意ください。
Stretchでは確実に死にます。


aufs+fsprotectよりお手軽なunionfs-fuseを組み込んでみる。
※RAMDisk運用ができていることが前提

パッケージ導入
# apt-get install unionfs-fuse

スクリプト編集
# cp /usr/share/doc/unionfs-fuse/examples/S01a-unionfs-fuse-live-cd.sh /etc/init.d/a-unionfs-fuse-live-cd
# cp /usr/share/doc/unionfs-fuse/examples/rc.local.omit-pid.sh /usr/local/sbin/a-unionfs-fuse-omit-pid.sh

# vi /etc/init.d/a-unionfs-fuse-live-cd
先頭(#!/bin/shの後)にINIT INFOを追記
#!/bin/sh

### BEGIN INIT INFO
# Provides: a-unionfs-fuse-live-cd
# Required-Start: mountall-bootclean
# Required-Stop:
# Default-Start: S
# Default-Stop:
# X-Start-Before: procps udev-mtab urandom
# Short-Description: UnionFS mode
# Descrition: Shutdown process will not be required
### END INIT INFO

前半の UBIN= の下に追記
UBIN=/usr/bin/unionfs-fuse

cd /boot
file=noprotect
if [ -e ${file} ]; then
    echo "${file} exists"
    exit 0
fi

mount -o remount,ro /dev/mmcblk0p1 /boot

末尾の pivot_root . oldroot の下に追記
pivot_root . oldroot

mount -o remount,ro /dev/root /oldroot
for d in dev run run/lock sys run/shm dev/pts boot
do
  mount --bind /oldroot/$d /$d
done

同 init q の下に追記
init q

/usr/local/sbin/a-unionfs-fuse-omit-pid.sh

exit 0

initスクリプト有効化
# update-rc.d a-unionfs-fuse-live-cd defaults

切り替えスクリプト作成
# vi /usr/local/bin/noprotect
#!/bin/sh

mount -o rw,remount /boot
cd /boot
if [ -e "protect" ]; then
    rm /boot/protect
fi

if [ -e "noprotect" ]; then
    echo "noprotect mode"
else
    touch /boot/noprotect
    echo "noprotect mode"
fi

mount -o ro,remount /boot

# vi /usr/local/bin/protect
#!/bin/sh

mount -o rw,remount /boot
cd /boot
if [ -e "noprotect" ]; then
    rm /boot/noprotect
fi

if [ -e "protect" ]; then
    echo "protect mode"
else
    touch /boot/protect
    echo "protect mode"
fi

mount -o ro,remount /boot

# chmod a+x /usr/local/bin/noprotect
# chmod a+x /usr/local/bin/protect


起動モード切り替え
通常(ReadWrite)モードで起動
# noprotect

ReadOnlyモードで起動
# protect



フォロワー