スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

リアルタイムカーネルのビルド 

最近Linuxのカーネルを自分でビルドすることができるようになったので,先日リアルタイムカーネル(RT-Kernel)のビルドに挑戦してみました.なお環境は,UbuntuStudio 14.04.3 LTS,カーネルは自家製のVer.4.1.15-lowlatency_amd64です.

1)まずはカーネル構築に必要なパッケージをインストールします.
 $ sudo apt-get install build-essential
 $ sudo apt-get install kernel-package libncurses5-dev
 $ sudo apt-get install libqt4-dev pkg-config
 $ sudo apt-get install qt3-dev-tools libqt3-mt-dev

2)RT WikiのサイトでPREEMPT_RTカーネルパッチのあるヴァージョンを確認します.

3)The Linux Kernel Archivesから作りたいカーネルのソースコードのアーカイブ(tar.xzファイル)をダウンロードして,適切な場所に解凍します.

4)Kernel PPAから作りたいカーネルのパッチファイル(*.patchファイル)を全てダウンロードして,先程解凍したソースコードのフォルダに置きます.

5)RT Wikiから作りたいカーネルのPREEMPT_RTパッチ(*.patch.gzファイル)をダウンロードして解凍し,先程解凍したソースコードのフォルダに置きます.

6)ソースコードのフォルダに移動して全てのパッチを当てます.コマンドは以下の通りです.
 $ patch -p1 < *.patch

7)現環境のカーネルの設定を流用してconfigファイルを作成します.コマンドは以下の通りです.
 $ make localmodconfig
 $ make oldconfig

8)7)の時,オプションを選択しなければならない場合がありますが,基本的にはデフォルトを選びます(リターン入力でOK).またこの時,Preemption Modelを聞かれますが,その場合は「Fully Preemptible Kernel (RT)」を選びます.

9)以下のコマンドでconfigファイルを開きます.
 $ make xconfig

10)9)の画面で以下の設定を確認します.
・amd64互換CPUを使用の場合は64bit kernelにチェックを入れる
・Enable the Block LayerのI/O schedulerを[deadline]にする
・Processor type and featuresのPreemption Modelを[Fully Preemptible Kernel (RT)]にする
・Processor type and featuresのTimer frequencyを[1000HZ]にする

11)わかりやすいようにリリース名を設定する.Makefileファイルを開いて先頭部で
 EXTRAVERSION = -20160103
などと記述しておく.

12)カーネルをビルドする.うちのPC(AMD FX-8150 8コア)では5〜10分程度かかる.
 $ make-kpkg clean
 $ sudo make-kpkg -j9 --initrd kernel_image kernel_headers
(-jの後の数字はCPUのコア数+1くらいにしておく)
(本来ならば--append_to_version=-rtなどのカーネルの名称オプションも付けるべきだがこのパッチでは自動的に名称に-rtが付いてしまうので省略した)

13)作業フォルダの上に.debファイルができるので,dpkgコマンドでインストールする
 $ sudo dpkg -i *.deb

14)再起動し,Grubメニューで今回できたカーネルを選択し起動する.
 $ uname -a
で起動したカーネルの種類が確認できる.


んで,リアルタイムカーネル(私が今回作成したのは”4.1.15-20160114-rt17”)の音質ですが,ヘッドホンでよく聴くとローレイテンシーカーネルより音のアタック感が増し,高音域の伸びがキレイになり,演奏の空気感みたいなものが増したような気がします.まあプラセボかとは思いますが,リアルタイムカーネルでも他のソフトで特に不具合は出ていないみたいですし,しばらくこれを使ってみたいと思います.


続きを読む

Polipoの導入 

Linux(UbuntuStudio)-PCのメモリは8GBしか積んでいませんが,それでも普段の使用時でも半分くらいは未使用のままなので,使っていないメモリの有効活用のためにPolipoを導入してみました.

1)Polipoの公式ページからソースコードをダウンロード.
2)ダウンロードしたアーカイブを解凍し,INSTALLファイルに書かれた手順で実行ファイルをビルド&インストール
3)設定ファイル/etc/polipo/configは以下のようにしました.
 logSyslog = false    #ログは残さない
 logFile = /var/log/polipo/polipo.log  #これを書かないとエラーになる?
 allowedClients = 127.0.0.1,192.168.1.0/24 #自分自身と宅内PCを承認
 allowedPorts = 1-65535    #全ポートを開放
 dontCacheRedirects = true   #リダイレクトのキャッシュ禁止
 dontCacheCookies = true    #クッキーのキャッシュ禁止
 chunkHighMark = 268435456  #キャシュサイズ上限を256MBに設定
 forbiddenFile = "/home/username/.polipo/forbidden"
   #アクセス禁止設定ファイルの指定
 uncachableFile = "/home/username/.polipo/uncachable"
   #キャッシュ使用禁止ファイルの指定
