龍芯fedora28日常生存指南

八衛門狸發表於2021-01-30

2021-01-30

v0.0.5

從0.0.1開始改了非常多,一月餘時間的花費渴望為其他人提供一點幫助,能夠快速上手。

這主要是這一年來我從3B1500到3A4000再到福瓏2的日常使用記錄,是之前四篇隨筆的彙總和補充,也是嘗試著對 龍芯+Fedora28社群發行版 能幹的事情的進行發掘。這也就是說,它主要適用於使用龍芯3A4000的主機,部分適用於更老的型號。不適用不是說不能用,只是執行太慢了。

作為愛好者,我一定是使用龍夢的Fedora28作為作業系統,而暫時不考慮其他包括麒麟、UOS在內的更封閉的商業系統。無論使用任何硬體和軟體,我都不希望以犧牲部分需求為代價;當然不同人有不同的需求,這又另當別論了。

其實它能做的事情遠不止這些,Linux是可以日用的,龍芯是可以日用的。在這一個月中我也瞭解到更多可用易用的開源軟體,包括第三方的網易雲、開源OJ,但是它們或是還不能在龍芯上順利編譯通過,或是沒有足夠的時間進行試用,或是依然為3A4000效能所限。

龍夢的Fedora32已經發布Beta版了,沒有使用Fedora32主要還是因為不能相容一些現有的軟體。不能從UOS等商業系統搬運包來用不得不說還是會遜色很多。

在okapps上還發現了archlinux的龍芯版,逐步的,龍芯的生態正在越來越好。

龍芯的穩定版Java只有8。儘管這個版本是一個跨時代的版本,並且可以相容大部分用Java開發的軟體,但到底是老了。好不容易3A4000可以比較好地執行Jetbrains全家桶,Jetbrains2020最低只支援openjdk11了,所以在下面的Jetbrains一節中我們只能用2019年的版本,如果追求完美甚至只能使用2019早期版本或2018版。龍芯加油!

龍芯3A5000已經成功,靜等釋出吧;ppt是要發的,但總還是實幹更能說服世人。

1 系統安裝

1.1 映象燒錄

從龍夢的映象站下載最新的映象,檔名中“KDE”和“MATE”代表了預設的桌面環境不同(自帶的軟體也有所區別),在最後的數字則是版本,數字越大版本越大,也就越新。在我寫這段文字時,最新的是“6”。下載完成後檢查下md5或sha512。

選擇不小於4G的U盤,使用 Win32DiskImager 寫入映象。由於它預設選擇“img”格式的檔案,我們需要在選擇檔案型別的下拉框中將其改為“所有檔案”,選擇需要的iso檔案和正確的U盤碟符後開始寫入,寫完後可以校驗一下。如果在Linux下可以用 dd 寫入。注意寫入完成後一定要先解除安裝再拔出U盤。

不建議使用其他軟體燒錄映象,它們通常是為x86映象或其他用途設計的,儘管有時它們可以正常工作,但如果出現問題並不易於排查。也不建議使用太來路不明的U盤,以前一直沒被坑過,最近被學校文創坑了一回我人都傻了。

dd示例如下:

sudo dd if=Fedora28_for_loongson-KDE-Live-6.iso of=/dev/sdc bs=8MiB status=progress #使dd命令顯示進度
sudo sync #同步一下磁碟

1.2 從u盤啟動

將U盤插入主機的一個USB口,啟動電源。通常韌體會自動檢測並從U盤啟動;如果沒有,請在韌體中設定合適的啟動順序或手動選擇啟動裝置。不同韌體設定方法不同,這裡不進行贅述;如果無法正常啟動,請檢查可疑的外設。

2 硬體

2.1 無線網路卡

大部分2.4G無線網路卡都是即插即用的,通常選擇對Linux免驅的即可,比如RTL8188和RT3070L,我正在用的是EDUP的8508GS。但是似乎大部分USB的雙頻網路卡都無法做到即插即用,經過一段時間的摸索,AC1620可以通過自行編譯驅動獲得支援,為了方便編譯我還修改了Makefile增加龍芯的配置(已Merge)。

AC1620適用驅動頁面: 傳送門

clone驅動:

git clone https://github.com/gnab/rtl8812au.git

編譯安裝:

#修改Makefile下面兩行為所示語句
...
CONFIG_PLATFORM_I386_PC = n
...
CONFIG_PLATFORM_MIPS64_LOONGSON = y

#編譯
make

#測試
sudo insmod 8812au.ko

#安裝
sudo cp 8812au.ko /lib/modules/$(uname -r)/kernel/drivers/net/wireless
sudo depmod

#更新核心後需要重新編譯安裝

使用dkms:

#安裝所需軟體包
sudo dnf install dkms kernel-devel kernel-headers

#修改Makefile下面兩行為所示語句
...
CONFIG_PLATFORM_I386_PC = n
...
CONFIG_PLATFORM_MIPS64_LOONGSON = y

#編譯安裝
sudo make dkms_install

#自動載入
echo 8812au | sudo tee -a /etc/modules

#解除安裝
sudo make dkms_remove

如果dkms安裝過程中出現編譯失敗,重試可能出現 Error! DKMS tree already contains: 8812au-4.2.3 的錯誤,可以執行 sudo dkms remove 8812au/4.2.3 --all 解決。

2.2 藍芽介面卡

似乎一般的藍芽介面卡都是即插即用的,也沒出現啥相容性問題。滑鼠鍵盤耳機都能同時連線正常使用。

2.3 PCI-E轉sata

使用期間試圖為寧美機子增加幾個sata口,於是嘗試了一塊 PCI-E 轉 SATA3 的轉接卡,轉接了一個 SATA3 和一個 mSATA 。主控是 ASM1061,可以完美相容,而且也可以走轉接卡從硬碟啟動。

2.4 usb轉串列埠

常見的晶片的都能即插即用。

2.5 顯示卡

顯示卡相容性和硬解解碼都可以參考chipo大佬的文章

另外聽說5.4核心對重新整理率>75Hz的螢幕相容有bug,這裡留作提示。

3 軟體綜述

在龍芯上進行工作和娛樂,和一般Linux並沒有什麼劣勢,在個別OS上甚至具有超越一般發行版的體驗。下面的小節中將例舉各種你知道的和不知道的適合工作學習日常使用的功能和軟體。

由於系統預設的防火牆配置比較激進,拒絕了大部分埠的連線,所以事先需要在“管理->防火牆”中將“活動的繫結”中的兩個連線“更改區域”,均修改為“FedoraWorkstation”。這樣可以開啟包括VNC在內的埠,而普通使用者並不需要過多擔心安全問題(當然對於特殊情況必須特殊對待)。

一些比較好的軟體被我分享在了百度網盤連結 中,提取碼: 27rh

對於一些個人重新打包的私有軟體,上面的連結裡提供了所有rpm和srpm。二次打包二進位制來自歐侃源的deb包和UOS的包,我沒有對軟體本體做任何修改(部分軟體新增了桌面快捷方式,請自行檢視原始碼包),也不對任何問題負責。

3.1 OS

龍夢的Fedora28,此時KDE LiveCD已經更新到6,雖然看起來版本非常老,其實很多軟體都持續更新版本中。

核心版本為 5.4.60 ,gcc為 8.4.0 。

3.2 DE

預設為Mate或者KDE,但是KDE預設的桌面顯示管理器是lightdm而不是sddm,如果希望修改為sddm如下配置即可:

sudo systemctl disable lightdm
sudo systemctl enable sddm

3.3 Shell

預設的shell是bash,當然我們可以更改之,我選擇了zsh,當前版本 5.5.1 。

sudo dnf install zsh

# 首次執行生成預設配置檔案
zsh

配置konsole可以實現背景透明和模糊,另外可以用 oh my zsh 進行簡單的美化:

git clone https://github.com/ohmyzsh/ohmyzsh.git ~/.oh-my-zsh

# 備份原來的配置
cp .zshrc .zshrc.orig

# 配置模板
cp .oh-my-zsh/templates/zshrc.zsh-template .zshrc

.zshrc 中可以看到 ZSH_THEME 變數,更改其設定即可改變主題,當然也可以自定義。示例: ZSH_THEME="fishy"

更多主題參見wiki ,不得不說幾乎所有主題有都有特殊字元顯示不正常的問題(字型問題),其中fishy主題症狀非常輕,也還比較順眼。

4 遠端連線

4.1 SSH

