2021年4月16日:音声再生関係を大幅に加筆修正。音声が安定して出力できるようなった。
いろいろインストールするなどして試行錯誤したので、正直どれが効いたのかは分からないけど、現状、追記した対処手順で確実に音声が出るようになっている。
これまで2度ほど何とか苦戦しながらも大型の Windows Update を更新してきたが、今回は前回成功した方法(ポータブックのWindows10大型アップデート)でもついに更新に失敗してしまった。
もう、いよいよUbuntuをインストールするしかない!と決意して、実行した。
以下に書く方法はWindowsを完全に削除して、Ubuntuを入れる方法なので、たとえ失敗してWindowsの起動すらできなくなったとしても、自己責任でお願いします。
準備するものとして、USBメモリ(Windows回復ドライブ用とUbuntuブータブル用)が2つ必要。
- Windowsの回復ドライブ作成
- UbuntuのブータブルUSBの作成
- Ubuntuをインストール
- カスタムLinuxカーネルに置き換える
- コンソール端末のキー入力時のトラブル対応
- サスペンドをオフに
- デスクトップ環境をXfceに
- 音声が出るようにする
- PulseAudioサーバーが接続されていない場合(PulseAudioデーモン起動失敗?)の対処方法
- ブラウザの音声再生
- 音楽データ再生
- 音量調整(ALSA)
- Swap領域を拡張
- 謝辞
- 参考リンク
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 から
- linux-headers-5.4.2-xmc10-001+_20200116_amd64.deb
- linux-image-5.4.2-xmc10-001+_20200116_amd64.deb
- linux-source-5.4.2-xmc10-001+_20200116_all.deb
をダウンロード。
ダウンロードフォルダ内で、右クリック>「端末で開く」で端末を起動。
$ 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。
パネルの時計のカスタム
%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
で起動する。僕の設定ファイルを使うと、デスクトップの右上にこの画像のように表示される。
これを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つあるので、どちらか選んだら音声が出るはず。
ブラウザの音声再生
上記対処方法が確立していなかった頃、Firefoxでは音が出なかったので、ALSA(Advanced Linux Sound Architecture)をサポートしなくなったFirefoxでは音が出ないのかな…と思っていたら、上記手順でPulseAudioサーバーがちゃんと起動すれば、音が出るのが確認できた。
まあ、ブラウザはVivaldiをオススメ。
音楽データ再生
最初は、Rhythmboxをはじめ、どんなソフトを使っても音楽データ(ogg等)が倍速で再生されるなど不安定な状態だったが、いつの間にか、普通に再生できるようになった。
何かをいじっていろいろインストールしたのが改善につながったか、上記のPulseAudio接続対処手順が確立できたのが良かったのかも。
Rhythmbox・VLC・SMplayer
上記の手順でPulseAudioへの接続ができていれば、RhythmboxやVLC、SMplayerでも再生できるはず。
VLCは、aptでインストールした($ sudo apt install vlc
)ものでも、snapでインストール($ sudo snap install vlc
)ものでもどちらもOK。
ただし、aptでインストールされるバージョンは少し古く、Youtubeのネットワーク再生がでない。
オーディオ設定では
- 出力モジュール:PulseAudio
を選択する。
どうしても、PulseAudioで再生ができない場合は、
オーディオ設定で
を選択する。ただし、
「あるアプリが 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.desktop
が alsamixer
になるはず。
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 -h
とswapon -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をインストールすることができました。
本当にありがとうございます。
参考リンク
- KingJim XMC10 への Ubuntu 18.04.2 の導入についての tweet の纏め - Togetter
- Releases · z80oolong/linux-kernel-mainline · GitHub
- GitHub - amuramatsu/portabook_ucm: ALSA UCM for portabook