龍芯 3A4000 安裝 Debian stable

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 的默認密碼通常是 loongsonloongnix ,如果更改過 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 //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 //ftp2.cn.debian.org/debian stable main non-free

默認安裝了 nano 和 vi 文本編輯器。

另外這裡複製粘貼了 tuna 源對 bullseye 的完整配置

# 默認注釋了源碼鏡像以提高 apt update 速度,如有需要可自行取消注釋
deb //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
# deb-src //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free

deb //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
# deb-src //mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free

deb //mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src //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 <[email protected]>
Architecture: mips64el
...省略

Package: telegram-desktop
Version: 2.6.1+ds-1+deb11u1
Installed-Size: 86397
Maintainer: Nicholas Guriev <[email protected]>
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