no se puede editar el contenido de /sys/bus/pci/devices

no se puede editar el contenido de /sys/bus/pci/devices

al intentar correr

#!/bin/sh

for i in /sys/bus/pci/devices/*/boot_vga; do
    if [ $(cat "$i") -eq 0 ]; then
        GPU="${i%/boot_vga}"
        AUDIO="$(echo "$GPU" | sed -e "s/0$/1/")"
        USB="$(echo "$GPU" | sed -e "s/0$/2/")"
        echo "vfio-pci" > "$GPU/driver_override"
        if [ -d "$AUDIO" ]; then
            echo "vfio-pci" > "$AUDIO/driver_override"
        fi
        if [ -d "$USB" ]; then
            echo "vfio-pci" > "$USB/driver_override"
        fi
    fi
done

modprobe -i vfio-pci

(como un archivo sh) obtuve el resultado

./a.sh: 8: cannot create /sys/bus/pci/devices/0000:17:00.0/driver_override: Permission denied
./a.sh: 10: cannot create /sys/bus/pci/devices/0000:17:00.1/driver_override: Permission denied

Al mirar esas ubicaciones de archivos, descubrí que /sys/bus/pci/devices/0000:17:00.0/driver_override y /sys/bus/pci/devices/0000:17:00.1/driver_override ya existían, cuyo contenido es "(nulo)"

Respuesta1

Es probable que este problema se deba a que no está ejecutando el script con permisos de root. El /sysdirectorio en Linux es parte del sistema de archivos virtual y está protegido. La modificación de archivos aquí a menudo requiere permisos de root (o superusuario).

En su caso, está intentando modificar driver_overridearchivos, que necesitan mayores privilegios.

Intente ejecutar el script con sudo, así:

sudo ./a.sh

Este comando ejecutará el script con privilegios de root y ya no debería ver el error "Permiso denegado".

Sin embargo, tenga cuidado al ejecutar scripts con permisos de root, especialmente cuando modifican archivos del sistema, porque los errores podrían dañar su sistema. Asegúrese siempre de comprender qué hace el script antes de ejecutarlo como usuario root.

El contenido "(nulo)" en el driver_overridearchivo puede deberse a que no se ha especificado ningún controlador para anular el actual. La driver_overrideinterfaz le permite especificar un controlador particular para vincularlo a un dispositivo cuando se realiza la prueba automática del controlador del dispositivo. Es una característica avanzada y debe usarse con cuidado.

información relacionada