系統預設安裝了openssh。如果沒有安裝則手動安裝即可。

sudo dnf install openssh openssh-clients openssh-server

使用:

#啟動
sudo systemctl start sshd

#停止
sudo systemctl stop sshd

#開機自啟動
sudo systemctl enable sshd

#取消開機自啟動
sudo systemctl disable sshd

#連線:
ssh <user>@<domain>

當然也可以使用圖形化的工具來連線,這裡只介紹putty。putty執行後預設就是ssh模式,只要輸入地址,後面按提示操作即可。當然它也支援例如telnet在內的其他協議,甚至連線串列埠tty。

sudo dnf install putty

4.2 遠端桌面客戶端

krdc同時支援RDP和VNC協議,是一個不錯的選擇。同時也有非常多的類似軟體,這裡不一一介紹。

sudo dnf install krdc

4.3 Tigervnc Server

安裝:

sudo dnf install tigervnc-server

不知道為啥tigervnc-server並不能正常使用。每次執行 vncserver 都會發生 plasma-workspace 的崩潰,連線以後就是一片黑屏。

不過我們還是可以通過 x0vncserver 遠端訪問當前顯示器的內容,類似於x11vnc的功能,停止執行只要Ctrl-c即可:

x0vncserver -display :0 -passwordfile ~/.vnc/passwd

#欲獲取更多資訊
man x0vncserver

4.4 x11vnc server

安裝:

sudo dnf install x11vnc

我用它實現的是開機自啟動vnc,並且直接共享螢幕。我暫時沒有在龍芯上實踐,但是應該差不多,先留個坑。

這裡附上我在用的適合lxdm的systemd指令碼,可供參考。注意Fedora28預設使用是lightdm,KDE桌面習慣上使用sddm。

# /usr/lib/systemd/system/x11vnc_run.service

[Unit]
Description=Auto start x11vnc
After=lxdm.service
Requires=lxdm.service

[Service]
Type=simple
User=root
ExecStart=x11vnc -display :0 -auth /var/run/lxdm/lxdm-:0.auth -forever -rfbauth /root/.vnc/passwd

[Install]
WantedBy=multi-user.target

4.5 RDP Server

安裝freerdp:

sudo dnf install freerdp freerdp-server

xfreerdp 命令用於連線遠端rdp伺服器, freerdp-shadow-cli 命令將在本機上開啟一個rdp服務,預設監聽 0.0.0.0:3389 ,可以直接使用Windows的遠端桌面連線或使用其他客戶端。不過Windows10自帶的遠端桌面連線似乎並不相容,無法正常使用。

它並不能像VNC一樣開啟新的桌面而是隻能共享螢幕的內容,但是可以共享聲音。

5 檔案傳輸

5.1 KDE Connect

這是一款神奇的軟體,只要在同一個Wifi下,它支援在任何可以安裝它的裝置之間傳輸檔案,以及一些其他騷操作。但那些並不是我們現在關注的,我們關注的是如何安裝它。

sudo dnf install kdeconnect

當然僅僅在龍芯上安裝它是不夠的,官方還提供了Windows下的安裝程式,這裡以 kdeconnect-kde-1.4-201-windows-msvc2017_64-cl.exe 為例 ,下載它並用管理員身份執行,安裝過程無需特殊的配置,Next 到底就可。安裝完成後馬上雙擊圖示執行是行不通的,具體可以參考 這個issue 。修復它只需要開啟 C:\Program Files\KDE Connect\bin\data\dbus-1\services 目錄(如果你沒手動改過安裝目錄的話)。開啟 org.kde.kdeconnect.service 檔案,你可以看到 Exec= 一行指向了一個錯誤的地址,把它改為 Exec=kdeconnectd 即可。

在Windows下還需要一個支援sftp的軟體瀏覽檔案,我選擇了WinScp

對於MacOS,我並不是非常清楚具體情況,但是二進位制在這裡

對於安卓手機,你可以在 F-Droid 上找到它,這就不需要多解釋了。

5.2 scp 命令

Linux scp 命令用於 Linux 之間複製檔案和目錄,它是 secure copy 的縮寫,是 linux 系統下基於 ssh 登陸進行安全的遠端檔案拷貝命令。

最基礎的命令如下:

