diff options
Diffstat (limited to 'install-from-cwd.c')
-rw-r--r-- | install-from-cwd.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/install-from-cwd.c b/install-from-cwd.c index c700e70..20f3230 100644 --- a/install-from-cwd.c +++ b/install-from-cwd.c @@ -247,7 +247,7 @@ int install_from_cwd(Options *op) */ if (!op->kernel_module_only) { - if (!uninstall_existing_driver(op, FALSE)) goto failed; + if (!run_existing_uninstaller(op)) goto failed; } /* build a list of operations to execute to do the install */ @@ -275,6 +275,23 @@ int install_from_cwd(Options *op) if (op->dkms && !dkms_install_module(op, p->version, get_kernel_name(op))) goto failed; + /* Make sure the RM is loaded */ + + if (!op->no_kernel_module || op->dkms) { + /* + * If a kernel module was installed the normal way, it should have been + * left loaded by test_kernel_module(). However, older versions of + * nvidia-uninstall don't honor the --skip-module-unload option, so + * uninstalling a previous driver may have unloaded the module that + * test_kernel_module() loaded. Just in case that happened, modprobe it + * again here. + * + * When installing the module via DKMS, the module is not loaded to + * begin with. + */ + if (!load_kernel_module(op, p)) goto failed; + } + /* run the distro postinstall script */ run_distro_hook(op, "post-install"); @@ -769,6 +786,8 @@ static Package *parse_manifest (Options *op) p->entries[n].flags |= FILE_TYPE_NVCUVID_LIB; else if (strcmp(flag, "NVCUVID_LIB_SYMLINK") == 0) p->entries[n].flags |= FILE_TYPE_NVCUVID_SYMLINK; + else if (strcmp(flag, "XORG_OUTPUTCLASS_CONFIG") == 0) + p->entries[n].flags |= FILE_TYPE_XORG_OUTPUTCLASS_CONFIG; else { nvfree(flag); goto invalid_manifest_file; |