Ubuntu 18.04LTS+KXstudio升級到20.04LTS 指引


12/16/2021發佈

06/28/2022 更新 修正大小寫
06/26/2022 更新 修正Alsa音訊指令的筆誤

08/23/2022 稍微改良修辭
適用 MZ-530、MZX-550 的筆電

開始前的提醒:以下的步驟,有些是Ubuntu 20.04已知bug、Mate 已知bug、Hydrogen 的音色庫大幅減少等問題,還有 Ubuntu+KXstudio專業音樂創作ppa在 20.04會遇到的新狀況的綜合性solution 。不過其中有一個不可逆的事情是 如果在18.04時代,alsamixer(音訊系統底層最硬體的層次)可以任意的調整,在經過本身升級+ hacking以後,會變成稍微比較繁瑣的指令操作,才能真正改變、儲存alsamixer的參數。雖然alsamixer是很底層的東西,平常接觸不到,不過還是要提醒大家一下。除此之外,這個升級程序是很ok的。

準備階段

  • 打開Synaptic套件管理程式,把系統更新到最新
  • 移除timidity-daemon :未來 20.04 LTS版的timidity-daemon (timidity的常駐版)因有設定上的錯誤,會導致跟pulseaudio 或jack 的服務在啟動時發生競爭狀況,導致音訊系統無法啟動出聲音,解法有兩種:
    • 現在就移除它(現在幾乎沒有服務需要用到他了): sudo apt-get purge timidity-daemon
    • 修正設定bug:現在不移除timidity-demon,在升級好20.04LTS以後不要馬上重開機sudo nano /etc/group 找到 audio群組,剃除timidity-daemon ,也就是說不要讓它有audio權限:
      1. 找到裡面這一行 audio:x:29:pulse,timidity-daemon,urusername
      2. urusername 是你自己的帳號,請把前面的timidity-daemon 刪除掉就好,後面自己的帳號要保存好
      3. 改好的結果應該是如此: audio:x:29:pulse,urusername
      4. 然後就可以按組合鍵 ctrl+x ,退出nano選擇存檔
  • 升級到20.04以後,由於KXstudio 不再維護 Hydrogen ,所以原來安裝的 hydrogen-drumkits hydrogen-drumkits-effects 將會變成過期的套件會被移除,將來變成要安裝Ubuntu 版的Hydrogen,然而,KXstudio版的維護的版本的這裡個套件其實有非常大量的drumkit鼓組音色庫 (不同的hithop、電音的等等)就會因此消失了。所以有需要的話,需要手動備份 /usr/share/hydrogen/data/drumkits 這個目錄,升級完以後,安裝Ubuntu 版hydrogen的個套件檔,再把durmkits的備份還原回來就可以繼續使用了
  • 確保 / (根目錄)的空間足夠:根目錄/ 可能快要滿了導致空間不夠升級:
    • 有可能主要在於舊kernel太多,用 套件管理程式搜尋” linux image” ,找看看太舊沒在使用的 Linux 核心相關的套件將之移除(image、 modules 、header等)
    • 過去透過apt軟體安裝,可能有數gb的快取檔,可以用 sudo apt clean 來清除apt的快取
    • /var/log 裡面 可能有過期的巨大日誌紀錄檔案, 可以用 sudo rm來刪除,例如 sudo rm /var/log/kern.log /var/log/syslog
  • 安裝zynaddsubfx :這會導致zynaddsufx-git 移除(git版),曾經在2019年時zynaddsubfx有急速巨大的革新,很多人需要它,所以我們當時選擇預裝git的版本,不過現在已經在標準版了,KXstudio也不在提供git版,所以,請改裝zynaddsubfx ,方便升級

升級作業

sudo update-manager,按下升級吧
  1. 打開終端機,下這個指令 sudo apt update && sudo apt dist-upgrade
  2. 如果你有掛ppa 使用olive-editor、skype等,會發現有抱怨olive-editor 、skype 的訊息,大致上是說他們第三方ppa的簽證已經過期沒有更新了,可以先把他們的ppa的「打勾」取消掉(在synaptic裡面操作),然後重複前一步,直到程式沒有抱怨訊息為止,就可以進行下一步。
  3. sudo update-manager ,會出現視窗程式,按「升級」按鈕(如果有抱怨連線不上套件庫,可以回到synaptic 把連線到的套件庫主機改為美國Ubuntu 主機)
  4. Ubuntu 升級期間,第三方ppa來源會暫時被停用,我們可以在升級完成以後再手動重新啟用。這時可以先去吃個餐點或者去公園散步一段時間再回來(升級過程根據網路連線的速度,需要半小時~數小時不等),少數步驟才會需要你手動確認或者按下一步
  5. 中途會談出幾個對話窗尋求你的同意:
    1. 「是否覆蓋/etc/deault/useradd 」,這個建議選擇「保留」
    2. 是否覆蓋tlp.conf :如果有用Slimbook Battery4 的話選擇保留,不然的話可以安心覆蓋
    3. 「移除廢棄的軟體包」:先不用馬上作,因為有很多是KXstudio的第三方套件庫(裡面的東西甚至比21.04還新),事後把Kxstudio、Musicha、Steam等等的ppa加回來時,就不會是「廢棄的軟體包了」,我們可以再後處理階段再來「清理」,所以按「保留
  6. 這時候root 分割區可能又更擠了,那就sudo apt clean
  7. 更新完畢,再重開機之前我們還要作一些事情