scp [本地檔案] [目標主機使用者名稱]@[目標主機地址]:[目標目錄/檔名]
scp [來源主機使用者名稱]@[來源主機地址]:[來原始檔名] [本地檔名/資料夾] 

比如:

#傳送檔案到目標主機
scp file.txt hachi@192.168.0.106:~

5.3 利用python

也可以使用python在當前目錄開啟一個臨時的http server,並用瀏覽器遠端訪問。

#python3
python3 -m http.server
#python2
python -m SimpleHTTPServer

預設為8000埠,也可以指定埠如8080:

#python3
python3 -m http.server 8080
#python2
python -m SimpleHTTPServer 8080

使用完成後Ctrl-c退出即可。

6 瀏覽器

6.1 firefox

源裡的firefox已經相當老了。雖然速度非常快,但是有時候可能導致當機,在預設情況下系統自帶了它。

sudo dnf install firefox

6.2 龍芯瀏覽器

是龍芯基於火狐瀏覽器核心開發的瀏覽器,介面和火狐基本一致,外掛也是相容的。就當火狐用就可,非常舒服。

三個推薦的瀏覽器外掛:uBlock Origin(廣告過濾外掛)、Privacy Badger(隱私獾)、Proxy SwitchyOmega(網頁審計代理切換)。

lbrowser頁面

3.0開始為Chromium核心,我並沒升級(那邊Google鬧著想把Chromium使用者趕到Chrome去,這一升級怕是49年入國軍了)。

6.3 Chromium

通常指具有硬解驅動的龍夢 chromium73。在Fedora28下直接安裝即可:

sudo dnf install chromium
#硬解驅動
sudo dnf install libva-utils mesa-dri-drivers libvdpau-va-gl

福瓏2下是使用的龍芯的7A1000橋片,上述硬解驅動是不行的,並不清楚相關的問題如何解決。

如果需要新的版本,有 FlyGoat 版 chromium82 beta,不帶硬解驅動但是執行非常流暢。這裡引用狗剩百科的連結,安裝命令如下:

sudo dnf install chromium-82-fg-beta2.rpm

6.4 Epiphany

Epiphany 是 Gnome 桌面的預設瀏覽器,執行穩定,但是非常緩慢。我只在3B1500上使用它。

sudo dnf install epiphany

字元介面的瀏覽器,在終端執行,支援滑鼠操作。

sudo dnf install elinks

6.6 Arora

這是我在2F的Debian6下使用的瀏覽器

#2F Debian6的安裝命令
sudo apt-get install arora

7 多媒體

7.1 視訊播放器

視訊主要有 smplayer , vlc 和 mpv 。它們基本會在系統中預裝,如果沒有,用下面的命令安裝即可:

sudo dnf install smplayer vlc mpv

其中 smplayer 和 mpv 對硬解支援較好。

7.2 音樂播放器

這裡我只介紹 Audacious 和 Rhythmbox,我暫時也沒有找到比較喜歡的音樂播放器。Audacious 有一個系統托盤圖示,可以在外掛中開啟它。

sudo dnf install audacious rhythmbox

7.3 網易雲音樂

並非官方的網易雲客戶端,而是大神做的命令列版本

安裝可以參考README,這裡總結了兩種方法。

  • clone 倉庫
#依賴包
sudo dnf install mpg123
#下載安裝包並解壓
wget https://codeload.github.com/darknessomi/musicbox/zip/master -O musicbox-master.zip
unzip musicbox-master.zip
#安裝
pushd musicbox-master
sudo python3 setup.py install
popd
#清理
rm musicbox-master.zip
sudo rm -r musicbox-master

可見這其實可以作為一個指令碼使用,但是現實中由於網路的關係可能並不是那麼順利。

  • 使用pip安裝
#依賴包
sudo dnf install mpg123
#安裝
sudo pip3 install NetEase-MusicBox -i https://pypi.tuna.tsinghua.edu.cn/simple

快速而簡潔。但其實sudo執行pip是非常危險的,可以可以使用python的虛擬環境來避免。

7.4 螢幕錄製

在這一節既有耳熟能詳的 simplescreenrecorder ,也有並不十分熟悉但也十分好用的 vokoscreen 。但是它們似乎都不能呼叫顯示卡來硬體編碼,所以使用時CPU佔用率會非常高。

