Manjaro 是一款基于 Arch Linux 的滚动发行版操作系统,以用户友好性和稳定性著称。它继承了 Arch Linux 的轻量级、高性能特性,同时通过简化安装和配置流程降低了使用门槛。Manjaro 默认提供多种桌面环境选项(如 KDE Plasma、GNOME、XFCE),适合从新手到高级用户的不同需求。它有很多独特之处:
滚动更新 :定期推送软件更新,无需重装系统即可获取最新功能。
硬件兼容性 :内置硬件检测工具(如 MHWD),支持自动安装显卡驱动和内核管理。
软件管理 :提供图形化工具(Pamac)和命令行工具(pacman),支持 AUR(Arch User Repository)访问海量社区维护的软件。
方便制作LiveDVD:build-iso工具可以轻松协助用户定制自己的LiveDVD。这对发布SDR 0 配置傻瓜包很有意义。
在前文中,笔者已经介绍了如何制作Live镜像。本节接着上一篇文章,叙述如何制作开箱即用的LiveDVD, 作为玩具SDR taskBus的Linux发行版。
1. 向Packages-Desktop增补必要的软件包
在iso-profiles/manjaro/xfce/Packages-Desktop文件里,存储了Live系统中预装的软件包。为了支撑taskBus、gqrx等软件的运行,添加软件包如下:
txt
qt6
qtcreator
cmake
base-devel
gcc
gdb
git
valgrind
fftw
libuhd
libiio
htop
btop
screen
qwt
librdkafka
libpcap
geany
boost
cpupower
ninja
partitionmanager
vlc
wireshark-qt
putty
remmina
rtl-sdr
postgresql-libs
mariadb-libs
mariadb-clients
intel-ucode
gqrx
python-gnuradio
gnuradio
gnuradio-companion
gnuradio-utils
libvolk
iptux
filezilla
libbacktrace
nmap
vulscan
zenmap
inkscape
gimp
libreoffice-still-zh-cn
jdk-openjdk
npm
python-numpy
python-scipy
python-wheel
python-sqlalchemy
docker
virtualbox
virtualbox-guest-iso
linux617-rt-virtualbox-host-modules
octave
cauchy
postgresql
postgis
qgis
dbeaver
code
vscode-json-languageserver
vscode-css-languageserver
vscode-html-languageserver
codeblocks
fcitx5
fcitx5-chinese-addons
fcitx5-configtool
fcitx5-gtk
fcitx5-qt
fcitx5-pinyin-zhwiki
manjaro-asian-input-support-fcitx5
peek
libuhd-docs
libuhd-utils
python-uhd
soapyuhd
soapyplutosdr
soapyremote
python-simplesoapy
soapyaudio
soapybladerf
soapyhackrf
soapynetsdr
soapyosmo
soapyremote
soapysdr
rtl_433
airspy
inspectrum
qspectrumanalyzer
soapy_power
audacity
tenacity
lame
libosmosdr
soapyosmo
2. 拷贝代码和资源到Live的文件夹
2.1 拷贝代码到LiveDVD home文件夹
在iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/文件夹下的所有内容,都会覆盖到Live的Home目录。
对于本次需求,我们拷贝所有的源代码到这个文件夹下,类似:

2.2 拷贝UHD FPGA Images到LiveDVD share文件夹
包安装器一般只能安装libuhd,我们可以把主机的/usr/share/uhd/images的内容拷贝到发布文件夹:
bash
cp -R /usr/share/uhd/images/ ~/iso-profiles/manjaro/xfce/desktop-overlay/usr/share/uhd/
拷贝后,文件夹类似:

