Aller au contenu

Installer / Compiler un Driver direct sur DS716+II


pccb00

Messages recommandés

Bonjour,

Je souhaiterai ajouter un driver directement dur mon Syno sans passer par la cross-compilation sur un Linux externe. Je pense que cela est possible (déjà vu pour une imprimante sur un forum US)

J'ai un adaptateur Wifi/Usb Netgear A6210, je veux ajouter les drivers, j'ai téléchargé les sources du driver Linux de mon Netgear mais cela ne fonctionne pas...je pense que mon DSm est prêt a compiler directement ( IPKG installé, compilateur aussi, make...) .

Je me connecte en SSH sur mon Nas, vais dans le répertoire ou j'ai copié les drivers Linux de mon Netgear A6210 mais lorsque je lance la commande make je reçois l'erreur suivante :

admin@DiskStation:/volume1/SauvegardePc/NetgearA6210$ sudo make
Password:
export DBGFLAGS

*** Building driver with debug messages ***

cp -f os/linux/Makefile.6 /volume1/SauvegardePc/NetgearA6210/os/linux/Makefile
make -C /usr/lib/modules/3.10.77/build DBGFLAGS=-DDBG SUBDIRS=/volume1/SauvegardePc/NetgearA6210/os/linux modules
make: *** /usr/lib/modules/3.10.77/build: No such file or directory.  Stop.
make: *** [debug] Error 2

 

Je ne sais plus quoi faire ....  quelqu'un peut il m'aider ?  Merci
 

Lien vers le commentaire
Partager sur d’autres sites

il y a 28 minutes, pccb00 a dit :

sans passer par la cross-compilation

Pas besoin de cross compilation, ton nas est un x86.

Tu ferais mieux de le faire depuis un linux à part à mon avis, ça éviterait d'installer plein de dépendances sur le syno et ça ira nettement plus vite. Une petite VM est c'est réglé.

Autre possibilité, comme tu as un modèle +, tu peux passer par docker => installe un conteneur avec tout le nécessaire pour compiler

il y a 27 minutes, pccb00 a dit :

sudo make

pourquoi faire un sudo ici

il y a 25 minutes, pccb00 a dit :

make: *** /usr/lib/modules/3.10.77/build: No such file or directory.  Stop.

tu n'as pas les dépendances demandées par ton makefile

-------

2 liens qui peuvent te servir :

https://github.com/jurobystricky/Netgear-A6210

https://developer.synology.com/developer-guide/create_package/compile_kernel_module.html

Lien vers le commentaire
Partager sur d’autres sites

Bonjour  Fenrir,

 

Merci pour ta réponse rapide.  Je vais essayé de suivre tes conseils mais je ne suis pas spécialiste Linux !! 

C'est sur le premier lien que j'ai déja téléchargé les drivers Linux en début de semaine.

Si j'ai bien compris je peux utiliser docker mais ou ? sur mon Syno ou sur une VM Linux ?

Autre question , puis je utiliser Cygwin ?

Merci encore

Lien vers le commentaire
Partager sur d’autres sites

il y a 27 minutes, pccb00 a dit :

Si j'ai bien compris je peux utiliser docker mais ou ? sur mon Syno ou sur une VM Linux ?

docker sur le syno si vraiment tu ne veux pas installer une VM sur ton pc

il y a 28 minutes, pccb00 a dit :

Autre question , puis je utiliser Cygwin ?

pas pour compiler des modules du noyau

Lien vers le commentaire
Partager sur d’autres sites

Tu parles de compiler un module du noyau directement sur le nas et tu es perdu avec ce que je viens d'indiquer ? :rolleyes:

  1. installe VirtualBox sur ton pc
  2. créé une machine virtuelle Linux et installe la distribution de ton choix
  3. installe les outils de compilation nécessaires
  4. installe les toolchain Synology

En passant, vu que tu n'as pas l'air à l'aise, le chargement d'un pilote instable ou mal compilé peut empêcher le nas de démarrer ...

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

J' avance doucement... j'ai installé VirtualBox puis Ubuntu 16.04. Ensuite j'ai téléchargé les sources Netgear A6210 ici:

https://github.com/jurobystricky/Netgear-A6210

Puis j'ai juste exécuté Make et  Sudo Make Install, le driver a été généré et installé puis mon adaptateur Netgear visible sur ma VM Ubuntu...gagné !!

Pourquoi n'est ce pas possible directement sur le DS716+II ?  peut être faut il modifie le le fichier makefile des sources Netgear ?  

Merci encore pour votre patience !!!

