龙芯fedora28日常生存指南

2021-01-30

更新注: 当前(2022-1-14)由于 loongnix.org 改了域名,所有链接改为 loongnix.cn 即可。该博客有些部分已经过时, Fedora28 也不再更新,现在更推荐使用 loongnix20Debian mips64el 。后面文中的“更新注”都指这次更新。

v0.0.8

  • 版权声明:原创文章,未经博主允许不得转载

从0.0.1开始改了非常多,一月余时间的花费渴望为其他人提供一点帮助,能够快速上手。

这主要是这一年来我从3B1500到3A4000再到福珑2的日常使用记录,是之前四篇随笔的汇总和补充,也是尝试着对 龙芯+Fedora28社区发行版 能干的事情的进行发掘。这也就是说,它主要适用于使用龙芯3A4000的主机,部分适用于更老的型号。不适用不是说不能用,只是运行太慢了。

作为爱好者,我一定是使用龙梦的Fedora28作为操作系统,而暂时不考虑其他包括麒麟、UOS在内的更封闭的商业系统。无论使用任何硬件和软件,我都不希望以牺牲部分需求为代价;当然不同人有不同的需求,这又另当别论了。

其实它能做的事情远不止这些,Linux是可以日用的,龙芯是可以日用的。在这一个月中我也了解到更多可用易用的开源软件,包括第三方的网易云、开源OJ,但是它们或是还不能在龙芯上顺利编译通过,或是没有足够的时间进行试用,或是依然为3A4000性能所限。

记得当初宁美机子刚到货的时候,我录了个开箱视频发在B站上,直接在龙芯上录屏,直接在龙芯上用kdenlive编辑和压制,或许还是B站上第一个呢。可惜录屏卡顿,无法真实再现明明流畅的体验,成为了当时开箱最大的遗憾。我刚知道有大佬自己做了录屏软件,试了试,果然不一般。

龙梦的Fedora32已经发布Beta版了,没有使用Fedora32主要还是因为不能兼容一些现有的软件。不能从UOS等商业系统搬运包来用不得不说还是会逊色很多。

Loongbian(龙鞭,其实应该联想到Raspbian 233),虽然原设计是给派用的,但是也有3A的版本。

在okapps上还发现了archlinux的龙芯版,逐步的,龙芯的生态正在越来越好。

龙芯的稳定版Java只有8。尽管这个版本是一个跨时代的版本,并且可以兼容大部分用Java开发的软件,但到底是老了。好不容易3A4000可以比较好地运行Jetbrains全家桶,Jetbrains2020最低只支持OpenJDK11了,所以在下面的Jetbrains一节中如果使用Java8,我们只能用2019年的版本,如果追求完美甚至只能使用2019早期版本或2018版。我也加入了安装龙芯OpenJDK13预览版的章节,使用它可以运行最新的Jetbrains软件,我自己也把Java环境切换到了OpenJDK13,迟迟不更新的预览版,不知道是不是因为bug太少了。龙芯加油!

龙芯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主题症状非常轻,也还比较顺眼。

更新注:关于字体问题,可以尝试安装 这里 所示的四个字体,这理论上可以解决大部分字体问题。也可以直接使用 powerlevel10k 代替 oh-my-zsh 来定制主题,请自行检查支持的 zsh 最低版本

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 网易云音乐

并非官方的网易云客户端,而是大神做的命令行版本

更新注:该版本的网易云音乐似乎在某些情况下不能正常工作,现在推荐新的带图形 gtk 界面的 netease-cloud-music-gtk ,但这需要自行编译且在 Fedora28 上并未实际测试。

安装可以参考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占用率会非常高。新版本中,vokoscreen的视频编码那里多了一个huffyuv,这个效果更好一些。

sudo dnf install simplescreenrecorder vokoscreen

另外要介绍Guee大佬开发的一个录屏软件“Guee录屏机”,听说在UOS的软件商店已经有下载了,而Fedora28和loongnix也有专门的rpm包下载。按照描述,这个软件不能在7A1000集显上正常运行(本来没有独显也没必要搞啥多媒体的了),在R5 230上测试性能非常好。

