Unable To Extract DD-WRT V24 Build 15778 for TP-Link WR841ND !!! HElp.....

Started by ifzaal002, May 19, 2011, 07:22:56 AM

Previous topic - Next topic

ifzaal002

Can Any one tell me what i am missing in the firmware modification kit...
I am using UBUNTU 10.04 and  i want to extract the DD-WRT V24 PRESP2 to add the tcp/ip server file in the router..
Kindly tell me what is missing in the package or any library..Here is the log after running the extraction command..
Thankx in advance.....



make: Entering directory `/home/administrator/firmware_mod/src'
make -C ./uncramfs/
make[1]: Entering directory `/home/administrator/firmware_mod/src/uncramfs'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/uncramfs'
make -C ./cramfs-2.x/
make[1]: Entering directory `/home/administrator/firmware_mod/src/cramfs-2.x'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/cramfs-2.x'
make -C ./squashfs-2.1-r2/
make[1]: Entering directory `/home/administrator/firmware_mod/src/squashfs-2.1-r2'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/squashfs-2.1-r2'
make -C ./squashfs-3.0/
make[1]: Entering directory `/home/administrator/firmware_mod/src/squashfs-3.0'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/squashfs-3.0'
make -C ./squashfs-3.0-lzma-damn-small-variant/
make[1]: Entering directory `/home/administrator/firmware_mod/src/squashfs-3.0-lzma-damn-small-variant'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/squashfs-3.0-lzma-damn-small-variant'
make -C ./wrt_vx_imgtool/
make[1]: Entering directory `/home/administrator/firmware_mod/src/wrt_vx_imgtool'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/administrator/firmware_mod/src/wrt_vx_imgtool'
make: Leaving directory `/home/administrator/firmware_mod/src'
untrx 0.54 beta - (c)2006 Jeremy Collake
Opening F-ddwrt.bin
read 3932160 bytes
ERROR trx header not found


THE MESSAGE AFTER RUNNING COMMAND IN TERMINAL..


Firmware Mod Kit (extract) v0.62 beta, (c)2008 Jeremy Collake
http://www.bitsum.com
Checking for updates ...
  ! WARNING: Could not check for update. No connectivity or server down?
LINUX system detected. Compatibility ok.
Testing file system of extracted_dd-wrt/ ...
WARNING: You must be 'root' when extracting and building some images.
          This is because some images need to create devices in your fs.
          For DD-WRT, do NOT extract or build as root, use standard user.
Building tools ...
Build seems successful.
Preparing working directory ...
Removing any previous files ...
Creating directories ...
Extracting firmware
Attempting raw linux style firmware package (i.e. TEW-632BRP) ...
Extracting F-ddwrt.bin to extracted_dd-wrt/ ...
Error: filesystem not extracted properly.
  firmware image format not compatible?







ifzaal002

It seems no one wants to answer ... OK..
I tried factory-to-ddwrt.bin to extract , it extracted successfully but there was still problem when i tried to rebuild it without any modification to check only that is works or not. It creates the rebuilt files but they are not more than 1Kb(i think no one has still made NANO DD-WRT..... ;D). Here is the log and the terminal output after executing build_firmware.sh....Help if u can.... Its urgent as i am working on my final year project of BS computer Science... REGARD and THANKX in advance..
HERE is the log...