先按「保留」,作業系統更新完的後處理階段再來清理

更新完,在重開機前要要作的事

  • 避免pulseaudio無限重啟問題 :Ubuntu 20.04的新版Pulseaudio 會使得Pulseaudio到jack的橋接永遠關不掉,這會讓一些需要jack極端低延遲音訊的情境有負面狀況,下這個指令,就可以回覆跟18.04 時一樣pulseaudio可開可關的狀況 systemctl --user mask pulseaudio.socket
  • 補安裝套件: sudo apt install pavucontrol linux-image-lowlatency-hwe-20.04 這會連帶安裝55.11 的新核心(但是預裝的5.11甚至到5.13都有重開機/關機時,開機動畫會delay 10多秒才會關機的bug,要未來的5.14才能解決,可以裝了以後,但是保留Ubuntu 18.04時代的 5.4以前的核心來使用) ,另外pavucontrol是新的控制pulseaudio的程式
  • 升級到20.04 系統底層的核心ALSA音訊機制會有每次開機都重設的狀況,這可能跟新版pulseaudio 的互動有關系,另外Ubuntu Mate 20.04版有media-keys 的 bug(鍵盤Fn控制音訊的幾個組合鍵按下去,雖有OSD訊息,但是卻沒有實際驅動該作的行為),我們提供以下解決方案:
    • 把alsamixer的混音設定紀錄下來:
      alsactl –file ~/.config/asound.state store
    • nano ~/.bashrc 在最尾巴加上這三行:
    alsactl --file ~/.config/asound.state restore  
    gsettings set org.mate.SettingsDaemon.plugins.media-keys active false
    gsettings set org.mate.SettingsDaemon.plugins.media-keys active true
  • 接續前項,編輯完,按ctrl+x退出時,程式會問要不要存檔?回答 y 。解釋這三行,這讓每一次你登入系統時,第一行會從之前儲存過的alsamixer的設定還原回來,後兩行則是讓media-keys 先停用然後再啟用,就會正常運作了。
    • ps. 如果你忘記做這件事而已經重新開機了,那你需要打開 alsamixer重新設定要特別留意Headphone或者speaker 其一的預設音量為0而且被靜音了(mute) ,可以插上耳機線來幫放聲音進行確認,需要按m 反靜音回來,然後把Master Headphone Speaker 都把訊號調到最大,確定auto-muted是Enabled ,然後再進行前一項描述的動作
  • 恢復KXtudio套件庫:
    1. 清除舊的kxstudio套件庫來源:sudo apt-get purge kxstudio-repos
    2. 重裝kxstudio repos :依照KXstudio 官網說明1說明2, 執行動作,以下是以10.0.3版套件庫為例的範例(這只是範例,實際上請依照KXstudio 最新的更新指示來進行)
sudo apt-get install apt-transport-https gpgv && sudo dpkg --purge kxstudio-repos-gcc5 && wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_10.0.3_all.deb && sudo dpkg -i kxstudio-repos_10.0.3_all.deb && sudo add-apt-repository ppa:kxstudio-debian/ubuntus && sudo apt-get update
  • 啟動Synaptic ,按「標記所有升級」,會發現alsa-base等會更新成KXstudio patch過的版本,就可以按下「套用」

後處理

  1. 恢復數個第三方ppa :使用Synaptic 套件管理程式,下拉選單選擇設定-套件庫,在「其他軟體」的分頁裡面,以下幾個可以恢復(標示「源碼」不用啟用):
    • cinelella-gg (cinelella 專業影像剪輯軟體):https://cinelerra-gg.org/download/pkgs/ub18
    • repo.steampowered.com (steam遊戲平台官方ppa): https://repo.steampowered.com/steam/
    • wine官方ppa: https://dl.winehq.org/wine-builds/ubuntu/
    • 即時戰略遊戲0.a.d 的官方ppa :http://ppa.launchpad.net/wfg/0ad/ubuntu
  2. 承1. 設定以後,按下「重新載入」,如後按下「標記所有升級」會發現有一些東西可以更新,然後可以安裝kxstudio-recommended-audio-plugins kxstudio-recommended-audio kxstudio-recommended-all 等等套件回來(winehq-staging 有可能會因為相依性暫時需要移除,不過你可以稍後再安裝回來),完成以後按「套用」,也把kxstudio 、wine-staging 等等升級到最新的版本
  3. 這時候就可以安全地移除不再需要的軟體套件了: sudo apt autoremove
  4. 恢復多點觸控手勢的程式fusuma :sudo gem install fusuma ,然後登出桌面再登入,或者在終端機輸入 fusuma & ,再關閉終端機,就會發現多點觸控手勢功能恢復了
  5. 安裝hydrogen鼓機音源回來:先移除既有的舊版hydrogen套件
    1. 先點選安裝hydrogen-data套件,才能再點遠hydrogen套件,把hydrogen相關的套件都安裝起來(hydrogen-doc 是文件,看自己有無需要,可自行評估)
    2. Hydrogen 把備份的hydrogen音色庫複製回來(要用sudo喔)
  6. steam :安裝steam-launcher 套件就會回復了