Linuxで組もう!DIY PC Audio 詳細解説 Vol.6

(4) リアルタイムカーネルの実装と設定


さて、前回でSSHも繋がったので、ちゃんと机に座って、離れた場所から作業できますね!


今までDebianマシンに繋げていたキーボードやマウスなどは、全て外して押し入れに片付け、Debianマシンは、オーディオラックの最適な位置に美しく設置してください。

ただし、ここまでの設定に据え置きのTV画面を使用されていた方は、緊急時に直接入力で再設定を行うことを念頭に、HDMIケーブルは繋げたままの方がいいかと思います。


いよいよReal Time Kernelのインストールです。


:~$ sudo apt update

:~$ sudo apt install linux-image-rt-amd64


これだけです。拍子抜けする感じですよね。

本当に実装されているのか、確かめてみましょう。


:~$ sudo uname -a

Linux debianmusic 4.19.0-9-rt-amd64 #1 SMP PREEMPT RT Debian 4.19.118-2 (2020-04-29) x86_64 GNU/Linux


unameは、カーネルの名前やバージョン、ハードウェア名など、システム情報を確認するコマンドです。-aは、全ての情報の表示、というサブコマンド。

カーネル名(= Linux)、ホスト名(= debianmusic)、カーネルリリース番号(= 4.19.0-9-rt-amd64)、カーネルバージョン(= #1 SMP PREEMPT RT Debian 4.19.118-2 (2020-04-29))、ハードウェア名(= x86_64)、CPU(不明な場合は省略 - ここでは不明のため表示されていません)、ハードウェアプラットフォーム(同様に不明のため表示されていません)、OSの名前(GNU/Linux)をこの順番で表示しています。


この、カーネルリリース番号(= 4.19.0-9-rt-amd64)に「rt-amd64」が、そしてカーネルバージョン(= #1 SMP PREEMPT RT Debian 4.19.118-2 (2020-04-29))に「PREEMPT RT」記述のある事が、ちゃんとReal Time Kernelが実装されている証拠です。


無論、ただReal Time Kernelを入れただけでは、何の効果もありません。

オーディオ 再生のための最適値の設定のため、後に指定するaudioグループに対して、/etc/security/limits.confに追加の記述を行いましょう。


:~$ sudo nano /etc/security/limits.conf

# /etc/security/limits.conf

#

#Each line describes a limit for a user in the form:

#

#<domain>        <type>  <item>  <value>

#

#Where:

#<domain> can be:

#        - a user name

#        - a group name, with @group syntax

#        - the wildcard *, for default entry

#        - the wildcard %, can be also used with %group syntax,

#                 for maxlogin limit

#        - NOTE: group and wildcard limits are not applied to root.

#          To apply a limit to the root user, <domain> must be

#          the literal username root.

#

#<type> can have the two values:

#        - "soft" for enforcing the soft limits

#        - "hard" for enforcing hard limits

#

#<item> can be one of the following:

#        - core - limits the core file size (KB)

#        - data - max data size (KB)

#        - fsize - maximum filesize (KB)

#        - memlock - max locked-in-memory address space (KB)

#        - nofile - max number of open file descriptors

#        - rss - max resident set size (KB)

#        - stack - max stack size (KB)

#        - cpu - max CPU time (MIN)

#        - nproc - max number of processes

#        - as - address space limit (KB)

#        - maxlogins - max number of logins for this user

#        - maxsyslogins - max number of logins on the system

#        - priority - the priority to run user process with

#        - locks - max number of file locks the user can hold

#        - sigpending - max number of pending signals

#        - msgqueue - max memory used by POSIX message queues (bytes)

#        - nice - max nice priority allowed to raise to values: [-20, 19]

#        - rtprio - max realtime priority

#        - chroot - change root to directory (Debian-specific)

#

#<domain>      <type>  <item> <value>

#


#*               soft   core 0

#root            hard    core  100000

#*               hard    rss           10000

#@student       hard    nproc  20

#@faculty        soft    nproc   20

#@faculty        hard    nproc  50

#ftp             hard    nproc      0

#ftp             -       chroot  /ftp

#@student      -       maxlogins       4


@audio           -       rtprio          99

@audio           -       memlock         unlimited

@audio           -       nice            -10


# End of file


それぞれ何をやっているのでしょう?

設定ファイル内のコメントアウトされた行に解説が書いてありますね。

詳細に見ていきましょう。


@audio           -       rtprio          99

#        - rtprio - max realtime priority

real time priority、すなわち、リアルタイム処理の優先度設定です。値が大きいほど、優先度は上がります。99が最高値です。


@audio           -       memlock         unlimited

#        - memlock - max locked-in-memory address space (KB)

ジョブの処理を行うメモリのロック範囲です。プロセスごとに利用可能なメモリの大きさを設定します。我々のシステムはMPD専用ですから、太っ腹に「無制限」でいきましょう。


@audio           -       nice            -10

#        - nice - max nice priority allowed to raise to values: [-20, 19]

niceは、ジョブに対する優先度を設定するコマンドですね。ここにあるように-20から19の間で設定可能で、低いほど優先度は上がります。ただ、あまり低すぎても良くないようで、ここは-10で設定しましょう。


Linuxで組もう!DIY PC Audio  目次

全過程  Vol.1: Debian buster インストール準備編

全過程  Vol.2: Debian buster インストール

全過程  Vol.3: Debian設定 全コマンドライン

全過程  Vol.4: MPDクライアント設定


詳細解説 Vol.1: PCオーディオのススメ

詳細解説 Vol.2: Linux / MPD / Real Time Kernelについて

詳細解説 Vol.3: コマンドライン(1) Linux テキストエディタのインストール

詳細解説 Vol.4: コマンドライン(2) 固定IPアドレス設定

詳細解説 Vol.5: コマンドライン(3) リモート作業環境の確立

詳細解説 Vol.6: コマンドライン(4) リアルタイムカーネルの実装と設定

詳細解説 Vol.7: コマンドライン(5) MPD / mpc / ALSA / Avahi Daemon + Safety Shutdown設定

詳細解説 Vol.8: コマンドライン(6) ジャケ写表示設定

詳細解説 Vol.9: コマンドライン(7) MPD詳細設定

詳細解説 Vol.10: コマンドライン(8) NAS上の楽曲データのマウント

詳細解説 Vol.11: コマンドライン(9) おまけ - WoL設定


(21/08/29更新)Debian bullseye & MPD 0.22.6 アップグレード!+ DSD再生情報

コメント

このブログの人気の投稿

Linuxで組もう!DIY PC Audio 全過程 Vol.1

Linuxで組もう!DIY PC Audio / INDEX

Linuxで組もう!DIY PC Audio 全過程 Vol.3