sudo dnf install simplescreenrecorder vokoscreen

7.5 推流

這裡出場的顯然就是 Obs Studio,但是儲存設定的時候會發生崩潰?不過用起來沒啥大問題,直接安裝即可。

sudo dnf install obs-studio

7.6 音訊編輯

Audacity 是一個類似於 GoldWave 的多軌易用的音訊編輯器。似乎也有LMMS和Ardour這樣的專業編輯軟體,但是我並沒有嘗試。

sudo dnf install audacity lmms

7.7 視訊編輯

要是說到視訊編輯,必定會提到 Kdenlive 。它相較於很多同類軟體也毫不遜色,我也實際使用它幹了很多事情。

sudo dnf install kdenlive

7.8 流媒體伺服器

因為自己一些奇奇怪怪的需求接觸了一下Live555,不過最後也沒用上就是了。

sudo dnf install live555

8 影像

8.1 檢視器

KDE plasma自帶的Gwenview工作得很好,完全可以勝任。

sudo dnf install gwenview

8.2 截圖工具

桌面環境通常會自帶一個截圖工具,比如對於plasma來說是Spectacle。但是我更喜歡例如Flameshot這樣簡單而不簡單的截圖工具。我通常使用它貼圖,比如將今日的單詞貼在螢幕上。Mate桌面直接左鍵執行,而Kde下的桌面快捷方式需要右鍵->截圖執行,也可以從命令列手動執行之,然後就可以看到托盤圖示了。

sudo dnf install flameshot

# 執行
flameshot gui
# 直接執行 flameshot 終端無法退出

8.3 Gimp

一個非常好的Photoshop替代品,它的教程並不是那麼容易找到,以至於儘管一直在試圖學習,我依然更熟悉Photoshop。

sudo dnf install gimp

8.4 Krita

它顯然是用來畫畫的,手殘嘛,最後被我用來打草稿……

sudo dnf install krita

9 光碟燒錄

9.1 Brasero

這是一個輕量的光碟燒錄軟體,適合簡單的複製、燒錄、建立映象。

sudo dnf install brasero

9.2 K3B

k3b適應的介質更多,功能更多,操作也十分便捷。無論是各種格式的燒錄還是可複寫光碟的擦除都不在話下。

sudo dnf install k3b

10 下載器

10.1 uget

一個比較知名的下載軟體,可以使用curl和aria2作為後端,支援廣泛,也非常符合我們的使用習慣。

sudo dnf install uget

10.2 kget

和uget挺像的,可能在KDE plasma下比較舒服?

sudo dnf install kget

10.3 amule

類似於電驢的下載軟體,也是個Kad網路客戶端,下下ed2k的連結搜搜資源都挺好用的,但是源裡的 amule 有記憶體洩露的風險。

sudo dnf install amule

10.4 ktorrent

主要用來下BT種子,具體都不需要解釋了吧~

sudo dnf install ktorrent

11 辦公軟體

11.1 VIM

家喻戶曉的強大的編輯器。系統自帶了nano但是並沒有自帶vim,需要手動安裝之。

sudo dnf install vim

11.2 WPS

大家都非常熟悉的辦公軟體,以至於不需要過多解釋。架構支援也十分齊全,可謂辦公無憂。雖然有時候會碰到奇怪的問題(比如執行會產生一個zonbie),但是瑕不掩瑜。

可以在官方頁面下載。

11.3 LibreOffice

LibreOffice是一款由社群創造的自由免費辦公套件,可用於處理文字文件、電子表格、簡報、繪圖以及公式編輯,它預設使用了預設使用開放文件格式。另外WPS似乎不支援odf格式。

sudo dnf install libreoffice

11.4 純文字編輯器

Mate桌面會自帶pluma,KDE plasma會自帶kwrite。另外還有一個kate,它和kwrite很像,甚至使用了一樣的配置檔案(如果你更改了kwrite的配置,這會反映在kate上,反之亦然),但是這並不妨礙單獨一節講它。無論是簡單碼碼程式碼還是寫寫Markdown,kate都可以勝任,它不僅僅是個文字編輯器,簡單而不簡單。

sudo dnf install kate

11.5 Markdown

retext和ghostwriter都是非常好的選擇,它們都支援實時預覽。不過ghostwriter似乎更符合我的口味。

