VersaProの内蔵イヤホンジャックで音楽を聞く

当ブログでも何度かご紹介しているネイティブ 32bit PC VersaPro VY12M/C-3 ですが、ふとした拍子にイヤホンジャックから音楽を聴けないことに気が付きました。

目次

現象

音楽は鳴る。
しかし、本体内蔵スピーカーから出力される。

*イヤホンジャックにイヤホンを挿しても、本体内蔵スピーカーから流れる...

目標

このページで達成する目標は(イヤホンジャックにイヤホンを挿したら)イヤホンで音楽を聴きたい。

環境

ハードウェア

NEC VersaPro VY12M/C-3

OS

$ cat /etc/issue
Debian GNU/Linux 10 \n \l

$ cat /proc/version 
Linux version 4.19.0-16-686-pae (debian-kernel@lists.debian.org) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.181-1 (2021-03-19)

$ uname -a
Linux vy12m 4.19.0-16-686-pae #1 SMP Debian 4.19.181-1 (2021-03-19) i686 GNU/Linux

$ hostnamectl
   Static hostname: vy12m
           Chassis: laptop
  Operating System: Debian GNU/Linux 10 (buster)
            Kernel: Linux 4.19.0-16-686-pae
      Architecture: x86

設定

確認

現状を確認していきます。

  • オーディオのハードウェア情報を調べる
    ハードウェア自体は認識されているようです。
    (スピーカーは使えているので...)。

    $ aplay -l
    **** ハードウェアデバイス PLAYBACK のリスト ****
    カード 0: Intel [HDA Intel], デバイス 0: ALC262 Analog [ALC262 Analog]
    サブデバイス: 1/1
    サブデバイス #0: subdevice #0
    カード 0: Intel [HDA Intel], デバイス 6: Si3054 Modem [Si3054 Modem]
    サブデバイス: 1/1
    サブデバイス #0: subdevice #0
  • サウンドカードをチェック
    試しに /proc ディレクトリから、サウンドカードの認識状況をチェックしてみます。
    *aplay コマンドと同じ結果が得られました。
    *以下は皆同じなので、どれを使っても OK なはず。

    $ grep -i codec /proc/asound/card*/codec#*
    /proc/asound/card0/codec#0:Codec: Realtek ALC262
    /proc/asound/card0/codec#1:Codec: LSI Si3054
    $ cat /proc/asound/card0/codec#0 | grep Codec
    Codec: Realtek ALC262
    $ cat /proc/asound/card0/codec#0 | head -n 1
    Codec: Realtek ALC262

    VY12M/C-3 はインテルチップセットが使われているため、以下のように確認することもできるようです。

    $ lsmod | grep -E 'snd_hda_intel|snd-hda-intel'
    snd_hda_intel          32768  4
    snd_hda_codec          94208  4 snd_hda_intel,snd_hda_codec_generic,snd_hda_codec_si3054,snd_hda_codec_realtek
    snd_hda_core           57344  5 snd_hda_intel,snd_hda_codec,snd_hda_codec_generic,snd_hda_codec_si3054,snd_hda_codec_realtek
    snd_pcm                81920  4 snd_hda_intel,snd_hda_codec,snd_hda_core,snd_hda_codec_si3054
    snd                    61440  16 snd_hda_intel,snd_hwdep,snd_hda_codec,snd_timer,snd_hda_codec_generic,snd_hda_codec_si3054,snd_hda_codec_realtek,snd_pcm

設定

一通りチェックしたところで、起動時にモジュールのロードをするように設定していきます。

  • modprobe.d ディレクイトリを確認する
    私の環境では空っぽでした。

    $ sudo ls /etc/modprobe.d/
  • modprobe.d ディレクイトリに conf ファイルを作成する
    /etc/modprobe.d/ ディレクトリに conf ファイルを用意しておくと、起動時に modprobe コマンドで対象モジュールをロードしてくれます。

    $ sudo cat /etc/modprobe.d/alc262
    #options snd-hda-intel model=fujitsu
    #options snd-hda-intel model=basic
    options snd-hda-intel index=0 model=basic

    *設定がうまく行かない場合は、上記コメント部分も試してみてください。

  • 再起動
    conf ファイル作成後に再起動して、設定が反映されることを確認します。

    $ reboot