Fix for multiple similar IDs

master
Trent Arcuri 6 years ago
parent f416d1ca74
commit db4274a2ce

@ -41,18 +41,13 @@ format()
do
lspciid[$line]="$(lspci -F $tmpfile -ns $line|awk '{print $3}')"
done
for line in "${lspcibus[@]}"
do
#echo ${lspciid[$line]}
:
done
for line in $(lspci -F $tmpfile -mm)
do
lspcihuma+=("line")
lspcifm+=("$(echo $line|awk -F\" '{print $4" "$2": "$6}')")
done
printf '' > $tmpfile
> $tmpfile
}
makelist()
@ -101,34 +96,23 @@ makefile()
bind()
{
#Unbind from device drivers, and bind to VFIO
echo "Bind functionality is disabled temporarily."
exit 1
for id in ${bindids[@]};do
#Get pci slot
pci=$(lspci -Dd $id|grep -Eoh "[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-9]")
pcipath="/sys/bus/pci/devices/$pci"
rmkd+=("$(stat $pcipath/driver -c %N|awk -F/ '{print $NF}'|sed "s/'//")")
#pci=$(lspci -Dd $id|grep -Eoh "[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-9]")
pcipath="/sys/bus/pci/devices/0000:$id"
#Rebinding process
if [ -e /sys/bus/pci/devices/$pci/driver ]; then
echo "$pci" > /sys/bus/pci/devices/$pci/driver/unbind
fi
echo "$id"|sed 's/:/ /'> /sys/bus/pci/drivers/vfio-pci/new_id
echo "${lspciids[$id]}"|sed 's/:/ /'> /sys/bus/pci/drivers/vfio-pci/new_id
done
}
unbind()
{
# Unbind from VFIO, and bind to device drivers
echo "Unbind functionality is disabled temporarily."
exit 1
for id in ${unbindids[@]};do
#Get pci slot
pci=$(lspci -Dd $id|grep -Eoh "[0-9a-f]{4}:[0-9a-f]{2}:[0-9a-f]{2}\.[0-9]")
rmkd+=("$(lspci -ks $pci | awk '{print $5}' | tail -n1)")
#Rebinding process
echo 1 > /sys/bus/pci/devices/$pci/remove
echo 1 > /sys/bus/pci/devices/0000:$id/remove
echo 1 > /sys/bus/pci/rescan
done
}
@ -136,10 +120,10 @@ unbind()
online()
{
#Get list of new and old ID's
for id in $(grep -Eoh "[0-9a-z]{4}:[0-9a-z]{4}" $genfile); do
for id in $(grep -Eoh "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9]" $genfile); do
newids+=("$id")
done
for id in $(grep -Eoh "[0-9a-z]{4}:[0-9a-z]{4}" $genfile.old); do
for id in $(grep -Eoh "[0-9a-f]{2}:[0-9a-f]{2}\.[0-9]" $genfile.old); do
oldids+=("$id")
done
@ -160,6 +144,8 @@ online()
echo "Bind: ${bindids[@]}"
echo "Unbind: ${unbindids[@]}"
echo
bind
exit
#Bind/Unbind the ID's respectively
if [[ ${bindids[@]} ]]; then

Loading…
Cancel
Save