Tuto Rapido NB6

De neufbox 4


par Vincent Alex

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


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).

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%.

Tutoriel pour les firmwares 3.2.x. Se reporter ici pour les firmwares anterieurs


Etape 1 : Préparation des outils nécessaires

Quatres outils sont nécessaires :

  • nb6-extract : dispo sur le dépo GNA, ici
  • nb6-concat : dispo sur le dépo GNA, ici
  • unsquashfs4 : dispo dans openwrt (l'archive contient cet outil tout prêt en i686 :-). Pour ceux qui sont en x86_64, il faudra se le recompiler ).
  • mksquashfs4 : dispo dans openwrt (idem unsquashfs4),

Tous ces outils et les fichiers récupérés par la suite doivent être mis dans le même répertoire.


/!\ gna! est fermé depuis 2017!

Récupération des outils depuis le dépôt de FHO Corp :

mkdir openbox4
cd openbox4
git clone https://git.fhocorp.com/Openbox4/openbox4-tools .
...


nb6-extract

[VincentAlex@fedora]$ svn co http://svn.gna.org/svn/openbox4/trunk/firmware_3.x/tools/nb46-extract nb46-extract
A    nb46-extract/nb-extract.h
A    nb46-extract/COPYING
A    nb46-extract/nb4-extract.c
A    nb46-extract/Makefile
A    nb46-extract/README
A    nb46-extract/nb6-extract.c
 U   nb46-extract
Révision 284 extraite.
[VincentAlex@fedora]$ cd nb46-extract/
[VincentAlex@fedora nb46-extract]$ ls
COPYING  Makefile  nb4-extract.c  nb-extract.h  nb6-extract.c  README
[VincentAlex@fedora nb6-extract]$ make
cc -W -Wall -O2 -I. nb4-extract.c -o nb4-extract
cc -W -Wall -O2 -I. nb6-extract.c -o nb6-extract
[VincentAlex@fedora nb46-extract]$ ll
total 100
-rw-rw-r--. 1 VincentAlex VincentAlex 35147 juil. 19 22:47 COPYING
-rw-rw-r--. 1 VincentAlex VincentAlex   242 juil. 19 22:47 Makefile
-rw-rw-r--. 1 VincentAlex VincentAlex  7552 juil. 19 22:47 nb-extract.h
-rw-rw-r--. 1 VincentAlex VincentAlex 14895 juil. 19 22:47 nb4-extract
-rwxrwxr-x. 1 VincentAlex VincentAlex 15064 juil. 19 22:47 nb4-extract.c
-rwxrwxr-x. 1 VincentAlex VincentAlex 15064 juil. 19 22:47 nb6-extract
-rw-rw-r--. 1 VincentAlex VincentAlex 15583 juil. 19 22:47 nb6-extract.c
-rw-rw-r--. 1 VincentAlex VincentAlex   308 juil. 19 22:47 README
[VincentAlex@fedora nb46-extract]$ 

Un binaire nb6-extract généré. Il est conseillé de le copier dans /usr/bin.

nb6-concat

[VincentAlex@fedora]$ svn co http://svn.gna.org/svn/openbox4/trunk/firmware_3.x/tools/nb46-concat nb46-concat
A    nb46-concat/nb-extract.h
A    nb46-concat/README.txt
A    nb46-concat/nb-concat.c
A    nb46-concat/Makefile
Révision 284 extraite.
[VincentAlex@fedora]$ cd nb46-concat/
[VincentAlex@fedora nb46-concat]$ make
cc -W -Wall -O2 -I. nb-concat.c -o nb4-concat
cc -W -Wall -O2 -I. nb-concat.c -o nb6-concat
[VincentAlex@fedora nb46-concat]$ ll
total 56
-rw-rw-r--. 1 VincentAlex VincentAlex   251 juil. 19 22:44 Makefile
-rw-rw-r--. 1 VincentAlex VincentAlex 18678 juil. 19 22:44 nb-concat.c
-rw-rw-r--. 1 VincentAlex VincentAlex  7875 juil. 19 22:44 nb-extract.h
-rwxrwxr-x. 1 VincentAlex VincentAlex 17386 juil. 19 22:44 nb4-concat
-rwxrwxr-x. 1 VincentAlex VincentAlex 17386 juil. 19 22:44 nb6-concat
-rw-rw-r--. 1 VincentAlex VincentAlex   736 juil. 19 22:44 README.txt
[VincentAlex@fedora nb46-concat]$ 

Un binaire nb6-concat généré. Il est conseillé de le copier dans /usr/bin.

unsquashfs & mksquashfs

  • nécessite les librairies zlib et XZ. Elles sont peut être déjà installées sur votre système.
zlib

XZ Utils lzma
  • Sources : http://tukaani.org/xz/xz-5.0.4.tar.gz
  • Etape pour installation :
    • récupération archives (wget)
    • décompatage archive (tar)
    • configuration ./configure
    • compilation (make)
    • installation (make install) en mode super utilisateur
[VincentAlex@fedora]$ wget  http://tukaani.org/xz/xz-5.0.4.tar.gz
--2012-07-19 23:06:05--  http://tukaani.org/xz/xz-5.0.4.tar.gz
Résolution de tukaani.org... 84.34.147.45
Connexion vers tukaani.org|84.34.147.45|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 1281166 (1,2M) [application/x-gzip]
Saving to: `xz-5.0.4.tar.gz.1'

100%[========================================================>] 1 281 166    477K/s   in 2,6s    

2012-07-19 23:06:08 (477 KB/s) - « xz-5.0.4.tar.gz.1 » sauvegardé [1281166/1281166]

[VincentAlex@fedora]$ tar zxvf xz-5.0.4.tar.gz 
xz-5.0.4/
xz-5.0.4/debug/
xz-5.0.4/debug/sync_flush.c
xz-5.0.4/debug/repeat.c
xz-5.0.4/debug/memusage.c
xz-5.0.4/debug/known_sizes.c
xz-5.0.4/debug/hex2bin.c
xz-5.0.4/debug/full_flush.c
xz-5.0.4/debug/crc32.c
xz-5.0.4/debug/Makefile.in

...

xz-5.0.4/build-aux/version.sh
xz-5.0.4/build-aux/manconv.sh
xz-5.0.4/build-aux/missing
xz-5.0.4/build-aux/ltmain.sh
xz-5.0.4/build-aux/install-sh
xz-5.0.4/build-aux/config.sub
xz-5.0.4/build-aux/config.rpath
xz-5.0.4/build-aux/config.guess
xz-5.0.4/build-aux/compile
[VincentAlex@fedora xz-5.0.4]$ cd xz-5.0.4
[VincentAlex@fedora xz-5.0.4]$ ./configure

XZ Utils 5.0.4

System type:
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu

...

config.status: executing po-directories commands
config.status: creating po/POTFILES
config.status: creating po/Makefile
[VincentAlex@fedora sandox]$ make
make  all-recursive
make[1]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
Making all in src
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src »
Making all in liblzma
make[3]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma »
Making all in api
make[4]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma/api »
make[4]: Rien à faire pour « all ».
make[4]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma/api »
make[4]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma »
/bin/sh ../../libtool  --tag=CC   --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../..  -I../../src/liblzma/api -I../../src/liblzma/common -I../../src/liblzma/check -I../../src/liblzma/lz -I../../src/liblzma/rangecoder -I../../src/liblzma/lzma -I../../src/liblzma/delta -I../../src/liblzma/simple -I../../src/common -DTUKLIB_SYMBOL_PREFIX=lzma_  -pthread -fvisibility=hidden -Wall -Wextra -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wredundant-decls -g -O2 -MT liblzma_la-tuklib_physmem.lo -MD -MP -MF .deps/liblzma_la-tuklib_physmem.Tpo -c -o liblzma_la-tuklib_physmem.lo `test -f '../../src/common/tuklib_physmem.c' || echo './'`../../src/common/tuklib_physmem.c

...

libtool: link: gcc -std=gnu99 -pthread -fvisibility=hidden -Wall -Wextra -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wredundant-decls -g -O2 -o .libs/lzmainfo lzmainfo-lzmainfo.o lzmainfo-tuklib_progname.o lzmainfo-tuklib_exit.o  ../../src/liblzma/.libs/liblzma.so -pthread -Wl,-rpath -Wl,/usr/local/lib
make[3]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/lzmainfo »
Making all in scripts
make[3]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/scripts »
make[3]: Rien à faire pour « all ».
make[3]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/scripts »
make[3]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src »
make[3]: Rien à faire pour « all-am ».
make[3]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src »
make[2]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src »
Making all in po
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/po »
make[2]: Rien à faire pour « all ».
make[2]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/po »
Making all in tests
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/tests »
make[2]: Rien à faire pour « all ».
make[2]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4/tests »
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
make[2]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
make[1]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
[VincentAlex@fedora xz-5.0.4]$ [VincentAlex@fedora xz-5.0.4]$ su
Mot de passe : 
[root@fedora xz-5.0.4]# make install
Making install in src
make[1]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src »
Making install in liblzma
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma »
Making install in api
make[3]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma/api »
make[4]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4/src/liblzma/api »
make[4]: Rien à faire pour « install-exec-am ».
 /bin/mkdir -p '/usr/local/include'
 /bin/mkdir -p '/usr/local/include/lzma'
 /usr/bin/install -c -m 644  lzma/base.h lzma/bcj.h lzma/block.h lzma/check.h lzma/container.h lzma/delta.h lzma/filter.h lzma/hardware.h lzma/index.h lzma/index_hash.h lzma/lzma.h lzma/stream_flags.h lzma/version.h lzma/vli.h '/usr/local/include/lzma'

...

make[1]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
make[2]: entrant dans le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
make[2]: Rien à faire pour « install-exec-am ».
 /bin/mkdir -p '/usr/local/share/doc/xz'
 /usr/bin/install -c -m 644 AUTHORS COPYING COPYING.GPLv2 NEWS README THANKS TODO doc/faq.txt doc/history.txt doc/xz-file-format.txt doc/lzma-file-format.txt '/usr/local/share/doc/xz'
 /bin/mkdir -p '/usr/local/share/doc/xz/examples'
 /usr/bin/install -c -m 644 doc/examples/00_README.txt doc/examples/01_compress_easy.c doc/examples/02_decompress.c doc/examples/03_compress_custom.c doc/examples/Makefile '/usr/local/share/doc/xz/examples'
 /bin/mkdir -p '/usr/local/share/doc/xz/examples_old'
 /usr/bin/install -c -m 644 doc/examples_old/xz_pipe_comp.c doc/examples_old/xz_pipe_decomp.c '/usr/local/share/doc/xz/examples_old'
make[2]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
make[1]: quittant le répertoire « /home/VincentAlex/sandox/xz-5.0.4 »
[root@fedora xz-5.0.4]# 

squashfs-tools

http://sourceforge.net/projects/squashfs/files/squashfs/squashfs4.2/squashfs4.2.tar.gz/download?use_mirror=switch

  • Dans le Makefile, décommenter les lignes XZ_SUPPORT = 1 et LZMA_XZ_SUPPORT = 1
[VincentAlex@fedora]$ wget http://kent.dl.sourceforge.net/project/squashfs/squashfs/squashfs4.2/squashfs4.2.tar.gz
--2012-07-19 22:58:46--  http://kent.dl.sourceforge.net/project/squashfs/squashfs/squashfs4.2/squashfs4.2.tar.gz
Résolution de kent.dl.sourceforge.net... 212.219.56.167
Connexion vers kent.dl.sourceforge.net|212.219.56.167|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 133173 (130K) [application/x-gzip]
Saving to: `squashfs4.2.tar.gz'

100%[====================================================>] 133 173      359K/s   in 0,4s    

2012-07-19 22:58:47 (359 KB/s) - « squashfs4.2.tar.gz » sauvegardé [133173/133173]

[VincentAlex@fedora]$ tar zxvf squashfs4.2.tar.gz 
squashfs4.2/
squashfs4.2/INSTALL
squashfs4.2/COPYING
squashfs4.2/PERFORMANCE.README
squashfs4.2/squashfs-tools/
squashfs4.2/squashfs-tools/xz_wrapper.h
squashfs4.2/squashfs-tools/lzma_xz_wrapper.c

...

squashfs4.2/OLD-READMEs/README-4.1
squashfs4.2/OLD-READMEs/README-2.1
squashfs4.2/OLD-READMEs/README-3.0
[VincentAlex@fedora]$ cd squashfs4.2/squashfs-tools/
[VincentAlex@fedora squashfs-tools]$ vi Makefile <-- Décommenter les lignes XZ_SUPPORT = 1 et LZMA_XZ_SUPPORT = 1
[VincentAlex@fedora squashfs-tools]$ make
cc -O2  -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"gzip\" -Wall -DGZIP_SUPPORT -DLZMA_SUPPORT -DXZ_SUPPORT -DXATTR_SUPPORT -DXATTR_DEFAULT   -c -o mksquashfs.o mksquashfs.c
cc -O2  -I. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -DCOMP_DEFAULT=\"gzip\" -Wall -DGZIP_SUPPORT -

...

cc   unsquashfs.o unsquash-1.o unsquash-2.o unsquash-3.o unsquash-4.o swap.o compressor.o gzip_wrapper.o lzma_xz_wrapper.o xz_wrapper.o read_xattrs.o unsquashfs_xattr.o -lpthread -lm -lz -llzma -llzma -o unsquashfs
[VincentAlex@fedora squashfs-tools]$

Deux binaires unsquashfs et mksquashfs générés (par la suite nommé respectivement unsquashfs4 et mksquashfs4). Il est conseillé de les copier dans /usr/bin.

Etape 2 : Récupération firmware

SFR a effectué des modifications sur leurs serveurs, ce qui fait que les liens ci-dessous sont inaccessibles. Vous pouvez trouver l'URL du dernier firmware ici, mais si vous voulez plus vieux vous pouvez voir sur le mirroir de fhocorp.


Historique

  • septembre 2013 : 3.3.4
  • mars 2013 : 3.2.12
  • septembre 2012 : 3.2.8
  • juin 2012 : 3.2.5
  • avril 2013 : 3.2.12
  • mars 2015 : 3.4.5


Version 3.0.12

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.12/nb6-3.0.12.sha256sum

#
# NB6 3.0.12 sha256sum
#
da617083d0f86849afae109d6f79195835f9e9deeb7785843412ef8b32df1734  NB6-BOOTLOADER-R1.27.0
d30b1716a29cf0936a87aaef4a2252f14f7c1f7caf66037a162e0c5ebbedc4d8  NB6-MAIN-R3.0.12
9b6cc6c2356ddcfd63d2662bdc9d51f3a4a42404b028a079bc85f6fc0493625a  NB6-CONFIG-R78.0
b8e42a92138a83fb04b48552f3c6ea7dc60756fc41a0634b43b42544dc751ea4  NB6-RESCUE-R3.0.12
bd9d1062e31e20667051b67621d40e66e30356be7b8a65a17d1fb510d0a7ef8b  NB6-ADSL-A2pD030l_rc0

Version 3.0.15

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.15/nb6-3.0.15.sha256sum

#
# NB6 3.0.15 sha256sum
#
717b59639bfa4fd4fa563e9912e7d030e45c5c63ce94b440d2f363c879662140  NB6-BOOTLOADER-R1.28.0
fa1cea3a833b9d0138ebbd1aae5581c73c72763eae1a1971199a3b915ea159cb  NB6-MAIN-R3.0.15
02df82be5ba0d588fc46f9adc085620b0882fe03100d1a0384757cac9e5f79d7  NB6-CONFIG-R82.0
597cdf967eb9eca8ef17918c8455a4e005f237f5dff0666446032392b03e18df  NB6-RESCUE-R3.0.15
d521e4b9a06b099326c6d67064e793a3088500c9ffc411dc2934105dfc78bd44  NB6-ADSL-A2pD030n

Version 3.0.16

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.16/nb6-3.0.16.sha256sum

#
# NB6 3.0.16 sha256sum
#
1f4f936538e1390978472bfb457852e04806508ac88a1e824acb58c890428e79  NB6-BOOTLOADER-R1.28.0
d1c03e15348a752348482a6ceac931c128852a9d5878498b2c473ffc47ed6c53  NB6-MAIN-R3.0.16
02df82be5ba0d588fc46f9adc085620b0882fe03100d1a0384757cac9e5f79d7  NB6-CONFIG-R82.0
2583bade6f869aa3dcdc88bea9442150dc785346381c120666c149134798a71b  NB6-RESCUE-R3.0.16
d521e4b9a06b099326c6d67064e793a3088500c9ffc411dc2934105dfc78bd44  NB6-ADSL-A2pD030n

Version 3.0.18

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.18/nb6-3.0.18.sha256sum

#
# NB6 3.0.18 sha256sum
#
b98f339dd5edf98a15af0a0d47893b8de48e73e66b697a6d658b3e17c40b391c  NB6-BOOTLOADER-R1.29.0
ec562f036c55afdcdd4951f985f6a1228c7af4e6a705f3d20e977abbf40481ab  NB6-MAIN-R3.0.18
2b3d04bdb467dd6a97fc1dc470ccb4a71de9e06c7e39dcce01c12e4d0993111d  NB6-CONFIG-R84.0
95c37f4a09aacd726fed72e470bd071e2b722385e2c44140dd1e5497e1e8e282  NB6-RESCUE-R3.0.18
d521e4b9a06b099326c6d67064e793a3088500c9ffc411dc2934105dfc78bd44  NB6-ADSL-A2pD030n

Version 3.0.5

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.5/nb6-3.0.5.sha256sum

36b54307e95a1811e1c4750d9da7b3221015ff44b53f08568693590245f4ff15  NB6-ADSL-R0
c26a08ab376d1949bf940d7723ca3c1fafbabbeda5ba6996d08779dd5c6e746a  NB6-BOOTLOADER-R1.17.0
fea5a5cb019e5b26c1267af0e41f2913af6de1b330cfc1f273fec2b69c03a1e1  NB6-CONFIG-R68.0
9cd5571f00062e6b353e01addd8e79f3d1c647eee91c5e688722d38b6d019efc  NB6-MAIN-R3.0.5F2
2156d3c58344c2bdee7877d1ac31558e8c4d62840e7b7f308a03c952c781f42d  NB6-RESCUE-R3.0.5F2
d5d569f90bf3722b565c8bf9a03df68ebb656141cbe6c01e647fefc6664fac98  NB6-SEED

Version 3.0.6

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.6/nb6-3.0.6.sha256sum

0f8878eb91ca4abee78e3741cabc115c0c1cf6079d2e6ab120cc31a03543bec6  NB6-ADSL-A2pD030g
99c4b9248ae9226cf5508e757141b8f0de3b7fd3f176951d540e0bcd9df1e362  NB6-BOOTLOADER-R1.18.0
7af487ee48c4864ff287915b529b92b32113fcec9f8c05f02b195b27f9129054  NB6-CONFIG-R69.0
57b7c4a72744a5e33446f118645b8e4ab68ac2af6631e027c959b7e44bafdf09  NB6-MAIN-R3.0.6
9acadf63c6c622e35f7fe0b00393a7c69faa1d6505bbc54ecdcf7155a2fe1747  NB6-RESCUE-R3.0.6
d5d569f90bf3722b565c8bf9a03df68ebb656141cbe6c01e647fefc6664fac98  NB6-SEED

Version 3.0.7

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.0.7/nb6-3.0.7.sha256sum

bcc44a989e61023e8e678cecb86a4bfa3ea8e97c8f21b40ba843df634b163843  alpha NB6 DSL
cc92309c4290501036a6f6f8f68d94ddbe180d034385dc1926ea43d75a0cb234  alpha NB6 DSL~
0527be24f6142569d57e6a1380438be0c84026ed4614205a0e7db184873b00a7  NB6-ADSL-A2pD030h
7e9e167c289e9c0259f56bc94a370a0d1beb41a557a75072049f5ce93d7bed4b  NB6-BOOTLOADER-R1.20.0
c7ca51bedef25a2e4dc8a07661c8878c7eb11efe1702e037a3d3ef1d1aa56280  NB6-CONFIG-R71.0
b083d2e81c5dacaa5220db683a2b8b849c2ba8274dec776f831b8ecfa8523b4a  NB6-MAIN-R3.0.7
b36842d8b5f472b12a4fd55b158689dead4cb1b8505534fb6cc7822fe7f209f7  NB6-RESCUE-R3.0.7
d5d569f90bf3722b565c8bf9a03df68ebb656141cbe6c01e647fefc6664fac98  NB6-SEED

Version 3.1.1

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.1/nb6-3.1.1.sha256sum

#
# NB6 3.1.1 sha256sum
#
5b731244bbfc9950a5919d25a70e26a7cc41a3b3f1ffd35ba6f36955dc292a74  NB6-MAIN-R3.1.1
cfa349ccaffe52095ccd2081c5d239023d58029b76a2d33c67a605030fec2955  NB6-CONFIG-R88.0
a532440b6a15d15ed4ef73a527c6ee26b24e76675c34ffd8b698735c9cd69db1  NB6-BOOTLOADER-R1.30.0
2583bade6f869aa3dcdc88bea9442150dc785346381c120666c149134798a71b  NB6-RESCUE-R3.0.16
6deb22252effcf9f80da877814afba423ed9b1e8ba03c566671fe39e49e0a8c7  NB6-ADSL-A2pD030o_rc12

Version 3.1.2

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.2/nb6-3.1.2.sha256sum

#
# NB6 3.1.2 sha256sum
#
73671e044203e0e6520b4e2a9e071fa1efa99eed5a6e8b8f73b4ef9eb4d8814a  NB6-BOOTLOADER-R1.31.0
54cb8caddda3b56634cb034596f164ff430e5ff69ee7c53910641ba6650cef42  NB6-MAIN-R3.1.2
1f2ac9f9be758ab9e09a79b9921969a2ab037111af0071fc6cea34f779ddcded  NB6-CONFIG-R89.0
2c25f3d5d0dc67b4de49588175bf9994471d984729a29d91f4bccabeaaf978f0  NB6-RESCUE-R3.1.2
7ffe7268cec3fd998a197eae222f4a822bd6e48e8f69af374322c51b49a1b823  NB6-ADSL-A2pD030q

Version 3.1.3

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.3/nb6-3.1.3.sha256sum

#
# NB6 3.1.3 sha256sum
#
dd84a35af42a07bcb69b3cd66b260580a35db4f480bbeff87a4dc69760c36f71  NB6-BOOTLOADER-R1.31.0
b159f479db88321d4850b2b3ac31cb4549991193bb91938248d7f9a917e5dd0f  NB6-MAIN-R3.1.3
9640fbcdc56d79e7e062a8daa7d31f3e57cc6eb095e45eac7d16779cfe93036a  NB6-CONFIG-R90.0
7d5a6492f5aaf86a6716a478726d55b0601e6b5c6cb44159c8baa08e8d9d9c0b  NB6-RESCUE-R3.1.3
7ffe7268cec3fd998a197eae222f4a822bd6e48e8f69af374322c51b49a1b823  NB6-ADSL-A2pD030q

Version 3.1.4

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.4/nb6-3.1.4.sha256sum

#
# NB6 3.1.4 sha256sum
#
d83e7e5f5a819fefc6493ffd0413f3c9a4d934cd66fe19727534528b775b78af  NB6-BOOTLOADER-R1.32.0
9d5064b8a110ccb49ee1d1663f2effe37ef75caa0375771c1d568338f4ebd83c  NB6-MAIN-R3.1.4
9640fbcdc56d79e7e062a8daa7d31f3e57cc6eb095e45eac7d16779cfe93036a  NB6-CONFIG-R90.0
7d5a6492f5aaf86a6716a478726d55b0601e6b5c6cb44159c8baa08e8d9d9c0b  NB6-RESCUE-R3.1.3
7ffe7268cec3fd998a197eae222f4a822bd6e48e8f69af374322c51b49a1b823  NB6-ADSL-A2pD030q

Version 3.1.6

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.6/nb6-3.1.6.sha256sum

#
# NB6 3.1.6 sha256sum
#
f2e061885590b779dd81effd78c70ddd2984c9f4958f3fa54e39d2588b3ce34b  NB6-BOOTLOADER-R1.34.0
07b12e3f2aa0df6740a46283d7cef7d200babe7dbf73195f460d6dec289a183a  NB6-MAIN-R3.1.6
6492bcbc48922739792b3e5a723e4cad9d949249540db62677b04b83ebe5ec68  NB6-CONFIG-R94.0
b2b8b7b81e2c3416db3dc1e67379ae0fdf641e649a6e04717037e72753d12223  NB6-RESCUE-R3.1.6
7ffe7268cec3fd998a197eae222f4a822bd6e48e8f69af374322c51b49a1b823  NB6-ADSL-A2pD030q

Version 3.1.7

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.1.7/nb6-3.1.7.sha256sum

#
# NB6 3.1.7 sha256sum
#
74d78f759e5ba8c4922d41be8a3deac2290ae7aff581e3a9a7006a5b69211df6  NB6-BOOTLOADER-R1.34.0
2cc2a4db3e915a1732a7e800d53041db072ad30ae281d93a199f5ae3c0be25d1  NB6-MAIN-R3.1.7
245fba497d18cf4cc224198fb1b445e868da3afcd911da98718cfa1bd20589b4  NB6-CONFIG-R96.0
614d0975a5cfedd8f08e5a67f8f779559d84a0eefa1802c70d9b5ae71d6fcabc  NB6-RESCUE-R3.1.7
13fcd58769540fbae3a160015d72d4caa6c53ef398dabb04252fcc6793e41f26  NB6-ADSL-A2pD030v

Version 3.2.0

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.0/nb6-3.2.0.sha256sum

#
# NB6 3.2.0 sha256sum
#
74d78f759e5ba8c4922d41be8a3deac2290ae7aff581e3a9a7006a5b69211df6  NB6-BOOTLOADER-R1.34.0
1e8dd5a7c07817f13f9d2e1fcf962bb774b745190a5ac178fc2da44bec6729fd  NB6-MAIN-R3.2.0
6e9b3ee1873b69e6a79804d38ca602d42effa73b9e0e2aa0d8e9228b7dd6960d  NB6-CONFIG-R99.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
7ffe7268cec3fd998a197eae222f4a822bd6e48e8f69af374322c51b49a1b823  NB6-ADSL-A2pD030q

Version 3.2.1

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.1/nb6-3.2.1.sha256sum

#
# NB6 3.2.1 sha256sum
#
ea5e0c51aab5e1325d330cf81ecc0d05309983a7bf05b6829f68b73a91851bf2  NB6-MAIN-R3.2.1
41c3e7ca5e874d4e6a210049d5ed29f7106b141806fa080f1ca4fc9080ce5e07  NB6-CONFIG-R100.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
13fcd58769540fbae3a160015d72d4caa6c53ef398dabb04252fcc6793e41f26  NB6-ADSL-A2pD030v
55b6a08aefc391850f2520ac9a38e4764bb8c4bed154eebb2e5daa83c5fd86ee  NB6-BOOTLOADER-R1.35.0

Version 3.2.2

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.2/nb6-3.2.2.sha256sum

#
# NB6 3.2.2 sha256sum
#
55b6a08aefc391850f2520ac9a38e4764bb8c4bed154eebb2e5daa83c5fd86ee  NB6-BOOTLOADER-R1.35.0
51384e48ecef398bc50c7dfdfc035dae10eb29118f04572b68c084271173df5e  NB6-MAIN-R3.2.2
41c3e7ca5e874d4e6a210049d5ed29f7106b141806fa080f1ca4fc9080ce5e07  NB6-CONFIG-R100.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
13fcd58769540fbae3a160015d72d4caa6c53ef398dabb04252fcc6793e41f26  NB6-ADSL-A2pD030v

Version 3.2.4

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.4/nb6-3.2.4.sha256sum

#
# NB6 3.2.4 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
fe91845f5620412641f2c916723c39b808458a0e9aaab1db9a639598fdd160c4  NB6-MAIN-R3.2.4
5c0511548786ec2c10d0e2a946be9f27d73efbc60a4e7daa81f520191266aa7a  NB6-CONFIG-R101.0
df4212755321724e8823a6ba935a617d174269bed89e3b1b3c2e86f129884fb7  NB6-RESCUE-R3.1.12
eeff82a6f5cf34ce4e141717961671ce6004a803515d6802d5dfee9fdde8635c  NB6-ADSL-A2pD035l

Version 3.2.5 (juin 2012)

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_version%203.2.5/nb6-3.2.5.sha256sum

3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
d549d34633fab8b97358910bc2ee8e39ca429c0155da0942d94de4257b174386  NB6-MAIN-R3.2.5
87c608eee593d76a74aab6ac7b8bf03242f8cf1be0e339b77bbba401d8ba6921  NB6-CONFIG-R102.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
13fcd58769540fbae3a160015d72d4caa6c53ef398dabb04252fcc6793e41f26  NB6-ADSL-A2pD030v

Version 3.2.7

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.7/nb6-3.2.7.sha256sum

#
# UUID: 0653a428-faf7-47bc-b8a8-059619adb24c
#
# NB6 3.2.7 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
f03db74564ecb624d1b5e84ed38b850c14ae5bfcdbb827e56a8b0376e4b9edd3  NB6-MAIN-R3.2.7
87c608eee593d76a74aab6ac7b8bf03242f8cf1be0e339b77bbba401d8ba6921  NB6-CONFIG-R102.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
db33a48e8a70d2050d6f05db9b13c99cb94ad423b0ae07124ae245c125881d56  NB6-ADSL-A2pD035o

Version 3.2.8 (septembre 2012)

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.8/nb6-3.2.8.sha256sum

#
# UUID: 8bba3968-3a1b-47b9-a499-51c7ebbde7a9
#
# NB6 3.2.8 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
e00e32ffee147cc6fda547822cd99ed59a0cea0a8d1d2f28f52bc9b52d3caa93  NB6-MAIN-R3.2.8
87c608eee593d76a74aab6ac7b8bf03242f8cf1be0e339b77bbba401d8ba6921  NB6-CONFIG-R102.0
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8

Version 3.2.10

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.10/nb6-3.2.10.sha256sum

#
# UUID: fd7d6cb4-1dac-4cbb-be15-398db591e33c
#
# NB6 3.2.10 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
a19979a3a43be413bba9c83b15e4ad876cc713013a7ae964c900b59bf70566b4  NB6-MAIN-R3.2.10
cd75898edaa61076c09120c72add6455f5c6f7cdb65e3b5ac1eab3436752f34f  NB6-CONFIG-R103.0
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p

Version 3.2.11

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.11/nb6-3.2.11.sha256sum

#
# UUID: fdffbda8-74eb-418c-bf2c-1bb03bc6b322
#
# NB6 3.2.11 sha256sum
#
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
87c608eee593d76a74aab6ac7b8bf03242f8cf1be0e339b77bbba401d8ba6921  NB6-CONFIG-R102.0
4f5ec0791c10766daa6b17096fbc9a2dcd9e79f05f8f7e9f5d9bbfec890b72b0  NB6-MAIN-R3.2.11
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8

Version 3.2.12 (mars 2013)

http://nb4ncdn.neufbox.neuf.fr/nb6dsl_Version%203.2.12/nb6-3.2.12.sha256sum

#
# UUID: f0a991ea-6979-4d1c-bd61-1becca64bfe5
#
# NB6 3.2.12 sha256sum
#
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
cd75898edaa61076c09120c72add6455f5c6f7cdb65e3b5ac1eab3436752f34f  NB6-CONFIG-R103.0
763456da01ed1af8cbaff4d9363c5545be8fec3dc219b45acb861a31ce95880e  NB6-MAIN-R3.2.12
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8

Version 3.3.4 (septembre 2013)

http://ncdn.nb6dsl.neufbox.neuf.fr/nb6dsl_Vers%203.3.4_ter/nb6-3.3.4_ter.sha256sum

#
# UUID: 27f4b1e0-6628-49cb-b59b-dc2234dc0e5d
#
# NB6 3.3.4 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
62797705144e82b7c44963aa8ea13442d12057e7d01f33ed67bfab3f6d4e70d5  NB6-MAIN-R3.3.4
0ea220adfb9dd1c845d9ec0e3d537aab281b5d45ba51b3688c69074225dd8cb4  NB6-CONFIG-R3.3.4.2
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p

Version 3.3.9 (mars 2014)

http://ncdn.nb4dsl.neufbox.neuf.fr/nb6_Version%203.3.9/nb6-3.3.9.sha256sum

#
# UUID: 66758fec-7b39-4cff-933f-367f6f7a0b86
#
# NB6 3.3.9 sha256sum
#
3ece945cf370ff987ea184f3ac859d590b0a830d74949e8aa0c71900663d4d6c  NB6-BOOTLOADER-R3.2.4
21d9c7f20611e172b9862668da067bbedfcfe4f550431745b2b0a77e277e83b2  NB6-MAIN-R3.3.9
9458fa882026eba4f734493e1838e18ea123f19891e4c4c4cf68ed4f08708901  NB6-CONFIG-R3.3.9.2
f00d0b3b8e6a88efaac18f80967e83c49b3454bbe26764a70a0dbfee3973442d  NB6-RESCUE-R3.1.8
d6f592f35abe6e9914fe1b14560b764ee23c846d6c9b5bdecd3300a2b3afeb25  NB6-ADSL-A2pD035p

Fichiers présents

Il y a cinq fichiers sur le serveur neufbox :

  • NB6-BOOTLOADER-R3.2.4 : Il s'agit du programme de démarrage du la neufobx. C'est ce programme qui va nous permettre de remplacer le firmware principal (cf. dernière étape),
  • NB6-MAIN-R3.2.5 : Il s'agit du firmware principal. C'est celui ci qui va être modifié dans ce tuto,
  • NB6-CONFIG-R102.0 : Il s'agit de la configuration du firmware,
  • NB6-RESCUE-R3.1.8 : Il s'agit du firmware se secours en cas de nom démarrage du firmware principal. Ce firmware initialise seulement la liaison ADSL et essaie de réinstaller le firmware principal,
  • NB6-ADSL-A2pD030v : Il s'agit du driver gérant l'ADSL,

Seul le fichier NB6-MAIN-R3.2.5 est nécessaire pour la suite et est récupéré avec la commande wget (curl peut aussi être utilisé) :

[VincentAlex@fedora sandbox]$ wget http://nb4ncdn.neufbox.neuf.fr/nb6dsl_version%203.2.5/NB6-MAIN-R3.2.5
--2012-07-09 21:34:42--  http://nb4ncdn.neufbox.neuf.fr/nb6dsl_version%203.2.5/NB6-MAIN-R3.2.5
Résolution de nb4ncdn.neufbox.neuf.fr... 93.17.156.249
Connexion vers nb4ncdn.neufbox.neuf.fr|93.17.156.249|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: 7205233 (6,9M) [text/plain]
Saving to: `NB6-MAIN-R3.2.5'

100%[=======================================================================================================================================>] 7 205 233    336K/s   in 20s     

2012-07-09 21:35:02 (345 KB/s) - « NB6-MAIN-R3.2.5 » sauvegardé [7205233/7205233]

[VincentAlex@fedora sandbox]$ ls -l
total 7040
-rw-rw-r--. 1 VincentAlex VincentAlex 7205233 mai    4 14:59 NB6-MAIN-R3.2.5
[VincentAlex@fedora sandbox]$ 

Etape 3 : Désassemblage et décompactage

Le firmware 'MAIN' (NB6-MAIN-R3.2.5) est composé de trois parties :

  • un entête,
  • le noyau linux (le kernel),
  • le file system (le rootfs) compacté. C'est lui qui va être modifié par la suite,

L'outil nb6-extract permet d'extraire ces trois parties avec contrôle des différents checksums.

Désassemblage firmware 'MAIN'

  • Utilisation de l'outil nb6-extract
[VincentAlex@fedora sandbox]$ nb6-extract NB6-MAIN-R3.2.5 
Taille du firmware 'NB6-MAIN-R3.2.5' : 7205233 octets
Structure 3.x pour NB6
L'ordre des bits n'est pas le même que sur la Neufbox

Signature de l'entête trouvée
----------------------------------------------------------------
[0x00] Signature entête		: 6
[0x04] Infos société		: Broadcom Corporatio
[0x18] Infos supplémentaires	: ver. 2.0
[0x26] ID de la puce		: 6362
[0x2C] ID de la carte		: NB6-FXC-r0
[0x3C] Ordre des bits		: big endian
[0x3E] Taille de l'image	: 7204977 octets
[0x5E] Adresse du rootfs	: 0xBFC10100
[0x6A] Taille du rootfs		: 6378776 octets
[0x74] Adresse du kernel	: 0xC0225618
[0x80] Taille du kernel		: 826201 octets
[0x8E] Espace réservé		: NB6-MAIN-R3.2.5
[0xD8] Checksum de l'image	: 0x592075BD
[0xDC] Checksum du rootfs	: 0x3E880A37
[0xE0] Checksum du kernel	: 0xEE7D894F
[0xEC] Checksum de l'entête	: 0x8023CB21
----------------------------------------------------------------


Vérification des sommes de contrôle
----------------------------------------------------------------
Checksum de l'image		: 0x592075BD [OK]
Checksum du rootfs		: 0x3E880A37 [OK]
Checksum du kernel		: 0xC420ADE4 [ERREUR]
Checksum de l'entête		: 0x8023CB21 [OK]
----------------------------------------------------------------


Signature SquashFS (big endian) trouvée à l'adresse 0x00000100
----------------------------------------------------------------
Signature 			: 0x68737173
Version SquashFS		: 1024.0
Date de création		: Mon Jan 19 11:58:41 1970
----------------------------------------------------------------


Informations sur le noyau
----------------------------------------------------------------
Adresse de chargement		: 0x80010000
Adresse d'exécution		: 0x80010000
Taille du noyau compressé	: 826189 octets [OK Modulo 4]
----------------------------------------------------------------

Fichier NB6-R3.2.5-HEADER créé avec succès
Fichier NB6-R3.2.5-ROOTFS créé avec succès
Fichier NB6-R3.2.5-KERNEL créé avec succès
[VincentAlex@fedora sandbox]$ ls -l
total 14084
-rw-rw-r--. 1 VincentAlex VincentAlex 7205233 mai    4 14:59 NB6-MAIN-R3.2.5
-rw-rw-r--. 1 VincentAlex VincentAlex     256 juil.  9 21:38 NB6-R3.2.5-HEADER
-rw-rw-r--. 1 VincentAlex VincentAlex  826201 juil.  9 21:38 NB6-R3.2.5-KERNEL
-rw-rw-r--. 1 VincentAlex VincentAlex 6378776 juil.  9 21:38 NB6-R3.2.5-ROOTFS
[VincentAlex@fedora sandbox]$ 


Nota béné : Ne pas tenir compte de l'erreur du checksum du kernel (l'outil n'est pas encore à jour sur ce point).

Décompactage rootfs

  • Le rootfs est compacté au format squashfs 4 lzma.
  • Utilisation de l'outil unsquashfs4.
  • Attention, il faut avoir les droits super utilisateur pour utiliser cet outils.
[root@fedora sandbox]# unsquashfs4 NB6-R3.2.5-ROOTFS 
Parallel unsquashfs: Using 1 processor
1084 inodes (1152 blocks) to write

[==============================================================================================================================================================-] 1152/1152 100%
created 892 files
created 137 directories
created 192 symlinks
created 0 devices
created 0 fifos
[root@fedora sandbox]# ls -l
total 14088
-rw-rw-r--.  1 VincentAlex VincentAlex 7205233 mai    4 14:59 NB6-MAIN-R3.2.5
-rw-rw-r--.  1 VincentAlex VincentAlex     256 juil.  9 21:38 NB6-R3.2.5-HEADER
-rw-rw-r--.  1 VincentAlex VincentAlex  826201 juil.  9 21:38 NB6-R3.2.5-KERNEL
-rw-rw-r--.  1 VincentAlex VincentAlex 6378776 juil.  9 21:38 NB6-R3.2.5-ROOTFS
drwxr-xr-x. 15 root        root           4096 avril 12 15:23 squashfs-root
[root@fedora sandbox]# 

Etape 4 : Modification file system

Il faut avoir les droits super utilisateur pour modifier les fichiers du rootfs (dossier squasfs-root obtenu à l'étape 3). Pour les droits super utilisateur (root), utiliser soit la commande "sudo" (Ubuntu) soit passer en root avec "su".

Ajout compte ob6

Il s'agit de modifier les fichiers password et shadow présent dans le dossier squashfs-root, obtenu à l'étape 3, en ajoutant un compte ob6 possédant les droits super utilisateurs.

Important : Afin de ne pas entraver les procédures de diagnostique de SFR en cas d'appel à la hotline (par exemple en cas de problème de synschonisation ADSL avec votre installation), il est demandé de ne pas supprimer, ni modifier, les comptes existants (root, diag, admin, ...). Merci de bien vouloir respecter cette règle.

A savoir aussi que maintenant le noyau linux de la neufbox est compilé afin de ne plus autoriser de connexion au shell par telnet. Il faut donc passer par ssh (port 1288) et un mot de passe est obligatoire (connexion ssh impossible sans mot de passe).

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]#

La commande openssl est utilisée pour chiffrer un mot de passe.

  • Rappel : la structure du mot de passe est
    $<id>$<salt>$<mot de passe chiffre>

Exemple utilisation de la commande openssl avec "ob6" comme mot de passe :

[root@fedora sandbox]# openssl passwd -1 -salt jVUfq3II ob6
$1$jVUfq3II$Fo7W5gzuo/ashKKe4RLTH/
[root@fedora sandbox]#

Vous pouvez mettre modifier le 'salt' comme il vous semble (remplacer jVUfq3II par ce que vous voulez), ou ne pas le préciser et c'est plus sécurisé car le salt est aléatoire.

[root@fedora sandbox]# openssl passwd -1 ob6
$1$dgbL2TXF$U4pfnjNv7LO7QzpnGbtg7/
[root@fedora sandbox]#


Modification banner

Il ne s'agit pas d'une modification nécessaire à l'ouverture du firmware, mais seulement une indication montant immédiatement que le firmware à été modifié si on se connecté en ssh sur le neufbox. C'est conseillé afin que SFR sache si le firmawre est modifié en cas d'intervention par leurs équipes (appel hotline).

Fichier banner modifié :

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

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

Le file system est à présent modifié au minimum.

Etape 5 : compactage et file system

Compactage rootfs

  • Utilisation de l'outil mksquashfs4.

Le dossier squashfs-root est compacté avec l'outil mksquashfs pour créer un rootfs nommé, par exemple, NB6-R3.2.5-MAIN-OPEN

[root@fedora sandbox]# mksquashfs4 squashfs-root NB6-R3.2.5-ROOTFS-OPEN -nopad -noappend -root-owned -comp lzma -processors 1
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on NB6-R3.2.5-ROOTFS-OPEN, block size 131072.
[================================================================================================|] 960/960 100%
Exportable Squashfs 4.0 filesystem, lzma compressed, data block size 131072
	compressed data, compressed metadata, compressed fragments
	duplicates are removed
Filesystem size 6229.35 Kbytes (6.08 Mbytes)
	28.40% of uncompressed filesystem size (21931.68 Kbytes)
Inode table size 9642 bytes (9.42 Kbytes)
	23.75% of uncompressed inode table size (40597 bytes)
Directory table size 11094 bytes (10.83 Kbytes)
	47.19% of uncompressed directory table size (23510 bytes)
Number of duplicate files found 36
Number of inodes 1221
Number of files 892
Number of fragments 63
Number of symbolic links  192
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 137
Number of ids (unique uids + gids) 1
Number of uids 1
	root (0)
Number of gids 1
	root (0)
[root@fedora sandbox]# ls -l
total 27364
-rw-rw-r--.  1 VincentAlex VincentAlex 7205233 mai    4 14:59 NB6-MAIN-R3.2.5
-rw-rw-r--.  1 VincentAlex VincentAlex     256 juil.  9 21:38 NB6-R3.2.5-HEADER
-rw-rw-r--.  1 VincentAlex VincentAlex  826201 juil.  9 21:38 NB6-R3.2.5-KERNEL
-rw-rw-r--.  1 VincentAlex VincentAlex 6378776 juil.  9 21:38 NB6-R3.2.5-ROOTFS
-rwxr--r--.  1 root        root        6378855 juil. 12 21:16 NB6-R3.2.5-ROOTFS-OPEN
drwxr-xr-x. 15 root        root           4096 avril 12 15:23 squashfs-root
drwxrwxr-x.  2 VincentAlex VincentAlex    4096 juil. 11 22:03 tmp
[root@fedora sandbox]#

Assemblage main

  • Utilisation de l'outil nb6-concat

Un firmware 'MAIN', nommé NB6-MAIN-R3.2.5-OPEN, est obtenu en assemblant le rootfs, le kernel et en créant un nouvel entête. Il n'y a plus de nécessité d'être en utilisateur root (sortir en tapant exit si utilisation commande 'su').

[VincentAlex@fedora sandbox]$ nb6-concat -r NB6-R3.2.5-ROOTFS-OPEN -k NB6-R3.2.5-KERNEL -o NB6-MAIN-R3.2.5-OPEN -v NB6-MAIN-R3.2.5 -i rk
kernel   NB6-R3.2.5-KERNEL
rootfs   NB6-R3.2.5-ROOTFS-OPEN
firmware NB6-MAIN-R3.2.5-OPEN
Alignement ROOTFS sur un modulo 0x4
     Ancienne taille : 6378931
     Nouvelle taille : 6378932 (qui sera mise dans le header)
Alignement KERNEL sur un modulo 0x4
     Ancienne taille : 826201
     Nouvelle taille : 826204 (qui sera mise dans le header)
Adresse du ROOTFS : 0Xbfc10100
Adresse du KERNEL : 0Xc02256b4
CRC32 de l'image  Ox85c17559 lg=7205136    (0x006df110)
CRC32 du rootfs   0x6baa2bf5 lg=6378932    (0x006155b4)
CRC32 du kernel   0x90e433bf lg=826204    (0x000c9b5c)
CRC32 de l'entete ad6ea80 
Création avec succès du MAIN : 'NB6-MAIN-R3.2.5-OPEN'
[VincentAlex@fedora sandbox]$ ls -als
total 34428
   4 drwxrwxr-x.  6 VincentAlex VincentAlex    4096 juil. 13 23:52 .
   4 drwxrwxr-x. 34 VincentAlex VincentAlex    4096 juil.  9 21:33 ..
7040 -rw-rw-r--.  1 VincentAlex VincentAlex 7205233 mai    4 14:59 NB6-MAIN-R3.2.5
7040 -rw-rw-r--.  1 VincentAlex VincentAlex 7205388 juil. 14 00:09 NB6-MAIN-R3.2.5-OPEN
   4 -rw-rw-r--.  1 VincentAlex VincentAlex     256 juil. 13 23:15 NB6-R3.2.5-HEADER
 808 -rw-rw-r--.  1 VincentAlex VincentAlex  826201 juil. 13 23:15 NB6-R3.2.5-KERNEL
6232 -rw-rw-r--.  1 VincentAlex VincentAlex 6378776 juil. 13 23:15 NB6-R3.2.5-ROOTFS
6232 -rwxr--r--.  1 root        root        6378931 juil. 13 23:52 NB6-R3.2.5-ROOTFS-OPEN
   4 drwxr-xr-x. 15 root        root           4096 avril 12 15:23 squashfs-root
[VincentAlex@fedora sandbox]$

Nota béné :

  • Pour éviter des problèmes de compatibilité avec la téléphonie, le nouveau MAIN à le même nom que l'original, (Limitation NB4 seulement, il n'y a pas de problème de téléphonie avec des noms différents sur NB6)
  • Ne pas tenir compte de l'erreur sur la taille du MAIN obtenu (il ne s'applique que pour la NB4),

Etape 6 : flashage neufbox 6 via TFTP

Différent de celui de la NB4, car il faut un serveur DHCP et TFTP. Se reporter au tuto Flasher une NB6 (méthode simple)


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: NB6-MAIN-R3.2.5-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=NB6-MAIN-R3.2.5-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 NB6, 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é...

Des paquetages tous prêt sont dispos sur openwrt

Option : flashage neufbox 6 via SSH

La commande flashcp fonctionne toujours sur les firmwares 3.x de la NB6. Utile pour passer vers un autre firmware ouvert autre que celui que l'on dispose déjà.


Avec un firmware disposant d'un accès SSH, ouvrez une fenètre SSH. Puis tapez:

cd tmp
tftp -g -r NB6-MAIN-OPEN  192.168.3.100
flashcp -v NB6-MAIN-OPEN /dev/mtd1
reboot

Ou NB4-MAIN-OPEN est votre firmware ouvert et 192.168.3.100 l'adresse d'un serveur TFTP ou est stocké les fichiers. (NOTE: possible aussi de recuperer les fichier via wget)

La NB6 reboote. Voila c'est fini ! :D

    • /dev/mtd1 --> Pour le MAIN
    • /dev/mtd2 --> Pour le RESCUE
    • /dev/mtd3 --> Pour le driver ADSL


Bonnes bidouilles avec votre neufbox 6 ouverte.