为了调整我的华硕 Zenbook 上的屏幕板背光,我使用了我找到的内核模块这里。根据他的指示,要使用简单的screenpad x
命令来调整亮度来创建按键绑定快捷方式,我需要添加sudo chmod a+w '/sys/class/leds/asus::screenpad/brightness'
到“rc.local”,因为每次重新启动都需要该命令,并且每次都需要密码。通过自动运行,我可以立即使用自定义键盘快捷键,因为它们可以在 Windows 上的驱动程序中正常运行,而无需每次启动时运行命令并输入密码。
我是 Parrot OS 上的 Linux 新用户。根据我收集的信息,不建议使用 rc.local,我应该使用 systemd、cronjob,或者使用 GUI 启动应用程序菜单将其作为进程运行。
我完全迷失了如何使用 systemd 或 cronjob 来执行此操作。我尝试制作一个名为“screenpad-perms.sh”的文件并将其放入 /usr/local/bin 中,根据我所读到的内容,其中仅包含以下几行:
#! /bin/bash
sudo chmod a+w '/sys/class/leds/asus::screenpad/brightness'
然后我使用 使其可执行chmod +x screenpad-perms.sh
。最后,我打开 GUI 自动启动应用程序并将其添加为登录脚本。
重新启动电脑,但它不起作用,除非我手动键入并输入密码,否则键入screenpad x
会出现权限被拒绝错误;sudo chmod a+w '/sys/class/leds/asus::screenpad/brightness'
所以它似乎没有被执行。
再次抱歉,因为我对 Linux 还很陌生,只是希望这个屏幕能够正常工作。我在这里缺少什么?
答案1
如果您的系统正在使用 systemd,那么这是您想要执行的操作的最佳选择。 systemd 单元已经以 root 身份执行,因此不需要 sudo,您可以将其设置为在启动期间运行,甚至不需要任何人登录。
以下是有关 systemd 的信息的一个链接:https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files
systemd 单元文件或多或少类似于 Microsoft*.INI
文件。他们已经[SectionHeadings]
跟着Directive=Value
行了。
以下是您需要的步骤:
加载 root shell (
sudo bash
) 或为大多数命令添加前缀以sudo
作为 root 运行。创建一个 shell 脚本供 systemd 服务单元执行。通常,您会将文件放入
/usr/local/sbin
.让我们称它为/usr/local/sbin/fix-backlight.sh
root:编辑/usr/local/sbin/fix-backlight.sh
(假设editor
启动您首选的编辑器,如果该文件不存在,它会创建该文件。)
在文件中,输入 (#!必须是文件的第一行):
#!/bin/bash
chmod a+w '/sys/class/leds/asus::screenpad/brightness'继续保存并关闭编辑器。然后使该文件只能由 root 读/写/可执行(出于安全考虑):
chmod 0700 /usr/local/sbin/fix-backlight.sh
创建 systemd 单元文件(通常在 中
/etc/systemd/system
,但也有其他位置;上面的链接提供了更多详细信息):编辑/etc/systemd/system/fix-backlight.service
在该文件的编辑器中,输入:
[Unit]
Description=修复“screenpad x”背光命令的权限
[Service]
ExecStart=/usr/local/sbin/fix-backlight.sh
[Install]
WantedBy=multi-user.target保存并退出编辑器。测试单位:
systemctl 启动修复背光.service
如果一切顺利并且从(非 root)shell 中“screenpad x”命令正在工作,则使设备能够在启动时启动:
systemctl 启用修复背光.service
然后继续并重新启动,并确保现在一切正常。 (如果它不这样做并炸毁了邻居的猫,那就怪狗吧!)
如果需要,您还可以systemctl disable fix-backlight.service
使其在启动时停止运行。
答案2
也许您需要在 sudoers 文件中启用此 cmd,因此此特定 cmd 将不再需要密码。 Sudoers 是一个配置文件,您可以在其中管理 sudo 相关问题:
sudo EDITOR=nano visudo
要通过 visudo 使用 nano 编辑文件(推荐),请添加:
[YOUR_USERNAME] ALL=(ALL) NOPASSWD:/bin/chmod u+w /sys/class/leds/asus::screenpad/brightness
插入不带括号的用户名,并通过执行以下命令添加 chmod 的正确位置:
which chmod
对我来说是/bin/chmod
基本上,您允许每个以您身份登录的人在没有密码提示的情况下执行此命令,但请小心,sudoers 文件非常重要,如果您保存文件时出现一个小拼写错误,则可能会破坏您的系统。这就是为什么您应该使用visudo
它来编辑它,因为它不会保存有错误的配置文件。每次我以这种方式重新启动时,我都会更换我的Mac,所以它对我有用。