Art*_*oom 6 development kernel gma500 drivers
我正在尝试解决图形驱动程序的开发问题,在这种情况下是为了修改名为 gma500_gfx 的 DRM 内核模块。
每次更改此驱动程序时,我都会启动一个脚本来编译和替换以前的内核模块(通过 cp 命令),然后重新启动 Linux 发行版 (Lubuntu)。
我无法在不重新启动 Linux(尚未)的情况下重新加载此图形驱动程序模块。命令 modprobe 和 rmmod 总是给我一个“正在使用的模块”错误。
modprobe gma500_gfx -r
modprobe: FATAL: Module gma500_gfx is in use.
Run Code Online (Sandbox Code Playgroud)
当我查看依赖项时,我得到以下列表。
gma500_gfx 185579 2
drm_kms_helper 48716 1 gma500_gfx
drm 298219 3 drm_kms_helper,gma500_gfx
video 19370 2 acer_wmi,gma500_gfx
i2c_algo_bit 13413 1 gma500_gfx
Run Code Online (Sandbox Code Playgroud)
我也无法卸载这些依赖项中的任何一个,这会产生相同的错误。我在 modprobe 之前尝试过但不成功的其他事情:
有人知道比重新启动 Linux 发行版更快的重新加载图形驱动程序模块的方法吗?
经过大量研究,我找到了防止模块卸载以及如何重新加载模块的两个参考资料。持有锁的两件事是:
分别解除锁:
sudo /etc/init.d/lightdm stopecho 0 > /sys/class/vtconsole/vtcon1/bind但是,第二个选项将帧缓冲区框架与 gma500_gfx 驱动程序解除绑定,从而停止屏幕输出。所以,最好结合nr。2 用脚本解除绑定、卸载模块、重置屏幕并再次加载模块。AFAIK,我必须从控制台运行它。
#!/bin/bash
echo 0 > /sys/class/vtconsole/vtcon1/bind
modprobe -r gma500_gfx
modprobe gma500_gfx
/etc/init.d/lightdm start
Run Code Online (Sandbox Code Playgroud)
最好我想要 1 个重启脚本,我可以直接从 LightDM 运行它,它会重新加载驱动程序并恢复会话。我还无法做到这一点,但这与上面的问题是不同的主题。任何这样做的建议都会让我很高兴。:)
| 归档时间: |
|
| 查看次数: |
16346 次 |
| 最近记录: |