![não é possível editar o conteúdo de /sys/bus/pci/devices](https://rvso.com/image/1073518/n%C3%A3o%20%C3%A9%20poss%C3%ADvel%20editar%20o%20conte%C3%BAdo%20de%20%2Fsys%2Fbus%2Fpci%2Fdevices.png)
ao tentar executar
#!/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 um arquivo sh) obtive a saída
./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
ao examinar esses locais de arquivos, descobri que /sys/bus/pci/devices/0000:17:00.0/driver_override e /sys/bus/pci/devices/0000:17:00.1/driver_override já existiam, cujo conteúdo é "(nulo)"
Responder1
Esse problema provavelmente ocorre porque você não está executando o script com permissões de root. O /sys
diretório no Linux faz parte do sistema de arquivos virtual e é protegido. A modificação de arquivos aqui geralmente requer permissões de root (ou superusuário).
No seu caso, você está tentando modificar driver_override
arquivos, que precisam de privilégios mais elevados.
Tente executar o script com sudo, assim:
sudo ./a.sh
Este comando executará o script com privilégios de root e você não deverá mais ver o erro “Permissão negada”.
No entanto, tenha cuidado ao executar scripts com permissões de root, especialmente quando eles modificam arquivos do sistema, pois erros podem danificar seu sistema. Sempre certifique-se de entender o que o script está fazendo antes de executá-lo como usuário root.
O conteúdo "(nulo)" no driver_override
arquivo pode ser porque nenhum driver foi especificado para substituir o atual. A driver_override
interface permite que você especifique um driver específico para vincular a um dispositivo quando a verificação automática do driver do dispositivo for executada. É um recurso avançado e deve ser usado com cuidado.