/dev/null"),"\n") ; $output=null ; exec("modinfo $name",$output,$error) ; $parms = array() ; foreach($output as $outline) { $data = explode(":",$outline) ; switch ($data[0]) { case "name": $modname = trim($data[1]) ; break ; case "depends": $depends = trim($data[1]) ; break ; case "filename": $filename = trim($data[1]) ; break ; case "description": $desc = trim($data[1]) ; break ; case "parm": $parms[] = trim(str_replace("parm:","",$outline)) ; break ; case "file": $file = trim(str_replace("file:","",$outline)) ; break ; case "alias": case "author": case "firmware": case "intree": case "vermagic": case "retpoline": case "import_ns": case "license": break ; default: $parms[] = trim($outline) ; break ; } } $state = "Enabled" ; if (is_file("/boot/config/modprobe.d/$modname.conf")) { $modprobe = explode(PHP_EOL,file_get_contents("/boot/config/modprobe.d/$modname.conf")) ; $state = array_search("blacklist",$modprobe); if($state) {$state = "Disabled" ;} else $state="Custom" ; } else if($option == "conf") return ; if ($filename != "(builtin)") { $type = pathinfo($filename) ; $dir = $type['dirname'] ; $dir = str_replace("/lib/modules/$kernel/kernel/drivers/", "" ,$dir) ; $dir = str_replace("/lib/modules/$kernel/kernel/", "" ,$dir) ; } else { $dir = $file ; $dir = str_replace("drivers/", "" ,$dir) ; $state= "(builtin)"; } $arrModules[$modname] = [ 'modname' => $modname, 'dependacy' => $depends, 'parms' => $parms, 'file' => $file, 'modprobe' => $modprobe, 'state' => $state, 'type' => $dir, 'description' => substr($desc , 0 ,60) , ] ; } switch ($_POST['table']) { case 't1': $option = $_POST['option'] ; $select = $_POST['select'] ; #$procmodules = file_get_contents("/proc/modules") ; $kernel = shell_exec("uname -r") ; $kernel = trim($kernel,"\n") ; #$procmodules = shell_exec('find /lib/modules/$(uname -r) -type f -not -path "/lib/modules/$(uname -r)/source/*" -not -path "/lib/modules/$(uname -r)/build/*" -name "*ko*" ') ; $procmodules = shell_exec('find /lib/modules/$(uname -r)/kernel/drivers/ -type f -not -path "/lib/modules/$(uname -r)/source/*" -not -path "/lib/modules/$(uname -r)/build/*" -name "*ko*" ') ; $procmodules = explode(PHP_EOL,$procmodules) ; $builtinmodules = file_get_contents("/lib/modules/$kernel/modules.builtin") ; $builtinmodules = explode(PHP_EOL,$builtinmodules) ; $option = $_POST['option'] ; $arrModules = array() ; foreach($builtinmodules as $bultin) { getmodules($kernel,pathinfo($bultin)["filename"]) ; } foreach($procmodules as $line) { if ($line == "") continue ; getmodules($kernel,$line) ; } echo ""._("Module/Driver").""._("Description").""._("State").""._("Type").""._("Modeprobe.d config file").""; if (is_array($arrModules)) ksort($arrModules) ; foreach($arrModules as $modname => $module) { echo "$modname{$module['description']}{$module['state']}{$module['type']}"; if (is_array($module["modprobe"])) { $i = 0 ; foreach($module["modprobe"] as $line) { if ($i) echo "$line" ; else echo "$line" ; $i++ ; } } } break; } ?>