Raspberry Pi3でTimeMachineサーバー構築

Raspberry Pi3 netatalkを用いたTimemachineサーバー構築

準備

以前TImemachineサーバーを構築していたのですが、新しいおもちゃRaspberry Pi3を買ったのでそっちに移行しようと思います。

apt-get install libssl-dev libgcrypt11-dev libpam0g-dev libwrap0-dev libdb-dev libavahi-client-dev libacl1-dev libldap2-dev  libcrack2-dev

 

ビルド

sudo wget http://prdownloads.sourceforge.net/netatalk/netatalk-3.1.8.tar.bz2 

tar xvf netatalk-3.1.8.tar.bz2

./configure --with-cnid-dbd-backend --with-init-style=debian-sysv --with-acls --with-zeroconf --with-cracklib --with-pam-confdir=/etc/pam.d --with-dbus-sysconf-dir=/etc/dbus-1/system.d

make -j6 

   -j 数字(同時にメイクするスレッド数 cpu core x 1.5くらいが目安)

sudo make install

これでインストールは完了。

設定

まずは、TimeMachine用にHDDを用意してフォーマットする

sudo mkfs -t ext3 /dev/sda1

そして、マウント

sudo mount /dev/sda1 /media/TimeMachine

自動マウントの設定を行っておこう

ls -l /dev/disk/by-uuid

で出てきたHDDに対して

vi /etc/fstab

に以下の行を追加する。

/dev/sda1 /media/TimeMachine ext4 defaults,relatime,nofail 0 2

 

netatalkの設定を行っていく

sudo vi /usr/local/etc/afp.conf

 

[Global]
hostname = Raspberry ; お好きなホスト名を
mac charset = MAC_JAPANESE

uam list = uams_clrtxt.so uams_dhx.so uams_dhx2.so uams_guest.so
log file = /var/log/netatalk.log
vol preset = my default values
log level = default:info
ea = samba ; 拡張属性の保存方法を Samba と同じにする。Samba との共存に備えて

[my default values]
valid users = @username
file perm = 0660
directory perm = 0770

[Time Machine]
path = /media/TimeMachine
time machine = yes
vol size limit = 300000

これを保存して、

sudo service netatalk restart

を実行すればOK 

ディアウォール使って賃貸物件でTVを壁掛けにした

ディアウォールでTVを壁掛けにしました

ディアウォールがいい感じだったのでテレビも壁掛けにしました。

今回は一本ではなく2本使って壁掛けにします。

アングル使って壁掛けにする案もありましたが、壁掛け金具が安かったのでそれを採用しました。

 

f:id:tront1982:20160703195359j:plain

座った時の目の高さが中心に来るように測って金具を取り付けましょう。

f:id:tront1982:20160703212614j:plain

こんな感じに立てて、金具を取り付けます。

f:id:tront1982:20160703223135j:plain

取り付けたらこんな感じになしました。 37インチだったのでなんとか一人でできました。

30kgくらいあるでしょうが、ビクともしません。いい感じ。

今回の取り付けでわかったこと

・水準器使ってしっかり水平と垂直を出すこと

・金具を取り付ける際には必ず下穴を開けること

電動工具が欲しくなる

・ケーブル類は接続した状態で金具を取り付けること

・木材の曲げには気をつけること。できるだけまっすぐなものを購入しましょう。

天井の高さから-38mmになるように木材調整してディアウォールを使いました。

一週間経ちましたが問題なしです。

 

ディアウォール使うと賃貸物件でも釘打ちできる柱が作れるので、DIYを楽しめます。おすすめ。

 

 

 

ディアウォール使って賃貸物件に自転車を壁掛けにした

ディアウォールで自転車を壁掛けに

2台の自転車を部屋置きにしていましたが、手狭になったので2台を縦置きで壁掛けにするために検討・実践しました。

  • P-600AL-5S
  • ディアウォール+バイクハンガー4R

の2つを検討し、金額と自由に改良できそうな点を考慮してディアウォールの方を採りました。

