Ubuntuでライン入力の音声をそのまま再生する

PCのライン入力端子やマイク入力端子からの音声をそのまま再生する方法です。
Ubuntu 16.04で確認しましたが、PulseAudioを採用したディストリビューションなら同じ方法でできるはずです。

簡単な方法

$ pactl load-module module-loopback

これだけでライン入力の音声がそのまま再生されるはずです。
上記コマンドのload-moduleunload-moduleに置き換えると再生は止まります。

遅延が少ない方法

上記の方法では数百ミリ秒ほど遅延が発生します。
pacatという入出力の音声データを生で扱えるコマンドをパイプでつなぐことで遅延を少なくすることができます。
まずは以下のコマンドを実行します。

$ pactl info

以下のコマンドの<入力デバイス名>と<再生デバイス名>を、上記のコマンドの実行結果のDefault Sink(再生デバイス名)とDefault Source(入力デバイス名)で置き換えて実行します。

$ pacat -r --latency-msec=1 -d <入力デバイス名> | pacat -p --latency-msec=1 -d <再生デバイス名>

参考

Fix PulseAudio loopback delay – The Linux Experiment

Ubuntu 16.04でCPUとGPUの両方に負荷をかける


LuxRenderというオープンソースの3Dレンダリングエンジンを使用し、ベンチマークやストレステストができるLuxMarkというソフトがあります。
LuxMarkはOpenCLが使える環境が必要です。
以下は、CPUとGPUがともにIntelの場合のOpenCLドライバーのインストール方法です。

試した環境

  • OS : Ubuntu 16.04
  • CPU : Intel Pentium G4400
  • GPU : Intel HD Graphics 510

CPUとGPUでOpenCLが使えるか確認する

まず、OpenCLが使えるかどうかclinfoを使って確認します。

sudo apt install clinfo

コマンドを実行して、以下のようにCPUとGPUが表示されない場合はOpenCLドライバーをインストールしないとLuxMarkは使えません。

$ clinfo
〜省略〜
Number of devices    2
  Device Name        Intel(R) HD Graphics
〜省略〜
  Device Name        Intel(R) Pentium(R) CPU G4400 @ 3.30GHz

CPUとGPUでOpenCLが使えるようにする

IntelのホームページからLinux用のOpenCLドライバをダウンロードして展開します。
rpmパッケージをdebパッケージに変換してインストールします。

$ sudo apt install alien
$ sudo alien -ci intel-opencl-cpu-r5.0-63503.x86_64.rpm
$ sudo alien -ci intel-opencl-r5.0-63503.x86_64.rpm

確認

clinfoコマンドでCPUとGPUが表示されることを確認します。

LuxMarkのダウンロード

freeglut3が必要なのでインストールします。

$ sudo apt install freeglut3

公式Wikiからバイナリをダウンロードして展開します。
luxmarkを実行します。

ストレステストの実行

起動したら、[Mode]→[Stress Test (OpenCL CPUs+GPUs)]をクリックしてストレステストを開始します。

参考

Ubuntu 16.04でサウンド出力をモノラルにする

PulseAudioの仮想シンクを作成してモノラル出力する方法です。

環境

  • OS : Ubuntu 16.04

前準備

普通に音楽などを再生してシステムの音量(プレーヤーの音量ではない)を聞くことのできる限界まで上げてください。

PulseAudioの設定

    以下のコマンドを実行して、デフォルトシンク名(出力先)をコピーしておきます。

    $ pacmd stat | grep "Default sink name:"
    Default sink name: alsa_output.pci-0000_00_1f.3.analog-stereo
    


    以下のコマンドで仮想シンクを作成します。<デフォルトシンク名>を前のコマンドで取得したもので置き換えてください。

    $ pacmd load-module module-remap-sink master=<デフォルトシンク名> sink_name=mono channels=2 channel_map=mono,mono

    確認

    • [システム設定]→[サウンド]でサウンドの出力先を仮想シンク(多分、「Remapped 内部オーディオ アナログステレオ」)に設定します。
    • こういう動画とかを再生して、モノラルになっているか確認します。

    設定の永続化

    作成した仮想シンクは再起動すると消えてしまうので、設定ファイルに書き込みます。
    /etc/pulse/default.paに以下の設定を書き込みます。

    load-module module-remap-sink master=<デフォルトシンク名> sink_name=mono channels=2 channel_map=mono,mono
    set-default-sink mono

    参考

Ubuntu 16.04の「ファイル」でSMBv2以上のサーバーをマウントする

Ubuntuで「ファイル(Nautilus)」の「サーバーへ接続」からマウントするとき、サーバー側でSMBv1を無効にしているとエラーが出て接続できません。

Oops! Something went wrong.
Unhandled error message: Failed to mount Windows share: Connection timed out
うわっ! 何か問題が発生しました。
扱えないエラーメッセージ: Windows 共有をマウントできませんでした: 接続がタイムアウトしました

デフォルトではSMBv1より新しいバージョンでは接続できないので設定ファイルを作成します。
以下の内容を/etc/samba/smb.confに作成します。

[global]
client max protocol = SMB2

ただ、この設定をするとネットワーク上のサーバーをスキャンできなくなるみたいです。

参考