|
发表于 2024-8-13 23:51:14| 字数 5,195| - 美国–加利福尼亚州–洛杉矶–洛杉矶 RamNode数据中心
|
显示全部楼层
|阅读模式
本帖最后由 chenxinyi 于 2024-10-11 15:05 编辑
前阵子对老机T420s装了新系统Linux Mint 21.3.感觉不错,于是在使用了半年多的新机E16也装一下,初体验不错,
安装Linux-mint 22简述
安装Linux-mint 22,仍采用VMWare安装模式,保留物理硬盘上的Windows 11 23H2
由于主物理硬盘MBR分区最多支持4个主分区,所以,只能用diskgenius在物理硬盘上新建扩展分区/dev/sda5,再在下面划出一个64GB的小分区(逻辑分区/dev/sda6)和100MB uefi引导分区(/dev/sda4),系统装在64GB分区,grub-boot loader最后安装失败告终,是无法从物理硬盘启动的.
想了下,可能安装时选择了grub-boot loader安装在64GB系统分区,实际上应该选择扩展分区/dev/sda5,手工用Linux mint live CD引导,在控制台敲入boot-repair启动修复器(图形界面),
找到安装在扩展分区/dev/sda5(不要用默认的/dev/sda, 那样就装在物理硬盘的启动扇区了!), 修复完成后,实模式GRUB2重启引导物理硬盘,可以从Linux Mint的EFI分区进入,顺利引导成功!
(Grub2能自动识别Windows boot manager - 比如,我这个物理硬盘的其它分区还安装了Windows 11 23H2,并且有Windows UEFI分区)
Linux-mint 22主要两个问题:
1. 桌面分辨率在非整数下缩放(experimental)
100%, 200%, 300%整数缩放,图形界面显示和各种操作都很平滑.
但是,在非整数下缩放125%(1.25倍)/150%(1.5倍)/175%(1.75倍), 是将显示分辨率先调整比设置要大一倍的到整数倍,再进行缩放回到所设置的非整数倍,在性能上会有损失.
比如,如设置150%的非整数缩放,Thinkpad E16是2.5k的分辨率,图形界面放大一倍后200%,再缩小回125%,这一来回图形渲染的速度肯定要慢不少,特别是用鼠标拖放窗口时,
可以明显看到有拖影和滞后现象.
所以,高分辨率的屏幕最好还是保持100%的缩放不变,然后放大字体,图标,面板和鼠标指针,详见:
10 Things to Do First in Linux Mint 22 Cinnamon
2. 默认安装后, CPU i7-13700H是跑在性能最低的PowerSave模式
均速400MHz,不注意的话还以为机器很安静,温度很低,风扇不转,如果只是上上网看不出来什么.
但是一旦成为生产力,就有明显感觉很差,再用stress命令压测全部大小核(总共20个),
再开一个终端,输入下面命令监控CPU 频率:
- watch -n.1 "cat /proc/cpuinfo | grep "^[c]pu MHz""
复制代码
发现CPU最高总体平均频率也只能维持在1.0GHz附近.
解决办法是安装cpufrequtils,修改cpu频率管理为性能模式,参考: https://forums.linuxmint.com/viewtopic.php?t=418363
修改配置文件/etc/init.d/cpufrequtils
不仅要改动GOVERNOR="performance",同样要指定MIN/MAX速度(这里设置最小3.2GHz/最大4.8GHz)
注: GOVERNOR="ondemand"更合适一些,即能保证性能,也能在待机时功耗比较小,负载时保证性能.
- GOVERNOR="performance"
- MAX_SPEED="4800000"
- MIN_SPEED="3200000"
复制代码
另一个一地方要改的是check_govenor_avail ,直接返回0就可以了,不然重启Linux mint系统后,默认governor是powersave,这个函数永远检测不到我们刚配置好的performance
也就不会继续执行下面的cpufreq-set命令配置每个内核的性能和频率.
- check_governor_avail() {
- info="/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors"
- #if [ -f $info ] && grep -q "\<$GOVERNOR\>" $info ; then
- # return 0;
- #fi
- return 0;
- }
复制代码
改完后,systemctrl重启cpufrequtils.service就可以了.
[2024-9-11] cpupower-gui 用界面调节CPU频率更方便
再作stress命令压测全核,CPU频率平均可以保持在2GHz左右,但这样性能还没有完全发挥,
找到和Windows 下ThrottleStop类似的解锁功耗的linux bash脚本setPL.sh (需安装依赖sudo apt install devmem2 msr-tools),解锁功耗后,全核100%压测, 增加到2.2GHz对比跑了一个自已的写python测试全核并行20x1亿次乘方运算程序,在Windows上运行要1分钟,在调校后的Linux Mint上运行只需0.82分钟.在CPU全核100%负载下CPU温度最高只有80度,也许还有上升空间...
没错,还有上升空间,就是解锁温度墙,网上有现成的python应用undervolt ,这个应用程序必须用sudo权限执行,所以,要安装在root空间,
先输入命令sudo su进入管理员环境,再执行命令pipx install undervolt (如果没有pipx , 用apt install pipx即可), undervolt就被装到/root/.local/bin下了,
安装完成后再执行命令pipx ensurepath,确认/root/.local/bin被添加到环境目录.
整个安装步骤类似于Windows下安装到特定用户目录下,并配置好环境路径PATH,以防止应用程序找不到,只不过Linux mint 22 将每个用户空间的环境路径单独配置,
用pipx安装是最好的选择.
说了一大堆,看不懂也没关系,反正装好undervolt以后,下一步是执行下面命令新建/配置undervolt.service
- xed /etc/systemd/system/undervolt.service
复制代码
粘帖下面代码保存即可! (注意: -t 95 设置温度墙比较高, 如果在长负载95度高温下运行, 可能会导致CPU温度瞬间过高导致保护性降频 - 比如集显玩3D游戏温度过高掉帧 , 建议80~85比较好)
- [Unit]
- Description=Undervolt
- [Service]
- ExecStartPre=/root/.local/bin/undervolt -t 95 -p1 45 128 -p2 45 0.5
- ExecStart=/root/setPL.sh 45 45
- [Install]
- WantedBy=multi-user.target
复制代码
执行下面命令,启动undervolt.service(重启Linux mint系统仍有效),这样一劳永逸,每次开机进入Linux mint能保持解锁功耗/温度墙了.
- sudo systemctl daemon-reload
- sudo systemctl start undervolt.service
- sudo systemctl enable undervolt.service
复制代码
功耗和温度墙均解锁后,全核100%压测, 继续对比跑了一个自已的写python测试全核并行20x1亿次乘方运算程序,对比仅解锁功耗墙运行只需0.82分钟,现在全部解锁后只需0.65分钟!!!在CPU全核100%负载下CPU温度最高95度,CPU频率监控也能在更高温度下维持更高的平均主频2.4GHz附近(仅P核),完全符合undervolt.service的配置!这也符合自已对于实模式下跑Linux系统性能的期待!
最后,说一下undervolt.serivce的详细配置命令和参数:
ExecStartPre执行undervolt命令解锁温度墙(参数-t 95)允许CPU最高温度到95度,并同时设置长/短功耗墙(-p1 45 128 / -p2 45 0.5)
ExecStart执行setPL.sh命令同样设置功耗墙.
感兴趣的同学可能要问:为啥要重复执行setPL.sh设置功耗墙?因为,undervolt好像没有锁定MMIO寄存器,会导致CPU温度过高时不会保持在你设定的较高功耗上,
而选择了BIOS系统微码的动态功耗墙方案,所以,我们还是要利用setPL.sh再重复设置功耗墙,顺便将MMIO寄存器给锁定!
(来自setPL.sh作者的解释, 貌似此作者得到了ThrottleStop作者的真传...)
Linux Mint 22 驱动和应用程序体验
Linux Mint 22居然自带了键盘背光管理
参考:https://www.ibmnb.com/thread-2053595-1-1.html
Thinkfan 仍然可用,手工定制风扇转速,只是thinkpad_acpi驱动无法支持隐藏的最高转速.
本来想装Deepin版本微信, QQ但没有成功,可能Linux mint 22里的库文件版本太高了,Deepin版本的应用程序更新太慢了.
索性直接Flatpak沙盒模式下安装微信,QQ,Telegram, SKype通讯软件一切正常,大致使用下没什么问题.微信有声音通知消息,语音通话没问题.
打印驱动安装比较简单,我这里办公的无线打印机,输入ip地址就能自动找到,甚至能自动帮助加载数据库已存在驱动,
要装原厂驱动也容易,一般的打印机驱动都有包含Linux支持的rpm或deb包,从包里解压出pdd描述文件,可以直接安装.
Bitlocker加密NTFS磁盘自动加载
多系统,多分区互访是必须做的事,在Linux Mint下访问Windows系统分区/数据分区,都很简单,
直接在文件管理器,点击后加载就可以了,但是对于Bitlocker加密后的分区访问,会提示恢复密钥,正确输入后(可选择永远记住,下次不用再输),
解锁后就可以访问了,如果要在启动Linux Mint时自动解锁Bitlocker,自动加载如何办呢?Reddit上找到一个最优方法,
https://www.reddit.com/r/Manjaro ... tfs_partition_with/
自动解锁就是手动配置/etc/crypttab
终端输入sudo xed /etc/crypttab 新建并添加一行(下面是示例,看后面解释,不要完全抄作业,如果是多个分区解锁,就添加多行):
- encrypt_shared_1 /dev/nvme1n1p3 /etc/cryptsetup-keys.d/nvme1n1p3.key bitlk
复制代码 encrypt_shared_1 是你给这个自动解锁起的名字 (任意取,多个分区多行,名字不要重复)
/dev/nvme1n1p3 是要解锁的分区设备名(不知道的可以输入命令blkid检查所有分区带Bitlocker字样的)
/etc/cryptsetup-keys.d/nvme1n1p3.key (纯文本密钥文件,直接粘帖你在Windows Bitlocker恢复密钥序列号,保存即可. 当然也可以选其它路径,但最好放这里,多个分区,多个密钥分件码放好)
这样配置好自动解锁后,如果你在上面配置行给定的密钥文件找不到,登录前会让你输入解锁密码!
自动挂载就是配置/etc/fstab ,直接可以通过Disks工具,图形化配置,选择好加载分区,点击gear齿轮图标,弹出菜单中选Edit mount Options(编辑加载选项)
取消User session Defaults,并确认勾选Mount at system startup(系统启动时加载),Mount point(加载点) / Identify as (分区标识)都配置好,点OK
这样其实就会在/etc/fstab里新键一行自动挂载磁盘分区命令了 (不要完全参考下图
注意:如果挂载的分区是 NTFS类型,必须手工将Filesystem type 改为ntfs3 (不要用auto,也不要用ntfs或ntfs-3g), 否则,
启动时mount将会用ntfs不支持 写入操作, 即使你的系统里安装了ntfs-3g驱动,加载后虽能读写,但这个驱动是在用户空间,性能不太好,且不支持Windows ACL
后续如有新的体验,将继续记录...
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
x
|