这样,在执行 uhd_usrp_probe时,就能直接找到FPGA镜像了。
3. 首次构造iso
执行命令:
bash
buildiso -p xfce -k linux617-rt -b stable
这里使用6.17实时内核,可以提高吞吐率。
构造后,出现了iso文件
/var/cache/manjaro-tools/iso/manjaro/xfce/X.X/*.iso
4. 启动iso进行试运行
使用VMWare随便构造一个虚拟机,启动ISO,这样可以避免烧录。我们只有在虚拟机里运行妥帖了,才烧录。
4.1 启动并选择中文环境
启动虚拟机后,在lang里选择中文:


而后,选择开源驱动或者商用驱动选项进入系统。
4.2 编译运行并同步配置
在虚拟机中启动LiveDVD,打开编译环境,编译源码后,在桌面创建快捷方式。这一步里,很可能会发现缺包或者缺文件。利用VMWare的共享文件夹,在root账户下(sudo su root)进行拷贝。在普通账户下,可以挂载文件夹,但是看不到文件(LiveDVD没有权限)。
sudo su root
cp /path/to/host/file ~/file
当全部测试完毕后,用共享文件夹一股脑把虚拟机的home文件夹刷回iso-profiles/manjaro/xfce/desktop-overlay/etc/skel/下。这样,编译后的文件、桌面快捷方式啥的就全有了。当然,如果在此之间还pacman -S 了包,别忘记增补在第一节Packages-Desktop里。
5. 二次编译ISO
此刻,在步骤4里已经测试并同步了修改。再次执行命令:
bash
rm -rf /var/cache/manjaro-tools/iso/manjaro/xfce/*
buildiso -p xfce -k linux617-rt -b stable
构造后,出现了iso文件
/var/cache/manjaro-tools/iso/manjaro/xfce/X.X/*.iso
6. 从ISO制作 U盘镜像
如此操作后,ISO里塞入了太多的额外软件,必然超过4.7GB,DVD其实是装不下了。当然,你可以选择购买 DVD-R+DL 8.5GB光盘,但是不推荐------因为光盘读取速度太慢了,安装速度也慢。这里,使用软件 rufus 直接制作启动U盘。
插入U盘后,选取镜像,直接开始即可:

7. rock & roll
好了!拿着这个U盘,直接引导物理机,F12选取UEFI或者传统的启动方式,就可以跑了!在不重装系统的情况下,比windows性能翻倍!

最后,别忘了用AI生成一个光盘封面:

附件. Live 光盘的额外软件包功能介绍
开发工具与框架
| 软件包 | 用途 |
|---|---|
| qt6 | Qt 6跨平台应用开发框架 |
| qtcreator | Qt官方集成开发环境(IDE) |
| cmake | 跨平台构建系统生成工具 |
| base-devel | 基础开发工具链(包含make/gcc等) |
| gcc | GNU编译器集合 |
| gdb | GNU调试器 |
| ninja | 小型快速构建系统 |
| libbacktrace | 用于生成程序崩溃时的调用栈信息 |
版本控制与协作
| 软件包 | 用途 |
|---|---|
| git | 分布式版本控制系统 |
性能分析工具
| 软件包 | 用途 |
|---|---|
| valgrind | 内存调试与性能分析工具 |
| cpupower | CPU频率调节与监控工具 |
系统监控
| 软件包 | 用途 |
|---|---|
| htop | 交互式进程查看器 |
| btop | 现代化资源监控工具 |
终端工具
| 软件包 | 用途 |
|---|---|
| screen | 终端多路复用管理器 |
数学与科学计算
| 软件包 | 用途 |
|---|---|
| fftw | 快速傅里叶变换库 |
| python-numpy | Python科学计算基础库 |
| python-scipy | Python科学计算工具集 |
| octave | GNU科学计算语言(类似MATLAB) |
数据库相关
| 软件包 | 用途 |
|---|---|
| postgresql | PostgreSQL关系型数据库 |
| postgis | PostgreSQL地理信息系统扩展 |
| mariadb-libs | MariaDB数据库客户端库 |
| mariadb-clients | MariaDB命令行客户端 |
| dbeaver | 通用数据库管理工具 |
通信与网络
| 软件包 | 用途 |
|---|---|
| libpcap | 网络数据包捕获库 |
无线电与SDR
| 软件包 | 用途 |
|---|---|
| libuhd | USRP硬件驱动库 |
| rtl-sdr | RTL2832U软件定义无线电支持 |
| gqrx | SDR接收机软件 |
| gnuradio | 软件定义无线电开发框架 |
| soapyuhd | SoapySDR的USRP支持模块 |
| inspectrum | 无线电信号分析工具 |
图形与多媒体
| 软件包 | 用途 |
|---|---|
| vlc | 跨平台媒体播放器 |
| inkscape | 矢量图形编辑器 |
| gimp | GNU图像处理程序 |
| peek | GIF屏幕录制工具 |
| audacity | 音频编辑软件 |
| tenacity | Audacity分支版本 |
办公与文档
| 软件包 | 用途 |
|---|---|
| libreoffice-still-zh-cn | LibreOffice中文稳定版 |
| code | Visual Studio Code编辑器 |
虚拟化与容器
| 软件包 | 用途 |
|---|---|
| docker | 容器化平台 |
| virtualbox | 虚拟机软件 |
| virtualbox-guest-iso | VirtualBox客户机增强工具 |
语言支持
| 软件包 | 用途 |
|---|---|
| fcitx5 | 新一代输入法框架 |
| fcitx5-chinese-addons | 中文输入法支持 |
其他工具
| 软件包 | 用途 |
|---|---|
| filezilla | FTP客户端 |
| putty | SSH/Telnet客户端 |
| remmina | 远程桌面客户端 |
| partitionmanager | 磁盘分区管理工具 |
表格按功能领域分组,每个软件包用途描述简明扼要。实际使用时可根据需要调整表格结构或添加版本号等附加信息。