「linux」タグアーカイブ

【lot】世界で大ヒットRaspberryPi日本の価格は適正なのか?

sc20160413174444

先日、ラズパイ3が突然発売されて、話題に事欠かない、超小型&低価格なワンボードPCのラズパイ

私も初代とラズパイ2の2台所有しており、自宅サーバとして24H稼働中です。

ラズパイ3は現在でも在庫切れ中で、500円で購入できるというラズパイゼロは、お目に掛かった事すらありません。

sc20160413174842

このRaspberry Pi Zeroは5ドル(約600円)という破格のお値段で、なんと私も所有してるラズパイ初代よりも、高性能という。

(;^ω^)

これで、ウェブも見れて、文書作成だって出来てしまう。

ほんとに馬鹿げた時代になりました・・。

ちなみに、このZero、日本Amazonで販売されてますが、「価格1万円」というあからさまにボッタクリ状態。

sc20160413175135

日本では小売として、KSYが公式な所となってますが、どうにも、ボッてねぇ?と勘ぐってしまいます。

私はここで2台とも購入しましたけどもね。

んでは、海外のショップと比較してみましょう。

  KSY(日) Element14(英) Think Allied(米) MODMYPI(英)
ラズパイ3 5670円 30.08GBP
≒4650円
35USD
≒3815円
29.99GBP
≒4650円

※小売価格、1ポンド=155円(2016/4/13現在)1米ドル=109円(2016/4/13現在)

ちなみに、米Amazonでは、42ドル(≒4578円)でした。

まぁ・・高いのは当然です。輸送費、為替諸費用など掛かりますもんね。

総じて、現段階では1000円+α程度乗ってると見ていいようです。為替の影響か、本家イギリスよりもアメリカで購入した方が安いようです。

ただ、いま現在、為替が凄い動いてるので、今よりも円高に触れればもっと安く手に入れる事ができます。現在108-109円

個人輸入だと、クレカ手数料や輸送費、各国の税金等だけで数千円飛んじゃうので、黙ってKSYで購入するのがベストなんですけどもね。

また、秋葉原などではお店が独自で輸入販売してる所があるので、近くの方は探してみるのもアリでしょう。羨ましい・・

sc20160413181211

色々探してみましたが、ラズパイZeroは、海外でも在庫ゼロ状態です。

500円だもんねぇ・・。ラズパイのスペックとはいえ、クラスタサーバ構築して計算させれば、スパコン並になるワケだしwそっか?

Raspberry Pi

sc20160413181942

現行パソコンの上位CPUのSkylake i7-6700Kは、現在4万円です。

ラズパイZeroが66個買えますよ。

6700Kは論理で8コア

ラズパイZeroは、4コア×66個で、264コアです。33倍!

さて・・・、どっちが速い!!m9( ゚д゚)ww

【LOT】遂に販売解禁!!RaspberryPi3急げッ!!!

sc20160315220921

(悪名高い天下り団体の)技適の審査を終え、やっと、ラズパイ3の発売が開始されました。

3/23からの発送なので、注意。

まだ、在庫は150と書かれてます。

多分、すぐ売り切れになっちゃうんではないかと思います。

KSY(国内正規) https://raspberry-pi.ksyic.com/

ラズパイ2に比べ、20%程度の速度アップ、無線LAN/Bluetooth内蔵と、

まぁ・・ラズパイ2を所有してたら、言うほど魅力は少ないですけども。私もその1人。

それよりも、RaspberryPi Zeroが欲しいんだけども・・ねぇ(本家のイギリスでも在庫ゼロ状態だもんな)

【ラズパイ】目覚ましラジオを鳴らしてみる

sc20150329181216

せっかくラズパイを24時間稼働させているので、もっと活用してみよう(゚∀゚)

ラズパイを目覚ましラジオにしてみようと思います。

寝起きざまに、ニュースやお天気情報などを入手できるのではないでしょうか。

多分、便利!!

一番簡単でスマートと思われる、MPDにて実現してみようと思います。

※MPD:サーバモデルの音楽メディアサーバソフト

【音楽】ラズパイを音楽サーバ化してみる@MPD

以前の記事ですが、ラズパイ2でもそのままいけます。まず、MPD環境を揃えます。とても、簡単。

んで、NHKラジオあたりのPlaylistを作成しておきます。

/var/lib/mpd/playlist/」に新規プレイリストを作成します。

nhk.m3u

mms://a33.l12993146032.c129931.g.lm.akamaistream.net/D/33/129931/v0001/reflector:46032
mms://a52.l12993346051.c129933.g.lm.akamaistream.net/D/52/129933/v0001/reflector:46051

※1行目はAM第一、2行目はFMになってます

後は、再生用のスクリプトを作成します。適当な場所に。

mezamashi.sh

#!/bin/bash
mpc clear
mpc load nhk
mpc volume 100
mpc play 2

これだけです。簡単です。「mpc play 2」のところを、「1」にすればAM放送になります。

実行権限を与えます。

chmod +x mezamashi.sh

このスクリプトを単体で、実行してみて、ラジオが鳴るか試してみます。止めるのは、「mpc stop」。

後は、CRONで定期的に実行させるだけです。

crotab -e

31 8 * * * /var/share/mezamashi.sh
30 9 * * * mpc clear

こんな感じで追加します。この例では、毎日8時31分にラジオを鳴らします。9時30分に終了ってな感じ。

※31分にしてるのは、別に時報を鳴らしてるんでズラしてます

止めるのは「mpc clear」でも「mpc stop」でもOKですが、プレイリストを綺麗にしておいた方が行儀が良さそうなので、clearにしてます。

さまざまなネットラジオがあるので、プレイリストに沢山追加して、ランダム再生とかも出来ますね。

また、通常の音楽ファイルも再生できるので、MPDによる再生はスマートな感じじゃないでしょうか。

Arioなどの管理ソフトを利用すれば、Windowsからも簡単に行えます。

【音】ラズパイ2をBluetoothスピーカー化してみる

sc20150322024152

追記:問題点3/27

RaspberyPiを、Bluetoothレシーバー側にしてみようと思います。

ラズパイが、Bluetoothワイヤレススピーカー化するような感じです。スピーカーは別に必要ですけどね・・。

スマホ・タブレットやPCから、音声を飛ばして(Bluetooth)、ラズパイで受け、それをスピーカーで鳴らします(Bluetoothデバイスから、PulseAudioのLoopbackで音声に接続という流れ)

P1010510手順は、検索しても相当に少なくて、そもそもLinuxでのBluetoothの情報少ない・・という状況のようです。

ちなみに後遺症として、PulseAudioをシステムモード動作させるため、一部オーディオ系コマンドがエラーになってしまう場合があります。利用したい場合は、「sudo –u pulse コマンド」とかすればOKです。

P1010511また、「apt-x」での接続を確認していないので、昔ながらの0.5秒遅延アリアリな感じです。

こちらの「猫ぱんち」さんのブログを参考にしました。同じ様な内容で、リンク先の英語サイトを参考にされたようです。

http://d.hatena.ne.jp/penkoba/20130909/1378744109

ただ、このままではうまく出来ませんでした(;^ω^)

※素の状態でもダメでした

色々やってみて、やっと動作までこぎ着けました。備忘録となりますが、先の「猫パンチ」さんと共に参考にどうぞ。

※ほぼ同じです

なにかと面倒無いよう、通常の「pi」ユーザーでログインしておきます。

インストールするパッケージ

sudo apt-get install pulseaudio-module-bluetooth python-gobject python-gobject-2

Bluetooth関連ユーティリティ(無くても良い)

sudo aptitude install bluetooth bluez-utils bluez-compat

USBのBluetoothドングルを挿して、認識してるか調べます。

lsusb

Bus 001 Device 005: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

sc20150322182557私のは安価なバッファロー製のこちらです。多分、何でも認識するかと思います。バッファローとアイ・オーは実績があるようです。

消費電力を意識するならVer4で、速度重視ならVer3のようです。

iBUFFALO Bluetooth USBアダプター 3.0+EDR対応 class2 ブラック BSHSBD04BK

pulseユーザーをlpグループに追加・・が、正直、ここは意味が分かりません。lpグループって何さ?w

sudo usermod -a -G lp pulse

/etc/init.d/pulseaudioを編集(startメソッド付近:39行目)

–disallow-module-loading=$DISALLOW_MODULE_LOADING」という部分を削除します。

/etc/default/pulseaudioの編集(システムモードに変更)

PULSEAUDIO_SYSTEM_START=1

/etc/pulse/system.paの編集(Bluetoothモジュールのロード)

.ifexists module-bluetooth-discover.so
load-module module-bluetooth-discover
.endif

※末行に追加、ifexistsは無くてもいいけど

/etc/pulse/daemon.confの編集(サンプリング・レート対応)

resample-method = trivial

/etc/bluetooth/audio.confの編集(Bluetoothスタック)

Enable=Source,Sink,Headset,Gateway,Control,Socket,Media

※ここでBluetoothの対応スタックを選択します

/etc/bluetooth/main.confの編集(スタックID)

Class = 0x20041c

/var/lib/bluetooth/<BDADDR>/config の編集(合わせる)

class 0x20041c

フラグ値はよく知りません。そのまんま利用してます。あんまり意味無さそうな印象です。

BDADDRは、機器により違います。1個しかないかと思うので、それです。TAB押せばええ。

オーディオデバイスを表示(デバイス名の確認)

sudo -u pulse pactl list short sinks

※鳴らしたいデバイス名を、メモっておきましょう

別にUSB-DACデバイス(スピーカー)で鳴らしたい場合は、とても重要です。

/usr/lib/udev/bluetoothを新規作成(Bluetoothリンク時の動作)

Bluetoothが接続や切断をした際に呼び出されます。やっている事は、Bluetooth機器を探して、PulseAudioの出力にループバック接続してます。なので、事前にメモしたデバイス名を、以下の赤字に記述します。標準アナログ出力なら、この名称でしょう。

#!/bin/bash

AUDIOSINK=”alsa_output.0.analog-stereo

echo “Executing bluetooth script…|$ACTION|” >> /var/log/bluetooth_dev

ACTION=$(expr “$ACTION” : “\([a-zA-Z]\+\).*”)
if [ “$ACTION” = “add” ]; then
   # set volume level here, if necessary
   amixer set Master 100%
   pacmd set-sink-volume 0 65537
   for dev in $(find /sys/devices/virtual/input/ -name input*); do
      if [ -f “$dev/name” ]; then
         mac=$(cat “$dev/name” | sed ‘s/:/_/g’)
         bluez_dev=bluez_source.$mac

         sleep 1

         CONFIRM=`sudo -u pulse pactl list short | grep $bluez_dev`
         if [ ! -z “$CONFIRM” ]; then
            echo “Setting bluez_source to:  $bluez_dev” >> /var/log/bluetooth_dev
            echo pactl load-module module-loopback source=$bluez_dev sink=$AUDIOSINK rate=44100 adjust_time=0 >> /var/log/bluetooth_dev
            sudo -u pulse pactl load-module module-loopback
source=$bluez_dev sink=$AUDIOSINK rate=44100 adjust_time=0 >> /var/log/bluetooth_dev
         fi
      fi
   done