ディアウォール+バイクハンガー4Rの組み合わせでかかった値段は、¥6000くらいになりました。

バイクタワーが¥18000円なので半額以下で自転車スタンドが作れたことになります。

この費用の大半がバイクハンガーなので、ハンガー部分の代替品を探してこればもっと安くできそう。

今回は、初めてでこれ以上の冒険はせずに自作のものではなく、ミノウラのバイクハンガーを使おうと思います。

実際にやってみた

Amazonで道具をホームセンターで木材とヤスリを購入しました。

2x4木材はディアウォールを使う前に、200番と1000番のヤスリでヤスリがけしてスベスベにしておきます。

ヤスリ掛けをしない場合は、壁紙を木材に巻きつけると良いでしょう。

今回は、初めてなのでヤスリ掛けだけして組み立てようと思います。

f:id:tront1982:20160703120226j:plain

説明書には天井の高さ-45mmと書かれていましたので、木材をそれに合わせてカットし、木材の上下につけて壁際につっぱります。

f:id:tront1982:20160703120246j:plain

こんな感じになります。

スペーサーをつけずに取り付けたのですが、なんとも心もとなく試しにぶら下がってみたら倒れちゃいました。-45mmでは短いようです。

ディアウォールが立つ仕組みは単純で、上下につっぱる力による摩擦で支える仕組みなので、天井と床の滑りにくさによって調整が必要になります。

適当な長さを決めるには、やってみないと分からない。

とりあえず、余った木材で6mmのスペーサーを作って、入れてみるとしっかり支えられそうな状態になりました。

 ぶら下がってもビクともしませんでしたので、上手くいきそうです。

 

次に、まっすぐに立っているか水準器で確認します。斜めになっていると倒れる危険性が高くなるので必ず確認。

f:id:tront1982:20160703124215j:plain

垂直に立ってますね。

f:id:tront1982:20160703124240j:plain

前後方向も確認。歪みに弱そうなので本当は2本立てて渡しを作ってやって歪みに対する補強もした方がいいですが、自転車を掛ける程度なので大丈夫でしょう。

 

次にバイクハンガーを取り付けたいと思います。 

f:id:tront1982:20160703120326j:plain

ロードバイクのハンドル1/2分の長さがあるバイクハンガーなので、モーメントがかかりそうで不安になりましたが、なんとかなるかな...

そして完成。

f:id:tront1982:20160703131209j:plain

いい感じです。自転車の重さによって倒れるかと思いましたが、自転車を揺らしても柱はビクともしませんでした。

*リアブレーキのワイヤーがバイクハンガーのU字部分とフレームに挟まれていて傷がつきそうだったので、クッションをハンガーに挟みました。

*一週間経ちましたがビクともしません。

少しくらい歪むかと思いましたが、水平と垂直はちゃんと保てていましたので頑丈です。

次回はテレビの壁掛けした時の写真をあげようと思います。

今回使ったもの。

この二つに、ラチェットドライバー、ドリル(手まわし)、水準器

です。木材とドリル以外はアマゾンで簡単に手に入るので楽です。

道具代含めてもバイクスタンドを買うよりもかなり安く作れました。

SV600購入レビュー

ScanSnap SV600購入レビュー

ScanSnap SV600を購入したので開封の議とファーストインプレッションを書いてみます。

梱包

購入先はヨドバシカメラ。梱包箱と兼用の箱で届きました。

中はこんな感じ。

f:id:tront1982:20160116121949j:plain

f:id:tront1982:20160116123855j:plain

f:id:tront1982:20160116123946j:plain

 

セットアップはシールを剥がしてUSBをMacに接続して、

スキャナScanSnap ドライバダウンロード : 富士通

ここからScanSnap ManagerをインストールすればOK.

 

サイズ

大体50cm x 60cmくらいの平らな場所があれば設置できます。

f:id:tront1982:20160116125738j:plain

ScanSnap Managerアプリケーション動作

ScanSnap S1500を保有しているので、アプリの動作は共通設定なのでとても使い易い。

f:id:tront1982:20160116201409p:plain

読み取りモードオプションはハードが異なるため違っています。

