adbird(広告鳥) 備忘録

PORTABOOK(ポータブック)に Ubuntu 18.04をインストール

2021年4月16日:音声再生関係を大幅に加筆修正。音声が安定して出力できるようなった。
いろいろインストールするなどして試行錯誤したので、正直どれが効いたのかは分からないけど、現状、追記した対処手順で確実に音声が出るようになっている。


これまで2度ほど何とか苦戦しながらも大型の Windows Update を更新してきたが、今回は前回成功した方法(ポータブックのWindows10大型アップデート)でもついに更新に失敗してしまった。

もう、いよいよUbuntuをインストールするしかない!と決意して、実行した。

以下に書く方法はWindowsを完全に削除して、Ubuntuを入れる方法なので、たとえ失敗してWindowsの起動すらできなくなったとしても、自己責任でお願いします。

準備するものとして、USBメモリWindows回復ドライブ用とUbuntuブータブル用)が2つ必要。


Windowsの回復ドライブ作成

Windowsを削除して、Ubuntuをインストールするのだが、万が一のことを考えて、ポータブックでWindowsの回復ドライブを作成しておけば、元のWindowsに戻せるはずなので(Ubuntuのインストールに成功したのでやったことない)、かならず作っておくこと。

回復ドライブ作成で、USBメモリ内のデータは消えるはずなので注意。

作り方はググってw。

かなり時間がかかるので、そのつもりで。

時間がかかるので、「どうせWindowsのままだと使わないから、ダメだったら文鎮化するのも辞さない!」という覚悟なら、回復ドライブの作成は飛ばしてもいい。

UbuntuのブータブルUSBの作成

回復ドライブ用のUSBメモリとは別のUSBメモリを用意して、ISOイメージをダウンロードして、ブータブルUSBを作成する。

今回僕は、日本語 RemixのISOイメージ(これを執筆時は18.04.3だった)ではなく、 18.04.4 LTS のISOイメージ(64bit)をダウンロードして、インストール後にJapanese Teamによる追加パッケージを追加した。

ISOイメージからブータブルUSBを作成するには、

Ubuntuをすでに使っている人はアプリの検索で「ブータブル」と検索すれば「ブータブルUSBの作成」が起動するので、それを使って作る。

Windowsはググれば、いくつかの方法が出てくるはず。
Ubuntuの公式サイトでも作り方が紹介されている。英語だけどわかると思う。
Create a bootable USB stick on Windows | Ubuntu

Ubuntuをインストール

ブータブルUSBをポータブックに挿して、電源を投入後、すぐにF2ボタンを連打して、ブート選択メニューにして、USBを選んでブート。

まずはインストールせずに試してみて、きちんと起動できたら、ポータブックにインストールする。

カスタムLinuxカーネルに置き換える

Ubuntuをインストールしただけでは、キーボードの一部が入力できない、音が出ないなどの問題があるので、z80oolongさんが作ってくれたカスタムLinuxカーネル.debを使って、パッチ適用されたカーネルに置き換える。

やり方は、以下のサイトにあるとおり。
注意点など詳細は下記サイトを読んでください。

いくつかのカーネルバージョンがあるけど、ここでは5.4.2の場合。

Releases · z80oolong/linux-kernel-mainline · GitHub から

をダウンロード。

ダウンロードフォルダ内で、右クリック>「端末で開く」で端末を起動。

$ sudo dpkg -i ./linux-image-5.4.2-xmc10-001+_20200116_amd64.deb
$ sudo dpkg -i ./linux-headers-5.4.2-xmc10-001+_20200116_amd64.deb
$ sudo dpkg -i ./linux-source-5.4.2-xmc10-001+_20200116_all.deb

コンソール端末のキー入力時のトラブル対応

$ sudo gedit /etc/default/grub

テキストエディタが開くので、GRUB_CMDLINE_LINUX項目に ignore_altlock=yes を書く。

 GRUB_CMDLINE_LINUX="ignore_altlock=yes"

保存したら、端末で

$ sudo update-grub

をする。

サスペンドをオフに

サスペンドすると復帰後に固まるらしいので

設定>電源管理 で 自動サスペンドをオフにする。

デスクトップ環境をXfce

デフォルトのデスクトップ環境(GNOME)はもっさりとしているので、デスクトップ環境を変えてみた。

最初はLXDEを導入しようと思ったが、外部ディスプレイへの画面の複製ができなかったり、VLCの全画面表示ができなったり(どうしてもデスクトップのパネルが隠れない)と不具合(設定調整不足?)が生じたので、LXDEは導入見送り。

