2022-01-17
2022-06-04 更新 v0.0.3
- 版權聲明:原創文章,未經博主允許不得轉載
3A5000 開始,龍芯轉向 loongarch ,新的架構雖然甩掉了歷史包袱,但也需要一段時間來積累生態。在這半年多的時間里, loongnix20 loongarch64 進展飛速。如今龍芯的二進制翻譯已經可以運行憤怒的小鳥等耳熟能詳的游戲、PhotoShop CS6 等常用的 Windows 軟件,而原生的(網頁)微信和(第三方)qq 也為 loongarch 的日常使用加了一把勁。而 loongnix20 mips64el 這邊則略顯慘淡,已經有好幾個月沒有收到更新了,於是我不得不轉向對龍芯 3A4000 及其之前的 cpu 支持改觀巨大的 Debian 。
當然,當前 3A5000 因為沒有支持而不能安裝 Debian ,但是 Loongnix20 for Loongarch64 的很多包已經趕上或超過 Debian stable 。
上次提到,我們可以使用 debootstrap 獲得一個根文件系統並以此為基礎安裝我們最終的 Debian 系統。由於內核不兼容,我們還可以通過替換內核包來解決這一問題。但是當時是從 Fedora28 上開始,如今 Fedora28 已經退出歷史舞台,我們可以從 Loongnix20 mips64el 開始。另外, Debian 的內核現在可以跑地非常好。
由於 Loongnix20 本身是基於 Debian10 ,所以從 Loongnix20 開始還是有一些好處的。我本來想用 netboot ,這個是可以正常使用的,但是似乎需要 AMD 獨顯,而我手頭的 AMD 獨顯恰好不能起來,所以還是簡單直觀 debootstrap 吧。另外,把文中的 stable 改為 sid ,即可安裝 Debian sid ,因為它們的步驟是完全一樣的。
關於 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 用戶,密碼為 loongson
:
$ 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 的內核軟件包並安裝,如果有更新的請使用更新的:
- linux-image-4.19.0-13-loongson-3_4.19.190-rc2.lnd.1_mips64el.deb
- linux-headers-4.19.0-13-loongson-3_4.19.190-rc2.lnd.1_mips64el.deb
- linux-kbuild-4.19_4.19.190-rc2.lnd.1_mips64el.deb
其中 linux-kbuild 被 linux-headers 依賴,所以我們安裝它們后可以用 apt-mark 把它設成自動安裝。
# apt-get install wget
# mkdir /home/tmp
# cd /home/tmp
# wget <loongnix kernel package link>
# apt-get install ./<loongnix kernel package name>
# apt-mark auto linux-kbuild-4.19
安裝 Debian 的默認內核:
# apt-get install linux-image-loongson-3
安裝驅動。如果是 amd 獨顯,這步安裝包含獨顯驅動:
# apt-get install firmware-linux-free firmware-linux-nonfree
配置 initramfs.conf 。我們需要將配置改成只包含需要的模塊:
# vim /etc/initramfs-tools/initramfs.conf
找到一行 MODULES=most
配置,將其改成下面的:
MODULES=dep
重新生成 initrd.img :
# update-initramfs -k all -c
檢查其生成的大小,應該小了不少。
最后手動更新 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
本地化
首先配置 locales ,該包默認未安裝。
# apt-get install locales
# sudo dpkg-reconfigure locales
按提示選擇需要的 locale ,如果是 tui 圖形界面,則用空格取消或選中。這里提供一個示例:
en_US.UTF-8 UTF-8
zh_CN GB2312
zh_CN.GB18030 GB18030
zh_CN.UTF-8 UTF-8
確定后根據提示選擇默認 locale ,選擇中文:
zh_CN.UTF-8
再次確定,將自動完成配置。
然后配置時區:
# sudo dpkg-reconfigure tzdata
依次選擇 Asia
和 Shanghai
。
配置 hosts
查看你的 hostname :
# cat /etc/hostname
改變 hostname 可以參考 hostname
和 hostnamectl
命令。
如果為空,則默認 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 。
Cutefish
可以參考我的另一篇博客
重啟
如果你在前面重啟過一次了,可以通過 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
該項目已經不再維護,如果需要代碼可以查看我的 fork ,可以在這里下載我保存的軟件包,如果你也有保留它之前發布的軟件包,也可以分享在評論區。另外可以考慮 Icalingua plus plus ,但是它並不提供 mips64el 和 loongarch64 體系結構的二進制。
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
微信 WeChat
參考 AUR 的打包,但是 mips64el 架構的版本似乎一直沒有后續更新,所以版本落后 X86_64 非常多,但是還是可以用的。
可以使用我打包的版本:
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,你用不用吧。
團隊協作
飛書
飛書的 mips64el 版本可以直接在官網下載,其支持幾乎所有的國產架構,非常好用。
辦公套件
這部分就不多說了,直接 wps 。
直接從官網下載安裝即可。
假設下載的安裝包為 wps-office_11.1.0.10702_mips64el.deb :
$ sudo apt-get install ./wps-office_11.1.0.10702_mips64el.deb
還需要安裝缺少的字體,字體從這里下載,雙擊每個文件安裝即可。
藍牙連接
藍牙套件是隨 KDE Plasma 默認依賴安裝的,但是首次使用可能出現可以配對但無法連接的情況,因為 PulseAudio 有模塊未載入:
$ pactl load-module module-bluetooth-discover
分區工具
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