LoginSignup
8
12

More than 5 years have passed since last update.

[メモ] ラズパイ/TinkerBoard: xrdp(リモートデスクトップ)を使う。音も鳴らそう!

Last updated at Posted at 2017-08-21

概要

Raspbianが、Stretch(Debian 9)ベースになり、パッケージレポジトリのxrdpは 0.9.1ベースになりました。
それによって、テキストのコピペなど簡単にできるようになりましたね。しかも、apt install xrdpするだけ。

それだけの説明だと、つまらないので、pulseaudio(デフォルトパッケージから外されましたが..)を使った、リモート経由で音も聞けるようにビルドしたファイルを用意したので、それの使い方も書きます。

#(追記:2017-8-25) TinkerBoardでも同じファイルを使って、できました。手順の2.と3.を参考に。

環境

  • Raspberry Pi: 2 model B
  • Raspbian: 2017-08-16-raspbian-stretch
  • Windows 7 (64bit)の Remote Desktop Connection/リモートデスクトップ接続を使用。

手順

  1. 初期設定

    • RaspbianイメージをmicroSDに焼く。(おすすめツール Etcher)
    • sshを使う場合、bootパーティションに、sshというファイル名で空ファイル作成。
    • 起動。
    • ターミナル起動
    • パッケージ更新・再起動:
      sudo apt update && sudo apt upgrade -y && sudo reboot
    • その他設定(お好みで。または設定終了後、リモートデスクトップ上から)
      • キーボードの設定
        メニュー > 設定 > キーボードとマウス
      • タイムゾーン
        sudo dpkg-reconfigure tzdata
      • 日本語関係(フォント,入力)
        sudo apt install -y fonts-ipafont fonts-ipaexfont fonts-takao ibus-mozc
      • ロケール
        sudo dpkg-reconfigure locales # ja_JP.UTF-8にする
      • ユーザパスワード変更: passwd
      • 再起動
      • Mozc入力設定(101キーボードなど)
        メニュー>設定 > Mozcの設定
        キー設定の選択 > [編集] を押したら、入力キーをクリックして、ソート。
        Hankaku/ZenkakuCtrl+Spaceとかに変更する
  2. xrdp関連のパッケージインストール

    sudo apt install -y xorgxrdp xrdp 
    
  3. (お好みで)pulseaudio経由で、リモートで音も鳴らす場合は、コレもする。

    • xrdpを終了させるので、リモートデスクトップ上で実行しないこと。 (sshなどでログインして行おう)
    ## Pulseaudioをインストール
    sudo apt install pulseaudio --install-suggests -y
    # 設定書き換え
    # /etc/pulse/default.pa の最後に2行追加 module-xrdp-sink.soとmodule-xrdp-source.so
    grep module-xrdp-sink.so /etc/pulse/default.pa || sudo sed -i -e '$amodule-xrdp-sink.so' /etc/pulse/default.pa
    grep module-xrdp-source.so /etc/pulse/default.pa ||sudo sed -i -e '$amodule-xrdp-source.so' /etc/pulse/default.pa
    # start-pulseaudio-x11 を自動起動させる
    ## For RPi
    f=~/.config/lxsession/LXDE-pi/autostart ; if [ -e $f ]; then grep 'start-pulseaudio-x11' $f > /dev/null  || sed -i -e '$a@start-pulseaudio-x11' $f; fi
    ## For Tinker Board
    f=~/.config/lxsession/LXDE/autostart ; if [ -e $f ]; then grep 'start-pulseaudio-x11' $f  > /dev/null || sed -i -e '$a@start-pulseaudio-x11' $f; fi
    
    ## pulseaudioに対応したファイルをダウンロード
    wget https://github.com/mt08xx/files/raw/master/xrdp-audio_armhf-20170821-1.tbz
    tar xf xrdp-audio_armhf-20170821-1.tbz
    cd xrdp-audio_armhf/
    #ファイル確認
    ls -l
    # モジュールをコピー
    sudo cp -v *.so /usr/lib/pulse-10.0/modules/
    # ここのxrdpをインストール
    # sudo dpkg -i ./xrdp_0.9.1-9_armhf.deb
    
    # サービス・プロセス停止
    sudo systemctl stop xrdp xrdp-sesman
    sudo killall -9 xrdp-chansrv
    sudo killall -9 xrdp-sesman
    sudo killall -9 xrdp-sessvc
    
    # debからファイルを抽出して、上書きコピー
    dpkg -x xrdp_0.9.1-9_armhf.deb ./ext
    sudo cp -r ext/usr/{lib,bin,sbin} /usr
    rm -rfv ./ext
    
    # 再起動
    sync && sleep 5 && sudo reboot
    
  4. Windowsでリモートデスクトップ接続を起動

    • オプションを表示させると
      image.png
    • いろいろ設定できる。Displayのとこで画面サイズとか指定できる。接続ボタンをおす
      image.png
    • なんか聞かれたら、接続とか、OKとか押せばいいかと...(ぉぃ
      image.png
    • こんなのがでてきたら、SessionでXorg、username、passwordを入れて、[OK]をおして、
      image.png
    • ログイン
      image.png

おまけ

  • 再起動後、ターミナルを開いて、音を再生。
    aplay /usr/share/sounds/alsa/Front_Center.wav
    鳴ったかな?
  • Chromium開いて、Youtubeとか、見てみよう。

  • xrdp-audio_armhf-20170821-1.tbz の中身

    配布ファイル
    pi@raspberrypi:~/xrdp-audio_armhf $ ls -l
    total 432
    -rwxr-xr-x 1 pi pi  23952 Aug 21 20:03 module-xrdp-sink.so
    -rwxr-xr-x 1 pi pi  19496 Aug 21 20:03 module-xrdp-source.so
    -rw-r--r-- 1 pi pi 393574 Aug 21 20:04 xrdp_0.9.1-9_armhf.deb
    pi@raspberrypi:~/xrdp-audio_armhf $ 
    

ビルドメモ

  • Debianのソースからビルドを使用
  • xrdpのビルドのconfigureのオプションに--enable-mp3lame--enable-pixmanを追加。
  • pulseaudioのconfigure間で実行させて、config.hを生成したら、CTRL-Cして、module-xrdp-{sink,source}.so をビルド。
  • 手順

    # ソース取得できるように設定
    # /etc/apt/sources.list の #deb-src の#をはずして、apt update
    sudo bash -c "sed  -i -e 's/#deb-src/deb-src/' /etc/apt/sources.list && apt update"
    
    # ワークフォルダ
    mkdir ~/work && cd ~/work
    
    #xrdp のビルドに必要なパッケージ取得
    sudo apt-get build-dep -y xrdp  pulseaudio && sudo apt install -y libmp3lame-dev
    
    # ソース取得
    apt-get source xrdp pulseaudio
    
    #xrdp
    ### xrdpのソースフォルダへ移動
    cd xrdp-0.9.1
    # debian/rules を編集 : --enable-mp3lame --enable-pixman を configureに追加
    sed -i -e 's@--enable-ipv6 \\@--enable-ipv6 --enable-mp3lame --enable-pixman \\@' debian/rules
    # xrdpビルド開始
    dpkg-buildpackage -us -uc
    # => workに xrdp_0.9.1-9_armhf.deb ができる
    
    #module-xrdp-sink.so とmodule-xrdp-source.soのビルド
    ### pulseaudio の config.h
    cd ~/work/pulseaudio-10.0
    # ビルドを開始させる。。が、configureが終わった(config.hが生成された)くらいで、CTRL-Cを押す。
    dpkg-buildpackage -us -uc
    
    ## モジュールのビルド
    cd ~/work/xrdp-0.9.1/sesman/chansrv/pulse/
    #変更前:PULSE_DIR = /home/lk/pulseaudio-1.1
    #変更後:PULSE_DIR = /home/pi/work/pulseaudio-10.0
    sed -i -e 's@/home/lk/pulseaudio-1.1@/home/pi/work/pulseaudio-10.0@g'  Makefile
    make
    # 生成物をworkにコピー
    cp -v *.so ~/work
    

xrdpインストールログ

  • メモ

    インストールログ
    pi@raspberrypi:~ $ sudo apt install -y xrdp xorgxrdp
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    The following additional packages will be installed:
      ssl-cert x11-apps x11-session-utils xbitmaps xfonts-75dpi xfonts-base xfonts-scalable xorg
      xorg-docs-core
    Suggested packages:
      openssl-blacklist xorg-docs x11-xfs-utils guacamole
    The following NEW packages will be installed:
      ssl-cert x11-apps x11-session-utils xbitmaps xfonts-75dpi xfonts-base xfonts-scalable xorg
      xorg-docs-core xorgxrdp xrdp
    0 upgraded, 11 newly installed, 0 to remove and 0 not upgraded.
    Need to get 10.8 MB of archives.
    After this operation, 17.1 MB of additional disk space will be used.
    Get:1 http://mirrordirector.raspbian.org/raspbian stretch/main armhf ssl-cert all 1.0.39 [20.8 kB]
    Get:2 http://mirrordirector.raspbian.org/raspbian stretch/main armhf x11-apps armhf 7.7+6 [544 kB]
    Get:3 http://mirrordirector.raspbian.org/raspbian stretch/main armhf x11-session-utils armhf 7.7+2 [61.4 kB]
    Get:4 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xbitmaps all 1.1.1-2 [32.1 kB]
    Get:5 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xfonts-75dpi all 1:1.0.4+nmu1 [3,367 kB]
    Get:6 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xfonts-base all 1:1.0.4+nmu1 [5,911 kB]
    Get:7 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xfonts-scalable all 1:1.0.3-1.1 [304 kB]
    Get:8 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xorg-docs-core all 1:1.7.1-1 [83.8 kB]
    Get:9 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xorg armhf 1:7.7+19 [38.4 kB]         
    Get:10 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xorgxrdp armhf 0.9.1-9 [73.1 kB]     
    Get:11 http://mirrordirector.raspbian.org/raspbian stretch/main armhf xrdp armhf 0.9.1-9 [402 kB]         
    Fetched 10.8 MB in 17s (606 kB/s)                                                                         
    Preconfiguring packages ...
    Selecting previously unselected package ssl-cert.
    (Reading database ... 122654 files and directories currently installed.)
    Preparing to unpack .../00-ssl-cert_1.0.39_all.deb ...
    Unpacking ssl-cert (1.0.39) ...
    Selecting previously unselected package x11-apps.
    Preparing to unpack .../01-x11-apps_7.7+6_armhf.deb ...
    Unpacking x11-apps (7.7+6) ...
    Selecting previously unselected package x11-session-utils.
    Preparing to unpack .../02-x11-session-utils_7.7+2_armhf.deb ...
    Unpacking x11-session-utils (7.7+2) ...
    Selecting previously unselected package xbitmaps.
    Preparing to unpack .../03-xbitmaps_1.1.1-2_all.deb ...
    Unpacking xbitmaps (1.1.1-2) ...
    Selecting previously unselected package xfonts-75dpi.
    Preparing to unpack .../04-xfonts-75dpi_1%3a1.0.4+nmu1_all.deb ...
    Unpacking xfonts-75dpi (1:1.0.4+nmu1) ...
    Selecting previously unselected package xfonts-base.
    Preparing to unpack .../05-xfonts-base_1%3a1.0.4+nmu1_all.deb ...
    Unpacking xfonts-base (1:1.0.4+nmu1) ...
    Selecting previously unselected package xfonts-scalable.
    Preparing to unpack .../06-xfonts-scalable_1%3a1.0.3-1.1_all.deb ...
    Unpacking xfonts-scalable (1:1.0.3-1.1) ...
    Selecting previously unselected package xorg-docs-core.
    Preparing to unpack .../07-xorg-docs-core_1%3a1.7.1-1_all.deb ...
    Unpacking xorg-docs-core (1:1.7.1-1) ...
    Selecting previously unselected package xorg.
    Preparing to unpack .../08-xorg_1%3a7.7+19_armhf.deb ...
    Unpacking xorg (1:7.7+19) ...
    Selecting previously unselected package xorgxrdp.
    Preparing to unpack .../09-xorgxrdp_0.9.1-9_armhf.deb ...
    Unpacking xorgxrdp (0.9.1-9) ...
    Selecting previously unselected package xrdp.
    Preparing to unpack .../10-xrdp_0.9.1-9_armhf.deb ...
    Unpacking xrdp (0.9.1-9) ...
    Setting up x11-session-utils (7.7+2) ...
    Setting up xbitmaps (1.1.1-2) ...
    Setting up ssl-cert (1.0.39) ...
    Setting up xfonts-75dpi (1:1.0.4+nmu1) ...
    Processing triggers for libc-bin (2.24-11+deb9u1) ...
    Setting up xrdp (0.9.1-9) ...
    
    Generating 2048 bit rsa key...
    
    ssl_gen_key_xrdp1 ok
    
    saving to /etc/xrdp/rsakeys.ini
    
    Created symlink /etc/systemd/system/multi-user.target.wants/xrdp-sesman.service → /lib/systemd/system/xrdp-sesman.service.
    Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /lib/systemd/system/xrdp.service.
    Processing triggers for systemd (232-25+deb9u1) ...
    Processing triggers for man-db (2.7.6.1-2) ...
    Setting up x11-apps (7.7+6) ...
    Setting up xfonts-scalable (1:1.0.3-1.1) ...
    Setting up xorgxrdp (0.9.1-9) ...
    Setting up xorg-docs-core (1:1.7.1-1) ...
    Setting up xfonts-base (1:1.0.4+nmu1) ...
    Processing triggers for fontconfig (2.11.0-6.7) ...
    Setting up xorg (1:7.7+19) ...
    Processing triggers for libc-bin (2.24-11+deb9u1) ...
    pi@raspberrypi:~ $
    

...

  • # (追記)Youtubeを、しばらく見てると、音が止まってしまう模様... う~ん..
    =>(2017-8-23) ネットワークの品質の問題だった? 様子見
  • # sudo apt update すると、公式のxrdpにアップグレードできる(=元に戻される)、、、とでてくる。うまい方法を考えますて教えてください..
    =>(2017-8-23) しょうがないので、debからファイルを抽出し、上書きするように記事を変更

    pi@raspberrypi:~/xrdp-audio_armhf $ sudo apt update
    ヒット:1 http://archive.raspbian.org/raspbian stretch InRelease
    ヒット:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease
    ヒット:3 http://archive.raspberrypi.org/debian stretch InRelease
    パッケージリストを読み込んでいます... 完了
    依存関係ツリーを作成しています
    状態情報を読み取っています... 完了
    アップグレードできるパッケージが 1 個あります。表示するには 'apt list --upgradable' を実行してください。
    pi@raspberrypi:~/xrdp-audio_armhf $ apt list --upgradable -a
    一覧表示... 完了
    xrdp/stable 0.9.1-9 armhf [0.9.1-9 からアップグレード可]
    xrdp/now 0.9.1-9 armhf [インストール済み、0.9.1-9 にアップグレード可]
    pi@raspberrypi:~/xrdp-audio_armhf $
    
  • (追記) Debianのソースからビルドする手順を書きました。やってることは、debian/rulesを変更して、xrdpのビルドのconfigureのオプションに--enable-mp3lame--enable-pixmanを追加するだけです。

...

  • [2017-8-22 8:34am(JST)頃] 1000 contribution 達成 :-) image.png
8
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12