龍芯 3A4000 安裝 Debian stable


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 的默認密碼通常是 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 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-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

依次選擇 AsiaShanghai

配置 hosts

查看你的 hostname :

# cat /etc/hostname

改變 hostname 可以參考 hostnamehostnamectl 命令。

如果為空,則默認 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 非常多,但是還是可以用的。

可以使用我打包的版本:

適用於 Debian stable

適用於 Loongnix20

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM