Os números como "0a: 00.0" são os endereços de barramento PCI associados aos slots PCI. Estes são um mapeamento consistente - uma placa em um determinado slot sempre terá o mesmo endereço de barramento PCI.
Os dispositivos serão enumerados na ordem em que são vistos, portanto, se você remover um dispositivo, ele irá reorganizar a lista conforme sugerido. Você pode alterar esse comportamento com o udev, mas provavelmente é mais fácil criar links simbólicos.
Você pode determinar empiricamente qual endereço PCI mapeia para qual slot (por exemplo, colocar um cartão no slot 1, gravar o endereço do barramento, repetir) ou, se tiver muita sorte, o endereço do barramento para o mapeamento de slots contido no A saída de "biosdecode" será realmente útil. Não é útil na maioria das placas-mãe que vi, pois tem nomes de slots duplicados, ou eles não correspondem a nenhuma ordem lógica na parte de trás. No entanto, depois de ter elaborado o mapeamento, isso não mudará.
De qualquer forma, dê uma olhada na saída do biosdecode e talvez do dmidecode -t slot, você pode encontrar algo útil. Caso contrário, faça seu mapeamento manualmente.
(Além disso, o mapeamento PCI pode mudar - se você alterar as opções do BIOS ou do BIOS, os dispositivos poderão ser enumerados de forma diferente. EG, se um controlador USB integrado aparecer em 0b: 00.00 e você tiver dispositivos PCI mostrando em 0a: 00.0 e 0c: 00.0, e você desativa o controlador USB, pode resultar no deslocamento do dispositivo 0c: 00.0 para 0b: 00.0. Ou talvez não. Sua milhagem pode variar)