20629280 发表于 2022-5-30 13:53:02

RK3566 交换空间为0的问题


硬件型号:ROC-RK3566-PC V1.1
固件版本:ROC-RK3566-PC-UBUNTU18.04-GPT-20211201-1545
编译ros程序的时候在某些程序包指定进度处卡死,报内存错误,查看交换空间为0,在线等待设置方法,谢谢。

风火轮用户68631 发表于 2022-5-30 14:39:48

sudo dd if=/dev/zero of=swapfile bs=1G count=8
mkswap swapfile
sudo swapon swapfile

20629280 发表于 2022-5-30 14:54:25

之前用这个命令试过,还是不行,如下:

root@firefly:~# free -m
            总计         已用      空闲      共享    缓冲/缓存    可用
内存:      1969         267      1353         5         347      1671
交换:         0         0         0
root@firefly:~# swapon -s
root@firefly:~# dd if=/dev/zero of=/swapfile count=2048 bs=1M
记录了2048+0 的读入
记录了2048+0 的写出
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 14.1608 s, 152 MB/s
root@firefly:~# ls / | grep swapfile
swapfile
root@firefly:~#
root@firefly:~# chmod 600 /swapfile
root@firefly:~# ls -lh /swapfile
-rw------- 1 root root 2.0G 5月27 02:47 /swapfile
root@firefly:~#
root@firefly:~# mkswap /swapfile
正在设置交换空间版本 1,大小 = 2 GiB (2147479552个字节)
无标签, UUID=4d1599ed-68ee-4572-b6e8-ffd68bd34c98
root@firefly:~# swapon /swapfile
swapon: /swapfile:swapon 失败: 无效的参数
root@firefly:~#
root@firefly:~# free
            总计         已用      空闲      共享    缓冲/缓存    可用
内存:   2016348      274728       20096      5200   1721524   1711360
交换:         0         0         0

风火轮用户68631 发表于 2022-5-30 15:51:17

20629280 发表于 2022-5-30 14:54
之前用这个命令试过,还是不行,如下:

root@firefly:~# free -m


swapon /swapfile改成swapon swapfile试一下

20629280 发表于 2022-5-30 16:04:33

试了一下 还是不行:
firefly@firefly:~$ sudo dd if=/dev/zero of=swapfile bs=1G count=1
记录了1+0 的读入
记录了1+0 的写出
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 8.01742 s, 134 MB/s
firefly@firefly:~$ mkswap swapfile
mkswap: 打不开 swapfile: 权限不够
firefly@firefly:~$ sudo mkswap swapfile
mkswap: swapfile:不安全的权限 0644,建议使用 0600。
正在设置交换空间版本 1,大小 = 1024 MiB (1073737728个字节)
无标签, UUID=42819505-bec6-49f9-987c-6b7108be8744
firefly@firefly:~$ sudo swapon swapfile
swapon: /home/firefly/swapfile:swapon 失败: 无效的参数
firefly@firefly:~$

风火轮用户68631 发表于 2022-5-30 16:18:48

20629280 发表于 2022-5-30 16:04
试了一下 还是不行:
firefly@firefly:~$ sudo dd if=/dev/zero of=swapfile bs=1G count=1
记录了1+0 的读 ...
。。。。。。。。。
添加交换分区大小都是这样的操作,
sudo swapoff swapfile
sudo rm -fr /swapfile
sudo rm -fr swapfile
sudo dd if=/dev/zero of=swapTest bs=1G count=1
sudo chmod 666 swapTest
sudo mkswap swapTest
sudo swapon swapTest

20629280 发表于 2022-5-30 16:28:32

试了还是不行,在电脑上可以,在这个3566开发板上就不行:L
firefly@firefly:~$ sudo swapoff swapfile
swapoff: swapfile:swapoff 失败: 没有那个文件或目录
firefly@firefly:~$ sudo rm -fr /swapfile
firefly@firefly:~$ sudo rm -fr swapfile
firefly@firefly:~$ sudo dd if=/dev/zero of=swapTest bs=1G count=1
记录了1+0 的读入
记录了1+0 的写出
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 7.96702 s, 135 MB/s
firefly@firefly:~$ sudo chmod 600 swapTest
firefly@firefly:~$ sudo mkswap swapTest
正在设置交换空间版本 1,大小 = 1024 MiB (1073737728个字节)
无标签, UUID=f896171c-de4e-4203-9a54-15041128241f
firefly@firefly:~$ sudo swapon swapTest
swapon: /home/firefly/swapTest:swapon 失败: 无效的参数
firefly@firefly:~$

