Bonjour,
Je cherche à compiler un projet qui me permettrait de communiquer avec un matériel de mesure sous linux et Qt.
Anciennement : https://github.com/dpenkler/linux-usbtmc
Repris par : https://github.com/GuidoKiener/linux-usbtmc
Pourriez-vous m'aider à compiler le projet dans le but d'obtenir un .ko ?
Voici les erreurs :
~/Téléchargements/driver_sonde_keyseight/linux-usbtmc$ make
make -C /lib/modules/`uname -r`/build M=$PWD
make[1] : on entre dans le répertoire « /usr/src/linux-headers-4.9.0-7-amd64 »
CC [M] /home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.o
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2201:8: error: unknown type name ‘__poll_t’
static __poll_t usbtmc_poll(struct file *file, poll_table *wait)
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c: In function ‘usbtmc_poll’:
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2205:2: error: unknown type name ‘__poll_t’
__poll_t mask;
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2210:10: error: ‘EPOLLHUP’ undeclared (first use in this function)
mask = EPOLLHUP | EPOLLERR;
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2210:10: note: each undeclared identifier is reported only once for each function it appears in
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2210:21: error: ‘EPOLLERR’ undeclared (first use in this function)
mask = EPOLLHUP | EPOLLERR;
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2221:11: error: ‘EPOLLPRI’ undeclared (first use in this function)
mask |= EPOLLPRI;
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2228:12: error: ‘EPOLLOUT’ undeclared (first use in this function)
mask |= (EPOLLOUT | EPOLLWRNORM);
^~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2228:23: error: ‘EPOLLWRNORM’ undeclared (first use in this function)
mask |= (EPOLLOUT | EPOLLWRNORM);
^~~~~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2230:12: error: ‘EPOLLIN’ undeclared (first use in this function)
mask |= (EPOLLIN | EPOLLRDNORM);
^~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2230:22: error: ‘EPOLLRDNORM’ undeclared (first use in this function)
mask |= (EPOLLIN | EPOLLRDNORM);
^~~~~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c: At top level:
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2256:20: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.poll = usbtmc_poll,
^~~~~~~~~~~
/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.c:2256:20: note: (near initialization for ‘fops.poll’)
cc1: some warnings being treated as errors
/usr/src/linux-headers-4.9.0-7-common/scripts/Makefile.build:315 : la recette pour la cible « /home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.o » a échouée
make[4]: *** [/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc/usbtmc.o] Erreur 1
/usr/src/linux-headers-4.9.0-7-common/Makefile:1526 : la recette pour la cible « _module_/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc » a échouée
make[3]: *** [_module_/home/jo/Téléchargements/driver_sonde_keyseight/linux-usbtmc] Erreur 2
Makefile:152 : la recette pour la cible « sub-make » a échouée
make[2]: *** [sub-make] Erreur 2
Makefile:8 : la recette pour la cible « all » a échouée
make[1]: *** [all] Erreur 2
make[1] : on quitte le répertoire « /usr/src/linux-headers-4.9.0-7-amd64 »
Makefile:8 : la recette pour la cible « default » a échouée
make: *** [default] Erreur 2
Merci d'avance
# paquet de développement libc pas installé
Posté par Bernez . Évalué à 1.
Le paquet linux-libc-dev (à moins qu'il porte un autre nom sur ta distribution) est-il installé ?
[^] # Re: paquet de développement libc pas installé
Posté par electro575 . Évalué à 1.
Il est déjà installé à priori
# Noyau trop vieux
Posté par Cyril Brulebois (site web personnel) . Évalué à 3.
Si mes git skills ne me font pas défaut : il te faut au strict minimum un noyau v4.12-rc1, qui est la première version à contenir le commit
7e040726850a106587485c21bdacc0bfc8a0cbed
, qui ajoute plein d'EPOLL*
.Pour la définition de
__poll_t
, il s'agit du commit8ced390c2b18364af35e3d3f080e06f8ea96be9a
, qui lui n'apparaît qu'en version v4.16-rc1.Debian Consultant @ DEBAMAX
[^] # Re: Noyau trop vieux
Posté par electro575 . Évalué à 2. Dernière modification le 05 avril 2019 à 15:46.
Merci pour ton retour.
J'ai fait un upgrade noyau + headers.
Le Make fonctionne
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.