選択肢は、タイマー自動スキャンページめくり検出の自動スキャンの2種類。

本をめくるのに合わせてスキャンしてくれるのでとても便利です。

f:id:tront1982:20160116201418p:plain

ページ設定も、本に合わせて3パターンのスキャン設定があります。

->見開きと2ページの混在するデータの場合は、スキャン後の画像補正でページ設定ができるので、至れり尽くせりです。Very Good

f:id:tront1982:20160116201425p:plain

画質の設定はS1500と変わりません。

f:id:tront1982:20160116201430p:plain

 

こんな感じで、卒業アルバムとか裁断しにくい本の非破壊スキャンに適した設定があり

とても良いですねー。

では次は実際にスキャンしてみます。

 

スキャン動作

実際にスキャンしてみました。

設定はページめくり検出のカラースキャン300dpiです。

youtu.be

スキャンする前にLEDが点滅するので、わかり易い。

動画みてわかる通りスキャン->PC読み込み->ページ検出->スキャン

という順番にスキャンするためどうしても見開き1スキャンに8-10秒くらいかかります。

本一冊まるまるスキャンするのは、次に述べる補正処理も合わせるとそれなりに時間がかかりますね。1時間で2,3冊くらいでしょうか。

 

画像補正

スキャンが完了したら、ScanSnap Manager 補正ビューアーが起動します。

スキャン画像のゆがみとページ設定、指の削除などの補正を行っていきます。

★背景とスキャン結果が近い色だと画像検出がうまく行かずに補正の段階で時間がかかるので背景はスキャン対象の色とは反対色にした方が良いでしょう。

f:id:tront1982:20160116200257p:plain

こんな感じで、デフォルトでだいたいの位置を検出してくれています。

大画面にはスキャンしたRAWデータが。右の一覧には現在の補正結果が並んでいます。

そこから補正したい画像を選んで手動で補正していきます。

大体は四隅と真ん中を合わせるとエッジ検出などでいい感じに切り取り線が自動で引かれます。

★本が黒いとこの切り取り線が上手いこと自動で引かれずに手動で引く必要が出てきて時間がかかります。

 

指の検出

補正を行っていて感動したのが指の補正です。

f:id:tront1982:20160116200301p:plain

こんな感じで、指を指定してやると、自動で指の範囲を上図のように選択されます。

ここで補正を実行すると

f:id:tront1982:20160116200306p:plain

こんな感じにきれいに消えてくれました。

 

スキャンスピードは少し遅いですが、スラッドヘッドやコンビニのコピー機と比較すればそんなもの。

SV600のすばらしさは、ハードウェアも良いですが、ページめくり検出や補正機能などハードウェアを使いこなすソフトウェアでしょう。

ハードでどうしても補正しきれない箇所をソフトウェアの画像処理で実行させる。ハードとソフトの上手な融合だと思いました。

 

ページめくり検出によるスキャン機能が搭載されているので、SV600を購入しましたが

ScanSnap補正ビューアーの出来が良い意味で予想外でした。

 

私は買ってよかったと思います。

SV600を購入するか検討中の方の参考になれたら幸いです。

 

 

 

 


Automatorで複数ファイルを入力して、ファイル名を変更する方法

Automatorでファイル名を変更する

 

f:id:tront1982:20151220202749p:plain

f:id:tront1982:20151220202745p:plain

f:id:tront1982:20151220202743p:plain

 

複数のpdfファイルを結合して一つのpdfにまとめてそのファイル名を最初のpdfファイル名にするAutomatorアプリを作成したので、公開する。

 

方針

1. pdfファイルの入力を受け付けて「Filename」に保存する。

2.その入力から最初のファイル名を「filename」に入れる。

 最初のファイル名を抽出するためにrubyを使用。入力をstdinに設定して、出力をputsで実行させる。

STDIN.each{|f| file << f}

puts file[0]

でOK。

3. 「Filename」を入力に使ってpdf結合する

4. 「filename」を使ってファイル名を変更する。

 