风火轮用户68631 发表于 2022-5-30 16:32:49

20629280 发表于 2022-5-30 16:28
试了还是不行,在电脑上可以,在这个3566开发板上就不行
firefly@firefly:~$ sudo swapoff swapfile
swap ...

输入试一下
sudo chmod 777 swapTest
sudo swapon swapTest

20629280 发表于 2022-5-30 16:55:57

:L:L还是不行,怎么办啊:(
firefly@firefly:~$ sudo chmod 777 swapTest
firefly@firefly:~$ sudo swapon swapTest
swapon: /home/firefly/swapTest:不安全的权限 0777,建议使用 0600。
swapon: /home/firefly/swapTest:swapon 失败: 无效的参数

风火轮用户68631 发表于 2022-5-30 17:20:42

20629280 发表于 2022-5-30 16:55
还是不行,怎么办啊
firefly@firefly:~$ sudo chmod 777 swapTest
firefly@firefly:~$ sudo swapon ...

前面步骤都是成功的,只有最后的出差,swapon -h或者man swapon查看它的使用手册,看一下在这个板子是要接什么参数

20629280 发表于 2022-5-31 11:25:04

命令输入进去似乎也没有什么有用的信息:L:L,继续等待解决方法。
firefly@firefly:~$ swapon -h

用法:
swapon [选项] [<指定>]

允许将设备和文件用于分页和交换。

选项:
-a, --all                启用 /etc/fstab 中的所有交换区
-d, --discard[=<policy>] 如果设备支持,启用 swap 丢弃
-e, --ifexists         自动跳过不存在的设备而不提示
-f, --fixpgsz            必要时重新初始化交换区
-o, --options <列表>   以英文逗号分隔的 swap 选项
-p, --priority <优先级>指定交换设备的优先级
-s, --summary            显示已使用交换设备的摘要(已废弃)
   --show[=<列>]      以可自定义的表格形式打印摘要
   --noheadings         不打印表头(与 --show 合用)
   --raw                使用原生输出格式(与 --show 合用)
   --bytes            在 --show 输出中以字节数显示交换区大小
-v, --verbose               详尽模式

-h, --help               display this help
-V, --version            display version

<spec> 参数:
-L <标签>            同 LABEL=<标签>
-U <uuid>            同 UUID=<uuid>
LABEL=<标签>         按交换区标签指定设备
UUID=<uuid>            按交换区 UUID 指定设备
PARTLABEL=<标签>       按分区标签指定设备
PARTUUID=<uuid>      按分区 UUID 指定设备
<设备>               要使用设备的名称
<文件>               要使用文件的名称

可用的丢弃策略类型(针对 --discard):
once          :只进行单次区域丢弃(swapon)
pages          :对释放的页在重新使用前丢弃
* 如果未选择策略,则两者都将启用。(默认)

Available output columns:
NAME   设备文件或分区路径
TYPE   设备的类型
SIZE   交换区大小
USED   已使用字节数
PRIO   交换优先级
UUID   swap uuid
LABELswap 标签

更多信息请参阅 swapon(8)。
firefly@firefly:~$ man swapon
没有 swapon 的手册页条目
当没有手册页时,可以用 man 7 undocumented 命令来寻求帮助。
firefly@firefly:~$ man 7 undocumented
在第 7 节中没有关于 undocumented 的手册页条目。
firefly@firefly:~$

20629280 发表于 2022-6-1 16:38:31

交换文件的位置需要在 /userdata/rootfs_overlay/ 内
如果要导出文件系统,要先把交换文件关闭并删掉,不然做出来的固件会有问题

问题已经解决 谢谢:):)
页: [1]
查看完整版本: RK3566 交换空间为0的问题