Lien vers le commentaire
Partager sur d’autres sites

il y a 20 minutes, pccb00 a dit :

Puis j'ai juste exécuté Make et  Sudo Make Install, le driver a été généré et installé puis mon adaptateur Netgear visible sur ma VM Ubuntu...gagné !!

Donc tu l'as compilé pour ton Ubuntu 16.04 (version de noyau+libs) et son modèle de CPU. Pour le cpu ce n'est pas trop gênant normalement, par contre le noyau doit être identique (ou très similaire). De même, les dépendances doivent être aux mêmes endroits.

Pour que ça marche sur ton nas, tu dois donc le compiler avec les bonnes options ..., c'est à ça que servent les toolkit.

il y a 20 minutes, pccb00 a dit :

Pourquoi n'est ce pas possible directement sur le DS716+II ?

Ce n'est pas que ce n'est pas possible, c'est juste fortement déconseillé car sale, lent et risqué.

Pour compiler un module (ou un noyau), il faut les sources du module, mais aussi du noyau (à minima les entêtes) puis les outils de compilation et de debug, rien de tout ça c'est présent sur un nas et rien de tout ça ne devrait être installé sur une machine de "prod".

J'ai trouvé cet exemple, un peu vieux mais bien détaillé, ça devrait t'aider : https://hallard.me/how-to-install-kernel-modules-on-synology-ds1010/

Edit : un autre avantage de le faire sur un machine indépendante, si synology met à jour son noyau (ce qui est fréquent), tu n'auras qu'à mettre à jour ton toolkit et les toolchains dans ta vm, alors que tu si le fais sur le nas, il faudra tout reprendre depuis le début.

Modifié par Fenrir
Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

 

