卸载 Hauppauge 2250 的 saa7164 模块,并停止 tvheadend 以暂停 Ubuntu 15.04

卸载 Hauppauge 2250 的 saa7164 模块,并停止 tvheadend 以暂停 Ubuntu 15.04

在使用 systemd 方面,我是个菜鸟。我运行的是 Ubuntu 15.04,配有 Hauppauge 2250 电视调谐器。不幸的是,2250 的驱动程序/模块“saa7164”与暂停/恢复不兼容,因此恢复后直播电视将无法播放。因此,我使用以下文件来停止/恢复 tvheadend 和 saa7164:

sudo gedit /lib/systemd/system-sleep/50_tvheadend

其中包含以下脚本:

#!/bin/sh
case "$1" in
  pre/*)
    echo "Entering sleep..." >  /tmp/sleep.log
    echo "Entering sleep"
    cat /proc/acpi/wakeup >> /tmp/sleep.log
    service tvheadend stop
    sleep 1
    modprobe -r tveeprom
    modprobe -r dvb_core
    modprobe -r v4l2_common
    modprobe -r videodev
    modprobe -r saa7164
    sleep 3
    echo "After modprobe..."  >> /tmp/sleep.log
    cat /proc/acpi/wakeup >> /tmp/sleep.log
    ;;
  post/*)
    echo "Awaking from sleep..." >>  /tmp/sleep.log
    echo "Waking up"
    modprobe saa7164
    modprobe videodev
    modprobe v4l2_common
    modprobe dvb_core
    modprobe tveeprom
    sleep 3
    echo "After modprobe..."  >> /tmp/sleep.log
    service tvheadend start
    sleep 1
        \cat /proc/acpi/wakeup >> /tmp/sleep.log
    ;;
esac

为了保险起见,我让每个人都可以执行这个文件:

sudo chmod 755 /lib/systemd/system-sleep/50_tvheadend

但这不起作用。所以我在终端中运行了启动和停止 tvheadend 的命令,成功了。但当我尝试在终端中使用“modprobe -r saa7164”停止 saa7164 驱动程序时,它出错了。所以我按照以下说明操作如何卸载正在使用的内核模块,但我的脚本尝试卸载“lsmod | grep saa7164”中列出的所有模块,但失败了。因此,我尝试在终端中运行以下命令:

htpc@htpc-desktop:~$ sudo modprobe -r saa7164
modprobe: FATAL: Module saa7164 is in use

htpc@htpc-desktop:~$ lsmod | grep saa7164
saa7164               131072  -1
tveeprom               24576  1 saa7164
dvb_core              126976  1 saa7164
v4l2_common            16384  1 saa7164
videodev              159744  2 saa7164,v4l2_common

htpc@htpc-desktop:~$ sudo modprobe -r tveeprom
modprobe: FATAL: Module tveeprom is in use.

htpc@htpc-desktop:~$ lsmod | grep tveeprom
tveeprom               24576  1 saa7164

如何卸载 saa7164 驱动程序/模块?

答案1

我认为在删除模块之前,您还需要停止任何使用该模块的程序。您没有运行 MythTV 吗?

答案2

您可以尝试通过停止正在使用该驱动程序的服务或在系统设置中禁用该驱动程序来卸载该驱动程序。为此,请尝试运行以下命令:

sudo rmmod saa7164
sudo rmmod tveeprom

如果上述命令失败,请尝试使用强制选项:

sudo rmmod -f saa7164
sudo rmmod -f tveeprom

如果上述命令也失败了,您可以尝试将驱动程序列入黑名单,以防止在启动时加载。您可以通过将以下几行添加到 /etc/modprobe.d/blacklist.conf 来实现此目的:

blacklist saa7164
blacklist tveeprom

保存并关闭文件,然后重新启动系统。驱动程序不应在启动时加载,您应该能够卸载它。

相关内容