Linux カーネル自炊

git clone git://github.com/RobertCNelson/linux-dev.git; cd linux-dev
./build_kernel.sh
vi system.sh # MMC=/dev/sdd ←microSDのブロックデバイス。環境によって適宜かえる
dd if=/dev/sdd of=bkup bs=1M # 一応バックアップ
./tools/install_kernel.sh

あっさり

BeagleBone Blackで遊ぶ

FPGAミキサーのコンパネをどうしようか悩んだ末、このボードを見つけたので試してみることに。またLinuxかよと思ったけど、起動10秒らしいので耐えられるかなっていうのと、おそらく以前書いたソフトウェアのGUI部分がそのまま流用できるんじゃないかなというもくろみ。Raspberry Piを使おうと思ったのだけど、映像出力がコンポーネントかHDMIなので、LCDつなげようとすると変換ボードが必要になってしまうので断念。BeagleBone Blackでは、ピンヘッダ経由でLCDコントローラの信号が出力されているので、これをそのまま使う予定。

入手

Digikeyにて\4653 + 送料。
http://www.digikey.jp/product-detail/ja/BB-BBLK-000/BB-BBLK-000-ND/3884456

Debian インストーラの準備

Angstromよくわからんので、適当なmicroSD (空き容量4GB以上必要らしい)にDebianをインストールしてそれをつかうことにする。RobertCNelson氏のイメージ作成ツールを使用。

以下を適当なLinux PC上で実行。

git clone https://github.com/RobertCNelson/netinstall.git; cd netinstall
sudo apt-get install wget dosfstools parted u-boot-tools
sudo ./mk_mmc.sh --mmc /dev/sdd --dtb am335x-boneblack --distro wheezy-armhf --serial-mode linux-firmware

シリアルコンソールの準備

秋月USBシリアルスタンプを使って適当に配線する。J1を3.3Vに忘れずにあわせること。

写真↓

debian netinstall

先ほど作ったmicroSDをBBBに装着し、5V ACアダプタをつなぐ。

オンボードNIC eth0が動かないので適当なUSB-NICをつかってインストール。ブートローダインストールできない警告がでるが無視。意外と時間がかかる。2時間強みた方が良い。

èµ·å‹•

いつの間にか再起動してる。普通にlinux boxとして使える。オンボードeth0も使えるようになってる。

しかしログインコンソールでるまでに30秒弱かかってるんですけど...!これではatomマシンと全くかわらないのでは...

デジタルミキサーをFPGAでつくる試み

http://github.com/nyaxt/dmix

昔つくったデジタルミキサーPCを未だにつかってるのだけど、いろいろと不便なので、FPGAベースで代わりになるものを作る。

共通:

  • どーせソースはPCかゲーム機なので、フルデジタル処理をする
    • DAC->ADC->ミックス->DACというのはあほらしい

変更:

  • 入力はUDP経由だったが、今回は光同軸をつかってみる
    • イーサネット経由で音声入力を受け取れる現行のものも便利なんだけど、変な独自プロトコルを使ってしまったので仮想ループバックオーディオドライバをいれたりいろいろめんどかった。
    • 光同軸なら手持ちのデバイスにだいたいついてるし楽なはず
    • Airplay/PulseAudio対応はそのうちしたいけど、コンバータ経由でやろう
  • FPGAで信号処理をする
    • 起動時間/消費電力削減
      • 前のはAtomマザボをケースに押し込んでた
      • そもそも起動時間1分の時点で頭おかしかった
    • レイテンシは20ms以下にはなるんでは
    • 制御用コントローラはBeagleBoard Blackにするか?FPGAにするか?
      • 起動時間が心配だなー
      • BeagleBoard Blackだと今の画面とか流用できそう

入力:

  • S/PDIFå…‰ 192kHz 24bit 2ch x 3
  • RCA x1
  • もっと入力数増やしたいが、多分手持ちのSpartan3Eのリソース的に乗らない
  • なんか排他にする?

出力:

  • LINE出力: RCA/ステレオミニ
    • まともなアンプは外付けの方針

しかしなんでSPDIF入力のミキサーって売ってないんですかね。

cf. http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1219403807

portaudioをMountain Lionでビルドする

pa_stable_v19_20111121.tgz を使用。

$ sed -ie 's/-Werror//g' configure.in
$ autoconf
$ ./configure --enable-mac-universal=no
$ make && make install

あとはここら辺参考: http://portaudio.com/docs/v19-doxydocs/compile_mac_coreaudio.html

なんかテストプログラムのコンパイルコケるけど、.dylibはできてるっぽい。

Trying to complete prepared statement support in mysql2 gem

There is currently no prepared statement support in mysql2 gem. However, there is a discontinued work on it in a incomplete branch by Aaron Patterson. I am trying to take over the left over tasks.

TODO list:

  • statement.c function names inconsistent w/ other .c files (e.g. result.c)
    • rename to rb_mysql_stmt_***
  • lack of test w/ bind params
  • no encoding support
  • Statement#each should be consistent w/ Client#each
    • support Hash result w/ symbolizeKeys
    • support asArray
    • support !cast / castBool
    • support streaming

環境構築

jdkを入れる

sunjdkをいれること。archならaurにある。

sbtをいれる

homebrewとかaurから

IntelliJ Ideaをいれる

プラグイン:

css/jsをリソースとしてjarに埋め込めるように:
Settings->Compiler->Resource Patterns: ?*.js;?*.css

sbt-ideaの設定

ç•¥

sbt gen-idea

projectの設定

gen-ideaで.idea*を生成し、プロジェクトを読み込む

project jdkを設定

  • > Projectタブのルート右クリック->Module Settings
  • > JDKとProject FSCを設定

Make Project
Run

  • > 一回目はなぜか押せないので、Mainが入ったクラスを右クリックして実行