Xfceをインストール

$ sudo apt install xfce4

上記でXfceをインストールしたら、PCを再起動。

ログイン時のパスワード入力の際に、セッションを選ぶボタンがあるはずなので、そこでXfceを選択する。

起動時のメモリ使用はデフォルトの約半分。

外部ディスプレイへの画面の複製は一応できた(ただし、要調整。外部ディスプレイの解像度の関係か、完璧ではない)。

壁紙とパネルをいじって、軽量ドックplankを導入、Ubuntu Dock風にして、ぱっと見、デフォルトのデスクトップ環境っぽくすることができたので満足w。

f:id:adbird:20210419233404p:plain
カスタマイズしたXfceデスクトップ

パネルの時計のカスタム

%Y年%m月%d日(%a)%R

軽量ドック plank

左にパネルを置くより、plankという軽量ドックを置いたほうが好みの動きをしてくれた。

$ sudo apt install plank

plankの設定画面を出すにはplankの端(すごい微妙な場所)で右クリック。または

$ plank --preferences

自動起動のために。

  • アプリケーションメニュー>設定>セッションと起動>自動開始アプリケーションに以下の内容を追加。
    • 名前:plank
    • 説明:軽量ドック
    • コマンド:plank

○変な横線を消す。

  • アプリケーションメニュー>設定>ウインドウマネージャー(詳細)>コンポジット処理>「ドックウインドウに影を落とす」のチェックを外す。

参照リンク:Ubuntuのデスクトップ変更!LXDEからXfceに変えるとPlank本領発揮

conky でバッテリー残量等を表示

conkyをインストール。

$ sudo apt install conky

ユーザーフォルダ(/home/ユーザー名/)内に「.conkyrc」(conky設定ファイル)を置いて、編集する。

僕のconky設定ファイルは

の投稿からコピペするか、

をダウンロードしてください。
後者の方は、ダウンロードするとファイル名の「.」(ピリオド)が消えてしまうことがあるようなので、そのときはファイル名の冒頭にピリオドを付けてください。

設定ファイルを置いたら、

 $ conky

で起動する。僕の設定ファイルを使うと、デスクトップの右上にこの画像のように表示される。

f:id:adbird:20210419231814p:plain

これをPC起動後に自動起動するように設定する。(音声出力関係も含んでいるので、後述の「音声が出るようにする」をやってから設定すること。)

直接conkyを自動起動に登録すると、起動のタイミングなのか、ちょっと不具合が出たので、スクリプトでPC起動後、10秒後にconkyを起動するようにした。

以下の内容のスクリプト(startup.sh)をユーザーフォルダ(/home/ユーザー名/)内に作成。

#!/bin/bash
sleep 10
conky
pavucontrol

ついでに、pavucontrolも自動起動するようにしている。pavucontrolは後述のPulseAudioサーバー接続失敗問題に対応するためのもの。
PC起動後、pavucontrol(オーディオミキサー(音量調整))が自動起動するので、それが正しく表示されれば一度閉じる。しばらくするとスピーカーからちゃんと音声出力できるようになる。
PulseAudioサーバーへの接続に問題が起きず、必要がないと思えば、pavucontrolの記述は削除してかまわない。

このスクリプトを起動後、自動で実行するように登録する。

  • アプリケーションメニュー>設定>セッションと起動>自動開始アプリケーション に以下の内容を追加。(※ユーザー名のところは適宜変更。)
    • 名前:startup
    • 説明:conky,pavucontrol
    • コマンド:bash /home/ユーザー名/startup.sh

ワークスペースの切り替え

デスクトップを表示してマウスでスクロール。

または、パネルを水平にしている場合には、Ctrl + Alt + ←(または→)。パネルを垂直にしている場合には、Ctrl + Alt + ↑(または↓)。

音声が出るようにする

$ sudo apt install git
$ git clone https://github.com/amuramatsu/portabook_ucm.git
$ sudo cp -rf ./portabook_ucm/cht-bsw-rt5672 /usr/share/alsa/ucm

↓これはやる必要があるかどうか分からないけど、

 $ sudo geany /etc/pulse/default.pa

でgeditが起動するので、下記を追加。どの記述の下に追加すべきかは試行錯誤中…。

 ## custom
 load-module module-alsa-card device_id=chtbswrt5672 use_ucm=true

以上、ここまでやったら、ポータブックを再起動。

これで音が出るようになるのだが、PulseAudioサーバーの起動が不安定なので(というか、Xfceデスクトップ環境を導入した場合、たいていPulseAudioサーバーの起動に失敗するので)、後述の対処方法の手順を取ると確実に音が出るようになる。

PulseAudio と ALSA について

音声関係はこのあたりの記述を読んで理解しておくといいかも…。僕も詳しくは分かっていないけど…。

「歴史的な理由からか、Linux の音声入出力は PulseAudio と ALSA の二階建てになっている。ALSA は個々のサウンドカードを担当するのだが、一つのサウンドカードには一つのアプリしかアクセス出来ない。複数のアプリの音声入出力を調停するのは PulseAudio が担当している」
Linux の Audio 機能をコマンドラインで設定 - Qiita

PulseAudioサーバーが接続されていない場合(PulseAudioデーモン起動失敗?)の対処方法

以下は、Xfceデスクトップ導入後の話。

PC起動後、たいていPulseAudioサーバー接続に失敗しているようなので、以下の方法でPulseAudioサーバーに接続する。

①デスクトップのパネルにある(なかったらパネルに「PulseAudioプラグイン」を追加する)スピーカーのアイコンをクリックして、「オーディオミキサー」をクリック。

Xfce以外のデスクトップ環境では、もしかしたら $ pavucontrol すればいいかも。)

オーディオミキサーのウィンドウが立ち上がって、PulseAudioに接続しようとしているのが分かるはず。

②PulseAudioに接続できて、オーディオミキサー(音量調整)のウィンドウが正しく表示されたら、そのウィンドウを閉じる(どうやら、これが意外と大事っぽい)。

③端末で以下を実行。

$ pacmd list-sinks  | grep name:

その結果が

name: <alsa_output.chtbswrt5672.HiFi__hw_chtbswrt5672__sink>
name: <alsa_output.pci-0000_00_02.0-platform-hdmi-lpe-audio.stereo-fallback>

だったら、音は出ない。しばらく待ってから再び$ pacmd list-sinks | grep name:を実行して、

name: <alsa_output.chtbswrt5672.HiFi__hw_chtbswrt5672__sink>
name: <alsa_output.pci-0000_00_02.0-platform-hdmi-lpe-audio.stereo-fallback>
name: <alsa_output.platform-cht-bsw-rt5672.HiFi__hw_chtbswrt5672__sink>

と、3番目のname: <alsa_output.platform-cht-bsw-rt5672.HiFi__hw_chtbswrt5672__sink>が表示されたら、PulseAudio経由で音が出るはず。

それでも音声が出ない場合、再びパネルのスピーカーアイコンをクリックして、画像のように「内部オーディオ」を選択しているか、確認する。「内部オーディオ」が2つあるので、どちらか選んだら音声が出るはず。

f:id:adbird:20210416231041p:plain

ブラウザの音声再生

上記対処方法が確立していなかった頃、Firefoxでは音が出なかったので、ALSA(Advanced Linux Sound Architecture)をサポートしなくなったFirefoxでは音が出ないのかな…と思っていたら、上記手順でPulseAudioサーバーがちゃんと起動すれば、音が出るのが確認できた。

まあ、ブラウザはVivaldiをオススメ。

音楽データ再生

最初は、Rhythmboxをはじめ、どんなソフトを使っても音楽データ(ogg等)が倍速で再生されるなど不安定な状態だったが、いつの間にか、普通に再生できるようになった。

何かをいじっていろいろインストールしたのが改善につながったか、上記のPulseAudio接続対処手順が確立できたのが良かったのかも。

Rhythmbox・VLCSMplayer

上記の手順でPulseAudioへの接続ができていれば、RhythmboxやVLCSMplayerでも再生できるはず。

VLCは、aptでインストールした($ sudo apt install vlc)ものでも、snapでインストール($ sudo snap install vlc)ものでもどちらもOK。

ただし、aptでインストールされるバージョンは少し古く、Youtubeのネットワーク再生がでない。

オーディオ設定では

  • 出力モジュール:PulseAudio

を選択する。

どうしても、PulseAudioで再生ができない場合は、

オーディオ設定で

  • 出力モジュール:ALSAオーディオ出力
  • バイス:cht-bsw-rt5672,Direct sample mixing device

を選択する。ただし、

「あるアプリが ASLA 経由でサウンドカードを操作している間、他のアプリからそのサウンドカードを使えない。」 Linux の Audio 機能をコマンドラインで設定 - Qiita

らしいので、基本的には

  • 出力モジュール:PulseAudio