入力を覚える仕組みとシェルスクリプトrubyなどの入力方法を覚えられた。

 

 

Network AudioをRaspberry Piで その2(音だしとAirPlay)

Air Playのインストールをしたいと思います。

最終的にはUSB-DACでアンプから音を出す事をしたいわけですが、

まずは、イヤホンジャックから音を出しましょう。

 

参考にしたサイトはここ

Raspberry pi

UbuntuをAirPlayの母艦にする - Shairport - DIMENSION 2.00

/usr/share/sound/alsa

にサンプルの音源があるので、vlcをapt-getして音を鳴らしましょう。

鳴ったら問題ないです。

鳴らない場合は、Sound cardの設定を見直しましょう

sudo amixer cset numid=3 1

と設定してみましょう。末尾の1がイヤホンジャック。2にするとHDMI出力になるようです。

やってみた結果、音が小さい!と言う人は、

sudo amixer controls

と打ってPCM Playback Volumeと出たnumidを覚えておいて

amixer cset numid=1 98%

とボリューム調整してみましょう。

AirPlayエミュレーターShairportのインストール

では音も鳴った事ですので、目的のものをインストールします。

sudo apt-get install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils libmodule-build-perl

ビルドする為のツールをインストールしたら、

githubからshairportのコードを落としてきてビルドする。

 

git clone https://github.com/abrasive/shairport.git
cd shairport/
./configure
make

ビルドが通ったら、shairportを起動させる。名前は任意。AirPlayPiで起動させる

./shairport.pl -a "AirPlayPi"

同じネットワーク上のiTunesから見える様になるか確認

f:id:tront1982:20151026231029p:plain

見えました。これで音が鳴ればshairport動作確認完了です。

その次に、インストールしてデーモンとして登録しましょう。

sudo make install

install -D -m 0755 hairtunes /usr/local/bin/hairtunes

install -D -m 0755 shairport.pl /usr/local/bin/shairport.pl

install -D -m 0755 shairport /usr/local/bin/shairport

 

sudo cp -a shairport.init.sample /etc/init.d/shairport

 

 

 

 

次はいよいよUSB-DACとの接続です。...といってもまだ買ってないので記事のアップはちょっと先になりそう。年末までには欲しい!でもお金がない(|||| ToT)

 

 

参考

Raspberry PiでUSBスピーカーをAirPlay対応する | count0.org

Raspberry Piを「AirPlay化」して音楽をストリーミングする方法 | ライフハッカー[日本版]

 

追記

ALSAエラーでAirPlayが急に動作しなくなったので調べてみた

./configure 

Configuring Shairport

OpenSSL found

libao found

PulseAudio or its dev package not found

ALSA or its dev package not found

Avahi client or its dev package not found

getopt.h found

dns_sd.h not found

CFLAGS:

LDFLAGS: -lm -lpthread -lssl -lcrypto -lao

Configure successful. You may now build with 'make'

 

こんな感じでエラーが出てました。

なのでドライバのインストールを実行

sudo apt-get install libasound2-dev

sudo apt-get install libpulse-dev

これでエラーがなくなるはず 

 

追記の追記

なんか急にAirPlayがつながらなくなったので原因を調べてみた

$ ./shairport -a "AirPlay"

Starting Shairport 1.1.1-23-gd65b8e8

FATAL: could not bind any listen sockets!

Shutting down...

 こんなエラーが出た。

ポートがlisten状態にできないということらしいので

netstat -lnt

稼働中のインターネット接続 (サーバのみ)

Proto 受信-Q 送信-Q 内部アドレス            外部アドレス            状態       

tcp        0      0 0.0.0.0:5002            0.0.0.0:*               LISTEN     

tcp6       0      0 :::5002                 :::*                    LISTEN    

 となっていることを確認。5002ポートでshairportは動作しているので、すでにLISTEN状態になっているところにさらに起動しようとしてエラーになっていたみたい。

init.dに登録してある設定を全部削除してデーモンも消したらエラーが解消された。

init.dの登録してあると./shairport -a AirPlayを実行できなさそうなことまでわかった。

