2013年10月14日月曜日

イイ音持って出掛けよう - BeagleBoneBlack+USB DAC+MPD


なにこれ

小型、安価ながらそこそこパワフルな手のひらサイズなコンピュータBeagleBoneBlackにUSB DAC、USB Wi-Fiドングルを接続し、MPD(Music Player Daemon)をインストールしたもの。

Wi-FiテザリングをOnにしたAndroid端末にぶら下げ、Android端末から電源投入以外の全ての操作が行える。

BeagleBoard.org - BeagleBone Black

ひとりぶろぐ - Ubuntuも動く安価な手の平コンピュータBeagleBone Black Rev. A5CがAmazonで販売中



Music Player Daemon


ハードウェア

今回使用したものは以下

USB Wi-Fiドングル BUFFALO WLI-UC-GNM2



USB DAC audioquest DRAGON FLY




あとUSB HUB(ヨドバシで小型なのを適当に購入、型番メーカー忘れた)、64GB microSDXC 2枚、microSDカードリーダーと千石電商であれこれ。

それとモバイルバッテリー
Panasonic QE-PL201、SONY CP-E2L、Anker Astro M3、Anker Astro 3EをBeagleBoneBlackのminiUSB経由で給電し、安定して動作する事を確認した。





BeagleBoneBlackのUSBポートは1ポートのみ
今回、USB Wi-Fiドングル、USB DAC、micoroSDカードリーダーの3ポート必要となったのでUSB HUBを使用した。

ポータブル用途なので可能な限りコンパクトになるようHUBはコネクタ等剥がし、ボードのみ使用、BeagleBoneBlackのUSBコネクタも邪魔なので剥がすなどのたのしい工作をした。



ストレージの構成は本体の2GB eMMCにシステム(Debian wheezy)、本体microSDスロットに64GB、USB microSDカードリーダー経由で64GBという構成となっている。
手持ちの音楽を全てFLACで入れたかったため、このような構成となっている。

ソフトウェア

初期状態では本体eMMCにはAngstrom Linuxがインストールされています。
これを他のOSに入れ替えるには
  1. microSDにOSをFlash
  2. BeagleBoneBlackのS2ボタン(USBポート側にあるボタン)を押しながら電源投入
  3. microSDにFLASHしたOSが起動
  4. microSDに1でFLASHしたOSを転送し、本体eMMCにFLASH
今回は下記サイトで公開されているOSイメージファイルを使用した。


micorSDへのOSイメージファイルの書き込みはLinux上で行う。

xz -cd ./debian-wheezy-7.0.0-armhf-3.8.13-bone20.img.xz > /dev/sdb

私の環境ではmicroSDは/dev/sdbとして認識
dmesgなどで確認した上で書き込みましょう。

microSDをBeagleBoneBlackに挿入し、S2ボタンを押しながら電源投入
OSイメージファイルを適当な場所に転送してから

$sudo su
#xz -cd ./debian-wheezy-7.0.0-armhf-3.8.13-bone20.img.xz > /dev/mmcblk1

といった感じに本体eMMC(/dev/mmcblk1)にFlash
電源を落とし、microSDを外し、電源投入し、FlashしたOSが起動するのを確認する。


MPDのインストールはググれば沢山出てきます…
last.fmにScrobbleする為にmpdscribble入れたりジャケット表示する為にapache入れたりお好みで。
Linuxなので好き放題出来ます、BeagleBoneBlackそこそこパワフルなのであれこれ入れてもなんとかなっちゃう感じですね…



2013年10月13日日曜日

さくらのVPSにSubsonic(Madsonic)とownCloudを入れてGoogleMusicっぽく使う



さくらのVPS 2Gプランを契約しているのだがTwiProwl、IMAProwlとTwitter IRC Gateway、tiarra、tiarraMetroくらいにしか使ってなくて「ストレージ容量200GBもつかわねーよwwww」な状況だったのでSubsonicを導入し、メディアストリーミングサーバーに仕立てた。

Subsonic >> Free Music Streamer

MadsonicはSubsonicフォークであれこれ機能が追加されてたりする。
好きな方使えばいーんじゃないっすかね…

Madsonic


とりあえずSubsonicを入れましょう。
サーバーとしての基本設定済んでるの前提で書きます、ざっくり。
あーうちのさくらVPSはDebian wheezyです。

Java必要なので入れる。
apt-get install openjdk-6-jre

Subsonicインストール
wget http://downloads.sourceforge.net/project/subsonic/subsonic/4.8/subsonic-4.8.deb
dpkg -i subsonic-4.8.deb

トランスコードするのに必要なライブラリを入れる。
apt-get install lame flac faad vorbis-tools ffmpeg

Subsonicの設定をちょっと変更
UTF-8対応
vi /etc/default/subsonic

以下の1行追加
export LANG="ja_JP.UTF-8"

再起動
service subsonic restart


ブラウザから「http://hostname:4040」でアクセスし、あとは説明に従って進めていく。


VPSへのSubsonic導入はこれだけ、簡単
当たり前だけどVPSに音楽ファイル転送しなきゃいけないので転送する。

sftpなどでアップロードしても良いんだけど今回はownCloudを使う事にした。

ownCloudはVPSとか自宅鯖とかに導入し、Dropbox的なサーヴィスを提供するもの

ownCloud

apach、php、mysqlが必要になるので入れておく。ownCloud用のDB作っておく。

導入はこの手順に従えばOK

echo 'deb http://download.opensuse.org/repositories/isv:ownCloud:community/Debian_7.0/ /' >> /etc/apt/sources.list.d/owncloud.list 
apt-get update
apt-get install owncloud

ブラウザから「http://hostname/ouncloud」にアクセスし、ユーザー登録をする。
その際、予め作成しておいたDB情報必要になるので入力する。

あとはクライアントアプリをPCにインストールし、同期フォルダに音楽保存してあるフォルダを指定するなりownCloud用フォルダ作って指定し、そこに音楽フォルダのシンボリックリンク張るなりすればおk

デフォルトのアップロード先は
/var/www/owncloud/data/username/files/

このパスを先に導入したSubsonicのライブラリディレクトリとして登録してやればローカルの音楽フォルダを勝手にVPSにアップロードし、Subsonicのライブラリに勝手に登録される環境の出来上がり。
あーSSLで接続出来るようにしておいた方が良いですよ。

AndroiderはふつーにGoogleMusic使えばいーんじゃね??


2013年10月7日月曜日

HW-01E rooted


大人は質問に答えたりしない。


git clone https://github.com/hiikezoe/break_setresuid
git clone https://github.com/fi01/unlock_security_module

vi device_database.c

device_database.c 
 {
    .device_id = DEVICE_HW01E_401210111,
    .device = "HW-01E",
    .build_id = "4.0..1210111",
    .check_property_name = "ro.build.id",
    .check_property_value = "4.0..1210111",

  },

vi device_database.h

DEVICE_HW01E_401210111,

ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=./Android.mk

adb push break_setresuid /data/local/tmp/break_setresuid
adb push unlock_security_module /data/local/tmp/unlock_security_module
adb push su /data/local/tmp/su

adb shell
$chmod 755 /data/local/tmp/break_setresuid
$chmod 755 /data/local/tmp/unlock_security_module
$cd /data/local/tmp/
$./break_setresuid
#./unlock_security_module
#mount -o rw,remount /system /system
#dd if=/data/local/tmp/su of=/system/bin/su
#chown root.root /system/bin/su
#chmod 6755 /system/bin/su

めんどうくせぇ