make: Entering directory `/home/home/Firmware_mod_kit/src'
make -C ./uncramfs/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/uncramfs'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/uncramfs'
make -C ./cramfs-2.x/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/cramfs-2.x'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/cramfs-2.x'
make -C ./squashfs-2.1-r2/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/squashfs-2.1-r2'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/squashfs-2.1-r2'
make -C ./squashfs-3.0/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/squashfs-3.0'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/squashfs-3.0'
make -C ./squashfs-3.0-lzma-damn-small-variant/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/squashfs-3.0-lzma-damn-small-variant'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/squashfs-3.0-lzma-damn-small-variant'
make -C ./wrt_vx_imgtool/
make[1]: Entering directory `/home/home/Firmware_mod_kit/src/wrt_vx_imgtool'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/home/Firmware_mod_kit/src/wrt_vx_imgtool'
make: Leaving directory `/home/home/Firmware_mod_kit/src'
rm: cannot remove `rebuilt_factory_to_ddwrt//custom_image_00001*.*': No such file or directory
rm: cannot remove `rebuilt_factory_to_ddwrt/': Is a directory
Creating little endian 3.0 filesystem on extracted_factory_to_ddwrt//image_parts/squashfs-lzma-image-new, block size 131072.

Little endian filesystem, data block size 131072, compressed data, compressed metadata, compressed fragments
Filesystem size 2492.40 Kbytes (2.43 Mbytes)
30.33% of uncompressed filesystem size (8218.14 Kbytes)
Inode table size 4705 bytes (4.59 Kbytes)
23.64% of uncompressed inode table size (19903 bytes)
Directory table size 5916 bytes (5.78 Kbytes)
58.86% of uncompressed directory table size (10051 bytes)
Number of duplicate files found 0
Number of inodes 644
Number of files 419
Number of fragments 24
Number of symbolic links  166
Number of device nodes 0
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 59
Number of uids 1
root (0)
Number of gids 0
mjn3's trx replacement - v0.90, modified to pack ASUS compatible trx
can not open "extracted_factory_to_ddwrt//image_parts/segment1" for reading
Use: trx [-p prodid] [-v ver] [-o ofile] [-m maxlen] [-b offs] file [-b offs] [file [file]]
mjn3's trx replacement - v0.90, modified to pack ASUS compatible trx
can not open "extracted_factory_to_ddwrt//image_parts/segment1" for reading
Use: trx [-p prodid] [-v ver] [-o ofile] [-m maxlen] [-b offs] file [-b offs] [file [file]]
mjn3's addpattern replacement - v0.81
writing firmware v4.20.6 on 11/5/21 (y/m/d)
adding 992 bytes of garbage
mjn3's addpattern replacement - v0.81
writing firmware v4.20.6 on 11/5/21 (y/m/d)
adding 992 bytes of garbage
mjn3's addpattern replacement - v0.81
writing firmware v4.70.6 on 11/5/21 (y/m/d)
adding 992 bytes of garbage
mjn3's addpattern replacement - v0.81
writing firmware v1.5.0 on 11/5/21 (y/m/d)
adding 992 bytes of garbage


ifzaal002

Here is the terminal messages after executing command...........


home@ubuntu:~/Firmware_mod_kit$ ./build_firmware.sh rebuilt_factory_to_ddwrt/ extracted_factory_to_ddwrt/

Firmware Mod Kit (build) v0.68 beta, (c)2010 Jeremy Collake
http://www.bitsum.com
Checking for updates ...
  You have the latest version of this kit.
LINUX system detected. Compatibility ok.
Testing file system of extracted_factory_to_ddwrt/ ...
WARNING: You must be 'root' when extracting and building some images.
          This is because some images need to create devices in your fs.
          For DD-WRT, do NOT extract or build as root, use standard user.
./build_firmware.sh: 329: FIRMWARE_REBUILD_NUMBER+=1: not found
Building tools ...
Build seems successful.
Preparing output directory rebuilt_factory_to_ddwrt/ ...
Detected WRT squashfs-lzma style.
Building squashfs-lzma filesystem ...
Utilizing lzma damn small variant ...
WARNING: Support for these recently added, not fully tested... be careful.
          Please report to jeremy.collake@gmail.com success or failure.
This may take a while ...
use method [pb:2 lc:0 lp:2 fb:-1] (len 50576)
use method [pb:2 lc:0 lp:2 fb:-1] (len 55914)
use method [pb:2 lc:0 lp:2 fb:-1] (len 47455)
use method [pb:2 lc:3 lp:0 fb:-1] (len 22720)
use method [pb:0 lc:2 lp:0 fb:-1] (len 1732)
use method [pb:0 lc:2 lp:0 fb:-1] (len 17369)
use method [pb:0 lc:2 lp:0 fb:-1] (len 17013)
use method [pb:0 lc:2 lp:0 fb:-1] (len 18734)
use method [pb:0 lc:2 lp:0 fb:-1] (len 30402)
use method [pb:0 lc:2 lp:0 fb:-1] (len 73223)
use method [pb:0 lc:2 lp:0 fb:-1] (len 32540)
use method [pb:0 lc:2 lp:0 fb:-1] (len 33884)
use method [pb:0 lc:2 lp:0 fb:-1] (len 35655)
use method [pb:0 lc:2 lp:0 fb:-1] (len 34452)
use method [pb:0 lc:2 lp:0 fb:-1] (len 35706)
use method [pb:0 lc:2 lp:0 fb:-1] (len 33783)
use method [pb:0 lc:2 lp:0 fb:-1] (len 33729)
use method [pb:0 lc:2 lp:0 fb:-1] (len 31921)
use method [pb:0 lc:2 lp:0 fb:-1] (len 35080)
use method [pb:0 lc:2 lp:0 fb:-1] (len 22906)
use method [pb:2 lc:0 lp:2 fb:-1] (len 47691)
use method [pb:2 lc:0 lp:0 fb:-1] (len 16846)
use method [pb:2 lc:0 lp:2 fb:-1] (len 18323)
use method [pb:2 lc:0 lp:2 fb:-1] (len 48829)
use method [pb:2 lc:0 lp:2 fb:-1] (len 50212)
use method [pb:2 lc:0 lp:2 fb:-1] (len 48204)
use method [pb:2 lc:1 lp:2 fb:-1] (len 14291)
use method [pb:2 lc:0 lp:2 fb:-1] (len 30434)
use method [pb:2 lc:1 lp:2 fb:-1] (len 4518)
use method [pb:2 lc:0 lp:2 fb:-1] (len 43514)
use method [pb:2 lc:0 lp:2 fb:-1] (len 42279)
use method [pb:2 lc:3 lp:0 fb:-1] (len 38784)
use method [pb:2 lc:0 lp:2 fb:-1] (len 32754)
use method [pb:2 lc:0 lp:2 fb:-1] (len 35290)
use method [pb:2 lc:0 lp:1 fb:-1] (len 1309)
use method [pb:2 lc:0 lp:0 fb:-1] (len 26888)
use method [pb:2 lc:0 lp:2 fb:-1] (len 24772)
use method [pb:2 lc:0 lp:2 fb:-1] (len 33145)
use method [pb:2 lc:0 lp:2 fb:-1] (len 29625)
use method [pb:2 lc:3 lp:0 fb:-1] (len 11711)
use method [pb:2 lc:0 lp:0 fb:-1] (len 34678)
use method [pb:2 lc:3 lp:0 fb:-1] (len 4507)
use method [pb:0 lc:2 lp:0 fb:-1] (len 1917)
use method [pb:2 lc:0 lp:2 fb:-1] (len 29067)
use method [pb:2 lc:0 lp:2 fb:-1] (len 35739)
use method [pb:2 lc:0 lp:1 fb:-1] (len 18098)
use method [pb:2 lc:0 lp:2 fb:-1] (len 31135)
use method [pb:2 lc:0 lp:2 fb:-1] (len 30720)
use method [pb:2 lc:0 lp:0 fb:-1] (len 3886)
use method [pb:2 lc:0 lp:2 fb:-1] (len 32890)
use method [pb:2 lc:0 lp:2 fb:-1] (len 49851)
use method [pb:2 lc:0 lp:2 fb:-1] (len 46177)
use method [pb:2 lc:0 lp:2 fb:-1] (len 35191)
use method [pb:2 lc:0 lp:1 fb:-1] (len 8541)
use method [pb:2 lc:0 lp:2 fb:-1] (len 40628)
use method [pb:2 lc:0 lp:2 fb:-1] (len 16446)
use method [pb:2 lc:0 lp:2 fb:-1] (len 47109)
use method [pb:2 lc:1 lp:2 fb:-1] (len 52724)
use method [pb:0 lc:2 lp:0 fb:-1] (len 9212)
use method [pb:2 lc:0 lp:2 fb:-1] (len 45584)
use method [pb:2 lc:0 lp:2 fb:-1] (len 46162)
use method [pb:2 lc:3 lp:0 fb:-1] (len 11619)
use method [pb:2 lc:0 lp:2 fb:-1] (len 38933)
use method [pb:2 lc:0 lp:0 fb:-1] (len 9777)
use method [pb:2 lc:0 lp:2 fb:-1] (len 35428)
use method [pb:2 lc:0 lp:2 fb:-1] (len 32418)
use method [pb:2 lc:0 lp:2 fb:-1] (len 49206)
use method [pb:2 lc:0 lp:2 fb:-1] (len 43439)
use method [pb:2 lc:0 lp:1 fb:-1] (len 36708)
use method [pb:2 lc:0 lp:2 fb:-1] (len 43627)
use method [pb:2 lc:0 lp:0 fb:-1] (len 29436)
use method [pb:2 lc:0 lp:2 fb:-1] (len 42964)
use method [pb:2 lc:0 lp:0 fb:-1] (len 123)
use method [pb:2 lc:1 lp:0 fb:-1] (len 41610)
use method [pb:2 lc:0 lp:2 fb:-1] (len 36820)
use method [pb:2 lc:0 lp:2 fb:-1] (len 48873)
use method [pb:2 lc:0 lp:2 fb:-1] (len 49772)
use method [pb:2 lc:0 lp:2 fb:-1] (len 47778)
use method [pb:2 lc:2 lp:0 fb:-1] (len 13113)
use method [pb:2 lc:0 lp:0 fb:-1] (len 32409)
use method [pb:2 lc:0 lp:2 fb:-1] (len 20610)
use method [pb:0 lc:2 lp:0 fb:-1] (len 1037)
use method [pb:0 lc:2 lp:0 fb:-1] (len 1397)
use method [pb:2 lc:0 lp:2 fb:-1] (len 166)
Building base firmware image (generic) ...
Building base firmware image (asus) ...
Making rebuilt_factory_to_ddwrt//custom_image_00001-wrtsl54gs.bin
Making rebuilt_factory_to_ddwrt//custom_image_00001-wrt54g.bin
Making rebuilt_factory_to_ddwrt//custom_image_00001-wrt54gs.bin
Making rebuilt_factory_to_ddwrt//custom_image_00001-wrt54gsv4.bin
Making rebuilt_factory_to_ddwrt//custom_image_00001-generic.bin
Firmware images built.
total 20
-rw-r--r-- 1 home home    0 2011-05-21 22:29 custom_image_00001-asus.trx
lrwxrwxrwx 1 home home   22 2011-05-21 22:11 custom_image_00001-generic.bin -> custom_image_00001.trx
-rw-r--r-- 1 home home  629 2011-05-21 22:11 custom_image_00001.md5sums
-rw-r--r-- 1 home home    0 2011-05-21 22:29 custom_image_00001.trx
-rw-r--r-- 1 home home 1024 2011-05-21 22:29 custom_image_00001-wrt54g.bin
-rw-r--r-- 1 home home 1024 2011-05-21 22:29 custom_image_00001-wrt54gs.bin
-rw-r--r-- 1 home home 1024 2011-05-21 22:29 custom_image_00001-wrt54gsv4.bin
-rw-r--r-- 1 home home 1024 2011-05-21 22:29 custom_image_00001-wrtsl54gs.bin
All done!




Tivier

Same issues for me.

I'm trying to build a dd-wrt (factory-to-ddwrt.bin) for the tp-link WR741ND.


Scripts are exec as root and build is done for wnr3500L firmwares (NETGEAR)
Generated bins are 1Ko and trx is empty...

What's wrong?


Building base firmware image (generic) ...
Building base firmware image (asus) ...
Making /home/olivier/Bureau/firmwares//custom_image_00001-wrtsl54gs.bin
Making /home/olivier/Bureau/firmwares//custom_image_00001-wrt54g.bin
Making /home/olivier/Bureau/firmwares//custom_image_00001-wrt54gs.bin
Making /home/olivier/Bureau/firmwares//custom_image_00001-wrt54gsv4.bin
Making /home/olivier/Bureau/firmwares//custom_image_00001-generic.bin
Firmware images built.
total 16
-rw-r--r-- 1 root root    0 2011-08-11 17:52 custom_image_00001-asus.trx
lrwxrwxrwx 1 root root   22 2011-08-11 17:52 custom_image_00001-generic.bin -> custom_image_00001.trx
-rw-r--r-- 1 root root    0 2011-08-11 17:52 custom_image_00001.trx
-rw-r--r-- 1 root root 1024 2011-08-11 17:52 custom_image_00001-wrt54g.bin
-rw-r--r-- 1 root root 1024 2011-08-11 17:52 custom_image_00001-wrt54gs.bin
-rw-r--r-- 1 root root 1024 2011-08-11 17:52 custom_image_00001-wrt54gsv4.bin
-rw-r--r-- 1 root root 1024 2011-08-11 17:52 custom_image_00001-wrtsl54gs.bin
All done!



Thanks

Jeremy Collake

I don't have a quick answer. I have not looked into that firmware. Support could be extended for that platform, there's no doubt about it. It wouldn't take much work, but the issue is that any change to the kit comes with a lot of extra testing and is generally painful. I don't have one of these devices to even test with myself. At this time I am relying on users to help contribute patches to the FMK. I've already added one new commiter/contributor to the project only last week, when he added support for a different firmware type. Anyone who wants to take the time to make the necessary adjustments, feel free.

It is unfortunate DD-WRT frowns upon the entire idea, as they don't like people changing their firmwares (yes, even though it is open source and 99% of it consist of the linux open source kernel). His scripts and web UI additions are apparently very valuable to their bottom line, so they prefer to try to keep control of them. That's another subject though. It just does seem to be a shame that a supposed free open source project is so difficult to tweak.

It would be trivial for them to provide something similar to the FMK, capable of taking their firmware images apart, allowing modification, then reconstructing them. Their precious web UI would still be protected, since the source code isn't distributed so you can't rebuild it. However, they have no interest in providing such.

Don't take it out on me, I'm just a volunteer who wasted a year of my life first hacking the WRT54Gv5 so it could run DD-WRT micro, and in other projects like the FMK. That was the poorest year of my life and I nearly destroyed myself financially as I tried to contribute to the F/OSS world. I still do contribute, but only when I can.

DD-WRT, on the other hands, *profits* from their work. It is not unreasonable for their users to demand such a tool from them. Heck, I think Brainslayer must have retired, as I sure haven't seen him around much, lol.
Software Engineer. Bitsum LLC.

ifzaal002

Thanx Bro for ur detailed answer... I know that it is not easy to test the kit for each and every type of router ...
I appriciate ur work and contributions for the DD-WRT.
@tivier bro i have also wasted my full 4 to 5 months fighting with dd-wrt but now i am moved to OPEN WRT ..
It is easy to customize according to ur needs... I will suggest u to give a check to that... THATS all what i can tell u... By the way why u are trying to modify...???

Jeremy Collake

You might want to try again with latest version of FMK. It has gotten much better the last month. A new contributor has joined. Also, add this as an issue to the Google code project for the FMK if it still does not work..
Software Engineer. Bitsum LLC.

ifzaal002

I will try ......... even though i have got my work done through the OpenWRT .. but i will try ..
Thanx for ur update....

Bgs

Any news on this? I ran into the same problem.

FMK updated from svn to the latest. (At revision 238.)

# ./extract_firmware.sh /work/wrt/images/TP-LINK-WR841ND-webflash.bin working_dir

Firmware Mod Kit (extract) v0.70 beta, (c)2010 Jeremy Collake
http://www.bitsum.com
Checking for updates ...
  You have the latest version of this kit.
LINUX system detected. Compatibility ok.
Testing file system of working_dir ...
Building tools ...
Build seems successful.
Preparing working directory ...
Removing any previous files ...
Creating directories ...
Extracting firmware
Attempting raw linux style firmware package (i.e. TEW-632BRP) ...
Extracting /work/wrt/images/TP-LINK-WR841ND-webflash.bin to working_dir ...
Error: filesystem not extracted properly.
  firmware image format not compatible?


Bgs

Some additional info:

I strace'd the extraction and found where the problem occurs:

[pid 22290] execve("./src/squashfs-3.0/unsquashfs-lzma", ["./src/squashfs-3.0/unsquashfs-lzma", "-dest", "working_dir/rootfs", "working_dir/image_parts
/squashfs-3-lzma.img"], [/* 48 vars */]) = 0

[pid 22290] write(2, "Can't find a SQUASHFS superblock on working_dir/image_parts/squashfs-3-lzma.img\n", 80) = 80



Indeed, doing az unsquashfs in the above image from commandline also gives me:

Can't find a SQUASHFS superblock on squashfs-3-lzma.img

Bgs

Some additional googling gave me a solution:

http://code.google.com/p/firmware-mod-kit/issues/detail?id=25#c11

extract-ng.sh extracts for good :)

Firmware Mod Kit (build-ng) 0.70 beta, (c)2011 Craig Heffner, Jeremy Collake
http://www.bitsum.com

Scanning firmware...

DECIMAL    HEX        DESCRIPTION
-------------------------------------------------------------------------------------------------------
40009456  0x26190D1 TRX firmware header, little endian, header size: 28 bytes,  image size: 3932188 bytes, CRC32: 0xC2AE5CA4 flags/version: 0x10001
40009104  0x26190D1 Squashfs filesystem, big endian, DD-WRT signature, version 3.0, size: 2551233 bytes, 643 inodes, blocksize: 131072 bytes, created: Sun Nov 21 12:01:13 2010

Extracting 1310748 bytes of trx header image at offset 0
Extracting squashfs file system at offset 1310748
Extracting 16 byte footer from offset 3932172
Extracting squashfs files...
Firmware extraction successful!
Firmware parts can be found in 'fmk/*'


Please put listings in code snippets.

Jeremy Collake

Yes, extract-ng.sh is a recent addition (last couple weeks) made by Craig Heffner. It will successfully handle many more firmware images than the original script and tools. I believe that extraction/rebuilding of the DD-WRT web UI is now possible as well.
Software Engineer. Bitsum LLC.

heffnercj

Bgs: Glad extract-ng works for you! It should work with a lot of additional Linux firmware images.

Jeremy: Yes, we can now extract, modify, and re-build the DD-WRT web UI. I actually just announced it here on the forums (http://bitsum.net/forum/index.php/topic,891.0.html).   :)