2022-01-17
- 版權宣告:原創文章,未經博主允許不得轉載
3A5000 開始,龍芯轉向 loongarch ,新的架構雖然甩掉了歷史包袱,但也需要一段時間來積累生態。在這半年多的時間裡, loongnix20 loongarch64 進展飛速。如今龍芯的二進位制翻譯已經可以執行憤怒的小鳥等耳熟能詳的遊戲、PhotoShop CS6 等常用的 Windows 軟體,而原生的(網頁)微信和(第三方)qq 也為 loongarch 的日常使用加了一把勁。而 loongnix20 mips64el 這邊則略顯慘淡,已經有好幾個月沒有收到更新了,於是我不得不轉向對龍芯 3A4000 及其之前的 cpu 支援改觀巨大的 Debian 。
上次提到,我們可以使用 debootstrap 獲得一個根檔案系統並以此為基礎安裝我們最終的 Debian 系統。由於核心不相容,我們還可以通過替換核心包來解決這一問題。但是當時是從 Fedora28 上開始,如今 Fedora28 已經退出歷史舞臺,我們可以從 Loongnix20 mips64el 開始。
由於 Loongnix20 本身是基於 Debian10 ,所以從 Loongnix20 開始還是有一些好處的。我本來想用 netboot ,這個據說是可以正常使用的,但是在我這裡一直卡載入核心,所以還是簡單直觀 debootstrap 吧。
關於 debootstrap 的具體情況參見 Debian Wiki
準備安裝環境
準備 LiveCD
Loongnix20 的映象可以從這裡,直接下載,當前最新依然是 rc2 ,使用 Win32 Disk Imager 或者 dd 命令 寫入你喜歡的U盤即可。
如果是 3A4000 之前的機器可能需要考慮一下U盤的相容性問題。另外 3A3000 之前的機器似乎並不被 Loongnix20 支援,此時我們需要重新考慮使用 Fedora28 ,推薦 mate live 7.2 ,製作方法是一樣的。
引導並安裝 debootstrap
首先引導 LiveCD 進入桌面。
Loongnix20
Loongnix20 rc2 的映象站地址是錯誤的,需要手動更改配置。
首先切換到 root 使用者,密碼為 loongnix
:
$ su
然後編輯 sources.list
:
# vim /etc/apt/sources.list
同步映象並安裝 debootstrap :
# apt-get update
# apt-get upgrade
# apt-get install debootstrap
如果沒有磁碟分割槽工具可以安裝一個:
# apt-get install gparted
Fedora28
更改 root 密碼,後面可能會用到:
$ sudo passwd
直接同步映象並安裝 debootstrap :
$ sudo dnf upgrade
$ sudo dnf install debootstrap
如果沒有磁碟分割槽工具可以安裝一個:
$ sudo dnf install gparted
準備磁碟分割槽
分割槽請提前用 gparted 等圖形化工具或更高階和靈活的命令列工具完成,下面所示是一個相對通用的分割槽示例,其中 /dev/sda1
為 boot 分割槽, /dev/sda2
為根目錄, /dev/sda3
為 home 目錄, /dev/sda4
作為交換分割槽:
# fdisk -l
Disk /dev/sda: 447.13 GiB, 480103981056 bytes, 937703088 sectors
Disk model: UNIC2 S100-480
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
Device Start End Sectors Size Type
/dev/sda1 34 2099199 2099166 1G EFI System
/dev/sda2 2099200 211814399 209715200 100G Linux filesystem
/dev/sda3 211814400 903874559 692060160 330G Linux filesystem
/dev/sda4 903874560 937703054 33828495 16.1G Linux swap
後面的操作提權到 root 進行:
$ su
LiveCD 的預設密碼通常是 loongson
或 loongnix
,如果更改過 root 密碼則使用修改後的密碼。
掛載磁碟分割槽:
# mkdir /mnt/debian-stable
# mount /dev/sda2 /mnt/debian-stable
# mkdir /mnt/debian-stable/boot
# mkdir /mnt/debian-stable/home
# mount /dev/sda3 /mnt/debian-stable/home
# mount /dev/sda1 /mnt/debian-stable/boot
安裝基本的作業系統
debootstrap
# debootstrap --arch mips64el stable /mnt/debian-stable http://ftp2.cn.debian.org/debian
掛載額外需要的目錄
# mount --bind /sys /mnt/debian-stable/sys
# mount --bind /proc /mnt/debian-stable/proc
# mount --bind /dev /mnt/debian-stable/dev
拷貝 efi 引導
由於沒有找到龍芯 mips64el 的 efi 屬於哪個軟體包(loongarch64 屬於 grub-efi-loongarch64),所以我們直接拷貝 LiveCD 啟動後 /boot 目錄下的二進位制到欲安裝系統的 /boot 目錄。
拷貝 /boot 中除 vmlinuz* 、 initrid.ima* 、 System.map* 、 config-* 外的檔案:
# cp -r /boot/boot /mnt/debian-stable/boot/
# cp -r /boot/grub /mnt/debian-stable/boot/
# cp -r /boot/EFI /mnt/debian-stable/boot/
# cp /boot/boot.cfg /mnt/debian-stable/boot/
# cp /boot/grub.cfg /mnt/debian-stable/boot/
# cp /boot/grub.efi /mnt/debian-stable/boot/
chroot 到新的根目錄
# chroot /mnt/debian-stable /bin/bash
設定 root 密碼
# passwd root
加入 non-free 源
更改 /etc/apt/sources.list
,這裡給出一個示例:
deb http://ftp2.cn.debian.org/debian stable main non-free
預設安裝了 nano 和 vi 文字編輯器。
另外這裡複製貼上了 tuna 源對 bullseye 的完整配置:
# 預設註釋了原始碼映象以提高 apt update 速度,如有需要可自行取消註釋
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
驗證網路並重新整理軟體包快取
# ping debian.com
# apt-get update
安裝 grub2
# apt-get install grub-common
安裝核心
Debian 的核心理論上是可以直接用的,但是由於核心模組全部安裝後 initrd.img 過大,啟動時會出現 out of memory 或者直接卡死的情況。按後面的方法安裝,預設情況下,不安裝圖形介面時 initrd.img 大概有 25M (此時可以正常引導),安裝圖形介面後為 52M 。所以這裡我們同時安裝 Loongnix20 的核心,作為預設核心不能啟動時的備份。
從 Loongnix20 的映象下載 Loongnix20 的核心軟體包並安裝,如果有更新的請使用更新的:
# apt-get install wget
# mkdir /home/tmp
# cd /home/tmp
# wget <loongnix kernel package link>
# apt-get install ./<loongnix kernel package name>
安裝 Debian 的預設核心:
# apt-get install linux-image-loongson-3
安裝驅動。如果是 amd 獨顯,這步安裝包含獨顯驅動:
# apt-get install firmware-linux-free firmware-linux-nonfree
手動更新 grub 配置,安裝核心的時候其實會自動更新一次:
# grub-mkconfig -o /boot/EFI/BOOT/grub.cfg
配置 fstab
通過 blkid 檢視 uuid :
# blkid
/dev/sda1: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext3" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda2: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda3: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="00000000-0000-0000-0000-000000000000"
/dev/sda4: UUID="XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" TYPE="swap" PARTUUID="00000000-0000-0000-0000-000000000000"
配置 fstab ,這裡給出一個示例:
# UNCONFIGURED FSTAB FOR BASE SYSTEM
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX / ext4 defaults,noatime 0 1
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /boot ext3 defaults,noatime 0 2
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /home ext4 defaults,noatime 0 2
UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX none swap defaults 0 0
安裝和配置 locale
# apt-get install locales
# nano /etc/locale.gen
取消註釋 /etc/locale.gen 中需要的 locale ,這裡提供一個示例:
en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GB18030 GB18030
zh_CN.UTF-8 UTF-8
應用之:
# locale-gen
配置預設 locale :
# nano /etc/locale.conf
這裡給出 /etc/locale.conf 的中文配置:
LANG=zh_CN.UTF-8
配置 hosts
檢視你的 hostname :
# cat /etc/hostname
如果為空,則預設 hostname 為 localhost ,這裡設 hostname 為 loongson-pc
, 在 /etc/hosts 中新增一條配置:
127.0.1.1 loongnix-pc.localdomain loongnix-pc
建立新使用者
新增一個喜歡的使用者, -m
選項為這個使用者建立預設的使用者目錄:
# useradd -m myuser
我們預設這個新建立的使用者名稱為 myuser
。
設定新使用者的預設 shell :
# usermod -s /bin/bash myuser
設定密碼:
# passwd myuser
安裝 sudo
# apt-get install sudo
將前面建立的新使用者加入 sudo 使用者組:
# usermod -a -G sudo myuser
執行 visudo
可以看到預設的配置,其中部分摘錄如下:
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
可以看到 sudo 使用者組是被允許執行 sudo
命令的。
重啟系統
此時對基本作業系統的安裝已經完成,可以重啟進入新的 Debian 系統了。
其實也可以不重啟,在 chroot 的環境裡裝,特別是使用 wifi 的情況下,在命令列介面配置相對複雜。如果不重啟,直接跳到“安裝圖形介面”部分即可。
退出 chroot :
# exit
重啟:
# reboot
重啟後將進入到文字命令列的登陸介面,此時可以繼續用 root 登陸,也可以用普通使用者登陸。
登陸後檢查網路。
有線聯網
需要手動執行 dhcp :
# dhclient
Wifi
可以使用配置比較簡單的 iwd
,注意它依賴 4.20+ 的核心,也就是說 Loongnix20 的核心(4.19)用不了。
# apt-get install iwd
# systemctl start iwd.service
# iwctl
安裝圖形介面
後面依然預設為 root 使用者。
開箱即用的 KDE Plasma
# apt-get install task-kde-desktop
將安裝包括 sddm 、 liberoffice 等配套的軟體。
開箱即用的 MATE desktop environment
# apt-get install task-mate-desktop
將安裝包括 lightdm 、 liberoffice 等配套的軟體。
簡潔的 KDE Plasma
如果不想裝太多多餘的自帶軟體,可以部分安裝。
plasma-desktop 和 sddm 是基本的兩個包, plasma-nm 則是網路管理:
# apt-get install plasma-desktop sddm plasma-nm
下面列舉一些 plasma 上的必備軟體:
- dolphin 預設的檔案管理器
- konsole 預設的終端模擬器
- okular 預設的文件檢視器
- ark 預設的壓縮軟體
- kde-spectacle 預設的截圖工具(當然 flameshot 也很棒)
- kate 預設的文字編輯器(雖然通常是 kwrite)
- kcalc 預設的小計算器
- plasma-browser-integration 瀏覽器整合(需要瀏覽器安裝同名外掛)
- phonon 媒體控制
安裝所有:
# apt-get install dolphin konsole ark kde-spectacle kate kcalc plasma-browser-integration
phonon 是預設安裝了的,它有兩個後端,分別為 vlc 和 gstreamer 。預設安裝的是 phonon4qt5-backend-vlc ,如果需要可以換成 phonon4qt5-backend-gstreamer :
# apt-get install phonon4qt5-backend-gstreamer
# apt-get remove phonon4qt5-backend-vlc
注意兩者至少存在一個,所以先 install 後 remove 。
重啟
如果你在前面重啟過一次了,可以通過 systemctl
啟動相應的登陸管理器來登陸圖形介面。
如果你能現在還在 chroot 環境,可以按照前面提到的方法退出 chroot 環境並重啟進入到新安裝的 Debian 上,順利的話你應該能直接進入到圖形介面並使用普通使用者(而不是 root 使用者)登陸了。如果預設核心無法啟動請在 grub 介面選擇 Loongnix20 的核心。
後面的內容請在圖形介面下完成。
輸入法
這裡推薦 fcitx5 並以 KDE Plasma 為例,其他桌面可以參考 Wiki
安裝 fcitx5
$ sudo apt-get fcitx5 fcitx5-pinyin kde-config-fcitx5 fcitx5-frontend-gtk2
kde-config-fcitx5 是和 KDE Plasma 配套的配置程式。
除了 fcitx5-frontend-gtk2 ,其他依賴的包應該都預設安裝了。
設定預設輸入法
Debian 使用 im-config 來配置預設輸入法, im-config 依賴 zenity 並沒有被預設安裝,在終端執行 im-config
應該可以看到相關報錯。
安裝 zenity :
$ sudo apt-get install zenity
使用 im-config 配置:
$ im-config
選擇 fcitx5 即可。
其他主題
Debian 還打包了一款主題:
$ sudo apt-get install fcitx5-material-color
可以從上游頁面瞭解相關的資訊。
如果有程式用不了輸入法
可以執行下面的命令輔助查詢問題所在:
$ fcitx5-diagnose
瀏覽器
龍芯瀏覽器
可以安裝 lbrowser v3 ,無法安裝 v2 (依賴關係不滿足)。
在這裡下載最新 for mips 的 deb 包並手動安裝即可。
Firefox
可以正常使用,效能不及 lbrowser 。
$ sudo apt-get install firefox-esr
如果有 amd 獨顯,可以強制開啟硬體加速,不然比較難用。
強制使用硬體加速
開啟 Firefox ,位址列鍵入 about:config
,有警告接受即可。
根據 Mozilla Wiki ,搜尋並修改下面幾條設定,將其設為 true :
- webgl.force-enabled
- webgl.msaa-force
- layers.acceleration.force-enabled
作用分別為:強制啟用 WebGL 、強制啟用 WebGL 抗鋸齒、強制啟用硬體渲染(無視黑名單/白名單)。由於黑名單/白名單的存在,即使在設定中啟用了硬體加速, Firefox 也會在大部分情況用軟體渲染。
設定完成後請重啟 Firefox 。
WebGL Aquarium 是一個小測試,可以用來對比強制開啟硬體加速前後的效能變化。
硬體解碼
注意這裡的硬體解碼主要依賴的是 amd 的獨顯,硬解依賴的驅動 mesa-vdpau-drivers
通常已經預設安裝了。
古老的 loongnix 顯示卡支援列表 附在這裡(應該已經沒啥參考價值了)。
如果沒有預設安裝:
$ sudo apt-get install mesa-vdpau-drivers
安裝 vdpauinfo 和 vainfo 檢視硬體編解碼資訊:
$ sudo apt-get install vdpauinfo vainfo
$ vdpauinfo
$ vainfo
安裝 radeontop 檢視顯示卡的使用情況:
$ sudo apt-get install radeontop
$ sudo radeontop
視訊播放
vlc
$ sudo apt-get install vlc
smplayer
$ sudo apt-get install smplayer
設定硬解
找到設定中的 General 選項卡,在 General 中選擇 Multimedia engine 為 mplayer ,在 Video 中選擇 Output driver 為 vdpau 。
mpv
$ sudo apt-get install mpv
音樂播放
audacious
$ sudo apt-get install audacious
網易雲音樂
可以使用 netease-cloud-music-gtk ,根據其 readme 自行編譯即可,也可以下載我編譯好的 deb 包。
這個包不能在 loongnix20 上使用,如果需要在 loongnix20 上使用可以下載這個。
Debian 安裝:
$ sudo apt-get install ./netease-cloud-music-gtk_1.2.2_mips64el.deb
Loongnix20 安裝:
$ sudo apt-get install ./netease-cloud-music-gtk_1.2.2_lnd_mips64el.deb
安裝 osdlyrics 支援桌面歌詞:
$ sudo apt-get install osdlyrics
由於缺少依賴包(好奇為啥會缺), osdlyrics 會無法啟動,安裝缺少的依賴包:
$ sudo apt-get install python3-chardet
啟動 netease-cloud-music-gtk ,設定開啟桌面歌詞,播放音樂時再啟動 osdlyrics 即可顯示歌詞。
即時通訊
icalingua
icalingua 是一個基於 Electron 的超棒的第三方 QQ ,現在支援 loongnix20 ,它在 Debian 也能很好地執行。
本專案希望為 Linux 打造一個會話前端框架,通過實現 Adapter 後端介面來適配各種聊天平臺。目前已經擁有基於 oicq 以及 Icalingua 自有協議的後端
在專案 release 下載 mips64el 架構的包,當前最新是 2.4.5 ,則選擇 icalingua-2.4.5-mips64el.tar.xz 。
下面解壓並安裝之,後面提供一段示例,請根據實際情況具體修改。
解壓並移動到自定義的位置:
$ tar xvf ./icalingua-2.4.5-mips64el.tar.xz
$ sudo mv ./icalingua-2.4.5-mips64el /opt/icalingua
在 2.4.5 版本中,此時二進位制位置為 /opt/icalingua/electron
,圖示位置為 /opt/icalingua/resources/app/dist/electron/static/icons/512x512.png
。
桌面圖示將建立在 /usr/local/share/applications/
,如果沒有該目錄需要建立該目錄:
$ sudo mkdir /usr/local/share/applications
$ sudo touch /usr/local/share/applications/icalingua.desktop
根據作者的指導,可以得到 calingua.desktop 的內容如下:
[Desktop Entry]
Categories=chat;Network;
Exec=/opt/icalingua/electron %u
Icon=/opt/icalingua/resources/app/dist/electron/static/icons/512x512.png
Name=Icalingua
Comment=A Linux client for QQ and more
StartupNotify=true
Terminal=false
Type=Application
至此安裝完成,可以點選圖示使用了。
如果需要解除安裝,執行以下命令:
$ sudo rm /usr/local/share/applications/icalingua.desktop
$ sudo rm -r /opt/icalingua
telegram
安裝 telegram-desktop 一定到在 sources.list 裡放上 backports 源,參考 tuna 源的完整配置,因為 main 裡的版本實在太低了,是不能登陸的,你需要安裝 backports 的版本。直接 apt-get install telegram-desktop
不知道為啥給我裝了 main 裡低版本的。
檢視所有可用的版本:
$ apt-cache search telegram-desktop
Package: telegram-desktop
Version: 3.1.1+ds-1~bpo11+1
Installed-Size: 94864
Maintainer: Nicholas Guriev <guriev-ns@ya.ru>
Architecture: mips64el
...省略
Package: telegram-desktop
Version: 2.6.1+ds-1+deb11u1
Installed-Size: 86397
Maintainer: Nicholas Guriev <guriev-ns@ya.ru>
Architecture: mips64el
...省略
檢視上面假設的輸出,請安裝版本高的,比如 3.1.1+ds-1~bpo11+1
:
$ sudo apt-get install telegram-desktop=3.1.1+ds-1~bpo11+1
QQ for linux
linuxqq,你用不用吧。
辦公套件
這部分就不多說了,直接 wps 。
直接從官網下載安裝即可。
假設下載的安裝包為 wps-office_11.1.0.10702_mips64el.deb :
$ sudo apt-get install ./wps-office_11.1.0.10702_mips64el.deb
還需要安裝缺少的字型,字型從這裡下載,雙擊每個檔案安裝即可。
分割槽工具
KDE Partition Manager
KDE Partition Manager 是 KDE Plasma 預設的分割槽工具。
$ sudo apt-get install partitionmanager
GNOME Partition Editor
GParted 其實沒啥好說的,應該是好多人在 Linux 上接觸的第一個圖形化分割槽工具。
$ sudo apt-get install gparted
Markdown 編輯器
不知道為啥 ghostwriter 沒有,所以這裡只能介紹 retext 。一個簡潔的編輯器吧,反正就圖個預覽。本來 kate 也可以有預覽,但是這個特性似乎沒有開啟。
$ sudo apt-get install retext
OBS Studio
可以正常使用,直接安裝即可。偶現音訊採集的故障,具體不知道如何解決。
$ sudo apt-get install obs-studio
JetBrains 全家桶
參見狗剩百科 ,這裡就不再贅述了。
by SDUST weilinfox