Je viens de suivre cette procédure (équivalente a d'autres post trouvé sur le web)

https://hallard.me/how-to-install-kernel-modules-on-synology-ds1010/

Par contre je bloque sur une étape...

Lorsque je lance la commande  make menuconfig

Le menu s'ouvre bien, mais je ne vois pas le driver correspondant a mon NetGear...je pense que dans ce menu on trouve seulement les drivers ou modules qui sont déjà connu ou exploité par Synology. J'ai cherche das le menus et les sous menus mais rien ne correspond...

Je ne sais pas s'il est possible d'ajouter mon driver ...

 

Merci

 

 

Doc1.pdf

Lien vers le commentaire
Partager sur d’autres sites

il y a 4 minutes, pccb00 a dit :

Je ne sais pas s'il est possible d'ajouter mon driver ...

Dans le lien que je t'ai filé, le gars avait besoin de modifier la glibc (c'est pour ça qu'il a recompilé le noyau), tu ne devrais pas avoir besoin de le faire.

Il faut simplement reproduire ce que tu as fait sur ton ubuntu, à savoir le compiler sous forme de module mais dans un "environnement" conforme à ton syno.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Je crois que je vais jeter l'éponge !!! car mes modestes connaissances Linux ne me permettent pas d'aller plus loin ...

J'ai bien réussi a installer les Toolkit pour mon environnement, cette structure est bien présente sur ma vm Ubuntu:

Mais après je ne sais plus quoi faire, je suppose que je dois exécuter make qui va uliser le makefile disponible ici? :

https://github.com/jurobystricky/Netgear-A6210

merci

toolkit/
├── pkgscripts/
└── build_env/
    ├── ds.${platform}-${version}/
Lien vers le commentaire
Partager sur d’autres sites

La théorie de la compilation selon le développeur :

$ git clone https://github.com/jurobystricky/Netgear-A6210
$ cd Netgear-A6210
$ make
$ sudo make install

je vais lui faire bouffer son make et make install :evil:

Ca va encore se terminer avec des patch :mrgreen:

Modifié par gaetan.cambier
Lien vers le commentaire
Partager sur d’autres sites

Je te remercie @Fenrir de m'avoir refiler la cross compil ...

Bon, j'ai un soucis ... ca compil bien et puis .. le malheur arrive :mrgreen:

/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c: In function ‘CFG80211_OpsMgmtTx’:
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c:1822:2: warning: passing argument 3 of ‘RTMP_COM_IoctlHandle’ discards ‘const’ qualifier from pointer target type [enabled by default]
In file included from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/include/rt_config.h:49:0,
                 from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c:50:
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/include/rtmp.h:6247:5: note: expected ‘void *’ but argument is of type ‘const u8 *’
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c: At top level:
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c:2417:2: warning: initialization from incompatible pointer type [enabled by default]
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211.c:2417:2: warning: (near initialization for ‘CFG80211_Ops.get_station’) [enabled by default]
  CC [M]  /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.o
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.c: In function ‘CFG80211OS_RxMgmt’:
/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.c:944:2: error: too many arguments to function ‘cfg80211_rx_mgmt’
In file included from include/net/mac80211.h:21:0,
                 from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/include/os/rt_linux.h:58,
                 from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/include/rtmp_os.h:30,
                 from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/include/rtmp_comm.h:64,
                 from /home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.c:27:
include/net/cfg80211.h:3849:6: note: declared here
scripts/Makefile.build:308: recipe for target '/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.o' failed
make[4]: *** [/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux/../../os/linux/cfg80211/cfg80211_util.o] Error 1
Makefile:1225: recipe for target '_module_/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux' failed
make[3]: *** [_module_/home/gaetan/spksrc/cross/netgear-a6210/work-braswell-5.2/Netgear-A6210-m-7/os/linux] Error 2
make[3]: Leaving directory '/home/gaetan/spksrc/kernel/syno-braswell-5.2/work/source/linux'
Makefile:59: recipe for target 'debug' failed

 

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

pensez vous trouver une solution sans dépenser trop d'énergie?...Je suis désolé de vous donner du travail, si cela est trop compliqué ou prend trop de temps vous pouvez laisser tomber. 

Si cela ne marche pas je vais commander une clé wifi compatible d'origine

Merci encore..

 

Lien vers le commentaire
Partager sur d’autres sites

il y a 54 minutes, gaetan.cambier a dit :

Je te remercie @Fenrir de m'avoir refiler la cross compil ...

ba je ne t’avais pas demandé de le faire :mrgreen: mais juste de jeter un œil.

Sinon je viens de tomber la dessus, mais pas testé : https://hub.docker.com/r/synocommunity/spksrc/~/dockerfile/

il y a 3 minutes, pccb00 a dit :

Si cela ne marche pas je vais commander une clé wifi compatible d'origine

Ça serait effectivement plus simple, mais c'est le challenge qui est intéressant ici.

Lien vers le commentaire
Partager sur d’autres sites

il y a 31 minutes, Fenrir a dit :

Sinon je viens de tomber la dessus, mais pas testé : https://hub.docker.com/r/synocommunity/spksrc/~/dockerfile/

oui, c'est le dockerfile officiel de synocommunity ... mais bon cross-compiler en docker sur le nas ... ca va compiler à la vitesse d'une tortue, mais j'utilise toujours le spksrc mais en machine virtuelle sur 1 core i7, c + rapide :lol:

 

Lien vers le commentaire
Partager sur d’autres sites

bonjour Ca va mieux j'ai posé mon portable sur sa base (donc connecté via le lien port ethernet filaire) , j'ai relancé et laissé faire cette nuit...je pense que c'est bon . J'ai pas vu le résultat dans ma session SSH car mon PC et ma VM ont redemarré cette nuit !!! certainement les MAJ windows ..:lol:

Bon mais dans tous les cas j'ai bien un fichier de 1Mo mt7662u_sta.ko que j'ai trouvé dans /cross/netgear-a-6210/work-braswell-R.2/install/usr/local.:cool:

J'espere qu'il fonctionnera avec mon DSM: admin@DiskStation:/$ uname -a
Linux DiskStation 3.10.77 #8451 SMP Fri Dec 9 10:50:36 CST 2016 x86_64 GNU/Linux synology_braswell_716+II.

Pour l'installer sur le NAS faut il utiliser ipkg ? ou puis je le copier directement au bon emplacement ? pas le temps de le faire ce matin, faut aller travailler :mad:

Je reprends mon périple ce soir...merci et bonne journée .

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir,

Je viens de récupérer  support pour braswell 6.0.2 sur github, puis lancé la compilation qui semble s'etre bien passée.

J'ai bien le fichier  mt7662u_sta.ko , par contre même problème sur mon nas...

"insmod: error inserting 'mt7662u_sta.ko': -1 Invalid module format"  :mrgreen:

Bon ce n'est pas bien grave, je vais trouver une cle USB Wifi compatible, mais bon au moins j'aurai eu un cours pratique de Linux :lol:

Merci encore pour votre suppor

Je crois que les sources 6.0 et plus ne sont pas disponibles ...:exclaim:

https://forum.synology.com/enu/viewtopic.php?f=223&t=120535

https://trac.ffmpeg.org/ticket/5814#ticket

Donc a part compiler directement sur le NAS...je pense que cela va etre difficile !!

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.