sudo dnf install retext ghostwriter

11.6 LaTeX

我是個LaTeX小白,並不十分熟悉LaTeX。它在各種論文的場合非常實用,同時生成的pdf質量也很高。

sudo dnf install texlive texmaker

注意很多常用的包需要額外安裝,可以用 dnf search 搜尋包名。

12 輸入法

整體支援比較好的還是 fcitx 。安裝命令如下:

#主體及中文輸入法
sudo dnf install fcitx fcitx-sunpinyin

#日文輸入法(之一)
sudo dnf install fcitx-kkc

#一些需要的庫
sudo dnf install fcitx-qt5 fcitx-qt4 qt5-qtconfiguration

#圖形化配置工具
#KDE下使用kcm-fcitx
#mate下使用fcitx-configtool
sudo dnf install kcm-fcitx fcitx-configtool

在輸入法選擇器中選擇 fcitx 後重新登入或重啟。

如果在某些軟體中出現無法切換輸入法的情況,可以試著使用 fcitx-diagnose 命令查詢問題。

13 通訊和閒聊

哪些是通訊哪些是閒聊一看便知。

13.1 thunderbird

用於郵件和irc等。源中直接安裝即可,如果想遷移配置,在 ~/.thunderbird 目錄。

sudo dnf install thunderbird

13.2 pidgin

用於irc、xmpp等各種協議。源中直接安裝即可,如果想遷移配置,在 ~/.purple 目錄。

sudo dnf install pidgin

13.3 linuxqq

看著用吧,基本可以用“絕了門子”來形容,用過的都說好[狗頭]。

QQ Linux版,從心出發·趣無止境

從不從心我不知道,Core dump還是非常有趣的[狗頭]。

13.4 wechat

UOS和麒麟上釋出了兩個appalling的Electron打包Wechat web(俗稱電子垃圾),如果想用可以參考AUR上的類似方法破解UOS版的,在Fedora28上可以使用。原理非常簡單,UOS版微信會檢測os-release和lsb-release判斷是否UOS,所以通過mount等方法用UOS的os-release和lsb-release覆蓋系統原有的即可。吾愛破解也有patch的方法,有興趣的自己學習。

13.5 dingtalk

我在歐侃源看到有3.5.5-Beta的龍芯版,可以使用可以重打包,發現有功能會崩潰,沒太深究。

dingtalk in okapps

13.6 telegram

真正的實時通訊軟體,源中的版本較老,但是可以使用。

sudo dnf install telegram-desktop

14 學習軟體

14.1 Calibre

介面一言難盡但功能強大的電子圖書館,被我拿來做電子書的整理和查閱。

sudo dnf install calibre

14.2 有道詞典

借包的來著,但是不知道為啥上游找不到了。

有離線詞庫,可以劃詞翻譯。可能本來是為麒麟設計的,對Mate桌面支援比較好,但是對Kde來說劃詞可能失效。

14.3 Ebview

大家可能對EBWin4更瞭解些,但是看名字就知道這是為Windows設計的。Ebview則可以匯入EBWin4的詞典包,是個非常好用的詞典軟體。源中直接安裝的版本有Bug,部分詞典包會導致崩潰,具體原因未知,也並沒有更新的版本可以使用。

sudo dnf install ebview

14.4 圖示設計

EdrawMax,億圖圖示。同樣下載後重新打包即可。

14.5 Stellarium

虛擬天文館。如果沒有觀測條件,那就在家瞅瞅吧。

sudo dnf install stellarium

15 網路工具

請用好的工具拿來幹合規的事情,也不要因為個別人用於違法犯罪就影響其他人的合法使用。

15.1 Wireshark

抓包工具。注意它需要root許可權執行,直接點選選單中的圖示是不能抓包的。

sudo dnf install wireshark
#執行
sudo wireshark

15.2 Clash

用於網路代理(proxy),下載頁面在此,其中clash-linux-mips64le是適合龍芯的。它有兩個配置檔案config.yaml和Country.mmdb。預設clash會從 ~/.config/clash/ 讀取這兩個檔案,如果需要可以使用引數指定它們的目錄,如 clash -d . 指定為當前目錄、 clash -f <path> 指定配置檔案路徑。 http://clash.razord.top/ 用於代理的詳細配置。

