Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
736 connectés 

 



Dernière réponse
Sujet : Compilation OpenWRT
fredo3 C'est ce qu'on m'a répondu sur un autre forum aussi :-/
 
Vais recommencer, j'ai peut-être fait une fausse manip et pris le mauvais fichier en effet.
 
:jap:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
fredo3 C'est ce qu'on m'a répondu sur un autre forum aussi :-/
 
Vais recommencer, j'ai peut-être fait une fausse manip et pris le mauvais fichier en effet.
 
:jap:
kisscoolz C'est la même archive de base ? C'est la même méthode ? Ca sent une différence de version et donc le patch ne passe plus :/
Il faudrait inspecter le fichier source et le patch voir ce qui a changé.
fredo3 Je reviens vers vous.

 

Bon j'ai avancé entre temps.
Mais j'ai cette erreur désormais et je ne sais pas trop où rechercher le problème en fait (sachant que chez d’autre ca marche :s )  :??:

 

https://reho.st/self/da46456dd6b40d [...] 9f9859.png

 

Sachant que le fichier dhcp.c.rej dont parle l'erreur c'est celui-ci:

 
Code :
  1. --- src/dhcp.c
  2. +++ src/dhcp.c
  3. @@ -754,6 +754,19 @@ int address_allocate(struct dhcp_context
  4.        if (addr.s_addr == d->router.s_addr)
  5.   break;
  6. +     /* in consec-ip mode, skip addresses equal to
  7. +        the number of addresses rejected by clients. This
  8. +        should avoid the same client being offered the same
  9. +        address after it has rjected it. */
  10. +     if (option_bool(OPT_CONSEC_ADDR))
  11. +       {
  12. +  if (c->addr_epoch)
  13. +    {
  14. +      c->addr_epoch--;
  15. +      d = context; /* d non-NULL skips the address. */
  16. +    }
  17. +       }
  18. +    
  19.      /* Addresses which end in .255 and .0 are broken in Windows even when using
  20.         supernetting. ie dhcp-range=192.168.0.1,192.168.1.254,255,255,254.0
  21.         then 192.168.0.255 is a valid IP address, but not for Windows as it's

fredo3 Ah bah finalement le service démarre.
Problème de droit sur un des fichiers (forcément, il y a en toujours un qu'on oublie...)

 

Bon par contre je vais voir si ce dnsmasq marche.

 

Oui oui, je l'ai compilé sur un OpenWrt fonctionnel, justement pour ne pas me risquer au cross-compiling, donc en principe niveau compilateur et archi ca devrait être ok.

rat de combat

fredo3 a écrit :

C'est saoulant :-/

Ça je veux bien te croire. :(
 
Tu as compilé avec le bon compilateur / pour la bonne architecture?
 
Tu peux filer les liens vers le code original / le patch / ... Peut-être quelqu'un pourra y jeter un oeil.

fredo3 Salut

 

Oui ca a finit par compiler. Bizarrement le fichier binaire en sortie est plus lourd que l'original alors que les modifications sont légères.
Le service dnsmasq ne démarre pas non plus maintenant. Du coup je ne sais pas si c'est le fichier binaire qui est mal compilé ou si c'est les fichiers de config qui le fait planter.

 

C'est saoulant :-/

 

Et tout ca juste pour faire apprendre à OpenWrt à faire du IP Passthrough/bridge mode pour un modem 4G. (Genre je comprends même pas comment ca n'a toujours pas été inclus de base à Openwrt...)

 


Le mieux aurait été d'intégrer le code source modifié de dnsmasque au code source d'OpenWrt afin de tout compiler en même temps, mais je sais pas comment patcher le code.

rat de combat Les warnings c'est que des warnings, il y en a dans pleins de projets (hélas), tu ignores.

 

Pour la cross-compilation faut utiliser le compilateur GCC-ARM-jesaispasquoi et la stdlib qui va avec. Ne me demande pas les détails, je sais pas. :o Perso je tenterai ça dans une VM histoire de rien casser. Ou alors compiler directement sur la framboise si c'est faisable?

fredo3 Bon, j'ai essayé sur un PC et Debian, ca compile, en tout cas j'ai les fichiers binaires en sortie, même s'il y a quelques warning encore lors de la compilation.
Donc ca doit venir de mon build d'OpenWrt qui ne doit pas contenir le nécessaires pour compiler dnsmasq correctement.

 


Mais maintenant j'ai un autre soucis. Comment je compile dnsmasq sur un PC/Debian (x64) pour qu'il fonctionne sur un ARM (RPi 3)???

 

Il y a des millions des résultats sur google au sujet de cross-compiling, mais pas une solution ne se ressemble, je suis totalement perdu  :pt1cable:

 

fredo3 Re-moi :o
 
Alors pour la compilation d'OpenWRT c'est ok.
Par contre maintenant j'essaye de compiler un dnsmasq modifié, j'ai plein de warning.
 
Alors le code source du dnsmasq modifié je l'ai placé sur OpenWRT au niveau du dossier /tmp/.
J'ai toute une série de warning qui sujet d'un fichier poll.h:
 
 

Code :
  1. ...
  2. ...
  3. ...
  4. gcc -g -Wall -W -O2 -DVERSION='""' -c edns0.c
  5. In file included from dnsmasq.h:85:0,
  6. from edns0.c:17:
  7. /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
  8. #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  9. ^~~~~~~
  10. edns0.c: In function 'calc_subnet_opt':
  11. edns0.c:350:7: warning: 'addrp' may be used uninitialized in this function [-Wmaybe-uninitialized]
  12. memcpy(opt->addr, addrp, len);
  13. ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  14. gcc -g -Wall -W -O2 -DVERSION='""' -c arp.c
  15. In file included from dnsmasq.h:85:0,
  16. from arp.c:17:
  17. /usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
  18. #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
  19. ^~~~~~~
  20. gcc -o dnsmasq cache.o rfc1035.o util.o option.o forward.o network.o dnsmasq.o dhcp.o lease.o rfc2131.o netlink.o dbus.o bpf.o helper.o tftp.o log.o conntrack.o dhcp6.o rfc3315.o dhcp-common.o outpacket.o radv.o slaac.o auth.o ipset.o domain.o dnssec.o blockdata.o tables.o loop.o inotify.o poll.o rrfilter.o edns0.o arp.o
  21. make[1]: Leaving directory '/tmp/DNSMASQ_mod/src'


 
Alors le fichier poll.h est présent sur OpenWRT, dans les dossiers suivants:

Citation :

./usr/include/asm/poll.h
./usr/include/asm-generic/poll.h
./usr/include/bits/poll.h
./usr/include/fortify/poll.h
./usr/include/linux/poll.h
./usr/include/poll.h
./usr/include/sys/poll.h

 
 
Le code source modifié de dnsmasq fait appel au fichier dans le dossier suivant:

Citation :

#include <sys/poll.h>


 
Je ne comprends pas trop ce qui cloche :-/

fredo3 Bonsoir

 

Bon, depuis cette aprem j'ai cette erreur à la fin de la compilation, on dirait que c'est à la création des fichiers images.
Donc pas de problème de conflit ou autre problème de compilation à proprement parlé.

 
Citation :

error: ext4_allocate_best_fit_partial: failed to allocate 1206 blocks, out of space?

 


D'où cela pourrait venir? Ca marchait très bien avant. Et j'ai plein d'espace libre sur le disque.

 


EDIT:

 

ah vais tester ca:

 
Citation :

I solved the problem by increasing the root filesystem partition size.

 

make menuconfig -> Target Images -> Root filesystem partition size (in MB)

 


EDIT2:
Ah ben c'était bien ca.

 

Désolé du dérangement.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR