本教程详细讲解如何在旭日X3派上启用与停用Swap空间,并特别强调:完成系统编译后应立即关闭Swap,以免对设备整体性能造成拖累。
准备工作
- 准备好旭日X3派开发板,确保已成功接入网络。
- 确认当前系统的镜像版本:
root@ubuntu:~# cat /etc/version
x3j3_lnx_db_20220622
系统更新(解决依赖冲突)
- 执行以下命令进行系统更新(其他版本操作一致;若遇依赖报错,可前往资源中心下载最新系统镜像,或运行下方修复指令):
apt update && apt upgrade && reboot
提示:执行 apt upgrade 时若出现 libssl-dev 与 hobot-arm64-include 包冲突,请运行以下命令修复:
sudo apt install -o Dpkg::Options::="--force-overwrite" libssl-dev
升级完成后,开发板的 NCM、Swap、TUN、TAP 等内核模块均会同步更新。再次检查系统版本,可看到已升级至 x3j3_lnx_db_20220624:
root@ubuntu:~# cat /etc/version
x3j3_lnx_db_20220624
开启Swap并验证内存大小
- 使用以下命令创建Swap文件(本教程以1GB为例,可按需修改
count=1024为其他数值):
sudo mkdir -p /swapfile
cd /swapfile
sudo dd if=/dev/zero of=swap bs=1M count=1024
sudo chmod 0600 swap
sudo mkswap -f swap
sudo swapon swap
free
操作步骤示意图如下:
小提示:count=1024 表示分配1GB Swap空间(即1024MB)。如需2GB,可将参数改为 count=2048。chmod 0600 确保仅root用户可读写,提升安全性。
关闭Swap空间
输入 swapoff 命令即可停用当前已启用的Swap:
root@ubuntu:/swapfile# swapoff -a
root@ubuntu:/swapfile# free
total used free shared buff/cache a vailable
Mem: 2034960 395976 418360 884 1220624 1617364
Swap: 0 0
注意:关闭Swap后,运行 free 命令时Swap行的数值显示为0,表示已成功停用。
常见问题
- Q:为什么编译完成后建议立即关闭Swap?
A:编译大型项目(如系统镜像)时对内存需求较高,开启Swap可避免内存溢出(OOM)错误。然而,Swap的读写速度远不及物理内存,长期保持开启会降低系统响应速度,因此建议编译结束后及时关闭。 - Q:如何调整Swap文件的大小?
A:修改dd命令中的count参数即可。例如分配2GB时执行sudo dd if=/dev/zero of=swap bs=1M count=2048。注意:增大Swap前请确认存储空间充足。 - Q:遇到
libssl-dev与hobot-arm64-include冲突怎么处理?
A:使用强制覆盖选项:sudo apt install -o Dpkg::Options::="--force-overwrite" libssl-dev。若仍无法解决,建议从地平线资源中心下载最新系统镜像并重新刷写。
拓展提示
- Swap文件的默认路径为
/swapfile/swap,您可以根据习惯自定义存放位置,但推荐使用独立目录以便后期管理。 - 如需开机自动启用Swap,可在
/etc/fstab中添加一行:/swapfile/swap none swap sw 0 0。不过本教程仍建议按需手动开关,避免长期开启影响性能。 - 使用
swapon --show可查看当前所有已启用的Swap设备或文件列表。
如需帮助,欢迎留言或联系作者:Horizon_robot。
本文转自地平线开发者社区
原作者:CV_ctrler
原链接:https://developer.horizon.ai/forumDetail/98129467158916281
