トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

Audio/NETJUKE活用法

Audio/NETJUKE活用法

NETJUKEをてにいれた!

今回は、スマートフォンの普及に押し出されるようにして家電の地位を追放されつつある、とあるオーディオ機器のお話。
リサイクルショップでよく見かけるようになった、カラー液晶のついたコンポ。
その中でも特に横置きの独特な形状のNETJUKEは目を引くものがあります。
真ん中にCDドライブがついていて…ただのHDDコンポだろうと、その時が来るまではそう思っていたんですよ。
ある日、MDのついたNAS-M70HDと目が合ってしまったのです。
よく見かける平べったい筐体ではなくて、いにしえのミニコンポの佇まい。もしやMDを…HDDにコピーできるのか?
まさか…まさかコンポにLinuxが載ってるわけないと思うじゃないですか、普通なら。
ポケットからXperiaを取り出し調査開始。中身はLinuxだ!!買った!!!
(※SONY信者のふりをしながらお届けいたします。)

そのままでできること NAS-M70HDの場合

バックアップ機能は本体には復元できませんが、MDなどから吸い出したデータをゲロらせることができるので非常に有用です。
参考:ソニー、“ネットジューク”での音楽データバックアップ/復元機能の提供終了

ハックします。

ハックには複製したHDDを使い、オリジナルのHDDは温存しましょう。手順は下記を参考にしてください。パーティション7及び8をデータ領域として扱います。
参考:Developers.IO Raspberry Piを極限まで無駄なくバックアップする

SSHで入れるようにする

パスワード認証は弾かれるので、あらかじめ公開鍵認証用の鍵を作っておきます。HDDを取り外し、作業用マシンに接続します。

mkdir mount
mount /dev/sde5 mount
cd mount
ln -s ../../../usr/local/bin/hacker etc/rc.d/rc3.d/S97hacker
mkdir root/.ssh/
cp 公開鍵.pub root/.ssh/authorized_keys
cd ..
umount mount

あとは組み立ててネットワーク設定からIPアドレスを確認してrootでログインするだけ。

ssh -i 秘密鍵 root@192.168.x.x
-bash-3.00# hacker stat
You will be a hacker, maybe.
/dev/root on / type ext3 (ro)
 File Protected
-bash-3.00#

こういうユーザーがいることも想定しているなんて粋ですね。It's a sony.

色々いじってみる

スクリーンショットを撮影する

/dev/fbはRGB565、720x480のようなので、切り出してヘッダを付けます。二回目以降は画像部分だけ更新。

#!/bin/bash
if [ ! -e /tmp/screen.bmp ]; then
  echo -en "\x42\x4D\x8A\x8C\x0A\x00\x00\x00\x00\x00\x8A\x00\x00\x00\x7C\x00\x00\x00\xD0\x02\x00\x00\x20\xFE\xFF\xFF\x01\x00\x10\x00\x03\x00\x00
\x00\x00\x8C\x0A\x00\x13\x0B\x00\x00\x13\x0B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xF8\x00\x00\xE0\x07\x00\x00\x1F\x00\x00\x00\x00\x00\x00
\x00\x42\x47\x52\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00">/tmp/screen.bmp
fi
dd if=/dev/fb of=/tmp/screen.bmp ibs=1440 count=480 obs=138 seek=1

体裁の都合で改行していますが、echo〜bmpの行は一行です。

コマンドラインから操作する

/root/rmu.sh にボタン名を与えることで操作できるようです。スタンバイ=標準に設定してPOWERを押すとネットワークが切れますのでご注意。

-bash-3.00# /root/rmu.sh -l
RM-M70HD
+-----------------------------+
| SLEEP  TIMER         POWER  |
| HDPLAY CDPLAY MDPLAY TUNER  |
| MSPLAY HDREC  HDPAUSE ANY   |
| 1      2      3      CLIP   |
| 4      5      6      PLIST  |
| 7      8      9      DELETE |
| KIGOU  0      M.BASS EQSEL  |
| CLEAR  CONV   CHAR   OMAKASE|
|                             |
| SETUP  UP     FUNC   MUTING |
| LEFT   ENTER  RIGHT         |
| RETURN DOWN   OPTION VOLnn  |
|                             |
| PREV   APREV  ANEXT   NEXT  |
|                             |
| FR        PLAY       FF     |
| CHECK     PAUSE      STOP   |
+-----------------------------+
  EJECT
[Result] 0000h

M.BASSボタンはM.BUSSと指定すると効きます。typoかな。

Web上から操作できるページを作る

ここまで出来たら、あとはホスト側からSSH経由でスクリーンショットを撮影、scpでホストにコピー、ボタン操作のコマンドが実行できればいいわけですから、簡単にできそうですね。

かんたんに作ってみました。

小ネタ

  • HDDは同機種で使いまわせる。(2台目買った事がバレた!)
    • ただし本体初期化時に本体とライブラリで何かが同期されるようで、「楽曲データが壊れています」の表示が出るため、本体初期化が必要。
    • 上記より、リムーバブルケースで複数環境を切り替えて使うことは難しいかも。
    • ほかの個体からコピーすることでシステムをバージョンアップ可能。M70HDの最新はたぶん4.02.00
  • HDDはCable selectに設定されているが、HDDがMaster、CDDがSlave(たぶん)
  • SD-IDE(FC1307A)を使ってSDカードにシステムを書き込んでみたがブートせず。CHS依存?
  • HDDのS/NやCDDのFW.VER、HDD全容量(空き容量表示のため)は初回インストール時に生成される設定ファイルに記述されていて、自分で書き換えない限りは変わらない。
  • 対応する無線LANアダプタが手元にあったので試してみたが、暗号化がWEPのみのため、実用的ではない。
  • HDDのパーティション7,8は不良セクタを避けて配置【123[56 78]】しても使える。死にかけHDDを有効活用。