求助:关于 Linux 下彻底关闭 zram 缓存的方法(zram.num_devices=0)

2020-02-07 23:20:45 +08:00
 lzwt806

各位好,CDLinux 维护者,问题中年又来麻烦各位了

有朋友会说这个应该让操作系统来管理,我经过大量的测试发现,如果是正常安装的操作系统这种想法是对的,但对于 LiveCD 这个在内存跑的移动系统而言,要随时回收有限的内存资源,内存浪费对 LiveCD 绝对是致命的(不要怀疑我这个结论)。

亲测 Porteus v4.0 无忧 @wintoflash 前辈定制的版本不管什么时候打开一个软件,关闭之后内存都能回收到刚进入系统时候的值,一直不解这个发行版本是如何做到的?具体情况请看下图:

http://wuyou.net/forum.php?mod=attachment&aid=NDEwNjg3fGY5ODg3MzAyfDE1ODEwODc4MjJ8MHw0MTg3MzU%3D&noupdate=yes

不想看图的朋友,图片的内容如下:

grub2 ( grub.cfg )我写的启动参数:

menuentry 'ZRAM:关 LOOP:开 语言:简体中文' {

linux /CDlinux/bzImage quiet zram.num_devices=0 CDL_DEV="Label=CDlinux" CDL_LANG=zh_CN.UTF-8 CDL_LOOP=yes

initrd /CDlinux/initrd

}

而使用 I-Nex 软件看到 kernel 一栏的启动参数为:

root=/dev/ram0 vga=normal zram.num_devices=4 zswap.enabled=1 zswap.max_pool_percent=20 zswap.compressor=lz4

显然还是以 zram.num_devices=4 来启动系统的,那么我上面的 grub.cfg 参数就没有生效。

请问:

1,这种情况是怎么回事(为什么 grub 的参数没有传递给内核执行)?

2,还是说我错了,应该把 zswap.enabled=1 改为 zswap.enabled=0 才正确?

望知道的 /有经验的朋友指导一下,感谢!

4662 次点击
所在节点    Linux
8 条回复
Cooky
2020-02-07 23:44:32 +08:00
CDLinux 还活着?
lzwt806
2020-02-08 00:06:04 +08:00
@Cooky 活得很好,而且今非惜比,见: http://kxs-co.gicp.net/Linux/
这是我维护的第 7 个年头了。
omph
2020-02-08 10:54:17 +08:00
厉害,坚持了这么长时间啊
看看这个是否有用
[如何提升树莓派的可用运行内存空间?( ZRAM ) - 哔哩哔哩]( https://www.bilibili.com/read/cv727423/)
[zram - Gentoo Wiki]( https://wiki.gentoo.org/wiki/Zram#Using_zram-init_service)
Cooky
2020-02-08 13:48:29 +08:00
@lzwt806 牛逼,以前在上网本上试过 CDL,挺不错的,后来学了 Arch 就没怎么碰其他的,
话说 CDL 是哪系的?还是 LFS 从头做的?
楼上的 Gentoo wiki 应该能解决 zram
lzwt806
2020-02-08 17:56:19 +08:00
@omph 感谢,时间太紧,10 号要开工了,搞不完只能等明年春节继续更。

@Cooky 早期 CDLinux 基于 slackware,到现在为止,70%是 LFS,28%用的 slackware/debian/资源,2%用的 centos/ArchLinux 资源,因为这 30%的包编译真的太麻烦太奇葩了,能用现成的就用现成的。

另外还有 A/I/N 三家显卡驱动,内核没更,这些都很费时间。
12101111
2020-02-08 18:05:35 +08:00
看启动参数可以直接`cat /proc/cmdline/不需要 GUI 软件
然后在 Linux x86 架构配置菜单 Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数,看起来这个内核应该内置了一些启动参数
lzwt806
2020-02-08 18:29:29 +08:00
@12101111 前辈说的“Processor type and features 下有 Built-in kernel command line 这个选项(CONFIG_CMDLINE_BOOL),打开后可以在 CONFIG_CMDLINE 中指定内置的启动参数“,是指在内核编译时的选项对吧?

意思是我现在的内核没办法关闭?要么重新编译一次对吗?因为这个内核不是我编译的,如果手里没有配置模板,估计配置那些选项对于我一个菜鸟来说都要 1 天以上。
tempdban
2020-02-09 13:05:39 +08:00
内核配置可以看看 /proc/config.gz

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/642880

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX