「debian」タグアーカイブ

【音】ラズパイ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

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

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

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

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

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

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

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

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

【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制限が生きてます。よって、最悪は故障となる可能性があるので、なんとも厳しいかもしれない。

【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を指定します

【pc】ラズパイに火入れしてみた@初期設定

P1010170

まず手始めに、「RASPBIAN」(Debian)を入れてみました。

ダウンロードは公式から、2014/1版なのが気になるところですが、まぁ・・良しとしよう(例のOpenSSL騒ぎが4月だったので)

DLはとっても時間が掛かります。ISP規制が無ければ、Torrentの方が全然速いそうです。私のISPでは利用不可(;´Д`)・・

P1010171ラズパイはUHS非対応なので、8GB(Class10)を用意、こちらにDDWinにてイメージを書き込みました。

起動画面を超えると、設定画面が表示されますが、全面英語だし、下手なことしないかと・・焦る。

RASPBIAN 2014/1版のもの(バージョンによって項目が違う)

P1010172まず、「Expand Filesystem」で、SDカード全体を利用できるように拡張します(現状ではイメージサイズ分しか利用できないため)

Internationalisation Options」で、ロケール(国・場所・言語等)の設定を行います。

ロケールでは「ja_JP.UTF-8」を、タイムゾーンでは「Asia>Tokyo」を、キーボードでは「Generic 105>Japanese>Default>No>No」を選択します(キーボードは必要に応じて変更)

スピード狂の方は、「Overclock」で設定してください。標準700Mhzで、最高1000Mhzまで設定できます。標準でも結構熱を持つので、クーリングが必要でしょう。

Advanced Option」から、その他の設定を行います。

Overscan」は画面枠の黒帯の有無、「Hostname」はPC名、「Memory Split」はGPU用メモリ量、「SSH」はSSHサーバ稼働有無、「SPI」は電子工作用(多分)、「Audio」は音声をHDMIかジャックかの選択、「Update」はアップデート処理。

まずは、SSH起動や、アップデートは必須でしょうね。アップデートは結構溜まってました。3分位。「Finish」で終了です。

まずこの状態で、メモリ使用量は141MBのようです。

さぁ・・てと、デスクトップを起動してみよう(゚∀゚)

P1010173

startx」・・・・。

うぴょーヘ(゚∀゚ヘ)

思いの外すぐ立ち上がりました。綺麗なロゴ表示が印象的。

ちなみに、RaspberryPiに接続してるキーボードは、Lenovoのトラックポイントキーボードです。

マウス(トラックポイント)の方も、文字入力も問題無しです。トラックポイントのスクロールも可能でした。これは嬉しい。

P1010174

Webブラウザは軽量で有名な「Midori」「NetSurf」が入ってるようです。

有線LAN(100Mbps)で接続してますが、・・・というより、スペック的に厳しいようですね。

見れないことは無いけどもぉ・・、という感じ、ちょっとした調べ物的な用途に良いかと。

標準では、Flashが無いようで(当然ですが)、Youtubeなどの動画が再生できません。別途パッケージが必要でしょう。

業務用途などのシンプルなWebインターフェースなら、全然実用可能でしょうね。業務用のWebクライアント端末とかめっちゃ最適でしょう。

P1010175

こんな商売も始めたようですね。

Pi Store」というアイコンがあって、これをクリックするとこちらのソフトウェアを購入できるようです。

現在1ポンド=171円です。

Linuxの豊富なパッケージがあるので、お金を出してまで・・というのは考えにくいですけどもね。

導入ソフトウェアは本当に必要最低限で、とても少ないです(マイナーな開発環境だけは、かなり入ってます。Scratch、PythonやWolframとか初めて聞くものも・・)

そのため、初期からパッケージを選んで構築していく工程も楽しめるような印象です。

ただ、GUIでは、何をするにもすぐCPU100%状態になりますけどもね。

sc20140525222854

設定でSSHをONにしてたので、ターミナルで接続。

CPU情報はこんなでした。

サーバ用途目的なので、まずはこのラズパイが24時間365日無事稼働してくれるか、しばらくは、ずっと電源入れっぱなしにして様子を見ようと思ってます。

これから何をしようか・・(*´д`*)たのしみ

Raspberry Pi Type B 512MB

【Linux】Debian 7.5リリースしてたw

sc20140520235511

Linuxディストリ、たまーに覗きにいくとアップデートしてますね。

先月大騒ぎになったOpenSSLのセキュリティ問題への対応がなされたWheezyバージョン7.5がリリースされています。

多くのディストリビューションの根底をなすDebianと言っても過言ではありませんし。

今後の動向に期待です。・・とはいえ、保守的なディストリなので、しばらく動きは無いでしょうけども。

Debian JP Project

【Linux】Ubuntu14.04LTS日本語リミックス登場

P1010138気づいたら4/28に配布されていました(;・∀・)

今回は随分を早いリリースです。

