#!/bin/bash manuAndProdIDs="$(/usr/sbin/lspci -n | grep "${1:-.}: " | awk '{ print $3 }')" find /usr/src/linux/ -name Makefile -print0 >'/tmp/165448642driverMakeFiles' for aManuAndProdID in ${manuAndProdIDs} do manuID="0x0*${aManuAndProdID%%:?*}" prodID="0x0*${aManuAndProdID##?*:}" moduleName="$(grep "${manuID} ${prodID}" /lib/modules/"$(uname -r)"/modules.pcimap | awk '{ print $1 }')" if [[ ! -z ${moduleName} ]] then echo -n "[ ${moduleName} ]: " <'/tmp/165448642driverMakeFiles' xargs -0 grep -h -- '[+:]=.* '"${moduleName}"'\.o' | sed -n -e 's/^obj-\$(\([^)]*\)).*$/\1/p' || echo 'module not found in kernel' else echo "hrm, blank moduleName for ${aManuAndProdID}" >&2 fi done