2012年3月20日火曜日

【Linux】今更感漂うUbuntu11.10高音質化計画


まず先に断っておきますが、これをやったからと言ってものすごく高音質なLinuxPCが出来上がるわけじゃありません。わざわざWinPCを潰してまでやる必要もありませんし、効果がなかったとしても自己責任でお願いします。
あと、カーネルを書き換えたりMBRをいじったりしてます。変なことをしたり手順を間違えると起動しなくなる可能性もあります。特にサポートはしませんのでこれも自己責任でお願いします。

今回やろうとしていることは、

  • Jack Sound Serverの導入
  • HPET高精度タイマーを使用する設定でカーネルを起動する
  • 低レテンシカーネルの導入

です。
導入対象はAspireOne 250。2世代くらい前のネットブックです。
これくらいのパソコンがいい音だして音楽が聴けるならホームオーディオとして取り回しがいいんじゃなかろうか?と。寝室にも持っていける、リビングでも邪魔にならない、そんなネットブックの取り回しの良さを活かせられればと考えています。

さて、導入としてはこんなことをしました。
先ずJack Sound Serverを導入します。
特に大層なことはしません。
$ sudo apt-get install jackd qjackctl
で2つのソフトをインストールします。
jackdはJack Sound Server本体です。
qjackctlはJackをコントロールするUIです。
qjackctlを開いた画面
jackdを起動するにはここでStartを押して起動します。
画面のように■StopとなっていればJackが起動している状態です。

設定画面ではJackが使うハードウェアやメモリの状態、チャンネル、レテンシ、サンプリングレート、バッファ等事細かに設定ができます。
DriverやInterfaceの項目がきちんと設定されていれば、概ね音は鳴るはずです。

Driverにalsa、Interfaceに/dev/audioを設定して、隣にある>を押してAudioとして認識されているハードウェアを選びます。大体の場合hw:0を選べば内蔵されているサウンドボードから音がなると思います。
USBでDACを接続している人はここでUSB DAC AUDIOのように表示されているものを選ぶとそのハードウェアにデータが送られるようになります。

このJack、UbuntuStudioなどリアルタイムカーネルや低レテンシカーネルが導入されているオーディオ専用デストリビューションで使われているモノで、じゃぁ、環境諸々もそれに合わせてみようかな?と言うことで、高精度タイマーと低レテンシカーネルを導入してみます。
が、PC本体がそれに対応している必要があるため、確認から入ります。

$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
この時に、
hpet acpi_pm
という感じで表示されると思います。ここでhpetが表示されていればこのClockSourceは使えるよー、ということです。

ではいよいよHPET高精度タイマーを設定しましょう。
ここではgrubをいじります。
変なことをしたり編集にミスったりするとOSが起動しなくなるので注意してください。

先ずgrubを設定します。
$ sudo vi /etc/default/grub 
で設定を開いて、
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
の行を探して
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash clocksource=hpet"
を追加します。
Terminalに戻って、
$ sudo update-grub2 
でgrubを再構築して完了です。
PCを再起動して、
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
hpet<<これが今使われているclocksource
と表示されれば成功です。

最後に低レテンシカーネルを導入します。
手順は公式に書かれている通りの順に実行します。
$ sudo add-apt-repository ppa:abogani/ppa
$ sudo apt-get update
$ sudo apt-key adv --recv-key --keyserver keyserver.ubuntu.com F141B61E
$ sudo apt-get install linux-lowlatency
でインストールが始まります。
インストールが終わったあとはgrubを再構築してカーネルを実行出来るようにします。
$ sudo update-grub2 
再起動してもgrubのメニューが出てきて起動しない場合は、

#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
のように/etc/default/grubを修正してみてください。
終わったら忘れずupdate-grub2を実行しましょう。


あとは再起動して音が鳴るかどうか確認してみましょう。
動作を確認するプレイヤーは見た目が単純なのと高機能さからAqualungというプレイヤーを使っています。



0 件のコメント :

コメントを投稿