Impossible de détecter carte pci sous centos 7

sable27 - Modifié le 20 oct. 2023 à 03:31
flo88 Messages postés 25993 Date d'inscription dimanche 15 mai 2005 Statut Contributeur Dernière intervention 18 mai 2024 - 6 nov. 2023 à 16:53

Bonjour 

J'ai une carte pcie que j'essaye de connecter sur mon PC :

  • dans le BIOS, le VT-D est activé 
  • Sous Linux, quand je fais lspci, impossible de voir ma carte (carte pcie port parallèle)

J'ai activé le intel iommu (comme expliqué ici). Cela avait marché sur un autre PC, mais pas celui-ci.

Quand j'essaye de brancher la carte sur un autre PC (pas le même modèle) avec le même centOS, cela fonctionne. Donc, est-ce problème hardware du PC et non de la carte ? Où chercher ?

Je sèche complètement. Pouvez-vous m'aider ?

A voir également:

9 réponses

mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
20 oct. 2023 à 03:37

Bonjour,

1) Pour s'assurer que le problème ne vient pas de Linux, il serait intéressant de comparer les modules chargés sur les deux PCs.

lsmod | grep vfio

En particulier, sur celui pour lequel ça ne marche pas, est-ce que tous les modules évoqués sur la page de documentation que tu cites sont chargés ?

2) Par ailleurs, est-ce le même noyau sur les deux machines ?

uname -a

3) Si tout concordes pour les deux premières questions, ça sent le problème matériel. Pour en être complètement sûr, l'idéal serait par exemple de voir si sur le PC incriminé, la carte est bien détectée, par exemple sous Windows.

4) Si le problème persiste, le problème est sûrement matériel. Il faudrait alors soit tester un autre port PCI (si ta carte mère en a un), soit envisager de changer de carte mère...

Bonne chance

0

J'ai tout vérifié : même module, même noyau.

Sous windows, ça marche avec les drivers.

Je suis sûr de la carte, je l'ai testée sur un autre PC (pas du même modèle), ça fonctionne.

J'ai essayé sur 8 PCs différents du même modèle que celui avec lequel ça ne fonctionne pas, et ça ne fonctionne pas .

J'ai contacté le fournisseur, il n'assure pas CentOS. J'ai bien une procédure : 

1. Open a Terminal Window and type the following commands one after the other.

sudo apt update
sudo apt upgrade
sudo apt install make linux-source build-essential gcc-multilib linux-headers-($uname -r)
sudo ln -s /usr/include/asm-generic

2. Exit the Terminal Window.
3. Extract the Driver to a Folder of choice.
4. Open a Terminal Window and Navigate to the Folder where the Driver has been
extracted. Type the following commands one after the other.

make
sudo make install

5. Exit the Terminal Window.
6. Launch a new Terminal Window that is not rooted in the Driver Folder. Type the
following commands one after the other.

sudo modprobe -r parport_pc
lspci -v

Note lspci should now show a controller similar to :

01:00.2 Parallel controller: Asix Electronics Corporation AX99100 PCIe to Multi I/O Controller.

c. The next command will require the I/O Port Memory Address depicted in
Figure 1 with 0x added to the start of the address. E.g. if the I/O Port is stated to
be at address d010, the address used for the next command would be 0xd010.
d. Run :

sudo modprobe parport_pc io=0xd010

Note 0xd010 is the first I/O Port Memory Address from step 6b.
7. The Parallel Port should now appear as an lp port in /dev/.

Mais je bloque à l'étape 1B, pas de package disponible pour le 1b et les suivants ? 

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
Modifié le 24 oct. 2023 à 13:36

Bonjour,

  • D'où proviennent ces étapes ?
    • NB : J'ai corrigé quelques erreurs qui figurent dans les étapes que tu as reportées.
  • Le paquet linux-source existe bien sous Debian.
    • Tu évoques CentOS, qui contrairement à Debian, n'est pas basée sur apt mais sur rpm. Du coup, quelle distribution utilises-tu ?
    • Quelque soit la distribution, je ne vois pas de raison d'installer le paquet linux-source ; celui-ci ne sert normalement que lorsque tu veux recompiler ton propre noyau linux, et seuls les headers du noyau sont requis pour compiler un module.
  • En admettant que tu sois sous Debian ou une distribution qui en dérive, voici ce que je ferais à la place de l'étape 1.
sudo apt update
sudo apt upgrade
sudo apt install build-essential linux-headers-amd64 gcc-multilib

Bonne chance

0

Bonjour 

Merci pour ton aide 

Je suis bien sous centos 7 pas debian 

c'est la procédure qui se trouve sur le site du fabricant de ma carte pci 

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question

Je viens de refaire mon PC pour avoir exactement la même configuration. Sur celui qui fonctionne, avec :

lsmod | grep vfio

... j'ai :

vfio_pci 41993 0
vfio_iommu_type1 22440 0
vfio 32657 0 vfio_iommu_type1,vfio_pci
irqbypass 13503 0 kvm,vfio_pci

Sur celui qui ne fonctionne pas je n'ai rien avec cette commande.

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
24 oct. 2023 à 19:08

Bonjour,

Par rapport à #5 Cela montre qu'avec le PC qui ne marche pas, comme je le suspectais dans #1, le module vfio_pci n'est pas chargé. Est-il disponible ?

sudo modprobe vfio_pci
sudo dmesg | tail

Si ça n'est pas le cas, il faudrait le compiler. Il serait intéressant aussi de voir si le fichier .ko existe ou non dans /lib/modules, normalement il existe de base pour un noyau récent.

Exemple sous Debian :

(mando@silk) (~) $ find /lib/modules | grep \.ko$ | grep vfio
/lib/modules/6.5.0-1-amd64/kernel/drivers/vfio/vfio.ko
/lib/modules/6.5.0-1-amd64/kernel/drivers/vfio/pci/vfio-pci-core.ko
/lib/modules/6.5.0-1-amd64/kernel/drivers/vfio/pci/vfio-pci.ko
/lib/modules/6.5.0-1-amd64/kernel/drivers/vfio/vfio_iommu_type1.ko
/lib/modules/6.5.0-1-amd64/kernel/drivers/vfio/mdev/mdev.ko
/lib/modules/6.4.0-3-amd64/kernel/drivers/vfio/vfio.ko
/lib/modules/6.4.0-3-amd64/kernel/drivers/vfio/pci/vfio-pci-core.ko
/lib/modules/6.4.0-3-amd64/kernel/drivers/vfio/pci/vfio-pci.ko
/lib/modules/6.4.0-3-amd64/kernel/drivers/vfio/vfio_iommu_type1.ko
/lib/modules/6.4.0-3-amd64/kernel/drivers/vfio/mdev/mdev.ko
/lib/modules/6.5.0-2-amd64/kernel/drivers/vfio/vfio.ko
/lib/modules/6.5.0-2-amd64/kernel/drivers/vfio/pci/vfio-pci-core.ko
/lib/modules/6.5.0-2-amd64/kernel/drivers/vfio/pci/vfio-pci.ko
/lib/modules/6.5.0-2-amd64/kernel/drivers/vfio/vfio_iommu_type1.ko
/lib/modules/6.5.0-2-amd64/kernel/drivers/vfio/mdev/mdev.ko
/lib/modules/6.4.0-4-amd64/kernel/drivers/vfio/vfio.ko
/lib/modules/6.4.0-4-amd64/kernel/drivers/vfio/pci/vfio-pci-core.ko
/lib/modules/6.4.0-4-amd64/kernel/drivers/vfio/pci/vfio-pci.ko
/lib/modules/6.4.0-4-amd64/kernel/drivers/vfio/vfio_iommu_type1.ko
/lib/modules/6.4.0-4-amd64/kernel/drivers/vfio/mdev/mdev.ko

Ce qui m'étonne un peu, c'est que les étapes que tu évoques dans #2 semblent servir à compiler un autre module (parport). Ce serait intéressant de voir si, sur la machine sur laquelle ça marche, ce module est également chargé (auquel cas, cela laisserait penser qu'il faut effectivement le compiler).

Si parport semble effectivement requis, il faut remplacer dans #2 les commandes apt par leur équivalent rpm avec centOS. Par contre pour tout ce qui est sur CentOS, c'est une distribution que je n'utilise pas, mais je vais faire de mon mieux pour te guider. Ce tutoriel donne quelques pistes. Essayons déjà avec ces dépendances, qui suffiront peut-être :

sudo yum update
sudo yum install kernel-headers gcc make

La commande ln évoquée ensuite me paraît bancale car elle dépend du dossier dans lequel tu te trouves. Vu la tête de la commande dirais qu'il faut la lancer depuis le dossier qui contient les sources du modules, mais a priori c'est inutile car /usr/include est supposé être de base dans les dossiers implicitement explorés par gcc. Et si ça n'était pas le cas on passerait plutôt l'option -I/usr/include à gcc. Bref je pense que tu peux l'ignorer.

0

Bonjour 

Alors j'ai essayé pleins de trucs fait appel dans des amis habitués des compil de noyau on a tout essayé, rien n'y a fait .

par contre je me suis aperçu que la carte qui fonctionne sur le pc 1 est différente pex1plp -> oxford alors que mes 3 autres sont pex1p2 -> asix.

j'ai mis la carte 1 dans un 2 eme pc et la lspci carte non detecté avec carte 2 j'ai mis la 1 dans ce pc ça fonctionne je remet la 2 et là par magie ça fonctionne .

j'ai essayé avec 4 autres Pc mis sans ordre chacune des cartes 1 2 3 4  si je met en 1 er 2em ou 3 eme des asix cela ne fonctionne pas si je met une oxford en 1ere 2 eme ou 3 eme position les cartes qui sont connectés aprés se mettent toute a fonctionner. Je n'installe pourtant rien sur certains pc je n'ai meme pas fait la config iommu . et j'ai aussi ghosté le pc qui fonctionne et la même problématique . 

Bref ? pas d'explication 

0
mamiemando Messages postés 33113 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 15 mai 2024 7 753
30 oct. 2023 à 00:53

Hum OK, mais as-tu essayé ce que je t'ai proposé dans #3 ? Qu'est ce que ça a donné ? Ensuite, le fait que le comportement diffère en fonction du modèle de carte n'est pas nécessairement surprenant s'il manque un module pour prendre en charge tes cartes asix.

0

Bonjour 

Sous windows même problème et on le résoud en fesant la même manip on branche :

1 Carte qui ne fonctionne pas  ASIX (non vue dans le gestionnaire)

2 Carte qui fonctionne entre temps on a essayé avec d'autre pci usb et paralelle(vue dans le gestionnaire)

3  la même carte que le point 1 Carte qui ne fonctionne pas  ASIX (vue dans le gestionnaire)

0
flo88 Messages postés 25993 Date d'inscription dimanche 15 mai 2005 Statut Contributeur Dernière intervention 18 mai 2024 4 418
6 nov. 2023 à 16:53

Bjr

Asix et Oxford sont les marques des contrôleurs DB25 présent sur ces cartes, j'ai lu en travers, mais il ressort assez clairement que celle munie d'un Asix n'est pas compatible avec ton PC, il faut aussi voir la génération du port pciexpress sur lequel elle est enfiché, voir essayer d'autre port, ces cartes y sont très sensible en fonction des cartes mère.


0