fi

if [ “$ACTION” = “remove” ]; then
   CONFIRM=`sudo -u pulse pactl list short | grep ‘module-loopback\ssource=bluez_source’`
   if [ ! -z “$CONFIRM” ]; then
      module_id=`echo $CONFIRM | sed ‘s/\s.*//’`
      echo pactl unload-module $module_id >> /var/log/bluetooth_dev
      sudo -u pulse pactl unload-module $module_id >> /var/log/bluetooth_dev
   fi
fi

水色のところは、無くてもOKです。コメントとか、ログ書き出しの部分です。ちなみに、ログは「/var/log/bluetooth_dev」です。

このファイルに実行権限を与えます。

chmod +x /usr/lib/udev/bluetooth

/etc/udev/rules.d/99-input.rulesの編集(追加)

上で追加したファイルを登録します。

KERNEL==”input[0-9]*”, RUN+=”/usr/lib/udev/bluetooth”

/etc/init.d/bluetooth-agentを新規作成(Bluetoothリンク待受)

参考のものをそのまんま利用です。デーモンとして動作します。

### BEGIN INIT INFO
# Provides: bluetooth-agent
# Required-Start: $remote_fs $syslog bluetooth pulseaudio
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Makes Bluetooth discoverable and connectable to 0000
# Description: Start Bluetooth-Agent at boot time.
### END INIT INFO
#! /bin/sh
# /etc/init.d/bluetooth-agent
USER=root
HOME=/root
export USER HOME
case “$1” in
        start)
                #echo “setting bluetooth discoverable”
                sudo hciconfig hci0 pscan
                start-stop-daemon -S -x /usr/bin/bluetooth-agent -b — 0000
                echo “bluetooth-agent startet pw: 0000”
                ;;
        stop)
                echo “Stopping bluetooth-agent”
                start-stop-daemon -K -x /usr/bin/bluetooth-agent
                ;;
        *)
                echo “Usage: /etc/init.d/bluetooth-agent {start|stop}”
                exit 1
                ;;
esac
exit 0

実行権限を与えておきます。

chmod –x /etc/init.d/bluetooth-agent

デーモンとして登録

sudo update-rc.d bluetooth-agent defaults

Bluetoothサービスの再起動&エージェントを起動

sudo service bluetooth restart

sudo service bluetooth-agent start

ここまでやれば、Bluetoothのペアリンクが出来るはずなので、スマホなどから探してみてください(ホスト名に数字が付いたのが見えるはず)

ペアリンク時のコードは、上記スクリプトで「0000」とかしてますが、入力を要求されたらこれを入力、違う数字が表示された場合でも、そのまま「OK」して下さい。内部で、ちゃんとやり取りしてます。

この辺が、LinuxによるBluetoothの変なクセの一つなようです。

基本的なところは、ここで終了なのですが、もう一つ。

接続相手を自動接続にする(信用化)

hcitool scan

Bluetoothスキャンを掛けて、表示されたID(00:11:22:33みたいなやつ)をメモします。

sudo bluez-test-device trusted (ID) yes

で、信頼済みとします。次から、ペアリンク手順が不要になります。

sc20150322182308・・が、機器によって、接続のタイミングがそれぞれ違うようで、スマホとかだとすぐ接続されますが、WindowsPCとかだと、いちいちBluetooth画面から、接続に手順をしないといけません。

※Bluetooth管理用ソフトによって、まちまち

sc20150322182225Windows側で、起動時にアクティブになるような、機能とかあるんだろうか。別にプログラムを書かないといけないかもしれない。

遅延無しのapt-xで接続してみたいが敷居が高そう。

最後になりましたが、なんでこんな事をするかという点。

自分は、ソーラー発電&蓄電をしてまして、RaspberryPiやスマホの充電なんかを全て、ソーラー発電からまかなってます。

USBスピーカーも同様で、24時間通電しっぱなしです。

せっかくなので、常用パソコン用のスピーカーも、これで鳴らせれば、節電になるなぁ・・という事から実施してます。TVチューナー(Blurayレコーダ)の音声も、一緒に鳴らしたいんだけども。

※USBスピーカーで、入力が3つとかいう製品が無いしね・・

追記:3/27

しばらく運用してみたのですが、この方法で、ラズパイをBluetoothスピーカー化する事が可能です。

Windows PCなどから、再接続する手間を除けば、実用に耐えます。ま、これもWindows側或いは、ラズパイ側から再接続指示などが行えるかもしれません(Bluetooth仕様でしょう)

追記した理由は、自分の運用的に問題にぶち当たったからです。

PulseAudioをシステムモードON(非デフォ)としていますが、この性で、通常のオーディオ利用が出来なくなってしまいます。

sudo –u pulse mpg321 hogehoge.mp3

とかユーザー指定すれば、音声は鳴ってくれますが、バッチ処理内だとがっつりフリーズしてしまいます。

PulseAudioを、ちゃーんと理解していれば、対策も出来るのでしょうが、生半可な知識ではこれが限界(;´Д`)

他に時報とかメール着信・監視時とか鳴らしたいので、自分的には実験的段階で終了という運びとなりました。

【PC】RaspberryPi2きたこれ!どんなやつ?

sc20150204190944

追記有:2015/02/10

なにやら突然に発表と思いきや、既に販売中という、いつながらワクテカさせる暇を与えてくれないラズパイですが・・w

RaspberryPi+でしばらくの辛抱と思いきや、「RaspberryPi2」が登場です!(Type-Bのみ)

CPUコア単体では1.5倍、4コアなので、単純に6倍に性能アップ!メモリも、512MBから1GBに倍増!(ELPIDA社製)

他の構成は、TypeB+と同じだそうです(サイズやGPIOも含め)

しかも、値段据え置き!35ドル!全て英国製で、中国製は無くなった。

日本ではなぜか?いくらか乗ってます。TypeB+よりも数百円高い。英国からの送料は同じなのにねぇ・・・(;・∀・)

ただただ、気になるのが、消費電力と発熱です。TypeB+は、200mAで動作してたので、これがどれだけ増加するか?です。また、ヒートシンクを持たない状態みたいですが、発熱具合も気になるところです。

※ちなみに、TypeA+は90mAで動作しちゃう 参考:ブログ

追記:

sc20150210163217消費電力は、以前のモデルとは違い、CPUロードによって増減するようです。

アイドル時で230mA、フルロード時で470mAのようです。参考

※LANポート利用、HDMI出力、USBキーボード利用の時

案の定ですが、結構、電力を消費します。幸い500mA以下なので、どんなUSBポートでも動作は可能ですが、ラズパイのUSBポートや純正カメラ等を利用する場合は、1~2A以上の余裕が必要でしょう。

Type-B+も継続して販売との事で、低電力を望むならPi A+/B+、高スペックなら、Pi2となる感じでしょうか。

追記:

以前は遅すぎて使い物にならなかったGUI環境ですが、CPUスペックが大幅に上がった事で、スムーズに動作してくれるようです。

こちらの動画が参考になるかと思います。

スクロールとかも、波打ってませんし・・(;^ω^)

sc20150204194610

先日凄いニュースが飛び込んできました。

なんと、RaspberryPI向けに、無料でWindows10を提供との事です。

スペック的に、パソコンとして快適に利用する事は困難ですし。

大事な事を忘れてますよ!

ラズパイは、RISCなんですよ。intel x86では無いんですよ。って事は、普段使いのWindowsでは無いのが想定できます。多分、Windows8 RTみたいなシロモノでしょう。RT機はRISCだったし。

アメリカきっての営利企業が、そんなボランティア的な事は絶対にしません。

RaspberryPi関連製品

追記:

sc20150210164612

初めて聞くようなニュースが飛び込んできましたね。

なんと、ラズパイをカメラのフラッシュで焚くと、再起動する!?と・・(;^ω^)

オカルトちっくな印象ですが、これ、本当のようで。。

チップの回路が一部露出しているらしく、そこに大きな光を受けた場合、電圧が低下するんだそうです。

※太陽光や室内灯くらいでは問題無し

かと言って、これは不具合でも無く、そういうものだそうです。これで、故障する訳でも無いようです。突然の再起動によって、ストレージとかへのデータ的ダメージはあるでしょうけど。

公式では、対策版を出荷するようです。

ヒートシンクとか取り付けたら対策できるんだろうかね。

【linux】雰囲気が変わった新Fedora21が登場

sc20150107210232

いつの間にか年末に登場していた「Fedora 21

公式ウェブも、なんだか、雰囲気が変わったようですね。

マニア向けな印象が無くなり、なかなか良い感じです。

WorkStation、Server、Cloudと3つのエディションに分かれて、なんだか有償化への布石か?とも、警戒してしまいます。

Cloudは、ネット上でのクラウドサーバでの利用を想定しているそうです。開発向けの構築を容易にしてくれる機能もあるようです。

Androidによって、世界を席巻しているLinuxですが、デスクトップではどうにも元気が無いので、2015年は少しでも復興していただきたい。

https://getfedora.org/

【pc】いつの間にか登場してた新ラズパイA+

sc20150106205435

2014/11に発表してたみたいでしたw

モデルB+に続いて、モデルAにも後継が登場したようです。

GPIOピン数はタイプB+と同等、USBやLAN無し、RAM容量などの部分は、以前と同じです。

驚くべきは、100mA/5V以下で、まっとうに動作するコンピュータなところ。実に消費電力、0.5Wですよヽ(;゚д゚)ノ !!

sc20150106212939そんなパソコンが、約2500円以下で手に入っちゃいます。

さすがに、Windowsは動かないけどね。

  Type A+ Type B+
価格 $20 $35
価格(国内) 2620円付近
※為替により変動
Amazon (送料込)
3940円付近
※為替により変動
Amazon (送料込)
USBポート 1 4
出力計1.2Aまでだが、2A電源入力なら1.5Aまでいけるようです(噂)
RAM 256MB 512MB
LAN 無し 10/100Mbps x1
サイズ 65mm x 65mm 85mm x 56mm
CPU 700Mhz (BCM2835)
1 Core
※オーバークロック化だが、ほとんど変わらず
GPU 2 Core (VideoCore IV)
電源 Micro USB (5V)
ビデオ入力 CSIカメラ用
GPIOピン 40ピン
SDカード MicroSDスロット
オーディオ出力 3.5mm x1
※RCAビデオ出力兼
※以前のモデルよりも、低ノイズ化
ビデオ出力 HDMI
3.5mm
※オーディオ出力兼
※GPIOからも出力有り
固定用穴 →(位置は同じ)
消費電力
(アイドル)
90mA / 5V 200mA / 5V
※従来 310mA
消費電力
(最大)
110mA/ 5V 240mA / 5V
※従来 360mA

P1010414

私の部屋で24H稼働中のRaspberry Pi タイプB(以前のモデル)はこちら。

一度も不安定になる事なく稼働し続けてます。

今は、ソーラーパネルで発電したバッテリーから給電して動作してるので、完全無欠の地球に優しいコンピュータです。

Windowsバックアップ、ファイルサーバ、監視カメラ、時報など色々動作させてます(ストレージは120GBのSSDを接続)

新モデルの方が、確実にスペックアップしてるわ、消費電力が低いわで。。(;^ω^)移行しようかな。

Type-Aもかなり魅力的ですが、ネットワークが使えないスタンドアローンとなるので、用途はかなり限られますね。制御系コンピュータとして考えても、夢の様なコンピュータです。$20だしw

追記:

Raspberry Pi B+での話ですが、USBの電流合計が0.6A(600mA)に制限されているようで、これを撤廃して、最高1.2Aにする事ができるようです。

以下のサイトに設定方法が書かれてます。

http://www.mugbot.com/2014/08/19/raspberry-pi-model-b-%E3%81%AEusb%E3%83%9D%E3%83%BC%E3%83%88%E3%81%AE%E9%9B%BB%E5%8A%9B%E3%82%A2%E3%83%83%E3%83%97/

ただ、注意すべきは、OS起動後に1.2Aとなるので、電源投入後は0.6A制限が生きてます。よって、最悪は故障となる可能性があるので、なんとも厳しいかもしれない。

【監視】RaspberryPiのMotion監視の定期削除

sc20140904002355

ラズパイによるMotion監視(画像検知)をずっと行ってます。

完全・完璧に安定しております。業務用途でも全然問題ナッシングですよ。

まぁ、ほとんど俺の入室・退室に反応してるんですけどもね。

普段から防犯意識を持っておいて、憂い無しです。

んで、このMotionによるファイル数が尋常ではありません。6000ファイルとか。

気になった時に手作業で削除してましたが・・・

cronで定期的に古いやつ削除すりゃいいじゃね?・・と(;^ω^)

早速、crontab -eで、俺的に使い難いと定評のnanoで編集します。

0 5 1 * * find /mnt/share/motion/ -name ‘*.swf’ -mtime +30 -delete

これで、毎月1日の朝5時に、1ヶ月前のファイルをごそっと消してくれます。

USBにマウントしたSSDにSWF(動画)保存してるので、こんなです。

そういや、ログファイルとかの削除にもそのまま利用できますね。

【raspi】ラズパイにゆっくり時報を言わせてみた

sc20140609004037

これまでは、00分と30分の時に、単純な効果音を鳴らしていましたが、「softalk」という、いわゆる「ゆっくり」に、時報を言っていただく事にしました。

単純ですけど。

リアルタイムに音声生成させるには負荷が掛かりますので、事前にいくつかのパターンで、音声を作っておきます。

午前」「午後」「1~12時」「半(はん)」「です」全部で16種類。

timetalk.sh」を作成し、実行権限を与えておきます。単純ですが、こんな感じで、シェルスクリプトを書きます。”aplay”の後(グレー部)のファイルパスは、WAVファイルの保存先です。

#!/bin/sh

AMPM=`date ‘+%H’`
HOUR=$((`date ‘+%l’`+0))
HALF=`date ‘+%M’`

mpg321 –q /mnt/share/sound/bell.mp3 (適当なジングルとか)

if [ $AMPM -lt 12 ]
then
  aplay -q /mnt/share/sound/talk/talk_gozen.wav
else
  aplay -q /mnt/share/sound/talk/talk_gogo.wav
fi
aplay -q /mnt/share/sound/talk/talk_${HOUR}.wav
if [ $HALF -eq 30 ]
then
  aplay -q /mnt/share/sound/talk/talk_han.wav
fi
aplay -q /mnt/share/sound/talk/talk_desu.wav

実行権限を与えます。

chmod 0705 timetalk.sh

ここで、”./timetalk.sh”として、実際に音が鳴るか確認します。

後は、CRONから、00分と30分の時にこのスクリプトを呼ぶだけです。簡単ですね。

crontab –e (CRONの編集)

0,30 * * * * timetalk.sh (これだと24時間)

0,30 6-23 * * * timetalk.sh (深夜を避けるなら、こんな感じとか)

CRONの書き方はググれば沢山出ます。

WAVファイルを差し替えたり、語尾を変えたり、面白いですよ。お試しあれ。

単純にsoftalkで作ったWAVファイルを置いておきます。聴きやすい様に、多少工夫してます。

【linux】ラズパイをサーバとして色々テストと覚書(゚∀゚)

DSC_0194

かなり出遅れた感はありますが・・(;^ω^)

先日購入したラズパイに、Rasbianを導入し、72時間程電源入れっぱなしで、問題無いことを確認しましたので、本稼働に向けて設定しております。

サーバ用途として色々と雑多な事を覚え書き。

ネット上には沢山情報がありますが、自分なりにまとめました。これから始める方の参考に。

電子工作とかは、まったくの無知なので、省電力Linuxサーバとしての利用に特化しております。本記事は追記や修正があるかと思います。

スペックや用意したもの

Raspberry Pi Type-B(UK版)、Trancend SD 8GB(Class10)、有線LAN利用、AC-DC電源(5V2A※DynabookVT484用)、HDMIケーブル+モニタ(初期設定時)、USBファン、スピーカ(アンプ3W程度)

他、USB2.0-Hub(SelfPower)、Logicool C300ウェブカメラ、Lenovo TrackPointKeyboard、SSD 120GB(2.5Case/USB3.0)

※OSのインストール方法や初期設定は割愛します(日本語環境やSSH稼働)

WinならTeratermやPoderosaなどのTermソフトからリモートで設定した方が便利です。電源とLANケーブルだけ接続しとけば良いので。

ちょっとしたメモ

セットアップ起動(初期起動するセットアップ画面)

raspi-config

再起動

reboot

CPU温度計測(精度:1/1000)

cat /sys/class/thermal/thermal_zone0/temp

※ファンでいくら冷やしても、室温+6度が限界

CPU速度表示(精度:1/1000)

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

※OCしても、さほど向上しない。だが、されどOC

Linuxカーネルバージョン

uname -a

CPU&メモリ使用量

cat /proc/meminfo

free –m

top (タスクマネージャっぽく)

NTP(時間)同期状況

ntpq –p

日本語フォント(ローカルで利用する場合)

apt-get install fonts-vlgothic fonts-ipafont fonts-ipaexfont

ラズパイの食事と消費電力と熱

どんなに負荷をかけても、USB定格の500mAを超える事は無いよう(通常は400mA動作)ですので、パソコンのUSB端子なら、内部でハブ化されて無い事を確認して、500mAを確保しなくてはなりません。

セルフパワーUSBハブでも同様です、余計なUSBデバイスを外して、電流低下を防ぎます。

LANチップが大飯食らい(約50mA)で、Type-Aは本当に300mAで動作するようです。

AC-DC(USB)アダプタを利用する場合は、OUTPUTスペックを確認しておいた方が良いです。結構、定格外のモノがあります。

ヒートシンクを付けても、ー5度程度の効果です。空冷がベストです。空冷だと、室温+6度で維持できます。CPUよりも、LANチップの方が発熱が酷い。

ターミナルで簡単接続

sc20140607184716サーバの初期設定では何度も再起動を繰り返しますので、事前に簡単に接続できるように設定しておくと便利です。

こちらではTeraTermを利用。

ショートカット内に、以下のように記述しておくとパスワード入力無く接続できます。

ショートカットを作成し、「リンク先」を以下のように編集します。

“C:\Program Files (x86)\teraterm\ttermpro.exe” (固定IP設定後ラズ倍):22 /ssh2 /auth=password /user=(ユーザー) /passwd=(パスワード)

これで気兼ねなく再起動を繰り返せますし、ラズパイを覗きたい時に気軽に好きなだけ接続できます。

作業の前に色々おまずない

rootパスワードの設定

sudo passwd root

ユーザーの追加

adduser (user ID)

アップデート(Rasbianパッケージ&ファームウェア)

apt-get update

apt-get upgrade

rpi-update (古ラズパイなら必須、色々改善されます)

VIMエディタのインストール

apt-get install vim

コンソールカスタマイズ(使い易い様に)

vi ~/.bashrc

source .bashrc (設定の反映)

ホストネームの変更(便宜上変更)

/etc/hostname

/etc/hosts

ネット関連&IP固定(サーバだし)

vi /etc/network/interfaces (インターフェース関連)

iface eth0 inet static (IP固定の指定)
address 192.168.1.100 (IPアドレス)
netmask 255.255.255.0
gateway 192.168.1.1 (LANの玄関)

vi /etc/resolv.conf (名前解決先)

nameserver 192.168.1.1

/etc/init.d/networking reload (設定の適用)

chkconfigのインストール(サービスの管理ツール)

apt-get install chkconfig

chkconfig (不要なサービスはOFF)

サーバ用途ならビデオメモリ解放

sudo raspi-config (Advancedからビデオメモリ最低16M)

SSH関連

vi /etc/ssh/sshd_config

PermitRootLogin no(rootログインを不可にする)

RAMディスク関連(tmpやlog)※SDカード延命化

chkconfig dphys-swapfile off(swapサービス無効)

vi /etc/fstab

tmpfs /tmp tmpfs defaults,size=32m,noatime,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,size=16m,noatime,mode=1777 0 0
tmpfs /var/log tmpfs defaults,size=32m,noatime,mode=0755 0 0

vi /etc/rsyslog.conf (sysログが最少になるよう改変)

(要再起動)

※カーネル変更で、SDカードに一切書き込みを行わないという方法もあるようです。利便性がめっちゃ損なわれますけども

定期的時間調整

apt-get install ntpdate

vi /etc/default/ntpdate (NTP設定、国内NTPサーバ指定)

NTPSERVERS=”0.ntp.nict.jp 1.ntp.jst.mfeed.ad.jp 2.ntp.ring.gr.jp”

crontab -e (CRONタスクスケジューラ)

0 0 * * * /etc/network/if-up.d/ntpdate > /dev/null 2>&1

※ここでは毎日0:00に調整

Windowsファイル共有(NAS化)

個人的にはこれが主目的です。

SAMBAサーバのインストール

apt-get install samba

vi /etc/samba/smb.conf (設定)

※ログ作成などは最少化、プリンタ等は無効、必要ならWINSサーバを有効にする(名前でアクセスできる)

[global]
unix charset=utf-8
dos charset=cp932
[share]
path=/var/share/ (共有先)
browsable=yes
guest ok = no
read only = no
valid users = (User ID)

SAMBAにユーザー追加

pdbedit -a (User ID) ※システムにユーザー登録済のもの

SAMBA設定の適用

service samba restart (SAMBAの再起動)

※”reload”もあるのですが、個人的に信用できないので

Windows PCから見えるか確認

ネットワークから、ラズパイが見えて、共有ホルダーが利用できれば成功です。

外部USBストレージの利用

USB-HDDなどを利用する場合は、”lsusb”、”dmesg”等でデバイスが認識されているのを確認します。

fdisk –l

ドライブとして見えていればそのままマウントすれば利用できるのですが、HDDフォーマット種類によって利用できない場合があります(FAT32の方がLinux上では速度が断然速いようです。未確認←木の精)

apt-get install ntfs-3g (Windows/NTFSを利用)

マウント先の準備

mkdir /mnt/share

chmod 0757 /mnt/share

mount -t ntfs-3g /dev/sda1 /mnt/share (NTFSとしてマウント)

ls /mnt/share –l (マウントの確認)

起動時に自動マウント

vi /etc/fstab

/dev/sda1       /mnt/share      ntfs-3g defaults 0 0 (これを追記)

defaultsに続けて、”,noatime”とすると、アクセス時刻が記録されなくなり、負荷が少なくなります。

SAMBAに共有化設定

vi /etc/samba/smb.conf

先ほど設定した、”path=/var/share/”を、”path=/mnt/share/”にしても良し、新しく追加しても良し。

service samba restart (SAMBAの再起動)

アクセスできるか確認します。

ラズパイを常時稼働させるなら、ネットワークドライブを設定しても良いでしょう。

当初、手持ちのUSBメモリ(シリコンパワーUSB3.0)はOKだったんだけど、エレコムの2.5ケース(USB3.0)は見えない。直付なので電源不足かもしれない。

追記:

DSC_0195USBハブ(セルフパワー)を経由したところ正常動作しました。

たとえSSDでも、ラズパイに直付では電源不足のようでした。

ELECOM U2SWB27SBKという変態USBハブですw


DSC_0197

型番は不明ですがロジテックの2.5ケース(USB3.0)。

中身は、intelのSSD 120GBです。


省エネと静音目的なので、CP悪いですがこれにしてます。

サウンド関連設定

サーバ用途ですが、せっかく部屋に置くので、時報とかお知らせとか鳴らすつもりでいます。

※マイク・録音関連は、訳あって「カメラ編」で

アナログ出力を優先

vi /boot/config.txt (raspi_config設定ファイル)

hdmi_drive=2 (こうしないといけない様)

ボリューム設定可能なリスト

amixer controls

amixer cset numid=3 1 (アナログを選択)

ボリューム設定

amixer cset numid=3 88% (88%辺りが音割れ無しで最大)

alsamixer グラフィカルに音量調整(意味無)

テスト音の再生

aplay /usr/share/sounds/alsa/Noise.wav (ノイズ)

speaker-test (スピーカーテスト)

設定の保存

alsactl store

ひとまず音を鳴らしてみる(mpg321/Ogg導入)

sudo apt-get install mpg321 vorbis-tools (一式インストール)

ネット上のフリー素材を鳴らす

mpg321 http://www.hmix.net/music/c/c7.mp3

勢い余ってネットラジオを鳴らす

apt-get install mplayer (一式インストール)

apt-get install rtmpdump swftools libxml2-utils

NHKラジオ(らじるらじる)

上から、AM第一、AM第二、FM。

mplayer -playlist http://mfile.akamai.com/129931/live/reflector:46032.asx

mplayer -playlist http://mfile.akamai.com/129932/live/reflector:46056.asx

mplayer -playlist http://mfile.akamai.com/129933/live/reflector:46051.asx

※負荷は10%ほどでしょうか、しかし一切コマ落ち無しで綺麗に聞こえます

時報を鳴らす

1時間毎に時報を鳴らしてみます。

まず適当な場所に、シェルスクリプトを用意します。コマンドを書くだけですが。

設定

crontab -e

0 7-11,13-23 * * * (適当な場所)/hour_sound
0 0,12 * * * (適当な場所)/bell_sound

※深夜は鳴らさず、0:00と24:00は特別なサウンドとか

シェルスクリプト

CRONに直接コマンド書いても良いんですが、別ファイルにしておいた方が管理が楽です。

vi hour_sound

#!/bin/sh
mpg321 /mnt/share/bell.mp3 (サウンドファイルを鳴らす)

※USB-HDDマウントした先のMP3を鳴らしてます、”mpg321”では、”-g”で音量設定が可能(0-100)時報は音量低めなら必要

さらに自分では、30分毎や、起床時間などに特別なサウンドを鳴らしてます。

また、以下の「音声合成」コマンドとかで、時報というのも良いですね。ただ時報なら、その都度作成で負荷を上げるよりか、事前にMP3化しておいた方がいいでしょうね。

音声合成

想像以上に実用レベルでしたので、これはヨサゲです。

apt-get install open-jtalk (エンジン)

apt-get install hts-voice-nitech-jp-atr503-m001 (ボイス)

apt-get install open-jtalk-mecab-naist-jdic (辞書・解析等)

これだけで利用できますが、発声の際にパラメーターの指定が大量にあるため、スクリプトを利用した方が良さそうです。

どこかのサイトのコピペとなりますが、以下を作成すると便利です。

#!/bin/bash
VOICE=/usr/share/hts-voice/nitech-jp-atr503-m001
DIC=/var/lib/mecab/dic/open-jtalk/naist-jdic
open_jtalk \
-td $VOICE/tree-dur.inf \
-tf $VOICE/tree-lf0.inf \
-tm $VOICE/tree-mgc.inf \
-md $VOICE/dur.pdf \
-mf $VOICE/lf0.pdf \
-mm $VOICE/mgc.pdf \
-df $VOICE/lf0.win1 \
-df $VOICE/lf0.win2 \
-df $VOICE/lf0.win3 \
-dm $VOICE/mgc.win1 \
-dm $VOICE/mgc.win2 \
-dm $VOICE/mgc.win3 \
-ef $VOICE/tree-gv-lf0.inf \
-em $VOICE/tree-gv-mgc.inf \
-cf $VOICE/gv-lf0.pdf \
-cm $VOICE/gv-mgc.pdf \
-k $VOICE/gv-switch.inf \
-s 48000 \
-a 0.56 \
-p 220 \
-x $DIC \
-ow /tmp/ojtalktmpvoice.wav \ (tmpに作成指示)
$1
aplay /tmp/ojtalktmpvoice.wav (鳴らす)
rm /tmp/ojtalktmpvoice.wav (そして、消す)

“chmod +x”にて実行権限を付けて、あとは、日本語文の入ったファイルを渡すだけとなります。

WAVファイルを作成となりますが、処理はそれなりに時間が掛かります。1文字1秒位でしょうか。

※RAMディスク化してる場合は、大きな文章は作成できません。スクリト内の”-ow”引数を、変更して対応する必要有り

音声は男性のものとなりますが、オープンで女性版(ミク?)なども配布されているようです。

カメラの設定

DSC_0198

手持ちのWebカメラ、Logicool C300(型番怪しい)です。

ラズパイには、”Webcam B500”として認識されているようです。

UVC規格のカメラなので、関係ありませんけども。

ちなみに、このウェブカメラは、マイクも内蔵してます。よって、自動的にマイクデバイスも認識しています。

ラズパイでカメラだとここが詳しいです。色々なソフトで確認してます。http://linux.yebisu.jp/memo/800

とりあえずワンショット欲しいので、シンプルなソフトから。

fswebcamのインストール

apt-get install fswebcam

ワンショット(VGAサイズ/jpeg90%/ディレイ無)

fswebcam -d /dev/video0 \
-D 0 -S 3 -r 640×480 \
–jpeg 90 –line-colour ‘#FF000000’ \
–text-colour ‘#00FFFFFF’ –banner-colour ‘#FF000000’ \
–top-banner \
–title “Very cool guy ;-)” \
–shadow \
–font “/usr/share/fonts/truetype/vlgothic/VL-PGothic-Regular.ttf:12” \
/mnt/share/camera_%Y-%m-%d_%H%M.jpg

※最後行が出力先、日付を付与してます

この設定で、一枚辺り70Kbのようです。このまま、CRONなどで定期的に撮影すれば、防犯用途に利用できそうです。

監視ソフトのインストール

motionという監視ソフトを導入する記事をよく見かけます。

単純な画像変化量による記録ソフトで、サービスでも動作可能で、想像以上に高機能で使えるシロモノです。

監視(画像&ビデオ)、ライブ配信、リモート管理(Web)が可能です。CPU負荷が高めなので、微調整が必要です。

motionのインストール

apt-get install motion

メイン設定

vi /etc/motion/motion.conf

daemon on (サービスとして起動)
norm 1 (日本向け、必要無いような気もします)
v4l2_palette 6 (パレットモード、必要無いような気もします)
threshold 3000 (しきい値、ピクセル数のよう。要調整)
auto_brightness on (自動ホワイトバランス)
ffmpeg_video_codec swf (動画のフォーマット)
target_dir /mnt/share (データの保存先)
gap 60 (監視1認識の時間、秒)
output_normal off (画像保存不要の場合、ビデオのみ保存)
webcam_port 0 (ライブカメラモード無効、ON:ポート指定)
webcam_localhost off (ローカルPC外からのアクセス可)
control_port 8080 (Web管理ポート)
control_localhost off (ローカル外でも管理可)
control_authentication username:password (管理用ログイン設定)

設定(サービス化のため)

vi /etc/default/motion

start_motion_daemon=yes

起動

service motion start

sc20140605224639

ちょっと、動いただけで、ゴミのようにファイルが生成されていくのが分かります。

私は、しきい値を3000と大きめ(緩め)にしましたが、これは調整が必要でしょう。

”output_normal off”とすれば、画像保存は無くなります。ビデオのみとなります。

デフォルトではSWFなので、ブラウザから一連の動作を動画で見ることができます。mpeg1/mpeg4なども選べますが、負荷が高めだったため、デフォのままにしてます。

動作検出時に、コマンドを走らせる事もできて、まぁ・・音を鳴らしたりとか出来ます。

ウェブ(遠隔)から管理できるので、指定のURLにアクセスすれば良いだけです。考えられてます(IPアドレス:8080)

例:http://192.168.1.100:8080

ライブカメラは、ポートを8081となります。ただ、ChromeやIEでアクセスしても見ることができません。FireFoxなら、無設定で見れます。

配信サーバともなるのでメモリや負荷が気になったのですが、+3%程度のようです。

肝心のCPU負荷ですが、私のこの設定で、常時3~5%程度です。メモリも2%程消費してます(ライブ配信時は、さらに+3~5%)

Androidスマホで見る

Androidスマホなどで見る場合は、MJPEG対応のアプリが必要です。私は、以下の「簡単MJPEGビューア」を利用してます。

https://play.google.com/store/apps/details?id=com.tk.android.simplemjpeg&hl=ja

画像サイズ、IPアドレスの指定、ポートの指定(8081)、コマンドは不要にて、見ることができます。

マイクで録音

このウェブカメラには、マイクも内蔵しており、同時にUSBマイクとしても別個に認識されています。モノラルですけど。

ミキサーでデバイスIDを確認

arecord -l

**** ハードウェアデバイス CAPTURE のリスト ****
カード 1: U0x46d0x807 [USB Device 0x46d:0x807], デバイス 0: USB Audio [USB Audio]
  サブデバイス: 1/1
  サブデバイス #0: subdevice #0

上から、カード番号とデバイスIDの“1,0”として指定する事で、マイクを利用できます。複数のオーディオデバイスを接続してる場合は、複数表示されるので目的のマイクを確認します。

マイクレベルを最大に設定

amixer -c (カード番号) sset ‘Mic’ 100%

alsactl store (必要なら設定値を保存)

5秒だけ録音

arecord -d 5 -f S16_LE -D hw:1,0 record.wav

※”hw:”のところに、カード番号,デバイスIDを指定します