4)Polipoを再スタート
 $ service polipo restart
5)ブラウザのプロキシを以下のように設定
 HTTPプロキシ:localhost,ポート:8123
 プロキシ無しで接続:localhost, 192.168.1.0/24

こうすることによって,メモリ上に展開された256MBのキャッシュを持つプロキシサーバができ,ブラウザの再読み込みを高速にすることができます.またこの機能は宅内のローカルLAN内の別のPCからも利用することができます.

digital千里眼@abp_jpさんのサイトも参考になります.

追記(2016/01/19):
UbuntuStudio14.04の公式リポジトリからは,Ver.1.0.4しかインストールできないのですが,どうやらこのヴァージョンにはバグがあるようです.なのでPolipoの公式サイトから最新ヴァージョンのソースコード(2016/01/19時点ではVer.1.1.1)をダウンロードしてきて,自家製ビルドしたほうが良いでしょう.あとはログイン時に自動でpolipoが立ち上がるように設定するだけです.


グラフィックドライバ更新で大慌て 

Ubunt Studioのグラフィックドライバには,デフォルトのメインメニューの「追加のドライバー」から簡単にインストールできるプロプライエタリのAMD Catalyst Control Centerを使用していたわけですが,最近最新版(Rev.15.9/Ver.15.201)が出たということで,更新してみることにしました.

まずはAMDのサイトに行って,インストーラーをダウンロードします.ところがサイトに行ってみると,Catalyst単独のインストーラーといくつかのソフトに分かれているインストーラーが存在しています.どっちを使ったらよいかわかりません.まあ簡単そうだということで,単独のインストーラーをダウンロードして同時に入手したインストールマニュアルの手順に従い実行してみました.

マニュアルを読むと始めに古いドライバをアンインストールせよと書いてあったのでアンインストールしました.そしたら,640x480の狭い画面になってしまいました.まあでもその画面でも作業はできますので,インストール作業を進めました.

しかし,途中でエラーが出てインストールできません.ログを読んでみるとカーネルモジュールのヘッダファイルフォルダの中にversion.hとか言うファイルが見つからないと書いてあります.lsコマンドで確認しても確かにありません.

ということで,単独インストーラーの使用を諦めて個別インストーラーでのインストールを試みることにしました.まずはサイトからダウンロードです.Ubuntu14.04対応のそれらしきファイルをダウンロードしてみると,単独インストーラーと違いdeb形式ファイルでした.これならインストールは簡単です.

ダウンロード後,GDebiを使ってインストールして再起動しました.そしたら何とX-Windowが起動しません.画面はCUIのままで,startxコマンドを発行してもエラーを吐き起動しません.エラーログをチェックしてみましたが,私のスキルでは内容が理解できませんでした.

そこでとりあえず汎用ドライバでX-Windowを立ち上げる方法をサブPCで調べたところ,以下のコマンドで汎用ドライバが入るようです.

 sudo apt-get install xserver-xorg

そこでコマンドを実行して再起動したところ,一応640x480のGUI画面は復活しました.ここから「追加のドライバ」からプロプライエタリドライバをインストールできれば簡単なのですが,どうしたわけかプロプライエタリドライバを選択できません.

うーん,困ったということでもう一度インストールマニュアルを読み返したところ,どうもAMDのドライバで入れ忘れたものがあったようです.これでX-Windowが起動しなかったみたいです.

という訳で気を取り直して取り忘れていたインストーラーをダウンロードして,以下のコマンドで再度インストールしてみました.

 sudo dpkg -i fglrx*.deb

そうしたところ,無事インストールが完了し,再起動後,X-Windowも1920x1200にて無事立ち上がりました.

しかし,Catalystを開いてインフォメーション画面を確認したところ,どうもOpenGLが動いていないようです.ググっても解決法らしきものは見つかりません.ただ「追加のドライバ」からプロプライエタリドライバをインストールした時はドライバは認識していたので,ダメ元で「追加のドライバ」を開いてみました.

開いてみると,fglrxの項目はすでに選択済になっており,選べるのはfglrx-updateの項目だけでした.しようがないのでその項目を選択し適用してインストール完了後再起動してみました.

再起動後Catalystで確認したところ,不思議なことにドライバのヴァージョンとかは変わらずに今度はOpenGLが認識されていました.

まあミスで色々苦労しましたが勉強にもなったということで結果オーライで.でもOpenGLの件は謎です(笑)


rsync不具合解消 

自分用メモ.

データフォルダのバックアップ,というかミラーリングにrsyncを使用して,ついでにlogも取っているが,いつの頃からか「IO error encountered -- skipping file deletion」というメッセージが出てミラーリングが出来ていない状態になっていた(ミラーリング元のファイルを削除してもそれがミラーリング先に反映されない状態.必然的にゴミファイルが溜まってくる).

ググッてみたところこちらのサイトに解決法が載っていた.「--ignore-errors」というオプションを付けるとエラーを無視してくれるらしい.根本的解決にはなっていないかも知れないが取り敢えず使用中.

以下の構文を.shファイルに記述.

rsync -auv --modify-window=2 --exclude="*Temp/" --exclude="*cache/" --exclude="*Cache/" --exclude="*.tmp" --exclude="*.thumbnails/*" --delete --ignore-errors "/home" "/media/back/Backup/UbuntuStudio/" >> ~/log/rsync0.log
date >> ~/log/rsync0.log



QjackCtl最新設定 

自己メモ用.2014/04/18現在,この設定で安定.Sample Rateは96kHzで充分.

Jack001.jpeg


/homeフォルダの別ドライブ化 

掲題の件,データファイルの安全性を向上させるためにやってみました.
詳細は水より柔弱さんのこちらのページに詳しく記載されています.

要は,/home以下のフォルダを別のHDDのルートに移動させて,/etc/fstabでそのHDDを/homeにマウントするわけです.勝手にできちゃうシステムドライブの/homeフォルダはリネームして無効化しておきましょう.

テキストエディタを使って,fstabに私はこんな行を書き加えました.2行目はバックアップ用ドライブの追加です.

UUID=687fabfc-3ab5-4ef5-8222-ac68af99e925 /home ext4 defaults 0 2
UUID=f2cce503-2de7-4cf5-b1ef-660b4b5dd259 /media/back ext4 defaults 0 2

これで見かけ上はシステムのドライブに/homeフォルダが現れました.でも実際は別ドライブにデータがあるので,システムクラッシュ時の再インストールなんかが安心して行えます.



ALSA Driver 1.0.25導入 

さて,今回購入したマザーボードを選んだ理由ですが,それはオンボードサウンドに光出力デジタルS/PDIF端子が付いていたからです.本来であればPCI接続のサウンドカードを購入してそこからデジタル出力する方が良いのでしょうが,デジタル出力であればオンボードのものでも,理論的には信号の劣化はないし,そこそこの音質は確保できるのではないかと判断して,本製品を選んだ訳です(アナログ出力を利用するのであれば,オンボードは絶対使いません)

このマザーで使用しているオーディオチップは,Realtek RTL892です.一応事前にこのチップはLinuxのALSAドライバで動作することを確認してあります(@ALSA Project).Ubuntu Studio 12.04上でもこのチップを認識できるはずです.

という訳で,本マザーボードを購入,組み立てて,Ubuntu Studioを起動してみました.ちなみにUbuntu Studioは前のマシンでインストールしたHDDをそのまま取り付けて使用しました.

初回の起動.おっ,ちゃんとオーディオチップを認識しています.音も再生してみましたが,S/PDIF出力からちゃんと音が出ています.おー,良かったと安心しました.そこでいろいろ作業して,再起動をかけました.そしたら今度はオーディオチップを認識しません.あれ,おかしいなあということでまた再起動.今度は認識します.一応確認ということでまた再起動.今後はまた認識しません.どうもチップの認識が不安定なようです.

原因を考えてみましたが,結局「ドライバを最新版に更新してみよう」ということになりました.ALSA ProjectのWebsiteから,最新のドライバ「alsa-driver-1.0.25」のソースコードの圧縮ファイルをダウンロードしました(残念ながらバイナリファイルはありませんでした).

そこからが関門です.実は今までいくつのソフトをソースコードからコンパイルインストールしようと試したのですが,いずれのソースでも途中でエラーを出してしまい,インストールできたことがなかったからです.今回もコンパイル失敗が心配されましたが,まあやってみなければ分からないということでチャレンジしてみました.

まずはダウンロードした圧縮ファイルを解凍して,解凍されたソースコードのディレクトリに移動しコマンド「./configure」を打ってみます.おっ,エラー出力されることなく最後まで作業が完了しました.次はコマンド「make」です.こちらもエラー出力されることなく作業完了です.そして最後のコマンド「sudo make install」を打ってみます.これもエラー出力はありませんでした.無事インストールが完了したようです.

そして,OSを再起動してみます.見事オーディオチップを認識しました.念の為,もう一度再起動をしてみます.今度もオーディオチップを認識しました.どうやら最新版のドライバでは安定してオーディオチップを認識するようになったようです.本ドライバを導入後,数日Ubuntu Studioを使用しておりますが,チップの認識に失敗したことは一回もありません.

ということで,やっぱりデバイスドライバは重要なんだなあと再認識した次第であります.それにしてもソースコードからのコンパイルインストールが初めて成功して嬉しい気分であります.


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。