Archlinux Clevo(蓝天) 笔记本驱动以及控制中心安装

Clevo 电脑的风扇调度真的是吵得要死,之前一直用 Windows 系统,用 Ryzen Master 降压来控制 CPU 温度,间接降低转速。 现在换到 Linux 系统,不好好配置一下实在受不了。 我在 Google 上翻了半天,找到了一堆 Github 仓库,试了几个都不好用,最后发现 AUR 仓库里已经有大佬整理了好用的包(我太爱 pacman 和 aur 了!)。 https://aur.archlinux.org/packages?K=clevo 安装驱动 yay -S clevo-drivers-dkms-git 安装控制中心 yay -S tuxedo-control-center-bin Tuxedo 是一家位于德国奥格斯堡的计算机制造商。该公司专门生产预装 Linux 操作系统的台式电脑和笔记本电脑。 在安装了上面的驱动之后就可以通过 Tuxedo 的控制面板来设置各种调度参数了。

十一月 3, 2024 · Nite

GO sync.Once 使用

sync.Once 用于确保某个函数只执行一次,无论有多少个 goroutine 尝试执行它。它有一个方法 Do(f func()),传入需要执行的函数。 基本用法示例: package main import ( "fmt" "sync" ) func main() { var once sync.Once done := make(chan bool) // 模拟多个 goroutine 调用 for i := 0; i < 10; i++ { go func(x int) { // once.Do() 传入的函数只会执行一次 once.Do(func() { fmt.Printf("只执行一次: %d\n", x) }) // 这行每个 goroutine 都会执行 fmt.Printf("goroutine %d 完成\n", x) done <- true }(i) } // 等待所有 goroutine 完成 for i := 0; i < 10; i++ { <-done } } 常见使用场景: 单例模式: type Singleton struct{} var ( instance *Singleton once sync.Once ) func GetInstance() *Singleton { once.Do(func() { instance = &Singleton{} }) return instance } 一次性初始化: type Config struct { settings map[string]string once sync.Once } func (c *Config) Load() { c.once.Do(func() { // 加载配置的代码 c.settings = make(map[string]string) c.settings["key"] = "value" }) } 延迟关闭资源: type Connection struct { once sync.Once quit chan struct{} } func (c *Connection) Close() { c.once.Do(func() { close(c.quit) }) } 错误处理: type ErrorHandler struct { once sync.Once err error } func (e *ErrorHandler) HandleError(err error) { e.once.Do(func() { e.err = err // 只处理第一个错误 fmt.Println("处理错误:", err) }) } sync.Once 的特点: ...

十月 25, 2024 · Nite

Archlinux Rdp 连接问题

如果你在非 Windows 端使用 RDP 协议远程控制一台登录微软账号的 Windows,那么连接时输入的用户名可能不是你的微软账号(邮箱),也不是去掉邮箱后缀后的剩余部分,更不是 Administrator,而是其他值,可以在被控端执行 echo %USERNAME% 查看,这个值虽然是自己设置的,但是系统设置里完全找不到,我试了半天真是有被气到。

十月 20, 2024 · Nite

Archlinux Wayland 输入法问题

fcitx5 输入法不可用 在桌面环境的设置中设置虚拟键盘为 fcitx 5 配置 ~/.config/<flags>.conf 文件 大部分常用包都会读取 ~/.config/ 目录下的 flags 文件,例如: visual-studio-code-bin 读取 ~/.config/code-flags.conf google-chrome 读取 ~/.config/chrome-flags.conf 基于 electron 包的程序读取 ~/.config/electron-flags.conf 或 ~/.config/electron<electron主版本号>-flags.conf 配置内容为 --enable-features=WaylandWindowDecorations --ozone-platform-hint=auto --enable-wayland-ime

十月 19, 2024 · Nite

Linux 中 Nvidia 驱动导致的 KDE Plasma 相关问题

本文针对 Turing (NV160/TUXXX) 及之后型号的显卡,可以通过 lspci -k | grep -A 2 -E "(VGA|3D)" 查看显卡型号 在 Linux 平台下 Nvidia 的驱动分为 3 种 nvidia/nvidia-dkms Nvidia 官方闭源驱动 nvidia-open/nvidia-open-dkms Nvidia 官方半开源驱动 nouveau 第三方开源驱动 官方驱动不论是闭源还是半开源,在游戏方面的性能都远好于第三方开源驱动。 带有 dkms 后缀的版本与不带的版本区别在于,不带后缀的版本用于 linux 标准内核,而带后缀的版本用于其他内核。 问题及解决方案 官方内核 在驱动更新到 555 主版本号之后会出现 KDE Plasma 动画卡顿和掉帧的情况,这是由于 Nvidia 官方引入的 GSP(RISC-V 处理器) 不稳定导致的。 在目前的驱动版本(560)中该问题仍然存在,可以通过禁用 GSP 解决,但是只有闭源驱动可以禁用 GSP,半开源驱动无法实现。 具体解决方法为添加内核参数 nvidia.NVreg_EnableGpuFirmware=0 添加内核参数的方法有很多需要根据使用的引导方式确定,具体可以查看 ArchWiki 此处给出 Systemd 引导的配置方法 $ nano /boot/loader/entries/<日期>_<引导名>.conf 添加下方内容 options nvidia.NVreg_EnableGpuFirmware=0 保存后重启即可。 第三方开源内核 第三方开源内核不会导致 KDE Plasma 卡顿的问题,但是会导致无法调节屏幕亮度,可以通过增加内核参数 acpi_backlight=none 解决。

十月 19, 2024 · Nite