[ubuntu-jp:6433] Re: ardour のセッションを開始することができない

Takashi Sakamoto o-takashi @ sakamocchi.jp
2021年 6月 20日 (日) 12:06:01 UTC


On Sun, Jun 20, 2021 at 02:29:26PM +0900, Arthr5592 wrote:
> 上田と申します。
> 
> Ubuntu 20.04 の ardour を、以下の手順で開始しようとすると、
> 「オーディオデバイスを開くのに失敗しました」となり失敗します。
> 
> (1) ターミナルから ardour5 を実行
> (2) セッション設定のウィンドウで、「新規セッション」
> (3) セッション設定ウィンドウで、適当なセッション名を入力し「開く」
> (4) オーディオ/MIDI セットアップウィンドウで、「スタート」
> (5) 「オーディオデバイスを開くのに失敗しました」のメッセージウィンドウが表示され、「OK」
> (6) オーディオ/MIDI セットアップウィンドウに戻り、ウィンドウを閉じる
> (7) 読み込みエラーのウィンドウが表示され、
>     「セッションを作成できません:オーディオ/MIDI エンジンに接続できません」となる
> (8) (7) と同時にターミナルには、下記のエラーが表示される
> 
>     Errors/Messages:
>     WARNING: ardour-request-device binary was not found..'
>     ERROR: AlsaAudioBackend: failed to allocate parameters.
>     INFO: /usr/share/ardour5/patchfiles から 88 MIDI パッチを読み込み中
>     
>     ---------
>     
> ハードウェアの情報は、以下のとおりです。
> 
> Computer      FUJITSU LIFEBOOK WU-X/E3
> Processor     11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz
> Memory	      8GB
> Audio Adapter sof-hda-dsp
> 
> 同様な事象をご存知な方、いらっしゃいますか?

たぶん、ALSAPCMデバイスにhw_paramsを設定するプロセスでエラーを起こして
いるんじゃないかと思います。が、sof-hda-dspなデバイスを所有していないので、
正直よくはわかりません。慣れている方であれば、strace(1)使って
ioctl(SNDRV_PCM_IOCTL_HW_PARAMS)呼び出しの戻り値をトレースすると、より
見当をつけることができそうです。ardourのAlsaAudioBackendが、ちゃんとした
デバッグメッセージング機構を持っていないのが残念です・・・。


思いつく心当たりは以下でしょうか。

alsa_snd_pcm_hw_params() on Ubuntu 20.04 started returning an unexpected
-ENOMEM · Issue #125 · alsa-project/alsa-lib
https://github.com/alsa-project/alsa-lib/issues/125 

Ubuntuカーネル設定(CONFIG_SND_HDA_PREALLOC_SIZE=0)とALSAのHDAバスドライバの
バグの合わせ技で、長大なメモリーをDMA転送用に予約しようとしちゃってエラーに
なるというものです。

いちおう、ワークアラウンドは見つけてありまして、procfsのノード経由で
CONFIG_SND_HDA_PREALLOC_SIZE相当の設定値を与えてやる、というものです。
使おうとしているサウンドカードIDとALSA PCMデバイスIDがわかっている必要が
ありますが、こんな感じです。

$ sudo -i
# echo 64 > /proc/asound/card0/pcm3p/sub0/prealloc
# exit

よくわからない場合は、以下のノードの出力と、どのPCMデバイスを使おうとして
いるのか教えていただければ、コマンドライン例をお教えします。

$ cat /proc/asound/pcm


さかもと



ubuntu-jp メーリングリストの案内