Upgrade to elementary OS 5.0 Juno

下書きが2019-05-14T15:38:04+09:00 となっているので1年以上塩漬けされた記事である😨 (2020/06/05)

elementary OSはUIが綺麗でかつ動作も軽快なので、5年ほど愛用している。今回、新バージョンの5.0Junoが出てしばらく経っていたのでアップグレードすることにした。

Unetbootinを利用してelementary OS Junoにアップグレードする。

実際はクリーンインストールなのだが、elementary OS自体は公式でアップグレードパスを用意していない。 /home/を別パーティションに分けていたので、データ領域である/homeを残してそれ以外を新しい環境に移行する。

環境

  • Dell XPS 13 9360
  • OS: elementary OS 0.4 Loki → elementary OS 5.0 Juno

パーティション

Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1   42G   17G   23G  42% /
/dev/nvme0n1p2  177G  151G   17G  90% /home

今回 / の領域をフォーマットして5.0 Junoをクリーンインストールし、 /homeには個人の設定(XDG_CONFIGdotfiles)やドキュメント類などが置いてあり、ここは引き続き利用する。

インストールにはUnetbootinを利用した。

Unetbootinについてはこちらをご参考に↓

アプリケーションのインストール

/home以外はクリーンインストールなので、apt/usr/local/binでインストールしていたものは再インストールする必要がある。

Ansibleでローカル環境の再構築

Ansibleでローカル環境の再構築を楽に行えるようにしたかったので、アプリケーションのリスト程度だがdotfiles/.config/ansible/playbook.ymlに残している。

ansible-playbookコマンドでリポジトリの追加、パッケージインストールを下記のコマンドで行う。

ansible-playbook ~/.config/ansible/playbook.yml -K

インストールしたアプリケーション一覧

ブラウザ

  • Google Chrome
    • メインブラウザ
    • 手動でインストール
  • Chromium
  • Firefox

パスワードマネージャ

  • bitwarden
    • snapでインストール可
    • Chrome拡張もある

画像編集系

  • Gimp
    • 画像編集
  • Inkscape
    • ベクタ系の画像編集

ターミナル/CLI環境

  • byobu
    • tmuxのラッパー
  • guake
    • ドロップダウンタイプのターミナル
  • git
    • バージョン管理
  • tig
    • gitのCUIクライアント
  • ranger
    • VimライクなCUIファイラ
  • vim-gnome
    • GVim。クリップボード拡張入りのVimも入る。
  • xclip
    • CLIクリップボードマネージャ

チャット

  • Slack
    • 仕事で使うチャットアプリ
  • Line
    • chrome拡張

デスクトップ拡張/GUI

  • numix-icon-theme

    • お洒落なデスクトップアイコンセット
  • elementary-tweaks

    • elementaryOSのデスクトップの詳細設定
  • fcitx-mozc

    • 日本語入力
  • xbindkeys

    • 任意のコマンドにショートカットを割り当てる
  • Fusuma

  • Dropbox

    • デバイス間のファイル共有

設定編集

システム設定

  • synaptic

    • aptのGUIフロントエンド
  • gdebi

    • debファイルの依存関係解決
  • fwupd

    • BIOSやデバイスのファームウェアのアップデート。uefiのみで利用可
  • snapd

    • Snapを使えるようにする
  • powertop

    • 消費バッテリーのモニタリング
  • tlp

    • 節電用ユーティリティ
  • baobab

    • ディスク管理
  • gparted

    • パーティション管理
  • etckeeper

    • /etcのバックアップ
  • dconf-editor

    • dconf利用アプリケーションの設定値変更
  • gconf-editor

    • gconf利用アプリケーションの設定値変更

その他

  • playonlinux
  • calibre

オフィス

  • libreoffice

動画・音楽

  • Spotify
    • 音楽プレイヤー
  • VLC
    • 動画プレイヤー

デスクトップキャプチャ

  • gyazo
    • キャプチャした動画や画像をホスティング
  • scrot
    • スクリーンショット
  • byzanz
    • Gifアニメーションでキャプチャ
  • obs-studio
    • デスクトップ配信

リモートデスクトップ

  • remmina

開発用

  • docker-ce
  • jq
  • direnv
  • make
  • automake
  • autoconf
  • pkg-config
  • tree
  • sassc
  • gcc
  • python-pip
  • libreadline-dev
  • shellcheck
  • global
  • awscli
  • libmysqlclient-dev
  • mysql-server
  • virtualbox
  • virtualbox-ext-pack
  • ngrok

grubの設定

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=5
GRUB_RECORDFAIL_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pci=noaer resume=UUID=9844e045-cffd-4fac-806d-9b1f3f430edf zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=25 i915.enable_fbc=1 i915.enable_psr=1 i915.disable_power_well=0"
GRUB_CMDLINE_LINUX=""

hibernateオプションの設定

以前の方法のとおりだと上手くいかずにハマった。
resume=UUID=9844e045-cffd-4fac-806d-9b1f3f430edfのように必ず、UUIDで指定をすること。

ここで注意なのは、initramfs の resume ファイルに設定したものと同じ文字列を設定する必要があります。同じパーテーションだからといって、resume=/dev/sdaX のように違う指定の方法をすると動作しません。initramfs の方で UUID で指定したら、grub の設定も UUID で指定してください。

zswapの設定

メモリが8GBと開発機としては少し物足りないのでzswapを設定しておく。

/etc/default/grub/etc/initramfs-tools/modulesを修正する。

こちらのリンクを参考に設定した

Zswapを有効にして少ないメモリを乗り切ろう - Days of Speed(2018-02-06)

UEFIの設定

最初、BIOSブートでインストールしてしまったため、あとからUEFIブート出来るように/boot/efiにgrubをインストールした。

  1. Ubuntuの入ったLiveUSBを作り、BIOSの設定を弄ってUEFIモードでLiveUSBのUbuntu起動
  2. gpartでパーティションをfat32で切る
  3. elementaryOS側(PC側)の各デバイスをLiveUSB側からmountし、grubインストール
  4. /boot/efiのマウント指定を/etc/fstabに記述して保存
  5. 再起動するとUEFIモードでelementary OSが起動する

このやり方覚えておくと、間違って/boot削除したとしても大丈夫。

詳しくはこちらの記事参照。

fwupdでファームウェアの最新化

fwupdでデバイスの更新、取得を行う

最近はSnapでインストールできるのようになっている模様

ネットワーク周りの対応

ネットワークがブツブツ切れるような問題になった際に行った対応

ath10k-firmwareの更新

XPS 13シリーズで不評なKiller 1535 Wirless Adapterのファームウェア(ath10k/QCA6174)をGitHubから取得して更新する

$ git clone https://github.com/kvalo/ath10k-firmware

リポジトリにあるファイルを/lib/firmware配下のものと置き換える。 参考: Dell XPS 13 9360 : Ubuntu Wifi disconnection

よくやってる処理なのでMakefileにしてリポジトリのルートに配置して更新している。

$ make backup_QCA6174 # /lib/firmware/ath10k/QCA6174をバックアップ
$ make update # リポジトリから取得したものと差し替え

カーネルパラメータの見直し

GRUB_CMDLINE_LINUX_DEFAULTカーネルパラメータに省電力設定が入っている場合pcie_aspm=offにしておくとネットワーク周りが安定することある。