init.dに登録してあれば起動時に自動でAirPlayから見えるはずなのに見えないので、スクリプトの解析を行う

Network AudioをRaspberry Piで その1(Mac Book AirでのRaspbianインストールからVNCアクセスまで)

このサイトを見つけてからUSB DAC付きのプリメインアンプとラズベリーパイがあればネットワークオーディオ構築出来るじゃんと思ったので、やって見た。

foobar.hatenablog.com

A Beginner's Guide to DIYing with the Raspberry Pi

方針

ネットワークオーディオを実現するために、Raspbian上にAirPlayサーバーを構築して

USB DAC or イヤホンジャックからアンプに接続する

 

やる事

Raspberry PiにOSをインストール

www.raspberrypi.org

 

Mac Book Airで RaspbianをSDカードにイメージを焼く。 

まず書き込むドライブのマウントを解除 

diskutil listでドライバの番号を確認してから

diskutil unmoundDisk /dev/SDCARD drive

ダウンロードしたイメージをddで書き込む。

*diskの頭にrを付けてrdiskとすると書き込み時間が早くなる。

sudo dd bs=1m if=/raspbian.img of=/dev/rdiskn

焼き終わったらRaspberry PiにSDカードを差して電源を入れる

LANケーブルを差して、sshでログイン

ssh pi@ip address

初期パスワードはraspberry

*ip addressはavahi-daemonが動作しているならばraspberrypi.localでも接続できる。

pingが通る事を確認してみましょう。

設定編

外部ディスプレイとキーボードマウスをRaspberry Piに毎回接続するのは大変なのでVNCリモートデスクトップアクセスしたいと思います。

sudo apt-get update

sudo apt-get install tightvncserver

tightvncserver

パスワードの設定を求められるので、任意のパスワードを設定する

すると

Creating default startup script /home/pi/.vnc/xstartup

Starting applications specified in /home/pi/.vnc/xstartup

Log file is /home/pi/.vnc/raspberrypi:1.log

とでてくるので、スタートアップスクリプトを編集して自動で起動する様に編集する

ここを参考にOSX用に設定

assimane.blog.so-net.ne.jp

root@raspberrypi:~# sudo vi /etc/init.d/vncboot

### BEGIN INIT INFO

# Provides: vncboot

# Required-Start: $remote_fs $syslog

# Required-Stop: $remote_fs $syslog

# Default-Start: 2 3 4 5 # Default-Stop: 0 1 6

# Short-Description: Start VNC Server at boot time

# Description: Start VNC Server at boot time.

### END INIT INFO

#! /bin/sh

# /etc/init.d/vncboot

USER=pi

HOME=/home/pi case "$1" in

start)

echo "Starting VNC Server"

#Insert your favoured settings for a VNC session

su $USER -c '/usr/bin/vncserver :1 -geometry 1440x900 -depth 24'

;;

 

stop)

echo "Stopping VNC Server"

su $USER -c '/usr/bin/vncserver -kill :1'

;;

 

*)

echo "Usage: /etc/init.d/vncboot {start|stop}"

exit 1

;;

esac

 

exit 0

これを保存したら、実行権限を付与して、ブート設定を行う。

chmod 755 /etc/init.d/vncboot

update-rc.d vncboot defaults

netstat -lnt

スタートアップスクリプトを登録後、再起動してnetstatでポートが解放されている事を確認

OSX上で VNC clientからRaspberry Piにリモートアクセスする。

raspberrypi.local:5901(netstat listで解放されているポート)

 問題なく繋がれば、この様にClientが立ち上がる。

f:id:tront1982:20151025185019p:plain

 今回はここまで

 

参考サイト

Raspberry PI 2 : ディスプレイなしで初期設定から無線LAN設定まで - [séns]

TightVNC: VNC-Compatible Free Remote Control / Remote Desktop Software

Raspberry Piの設定【SDカード使用容量の変更(リサイズ)】 - Aldebaranな人のブログ

Raspberry Piでファイルサーバ、Part1 Samba基本編 | ものづくりエクスペリメント