Tuto Rapido NB6V

De neufbox 4

par Vincent Alex, SGDA, Supercactus (rédaction par FHO Corp)

Ce tutoriel permet, en 6 étapes, d'avoir l'accès root au shell d'une neufbox 6 V par l'ajout d'un compte personnalisé. 13/07/2012 : /!\ Article en construction


Important : à lire avant toute modification

  • Ne modifiez seulement une neufbox dont vous êtes propriétaire. Il est possible d'en acheter une neuve pour 50 € dans les grandes surfaces (Auchan, Fnac, Boulanger, ...) ou une d'occasion pour moins cher encore.
  • N'appelez la hotline que si vous constatez des dysfonctionnements avec une neufbox d'origine (c'est-à-dire non modifiée et surtout avec un firmware officiel).
  • Le CFE est compris dans le firmware de la NB6V, donc il faut être extrêmement prudent. En cas d'image foireuse, il n'est plus possible de démarrer la NB6V et ceci de façon définitif.


Si vous modifiez une neufbox, prenez vos responsabilités. Si vous pensez qu'il y a des problèmes avec votre ligne ADSL, remettez une neufbox d'origine avant d'appeler la hotline.

Merci


Pour suivre ce tutoriel, il faut aussi maitriser le système linux car les étapes ne sont pas détaillées à 100%.


Etape 1 : Préparation des outils nécessaires

L'image des nb6v est au format jffs2 compacté en lzma et terminée par un wfi-tag.

Plusieurs outils sont nécessaires pour manipuler une telle image :

  • outils wfi pour gérer le wfi-tag,
  • outils mtd pour manipuler le système de fichier jffs2 compacté en lzma.

Paquets Nécessaires

Vérifiez que vous disposez bien des librairies libzo2 et libacl1 sur votre système. Dans le cas contraire, il convient de les installer:

apt-get install uuid-dev libacl1-dev liblzo2-dev

Outils wfi

Les sources de deux outils, wfi-tag-extract et wfi-tag-mk, permettant d'extraire et recomposer le wfi tag de l'image de la nb6v sont disponibles sur le dépôt gna neubox4.org aux adresses suivantes :

Mirroir de fhocorp :

git clone https://git.fhocorp.com/Openbox4/openbox4-tools/src/master/firmware_3.x/tools/nb6v-wfi-tag-extract
git clone https://git.fhocorp.com/Openbox4/openbox4-tools/src/master/firmware_3.x/tools/nb6v-wfi-tag-mk

Ancien dépot GNA (hors service depuis 2017):

svn co http://svn.gna.org/svn/openbox4/trunk/firmware_3.x/tools/nb6v-wfi-tag-extract/ nb6v-wfi-tag-extract
svn co http://svn.gna.org/svn/openbox4/trunk/firmware_3.x/tools/nb6v-wfi-tag-mk/ nb6v-wfi-tag-mk

Avant les de les utiliser, il faut les compilers.

[fedora tools]$ cd nb6v-wfi-tag-extract
[fedora nb6v-wfi-tag-extract]$ make
gcc -o wfi-tag-extract wfi-tag-extract.c
[fedora nb6v-wfi-tag-extract]$ cd ..
[fedora tools]$ cd nb6v-wfi-tag-mk/
[fedora nb6v-wfi-tag-mk]$ make
gcc -o wfi-tag-mk wfi-tag-mk.c
[fedora nb6v-wfi-tag-mk]$ cd ..
[fedora tools]$ 

Outils mtd

Il faut appliquer un patch, créé par SGDA, pour ajouter le support lzma aux outils mtd-utils.


Télécharger mtd-utils-1.4.5 (https://www.neufbox4.org/download/tools/mtd-utils/mtd-utils-1.4.5.tar.gz ou http://git.infradead.org/mtd-utils.git/commit/5319b84974fcb71504aed2d1b8285e9c0a4a4bb8 ou http://repository.timesys.com/buildsources/m/mtd-utils/mtd-utils-1.4.5/mtd-utils-1.4.5.tar.gz)

Appliquer le patch de SGDA (https://www.neufbox4.org/download/tools/mtd-utils/000_mtd-utils-1.4.5.patch)

Compiler le tout !

[fedora sandbox]$ wget https://www.neufbox4.org/download/tools/mtd-utils/mtd-utils-1.4.5.tar.gz
[fedora sandbox]$ tar -zxvf mtd-utils-1.4.5.tar.gz
[fedora sandbox]$ cd mtd-utils-1.4.5
[fedora mtd-utils-1.4.5]$ wget https://www.neufbox4.org/download/tools/mtd-utils/000_mtd-utils-1.4.5.patch
[fedora mtd-utils-1.4.5]$ patch -p1 < 000_mtd-utils-1.4.5.patch 
[fedora mtd-utils-1.4.5]$ make
[fedora mtd-utils-1.4.5]$ 

Etape 2 : Récuperation des scripts

Deux scripts, exnb6v.sh et mknb6v.sh, automatisant l'extraction et la recomposition du firmware de la nb6v sont disponibles sur le dépôt gna de neufbox4.org à l'adresse ci-dessous : http://svn.gna.org/svn/openbox4/trunk/firmware_3.x/tools/nb6v-tools/

Avant de les utiliser, il faut les customiser. C'est-à-dire que les variables WFI_TAG_EXTRACT, JFFS2_DUMP, JFFS2_EXTRACT, WFI_TAG_MK et MKFS_JFFS2 en début de script, correspondant aux outils nécessaires doivent être modifiées afin que les chemins correspondent à ceux de votre système.

Etape 2.1 : Recuperation du firmware

Recuperation du dernier firmware en date:

Version 3.3.9

http://download.nb6thd.neufbox.neuf.fr/nb6v_Version%203.3.9_bis/nb6v-3.3.9.sha256sum

#
# UUID: af618714-397b-4082-860f-51c8d350f404
#
# NB6V 3.3.9 sha256sum
#
4b266185b7aaa367d08c04eb5a560c64afec80d8ce4d49dc249b3fdce75c749e  NB6V-BOOTLOADER-R3.3.2
e58a65760cb1207fc9c07b5e8526092beaaa230570cbaf7e8937b03657983365  NB6V-MAIN-R3.3.9
4cb2abb14d977efad0c26502b202c29995bbef50b53ed0112b6d4b6b7da46382  NB6V-CONFIG-R3.3.9.2
991c6a7e6745712c8dc52836049fd74dd154f7d3b60159dc899e707760589548  NB6V-XDSL-A2pv6F038m

Etape 3 : Extraction du firmware

Rien de plus simple :

./exnb6v.sh NB6V-MAIN-R3.3.9

ou NB6V-MAIN-R3.3.9 est le nom du firmware à extraire

Etape 4 : Modification du firmware

Libre à vous de modifier ce que vous voulez !

Par exemple le banner :

[root@fedora sandbox]# cat squashfs-root/etc/banner 
   ____                   ____  ____ _  _    
  / __ \____  ___  ____  / __ )/ __ \ |/ /  
 / / / / __ \/ _ \/ __ )/ __  / / / /   /  
/ /_/ / /_/ /  __/ / / / /_/ / /_/ /   |  
\____/ ____/\___/_/ /_/_____/\____/_/|_|
    / / 
   /_/        OpenBox Project By NeufBox4.org

 Backfire (10.03, r28310) --------------------------
  * Powered by Efixo (NB6V-MAIN-R3.3.9, r23405)
                   (http://www.efixo.net/gpl/)
  * OpenWrt Base Firmware (http://openwrt.org)
 ---------------------------------------------------

Rajout compte ob6 dans les fichiers password et shadow (dernière ligne de chacun) :

[root@fedora sandbox]# cat squashfs-root/etc/passwd 
root:x:0:0:root:/:/bin/sh
admin:x:1:1:Administrator:/var:/bin/false
diag:x:2:2:Diag Tools:/var:/bin/sh
fabprocess:x:10:10:Fab Process:/var:/bin/sh
ntp::101:101::/var/ntp:/bin/false
nobody:*:65534:65534:nobody:/var:/bin/false
daemon:*:65534:65534:daemon:/var:/bin/false
ob6:x:0:0:root:/:/bin/sh

[root@fedora sandbox]# cat squashfs-root/etc/shadow 
root:$1$jVUfq3II$z41pbTLvC.DaCBn1jEgy7.:14550:0:99999:7:::
diag:$1$7xZcivvC$h.QeSG1y1BKf9kctx9m3i/:13367:0:99999:7:::
fabprocess:$1$/Q5sKs4V$UdR/AJfdBKw7i4mlU.WgV1:13367:0:99999:7:::
admin:$1$Zxj1lT/7$uiFhhQUh40T7UFGpIZo4K.:13367:0:99999:7:::
ob6:$1$jVUfq3II$Fo7W5gzuo/ashKKe4RLTH/:14550:0:99999:7:::
[root@fedora sandbox]#

Etape 5 : Recomposition du firmware

Encore trop simple !

./mknb6v.sh fsb-root NB6V-MAIN-OPEN

ou fsb-root est le filesystem et NB6V-MAIN-OPEN est votre firmware ouvert.

Etape 6 : Flashage de la NB6V

Le flashage s'effectue en bootp, différent de celui de la NB4, car il faut un serveur DHCP et TFTP.


Ma méthode, avec un serveur TFTP séparé du DHCP (qui est une neufbox 4 dans mon cas) :

Sur son linux, ou autre, configurer un serveur TFTP. Par exemple :

  • IP 192.168.1.10 (macbook-pro)
  • rootpath: /tftp
  • firmware: NB6V-MAIN-R3.3.9-OPEN

Le serveur DHCP peut être une NB4 configuré de la manière suivante :

~$ killall dnsmasq
~$ echo "tftp-root=/tftp" >> /etc/dnsmasq.conf
~$ echo "dhcp-boot=NB6V-MAIN-R3.3.9-OPEN,macbook-pro,192.168.1.10" >> /etc/dnsmasq.conf
~$ dnsmasq -h -H /etc/hosts -i lan0 -r /tmp/resolv.conf.lan -C /etc/dnsmasq.conf --clear-on-reload

Mettre sous tension la NB6V, tout en appuyant sur le bouton se service (SFR).

Les leds vont clignoter en rouge, le firmware va être téléchargé du le serveur tftp puis flasher. Ensuite, la neufbox redémarre avec le firmware modifié...

Bonnes bidouilles avec votre neufbox 6 VDSL ouverte.