15.3 Wireguard

用於內網穿透,類似花生殼,方便內網的服務管理。

sudo dnf install wireguard

15.4 frp

內網穿透等用途,配置非常簡單,go語言寫的,也是預編譯了mips64le可以直接用。

github主頁

16 CAD

印象中Fedora28上並沒有相關軟體,但是今天突然有了,這讓我不禁感嘆大佬們的工作。我對cad軟體不是非常熟悉,只做簡單的介紹。

16.1 Kicad

用於電路版圖的製作。

sudo dnf install kicad

16.2 Librecad

呃,工圖?

sudo dnf install librecad

16.3 中望CAD

這是國內的中望軟體開發的商業CAD軟體,可以把中望CAD預裝版重新打包使用。

okapps

17 IDE

Jetbrain系最新能使用2019版的,需要額外的配置,下面有寫。如果嫌配置太煩或者發現如下配置依然無法正常使用,可以使用2018版的,2018版基本無需額外配置。

龍芯加油,Java1.8不夠用了233

17.1 Codeblocks 20.03

源裡的17版有大bug,崩潰了就啥也木了,所以只能自己編譯20.03。好在支援非常好,只需要少量的操作。可以看我以前的文章,那時候對這些東西理解很差,非常多的無用功別太在意。

17.2 Eclipse (java ide)

執行非常流暢,很可用。

sudo dnf install eclipse

17.3 vscode

不能安裝外掛。

地址

17.4 Go

好像還沒找到Go的IDE,留個坑,不過我們可以自己編譯最新的Go。

這裡找一個喜歡的版本下載下來解壓, cd src 然後 ./all.bash 然後等著就完事。不過記得設定環境變數。具體在原始碼包的 doc/install-source.html 中有非常詳細的描述。

另外,推薦在 ~/.bash_profile 中(對於zsh是 ~/.zshrc)新增一個goproxy的環境變數:

export GOPROXY="https://goproxy.io"

17.5 Jetbrains

儘管Jetbrains全家桶是純Java開發的,但是其中包含的一些外掛是以二進位制的形式釋出的,且從2020.2開始,其依賴的Java環境最低只支援openjdk11。實測2019.3版基本可以使用。留下的問題是這些軟體都包含 libdbm64.so ,但是我並沒搞清楚它是幹啥的,也沒有相關報錯,故我並沒有對其進行替換。

17.5.0 共性的問題

主要問題出現在 fsnotifierpty4j-native 兩個外掛上,他們均是以二進位制的形式出現在 lib 目錄下,一般替換了這兩個二進位制就可以正常使用。

  • fsnotifier

這有官方連結作為指導

下載原始碼並執行 ./make.sh 編譯,獲得 fsnotifier-mips64 ,複製到 /bin 目錄下(和自帶的fsnotifier和fsnotifier64在通個目錄)。並在clion配置資料夾 config 目錄下新建 idea.properties 檔案;或在選單選擇 Help->Edit Custom Properties 輸入以下內容:

# custom CLion properties

idea.filewatcher.executable.path = fsnotifier-mips64
  • pty4j-native

在Jetbrain全家桶中開啟終端依賴它,因此問題主要體現在無法在IDE中開啟終端。

只要clone整個專案並編譯即可。編譯之前修改 Makefile_linux 檔案第58行為:

all: linux_mips64el
git clone --depth=1 https://github.com/JetBrains/pty4j.git
cd pty4j/native
make --file Makefile_linux

編譯獲得的連結庫在 os/linux/mips64el 目錄中,複製二進位制到 lib/pty4j-native/linux/x86_64 中覆蓋原有的二進位制即可。

17.5.1 CLion

這個版本的CLion自帶了編譯器和clangd的二進位制,當然這些二進位制都是x86架構的,因而無法使用。我們只能自行編譯或者使用源中的編譯器。

  • tool-chain

這個比較容易,由於無法使用build in的編譯器,在設定中設定系統中的編譯器即可。

在Fedora28中安裝:

sudo dnf install cmake gcc gcc-g++
  • clang-tiny

我嘗試自行編譯clangd所需的二進位制,但是能力所限,沒有成功。試圖使用系統中的clangd也沒有找到地方設定,只能禁用clangd;只好設定clang-tiny和使用內建程式碼補全。