公式Ubuntu14.04LTSに、日本版特有のカスタマイズを加えたバージョンです。

(公式版でも、日本語の利用は問題ありません)

特別な理由が無いなら、日本語リミックス版を使った方が便利です。

まずは、VMWareで試してますが、なんというかリッチな印象を受けます。VMWare上でも、サックサクなので、実機ならなおのことでしょう。

確かに、Unityはどうにも使い難いです。ですが、逆にPC初心者目線だと、素晴らしいインターフェースになることでしょう。

Windowsでいうスタートメニューみたいなものを追加できるパッケージがあったので、これを追加すれば良いだけの話です。

Ubuntu Japanese Team
https://www.ubuntulinux.jp/home

【Linux】Ubuntu14.04でキーボードレイアウトがおかしい場合

 

sc20140420221938Ubuntu14.04がリリースされましたけども、日本語Rimixまではもうちょっと、おあずけ状態ですので、早速VMwareとかで試すと。

便利な自動インストーラーが色々やってくれますが、どうにも英語環境になってしまいます。

中学英語だけでは太刀打ちできないので、早速、脳内日本語環境にしましょう。

sc20140420222006

歯車アイコンにて「システム設定」から「言語サポート」を選択します。

「言語のインストールと削除」から、「Japanese」を選びインストールします(結構時間掛かる)

リストから一番下にある「日本語」を、ドラックして一番上まで移動させます(ちょっとコツ必要)

そしたら、「システム全体に適用」ボタンを押して、システムを更新します。

その後、一度、ログアウトしてログインし直しましょう。

sc20140420221537

あと、キーボードがおかしい事に気づくはずです。

英語キーボードとして認識されてますので、これを日本語キーボードに変更します。

「システム設定」から「テキスト入力」を選択します。

リスト内の「日本語(Anthy)」を選択して、右下の「設定アイコン」をクリックします(ドライバー&スパナの小アイコン)

すると、上写真の画面が出ますので、「キーボードレイアウト」から「jp」を選択します。

「iBusを再起動なんとか・・・」とか言われますが、これも、一度ログインし直しましょう。

これで、日本語表示と日本語入力ができるようになったはずです。

sc20140420222805

今回の日本語関連には関係ありませんが、VMwareで試してるという事は、お試し利用の方が多いはず・・・という事で、こんなパッケージも紹介。

「Ubuntu restricted extras」という非オープン系のソフトウェア群です。

まぁ、Flashとか、MP3とか、動画コーデック、フォントとかですね。

デスクトップ利用なら必須なシロモノばかりなので、入れておいて損は無いでしょう。

【VPS】サーバ構築メモ@さくらVPS+Debian7

sc20140211165035

大家のSaasesから容赦なき締め出しを喰らい、我らのサーバはネット難民の生活を余儀なくされてしました。

ただ単に更新忘れ・・w

楽しい楽しい難民生活の始まりです。

以前から気になっていたさくらVPSが手招きしてるじゃありませんか。Saasesよりも家賃が倍になってしまうが、よし、ここに決めよう。

料金からすると、お名前comやConoHaなどのGMO系に分があるんですが、どこぞの記事で韓国人スタッフが映ってたので、情報漏えいの危険アリと判断。詳細は割愛、自己責任で。

サーバ構築時のメモがメインなので、ちょっと読み辛いですが了承ください。

セグメント処理をNICに移管

標準だとソフトウェア処理で、放っておくとネットワーク速度が低下するそうです。それを、ハードウェア処理にします。詳しくは以下

http://sakura.custhelp.com/app/answers/detail/a_id/1368#gs=eyJndWlkZUlEIjoxLCJxdWVzdGlvbklEIjoxLCJyZXNwb25zZUlEIjoxLCJndWlkZVNlc3Npb24iOiJxZG94dEVNbCIsInNlc3Npb25JRCI6InFkb3h0RU1sIn0.

まずはアップデートっすな

aptitude updateaptitude upgradeにて、パッケージ関連もろともアップデートします。Debian系なら、このaptitude(パッケージ管理)は覚えなきゃ始まりません。

使い易くロケールとか色々と設定

これからの作業に向け、ヘルプを表示するにも英語なので、ロケールやコンソール、VIエディタ関連の設定を行います。

dpkg-reconfigure localesにて、ja UTF-8にロケール変更。これで思い存分ヘルプを日本語で堪能できますッ。

aptitude install vimにて、VIMエディタをインストールします。

カラーモードにしたいので、~/.vimrcを開いて編集します。

sc20140211202518

こんな感じで設定しました。色々なサイトからのコピペなんですけど。

中でも見た目的に重要なのが、色付けカラースキーマでしょう。

colorschemeのところ。

こちらは、VIMに予め予約されてる定義があり、/usr/share/vim/vim73/colors/こちらに、保存されてます。

私の環境ではこれだけ種類がありました。slateだとこんな感じ。

