如何防止 lp 模块在启动时加载?

det*_*tly 1 kernel

我在需要访问并口的VMWare VM下使用了一些软件。如果lp加载了内核模块,VMWare 的播放器将无法访问该端口。每次我想在我的虚拟机下使用它时,我都需要卸载模块,而且由于我从来没有在 Ubuntu 本身下使用过它,如果它不是默认加载就好了。

我试着加入blacklist lp/etc/modprobe.d/blacklist.conf运行sudo update-initramfs -k all -u,但lsmod表明,它是我开机后仍然加载。如何防止模块被加载?我将 Ubuntu 11.10 与来自内核团队 PPA 的 3.0.0-x 内核一起使用。

小智 6

构建自定义内核不是必要的

这是我的程序(遗留应用程序,在 vmware 播放器中虚拟化,需要访问并行端口加密狗)

为了使并行端口加密狗工作,Ubuntu 用户需要是该lp组的成员。作为根(或sudo):

vigr    (add user to group lp)
vigr -s (repeat)
Run Code Online (Sandbox Code Playgroud)

接下来需要防止内核模块lp加载

  1. 编辑/etc/modules以确保lp在启动时未加载:

    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    #lp
    rtc
    
    Run Code Online (Sandbox Code Playgroud)
  2. 黑名单lp模块(Ubuntu 10 及更高版本)允许玩家访问它。

    创建一个文件:/etc/modprob.d/blacklist-vmware.conf

    #/etc/modprob.d/blacklist-vmware.conf
    blacklist lp
    
    Run Code Online (Sandbox Code Playgroud)
  3. 执行以下命令更新启动映像:

    dpkg-reconfigure linux-image-$(uname -r)
    
    Run Code Online (Sandbox Code Playgroud)
  4. 编辑/etc/default/cups看起来像这样:

    # Cups configure options
    
    # LOAD_LP_MODULE: enable/disable to load "lp" parallel printer driver module
    LOAD_LP_MODULE=no
    
    Run Code Online (Sandbox Code Playgroud)

重启并测试!

lsmod | grep lp
Run Code Online (Sandbox Code Playgroud)

(应该是空响应)