安裝clang:

sudo dnf install clang

File->Settings->Language & Frameworks->c/c++ 中設定Clangd關閉,設定Clang-Tiny為使用外部的Clang-Tiny,路徑為 /usr/bin/clang-tidy

官方似乎給出了一定的解答,但是不太適用的樣子。

  • 總結

由於整個測試過程比較倉促,沒有進一步測試,但是一般的功能都能很好地執行。

17.5.2 Pycharm

Pycharm比較容易,只要替換了 fsnotifierpty4j-native 就可以比較完美地執行。不過似乎它不會自動建立桌面連結,這裡附一個,其中的路徑按實際修改即可。

#jetbrains-pycharm.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Pycharm
Icon=/home/loongson/.Jetbrains/pycharm-2019.3.5.edit/bin/pycharm.svg
Exec="/home/loongson/.Jetbrains/pycharm-2019.3.5.edit/bin/pycharm.sh" %f
Comment=A cross-platform IDE for python
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-pycharm

17.5.3 Idea

Idea只要替換了 fsnotifierpty4j-native 就可以,看起來也沒啥毛病。

17.5.4 Rider

龍芯釋出了 .NET Core ,我就發了瘋想在上面寫C# ……不過測試得知,Rider 2019.3無法在龍芯的java1.8正常執行,所以就留個坑吧233

  • 關於龍芯.NET

龍芯.NET

.NET Core 3.1下載頁面

.NET Core安裝說明

  • 環境變數

~/.bash_profile 中(對於zsh是 ~/.zshrc)新增:

export DOTNET_ROOT=$HOME/dotnet
export PATH=$PATH:$HOME/dotnet

18 虛擬機器

使用qemu可以很好地搭建和執行龍芯虛擬機器,最新的qemu似乎不能建立Fedora28虛擬機器了,只能建立Fedora32虛擬機器,而且老的qemu直接dnf升級到新版本會導致原有的Fedora28虛擬機器無法執行。qemu-kvm虛擬機器和管理器為系統預裝,可以在選單中看到 系統->虛擬系統管理器

手動安裝參考命令:

sudo dnf install qemu qemu-kvm libvirt virt-manager
sudo systemctl start libvirtd
sudo systemctl enable libvirtd

如果需要執行x86虛擬機器,可以參考狗剩百科 。但是效能捉雞不做推薦。

如果需要在x86機器上模擬龍芯,可以參考狗剩百科 。同樣效能感人,有時候可以做測試用途,可以正常執行Fedora28 Mate而不是Fedora32。

19 遊戲

19.1 FlightGear

模擬飛行,可以直接從源中安裝 2018.1.1 版,也可以從官網頁面下載原始碼自行編譯最新的。可能由於llvmpipe的bug緣故,需要獨立顯示卡,如果只有7A1000集顯的無法正常執行(反正7A1000也帶不動)。關於2019.1.1版本編譯的“從輸出所省略的額外重定址溢位”錯誤可以看我這裡

sudo dnf install FlightGear

FlightGear-data 似乎因為軟體包過大(1.4G)無法正常dnf下載,可以先從源中將其下載到本地然後安裝,連結

sudo dnf install FlightGear ./FlightGear-data-2018.1.1-1.fc28.lemote.noarch.rpm

19.2 Minecraft

Java版。請看福萊大佬的部落格,文中提到的lwjgl3的release連結不知道為啥沒有了,在此

如果地圖複雜會略卡頓,另外不要試圖搭建紅石電路之類的玩意,在3A4000上會非常卡。

19.3 Chromium-BSU

一個小射擊遊戲,飛機大戰?

sudo dnf install chromium-bsu

20 參考資料

[1] RedHat 系發行版安裝指南 狗剩百科

[2] Chromium 瀏覽器 狗剩百科

[3] 在手機和電腦間雙向加密傳輸檔案 —— Windows 安裝 Kde Connect 日暮神社の狸

[4] 龍芯 3B1500 Fedora28 安裝筆記 日暮神社の狸

[5] 龍芯 3A4000 Fedora28 安裝筆記 日暮神社の狸

[6] Linux scp命令 菜鳥教程

[7] LWJGL3 For MIPS64 Jiaxun Yang

by SDUST weilinfox

相關文章