にしていたほうが良さそう。

PulseAudioで音声が出なかったら、他のアプリ(ブラウザ等)がALSAオーディオ出力をしている可能性があるので、他のアプリを閉じてみるといい。

ブラウザの簡易メディアプレーヤーで再生

VLC等による再生が安定しなかったときは、自分で作成した(と言っても、これも他の方々のソースや協力に頼った部分がほとんどなのだけど…)

の方法が一番、安定して再生できていたので、これを利用することが多かった。

もし、「開く/追加」ボタンがうまく機能しなかったら、ピクチャー・イン・ピクチャーの機能を無効にすれば「開く/追加」ボタンがちゃんと動くはず。

音量調整(ALSA

alsamixer

再生音量調整は

$ alsamixer

でミキサーを起動。

F4キー(F4:[録音] だけど、なぜか再生音量の調整もできる)で

  • codec_out0 Gain 0 (inではoutなので、注意)
  • media1_in Gain 0 (media0ではなく、media1なので注意)
  • pcm0_in Gain 0

あたりを調整する。

QasMixer

デスクトップ環境をXfceにした後に使えたGUIミキサー。デフォルトのデスクトップ環境(GNOME)でも使えるかどうかは不明。

こっちのほうが直感的に操作しやすい。

$ sudo apt install qasmixer

音量初期値設定

ちょっと初期値の音量が大きいかなと思って、$ alsactl storeなどいろいろ試してみたけど、どうしてもUbuntu再起動後に音量が初期値に戻ってしまうので、

$ sudo gedit /usr/share/alsa/ucm/cht-bsw-rt5672/HiFi

cset "name='codec_out0 Gain 0 Volume' 0"

の行を

cset "name='codec_out0 Gain 0 Volume' -106"

にして、ボリュームを下げた。

所々の事情があって、逆に音量を上げた初期設定にした。

cset "name='media1_in Gain 0 Volume' 100"

cset "name='codec_out0 Gain 0 Volume' 0"

alsamixerをDock(ランチャー)登録する

※追記:前述の通り、Xfce環境でQasMixerを使えるようになったので、このランチャーは必要なくなった。

/home/〜/.local/share/applications に以下の内容の alsamixer.desktop を作成する。アイコンの場所、画像は任意で。

[Desktop Entry]
Type=Application
Name=alsamixer
Icon=/home/〜/ピクチャ/デスクトップアイコン/スピーカーアイコン.png
Exec=gnome-terminal -e "alsamixer -V capture"
Name[ja_JP]=alsamixer

alsamixer.desktop上で右クリックして、プロパティから「プログラムとして実行可能」にチェックを入れる。

一度ダブルクリックして、「信頼〜」みたいな注意が出るけど、実行する。
そうすると alsamixer.desktopalsamixer になるはず。

Dock(ランチャー)下の「アプリケーションを表示する」からアプリを検索すると「alsamixer」があるはずなので、そのアイコン上で右クリックして「お気に入りに追加」する。

Swap領域を拡張

$ free -h (または $ free -m)

でメモリとSwapのサイズを確認。

メモリ1.8G、Swap1.3Gしかなかったので、Swapのサイズが心もとない。

1./に2GBの領域拡張用ファイルswapを作成

$ sudo dd if=/dev/zero of=/swap bs=1M count=2048

2.swapファイルに変換

$ sudo mkswap /swap
$ sudo chmod 600 /swap

3.swapファイルを有効化

$ sudo swapon /swap

4.free -hswapon -sで確認。2GB増えて、3.3Gになっているのが分かる。

PORTABOOK:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:           1.8G        938M        165M        179M        790M        605M
Swap:          3.3G         11M        3.3G

PORTABOOK:~$ swapon -s
ファイル名             タイプ       サイズ   使用済み    優先順位
/swap                                   file        2097148 0   -3
/swapfile                               file        1392256 11264   -2

5.起動時に自動でスワップを有効にする

 $ sudo gedit /etc/fstab

でgedit起動。

/swap none swap sw 0 0

の行を追加する。

6.ポータブックを再起動後、$ free -hで再び確認。

謝辞

z80oolongさんをはじめ、先達の方々のおかげで比較的簡単にポータブックにUbuntuをインストールすることができました。

本当にありがとうございます。

参考リンク

f:id:adbird:20200422224633j:plain
Ubuntu 18.04 on PORTABOOK
f:id:adbird:20200422224730j:plain
Ubuntu 18.04 on PORTABOOK