# 当前最新1.0.1-4
wget http://www.loongson.xyz/GueeRecorder/net.guee.recorder-1.0.1-4.mips64el.rpm
sudo dnf install ./net.guee.recorder-1.0.1-4.mips64el.rpm

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可以使用GoLand,当然这需要Jetbrains家的许可证,开源免费的IDE暂时没找到。我们还可以自己编译最新的Go。

这里找一个喜欢的版本下载下来解压, cd src 然后 ./all.bash 然后等着就完事。不过记得设置环境变量。具体在源码包的 doc/install-source.html 中有非常详细的描述。

另外,推荐在 ~/.bash_profile 中(对于zsh是 ~/.zshrc)添加一个goproxy的环境变量:

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

17.5 OpenJDK 11 和 13

安装过程参考龙芯开源社区的Java安装说明,龙芯OpenJDK8和11在龙芯开源社区的Java下载页面下载。另外13预览版在13下载页面 下载。

下面是安装并配置的示例:

# 安装
sudo tar zxf OpenJDK13.tar.gz -C /opt

# 加入环境变量(请自行修改目录)
export JAVA_HOME=/opt/DOWNLOADED-JDK-DIR-NAME
export PATH=${JAVA_HOME}/bin/:${PATH}

# 在alternatives中安装(请自行修改目录)
# 更新注:这部分并不是必须的,只有在需要使用alternatives切换版本才用到
sudo alternatives --install /usr/bin/java java /opt/java-13-openjdk/bin/java 100 \
		--slave /usr/lib/jvm/jre jre /opt/java-13-openjdk \
		--slave /usr/bin/jjs jjs /opt/java-13-openjdk/bin/jjs \
		--slave /usr/bin/keytool keytool /opt/java-13-openjdk/bin/keytool \
		--slave /usr/bin/pack200 pack200 /opt/java-13-openjdk/bin/pack200 \
		--slave /usr/bin/rmid rmid /opt/java-13-openjdk/bin/rmid \
		--slave /usr/bin/rmiregistry rmiregistry /opt/java-13-openjdk/bin/rmiregistry \
		--slave /usr/bin/unpack200 unpack200 /opt/java-13-openjdk/bin/unpack200
sudo alternatives --install /usr/bin/javac javac /opt/java-13-openjdk/bin/javac 100 \
		--slave /usr/bin/jar jar /opt/java-13-openjdk/bin/jar \
		--slave /usr/bin/jarsigner jarsigner /opt/java-13-openjdk/bin/jarsigner \
		--slave /usr/bin/javadoc javadoc /opt/java-13-openjdk/bin/javadoc \
		--slave /usr/bin/javap javap /opt/java-13-openjdk/bin/javap \
		--slave /usr/bin/jcmd jcmd /opt/java-13-openjdk/jcmd \
		--slave /usr/bin/jconsole jconole /opt/java-13-openjdk/bin/jconsole \
		--slave /usr/bin/jdb jdb /opt/java-13-openjdk/bin/jdb \
		--slave /usr/bin/jdeps jdeps /opt/java-13-openjdk/bin/jdeps \
		--slave /usr/bin/jmap jmap /opt/java-13-openjdk/bin/jmap \
		--slave /usr/bin/jinfo jinfo /opt/java-13-openjdk/bin/jinfo \
		--slave /usr/bin/jps jps /opt/java-13-openjdk/bin/jps \
		--slave /usr/bin/jrunscript jrunscript /opt/java-13-openjdk/bin/jrunscript \
		--slave /usr/bin/jstack jstack /opt/java-13-openjdk/bin/jstack \
		--slave /usr/bin/jstat jstat /opt/java-13-openjdk/bin/jstat \
		--slave /usr/bin/jstatd jstatd /opt/java-13-openjdk/bin/jstatd \
		--slave /usr/bin/serialver serialver /opt/java-13-openjdk/bin/serialver \
		--slave /usr/lib/jvm/java java_sdk /opt/java-13-openjdk

# 使用alternatives切换java版本
sudo update-alternatives --config java
sudo update-alternatives --config javac

# 查看版本信息
java -version
javac -version

17.6 Jetbrains

尽管Jetbrains全家桶是纯Java开发的,但是其中包含的一些插件是以二进制的形式发布的,且从2020.2开始,其依赖的Java环境最低只支持openjdk11。实测2019.3版基本可以使用。留下的问题是这些软件都包含 libdbm64.so ,但是我并没搞清楚它是干啥的,也没有相关报错,故我并没有对其进行替换。

