pcimodules no longer works it produces nothing probably because the format of /sys/bus/pci is different.
lspci -k doesn't work on older lspci versions.
pciutils can be compiled but it won't work if you have an old system and compile on a newer glibc.
iteriate through /sys/bus/pci/devices/*/modalias
cat /sys/bus/pci/devices/*/modalias
pci:v00008086d00001237sv00000000sd00000000bc06sc00i00
pci:v00008086d00007000sv00000000sd00000000bc06sc01i00
pci:v00008086d00007111sv00000000sd00000000bc01sc01i8A
pci:v000080EEd0000BEEFsv00000000sd00000000bc03sc00i00
pci:v00008086d0000100Esv00008086sd0000001Ebc02sc00i00
pci:v000080EEd0000CAFEsv00000000sd00000000bc08sc80i00
pci:v00008086d00002415sv00008086sd00000000bc04sc01i00
pci:v0000106Bd0000003Fsv00000000sd00000000bc0Csc03i10
pci:v00008086d00007113sv00000000sd00000000bc06sc80i00
compare it to /lib/modules/4.4.98/modules.alias
pci:v00008086d00001237sv00000000sd00000000bc06sc00i00
the part we care about is:
8086d00001237 (note I now truncate more of the end so try again removing the 7 or even the 73 at the end to be more inclusive or you will have a lower success rate).
cat /lib/modules/4.4.98/modules.alias|grep 8086d0000123
alias pci:v00008086d00001234sv*sd*bc*sc*i* pata_mpiix
alias pci:v00008086d00001230sv*sd*bc*sc*i* pata_oldpiix
alias pci:v00008086d00001234sv*sd*bc*sc*i* piix
alias pci:v00008086d00001230sv*sd*bc*sc*i* piix
So bash to the rescue!
iteriate through /sys/bus/pci/devices/*/modalias
compare it to /lib/modules/4.4.98/modules.alias
bash script that I use in my init
#use this code to do the same thing as pcimodules
for device in `ls -1 /sys/bus/pci/devices/`; do
device=`cat /sys/bus/pci/devices/$device/modalias`
#specifying 9:11 or 9:14 with 9:11 being less restrictive and presenting more options
#9:14 drills down and is more strict giving you less chance of getting the wrong driver
alias=${device:9:14}
kernversion=`uname -r`
module=`cat /lib/modules/$kernversion/modules.alias|grep $alias|awk '{print $3}'`
if [ ! -z "$module" ]; then
for mod in $module; do
echo "module for $device $alias =$module"
modprobe $module
done
else
echo "No module found for $device $alias"
fi
done
pcimodules, lspci, solutionpcimodules, produces, format, sys, pci, doesn, versions, pciutils, compiled, compile, newer, glibc, iteriate, devices, modalias, sv, bc, sc, eed, beefsv, esv, ebc, cafesv, bd, fsv, csc, lib, modules, alias, truncate, removing, inclusive, grep, pata_mpiix, pata_oldpiix, piix, bash, init, ls, specifying, restrictive, presenting, drills, strict, kernversion, uname, module, awk, z, quot, mod, echo, modprobe, fi,