Tenho alguns dispositivos USB com firmware mais recente disponível, mas não tenho um PC com Windows à mão para atualizar o firmware.
Primeiro verifiquei fwupdmgr
se poderia atualizar os dispositivos diretamente no Linux, mas dizia que não havia nenhuma atualização de firmware disponível.
Em seguida, tentei atualizar o firmware nas VMs do Windows 10 e 11 usando o Virtualbox 7. Configurei a passagem USB e os dispositivos parecem funcionar bem no Windows. Na verdade, para alguns dos dispositivos (por exemplo, vários mouses Logitech), instalei o software do fornecedor que reconheceu os dispositivos e me permitiu fazer alterações neles (mas não atualizar o firmware).
Também me certifiquei de ser um membro do vboxusers
grupo e vejo que as regras udev do VirtualBox estão intactas em /etc/udev/rules.d/60-vboxdrv.rules
. E tentei configurar o controlador USB para versões diferentes nas configurações da VM (USB 3.0, 2.0, 1.1).
Eu também li esta página e tentei tudo listado lá: https://forums.virtualbox.org/viewtopic.php?t=82639
Por fim, tentei o Gnome Boxes e o virt-manager caso esse problema fosse exclusivo do VirtualBox, mas nenhum deles funcionou.
Já vi algumas pessoas mencionarem que conseguiram atualizar o firmware usando o Virtualbox no macOS, por exemplo:
- https://www.reddit.com/r/xbox/comments/od0qzv/comment/h4dl6mc/
- https://www.reddit.com/r/macgaming/comments/u4eunt/solution_how_to_update_xbox_controller_firmware/
Então, estou me perguntando se talvez haja algo exclusivo em como os dispositivos USB do Linux se conectam às VMs que impossibilitam as atualizações de firmware.
Minha pergunta é semelhante a esta , mas esse usuário está perguntando se é seguro atualizar o firmware, não se é possível.
Depois de tentar algumas iterações (Windows 10/11 no VirtualBox/Gnome Boxes/virt-manager), meu melhor palpite é que simplesmente não é possível atualizar o firmware por meio de uma VM do Windows em execução no Linux.
Como não uso o Windows e não quero dedicar espaço em nenhum dos meus computadores para isso, minha solução atual é instalar o Windows em uma unidade externa e usá-la se precisar atualizar o firmware que não está em
fwupdmgr
.O Windows (ao contrário do Linux e do macOS) não suporta oficialmente a execução de uma unidade externa, mas consegui fazê-lo funcionar usando as etapas aqui: Como executar o Windows a partir de uma unidade USB .
Para resumi-los:
Primeiro, você precisará de uma máquina Windows para executar as etapas. Você pode executá-los em uma VM do Windows no Linux, mas tive problemas para fazê-lo funcionar (isso pode ter ocorrido devido ao fato de eu ter usado um disco rígido USB 2.0 de cerca de 2010; como eu disse, não quero dedicar qualquer bom espaço de armazenamento ao Windows se eu não precisar ?)
Em seguida, você precisa de um ISO do Windows
Acesse o site de download do Windows 10 ou Windows 11
Se você estiver no Linux, parece permitir que você baixe o ISO diretamente. Se você estiver no Windows, precisará baixar a "Ferramenta de criação de mídia" e, após executá-la, selecionar Criar mídia de instalação e arquivo ISO quando solicitado
Baixe o Rufus em https://github.com/pbatard/rufus/releases
Rufus aberto
Selecione a unidade externa
Selecione o ISO do Windows que você baixou
Defina a opção de imagem como Windows To Go
Altere quaisquer outras opções conforme desejado e clique em Iniciar