diff --git a/loader/driverdisk.c b/loader/driverdisk.c
index a8c191d..b32b7f1 100644
--- a/loader/driverdisk.c
+++ b/loader/driverdisk.c
@@ -88,19 +88,18 @@ int modprobeNormalmode()
/* run depmod to refresh modules db */
if(system("depmod -a")){
- /* FIXME: depmod didn't run */
+ logMessage(ERROR, "depmod -a failed");
+ return -1;
}
return 0;
}
-/* RPM extraction dependency checks */
-int dlabelDeps(const char* depends, void *userptr)
-{
- logMessage(DEBUGLVL, "Depends on: %s
", depends);
- return 0;
-}
-
+/*
+ * check if the RPM in question provides
+ * Provides: userptr
+ * we use it to check kernel-modules-<kernelversion>
+ */
int dlabelProvides(const char* dep, void *userptr)
{
char *kernelver = (char*)userptr;
@@ -110,6 +109,10 @@ int dlabelProvides(const char* dep, void *userptr)
return strcmp(dep, kernelver);
}
+/*
+ * during cpio extraction, only extract files we need
+ * eg. module .ko files and firmware directory
+ */
int dlabelFilter(const char* name, struct stat *fstat, void *userptr)
{
int l = strlen(name);
@@ -132,25 +135,35 @@ int dlabelFilter(const char* name, struct stat *fstat, void *userptr)