blue・delek・evening・murphy・slate・darkblue・desert・koehler・pablo・ron・torte・default・elflord・morning・peachpuff・shine・zellner

Debianでは、sudoが入ってなかったので、導入。aptitude install sudo

ls周りとか自分なりに追加。~/.bashrcalias ll=’ls -laF’とか

sc20140211214100(良く知らないけど)Redhatに慣れてるなら、aptitude install sysv-rc-confこのパッケージを入れておくといいかもしれません。サービス管理(ランレベル)がやりやすい。

SSH環境の設定

デフォだと危険極まりないので(常時ネットから試行アクセスが頻発してる)、出来るだけ早めにセキュリティレベルを上げておく必要があります。鍵認証によるアクセスのみにします。

ssh-keygenにて鍵作成、~/.sshに2つ出来上がるので、mv id_rsa.pub authorized_keyschmod 600 authorized_keys、と名称及びパーミッション変更。

もう一つ(秘密鍵)は、cat id_rsaで表示させて、コピペでファイル保存しておこう。機密を守りたければ、この時点で、ターミナルソフトのバッファーをクリアしておこう。このファイルは削除する(削除が嫌ならROOT所有にしてchmod 600とか)

sc20140211210718

/etc/ssh/sshd_configを編集します(この画像のようには設定しない事、撮影用に改変してます)

PermitRootLogin noにて、rootログインを不可にします。重要

PasswordAuthentication noで、パスワード認証を不可にします。

RSAAuthentication yesPubkeyAuthentication yesで、RSA鍵認証を有効にします。

AuthorizedKeysFile .ssh/authorized_keysこれで、先ほど作成した鍵を紐付けます。

もし貴方が固定IPアドレスなら、ListenAddressに記述する事でアクセス元を完全に限定できます(普通は非固定でしょうけども)

SSHは22番ポートが標準ですが、これを移動する事もできます。若干ながら、セキュリティを上げられます。Portを変更します。

これで最低限の編集は終了で、service ssh reloadで、SSHにリロードさせます。

先ほど保存した、秘密鍵を使って、Teratermなどお好きなSSHクライアントからSSH2接続を行います。ちなみに、PederosaというSSHクライアントソフトがありますが、鍵の互換性が無いため残念ながら利用できません(;^ω^)

IPTABLESの導入と設定

sc20140211213127公開するサーバには必須のIPTABLESです。ネットワークの出入口に、制限を掛けたり、DOS攻撃の対処やログ記録などが行えます。

ネットワークの高度な知識が必要で、下手に設定すると、サーバにアクセス不可能とかになってしまいます。

しかしながら、想像以上にシンプルなシロモノです。色々なパターンがあるので、ネットから色々つまんで設定追加していく事をオススメします(中国や韓国からのアクセスを全てブロックするような書き方もあります)

ここでは、自分のサーバ設定がバレてまうので、割愛します。SSH、VPN、WWWなどのポートオープン、DOS対策とログ、最悪侵入された際の対策などをしてます。

aptitude install iptables-persistentこちらを入れると、serviceから管理できるので便利です。service iptables-persistent reloadなど

iptables –Lで、現在のルールを確認できます。

WWW系の導入

sc20140211213326

書くまでも無く簡単なんですけど一応。まとめてインスコ。

aptitude install apache2aptitude install php5ここまでは、普通にインストール。

あとは必要に応じて、aptitude mysql-serveraptitude php5-mysqlとMySQL系のもの。

PHP5系で必要なものが他にもあるかもしれない。php5-curl、php5-rpcxmlとか。

aptitude search phpなどで必要なパッケージを探そう。

Apache2設定の情報はあまたとあるので、こちらも割愛。前に使ってたApacheが古過ぎたのか、色々と変わって焦った(;^ω^)

サイトの定義は、/etc/apache2/site-available/にconfをそれぞれファイルにして保存しておき、a2ensiteでサイトの有効化、a2dissiteでサイト無効化します。通常は、VirtualHostで利用します。

同じように、モジュールも、mods-availableにconfが、まとめられてて、a2enmodで有効化しないといけません。設定の場所が、分断されてしまったので、まず、目的のモジュールが何なのか調べないといけません(CGIとかmime.conf)

ちょっと面倒になった感は否めないけども、管理的には良いのかもしれません。

service apache2 reloadで読み込みなのですが、稀に失敗してるようで、確実を求める際はrestartが良いようです。

【pc】新Fedora20 Linuxの配布開始!

sc20131219145225

12/17に新しいFedora20 Linuxが配布開始となりました。

ディストリの乱立も落ち着きつつありますが、人気のFedoraの新バージョンです。

何が新しくなったか、未調査ですけども(;^ω^)

リリースノート
http://docs.fedoraproject.org/ja-JP/Fedora/20/html/Release_Notes/index.html

やっぱ新しいのは、気になりますね。

Fedora Linux
http://fedoraproject.org/