ホスト OS が dnsmasq 経由で名前解決を行っている場合の設定です。

echo nameserver 127.0.1.1 >> /etc/resolvconf/resolv.conf.d/head

参考

先日、今更ながらEdgeRouter Xを購入しました。 Web GUIな設定画面は使いやすいのですがHTTPSの証明書がオレオレなため、ブラウザーの警告がうざいです。 警告を回避するため、Let's Encryptの証明書を設定した時のメモです。

手順

ルーターにFQDNでアクセスでき、Certbotなどを使いPCで証明書を取得したものとします。

Certbotで取得した証明書や秘密鍵は/etc/letsencrypt/live/<FQDN>に存在します。

  1. サーバーの証明書と秘密鍵を結合します。

    cat cert.pem privkey.pem > server.pem
  2. scpコマンドを使い、ルーターの/config/auth/ディレクトリに証明書をアップロードします。

    scp server.pem ruyoumo@router.example.net:/config/auth/server.pem
    scp fullchain.pem ruyoumo@router.example.net:/config/auth/fullchain.pem
  3. ルーターにSSHでログインして証明書を設定します。

    ruyoumo@router:~$ configure
    [edit]
    ruyoumo@router# set service gui cert-file /config/auth/server.pem
    [edit]
    ruyoumo@router# set service gui ca-file /config/auth/fullchain.pem
    [edit]
    ruyoumo@router# commit
    [ service gui ]
    Starting the GUI service.
    
    [edit]
    ruyoumo@router# save
    Saving configuration to '/config/config.boot'...
    Done
    [edit]
    ruyoumo@router# exit
    exit

ブラウザでルーターにアクセスして警告が出ないことを確認します。

参考

Ubuntu 16.04 Desktopで画面の描画はiGPU(Intel HD Graphics)を使用し、GeForce GTX 1060(dGPU)をGPGPUのみで使用するための設定をした時のメモです。 nvidia-settingsでクロックやファンの制御をできるようにもします。

前準備

  • UEFIでプライマリグラフィックをiGPU、そしてdGPUが搭載されていてもiGPUが無効にならない設定(iGPU Multi-Monitorなどの設定)にします。
  • もし、Ubuntuの公式パッケージのドライバーをインストールしていたらアンインストールします。

Nouveauの無効化

  1. 以下の内容で/etc/modprobe.d/disable-nouveau.confを作成します。

    blacklist nouveau
    options nouveau modeset=0
  2. initramfsを更新します。

    sudo update-initramfs -u
  3. 再起動します。

必要なパッケージのインストール

  1. ドライバーのコンパイルに必要なソフトウェアと、カーネルのバージョンアップ時に自動的に再コンパイルされるようDKMSをインストールします。

    sudo apt install build-essential dkms

ドライバーのインストール

  1. NVIDIAのサイトから最新ドライバーのインストーラーをダウンロードします。

  2. ドライバーをインストールするにはXを終了させる必要があるため、Ctrl+Alt+F1を押して仮想コンソールを表示させ、ログインします。

  3. 以下のコマンドでXを終了させます。

    sudo systemctl stop lightdm
  4. ダウンロードしたドライバーのインストーラーを以下のオプションで実行します。

    • 途中でXを起動するたびに、nvidia-xconfigを実行してxorg.confを作成するか聞かれますがNoを選択してください。
    • --no-opengl-files--no-libglx-indirectを指定しないとログインできなくなります。多分、画面出力がiGPUなのにNVIDIAのOpenGLドライバーを読み込もうとするからだと思います。
    chmod +x NVIDIA-Linux-x86_64-390.48.run
    sudo ./NVIDIA-Linux-x86_64-390.48.run --no-opengl-files --no-libglx-indirect --dkms
  5. 再起動したあとnvidia-smiを実行してドライバーが正常にインストールされているか確認します。

クロック、ファン制御ができるようにする

上記までの手順でCUDA、OpenCLが利用できるようになりますが、nvidia-settingsを使ったクロックやファンの制御はNVIDIAのXドライバの読み込みが必要なのでxorg.confを作成します。

  1. まず、以下のコマンドでGeForceのBusIDを調べます。

    $ nvidia-xconfig --query-gpu-info
    Number of GPUs: 1
    
    GPU #0:
    Name      : GeForce GTX 1060 6GB
    UUID      : GPU-00000000-0000-0000-0000-000000000000
    PCI BusID : PCI:1:0:0
    
    Number of Display Devices: 0
  2. 以下の内容で/etc/X11/xorg.confを作成し、BusIDを上記コマンドで調べたものに置き換えてください。

    Section "ServerLayout"
        Identifier     "Layout"
        Screen 0       "intel"
        Screen 1       "nvidia"
    EndSection
    
    Section "Device"
        Identifier     "intel"
        Driver         "intel"
    EndSection
    
    Section "Device"
        Identifier     "nvidia"
        Driver         "nvidia"
        BusID          "PCI:1:0:0"
    EndSection
    
    Section "Screen"
        Identifier     "intel"
        Device         "intel"
    EndSection
    
    Section "Screen"
        Identifier     "nvidia"
        Device         "nvidia"
        Option         "AllowEmptyInitialConfiguration" "True"
        Option         "Coolbits" "12"
    EndSection

以上で完了です。

参考

Microsoft Flowのアプリをインストールしたスマホに通知を表示するためのWebhookを作成する手順です。

フローの作成

新規フローの作成画面でトリガーとして「要求」を選択します。

新規フローの作成画面

「要求本文の JSON スキーマ」に以下のスキーマを入力し、「詳細オプションを表示する」をクリックしてmethodをPOSTに設定します。

{
    "type": "object",
    "properties": {
        "text": {
            "type": "string"
        }
    }
}

「新しいステップ」→「アクションの追加」で「Sned me a mobile notification」を追加します。

「Text」のテキストボックスをクリックすると右側に表示される「動的なコンテンツ」から「text」を選択します。

動的なコンテンツ

右上の「フローの作成」をクリックするとWebhookのURLが表示されます。

curlで通知のテスト

以下のコマンドを実行するとMicrosoft Flowのアプリをインストールしたスマホに通知が行くはずです。

curl -X POST -H 'Content-type: application/json' --data '{"text": "テストです。"}' '[WebhookのURL]'

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 <再生デバイス名>

参考

Microsoftの無料メールサービス「Outlook.com」はゴミ箱(削除済みアイテム)から削除しても、ブラウザで「Outlook.com」にログインして「削除済みアイテムを復元」から簡単に削除したメールを復元できます。 スマートフォンの「Outlook」アプリでのみ「Outlook.com」を利用している人などはこの機能に気づかないと思うので、この仕様は問題だと思います。

完全に削除する方法

  • 「Outlook.com」にログインして「削除済みアイテム」→「削除済みアイテムを復元」をクリック。
  • ゴミ箱(削除済みアイテム)から削除したメールが出てくるので、チェックボックスをオン(Shiftキーで一括選択可)にして削除します。