如果需要使用最新的Jetbrains全家桶,请安装龙芯OpenJDK 13。下面主要还是基于龙芯OpenJDK 8。

17.6.0 共性的问题

主要问题出现在 fsnotifierpty4j-native 两个插件上,他们均是以二进制的形式出现在 lib 目录下,一般替换了这两个二进制就可以正常使用。既然build-in的二进制是不能用的,那么下载软件包时选择 Linux (tar.gz) 项即可。

  • fsnotifier

这有官方链接作为指导

下载源码并运行 ./make.sh 编译,获得 fsnotifier-mips64 ,复制到 /bin 目录下(和自带的fsnotifier和fsnotifier64在同个目录)。并在clion配置文件夹 config 目录下新建 idea.properties 文件;或在菜单选择 Help->Edit Custom Properties 输入以下内容:

# custom xxx properties

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

在Jetbrain全家桶中打开终端依赖它,老版本并没有提供mips64el架构的二进制,因此问题主要体现在无法在IDE中打开终端。最新版本的Jetbrain软件则无需自行编译。

只要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.6.1 CLion

我使用了2019.3.6版本的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 clang-tools-extra

File->Settings->Language & Frameworks->c/c++ 中设置Clangd关闭,设置Clang-Tiny为使用外部的Clang-Tiny,路径为 /usr/bin/clang-tidy

官方似乎给出了一定的解答,但是不太适用的样子。

  • 总结

由于整个过程比较仓促,没有进一步测试,但是一般的功能(编译、高亮、语法检查)都能很好地运行。

17.6.2 Pycharm

Pycharm比较容易,我用的是2019.3.5 Professional Edition,Community Edition区别不大。同样要找到老版本下载界面。只要替换了 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.6.3 IntelliJ IDEA

我使用的是2019.3.5 Ultimate,Community Edition区别不大。老版本的下载界面在此。它默认下载了非常多的插件,我知道好多是没法用的,但是并没有在意。插件界面请将
“Android Support” disable掉。IDEA也是只要替换了 fsnotifierpty4j-native 就可以使用,运行“hello, world”也略显吃力。

17.6.4 GoLand

我使用了2019.3.4,老版本的下载界面在此。替换了 fsnotifierpty4j-native 就可以使用,运行流畅。

17.6.5 Rider

龙芯发布了 .NET Core ,我就发了疯想在上面写C# ……测试了半天才找到能使用的版本。我使用的是Rider 2019.3.1,老版本下载界面在此。由于它一直在Syncing project templates,没有进一步使用。瞅了愁,似乎调用了自带的Mono,那就没办法了呃。

  • 关于龙芯.NET

龙芯.NET

.NET Core 3.1下载页面

.NET Core安装说明

  • 安装和环境变量

解压和安装

mkdir -p "$HOME/dotnet" && tar zxf loongson_3-aspnetcore-runtime-3.1.7-linux-loongson3a.tar.gz -C "$HOME/dotnet"
mkdir -p "$HOME/dotnet" && tar zxf loongson_3-dotnet-sdk-3.1.107-linux-loongson3a.tar.gz -C "$HOME/dotnet"

~/.bash_profile 中(对于zsh是 ~/.zshrc)添加环境变量:

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

18 虚拟机

使用qemu-kvm + virt-manager可以很好地搭建和运行龙芯虚拟机,最新的qemu可以建立Fedora28或Fedora32虚拟机。性能缘故,推荐使用Mate桌面,而Fedora28需要使用Live7.2,在最新的qemu-kvm上Live6无法运行。

老的qemu直接dnf升级到新版本会导致旧的virt-manager中的Fedora28虚拟机无法运行(平台名称改变),需要手动修改xml配置如下:

<type arch="mips64el" machine="loongson3-virt">hvm</type>

如果从6.2.0-5升级libvirt-daemon到6.6.0-3时出现libvirt-daemon-kvm导致的软件包冲突,直接 sudo dnf update --best --allowerasing 覆盖即可。

一般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

posted @ 2021-01-30 18:11  桜風の狐  阅读(2040)  评论(4编辑  收藏  举报