Building the custom firmware
Info on how I've build the firmware.
First read the http://www.seattlewireless.net/index.cgi/LinksysWrt54g it contains the info about one of the Broadcom based Linksys router. Most of the things applies to wl-500g. But wl-500g is the best one. :)
For building the firmware you will need the linux box. I'm using RH8 for the purpose. Second, you will need the tools availbale from the linksys site. See the seattlewireless for the details. I've used WRT54G 1.42.3 supplies sources.
I've sent the 1.6.5.4.tar.gz file to the forum@chupa.nl. Hope Antiloop will post it.
The first thing you will need to do is to install broadcom tools. The next one is to extract files from the Asus 1.6.5.3 firmware. The simplest way for this is using the extract script I've supplied:
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.vmlinuz skip=28 ibs=1 count=705256
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.cramfs skip=705284 ibs=1
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.trailer skip=3769092 ibs=1
This will produce 3 files, containing compressed linux kenel, rootfs & asus firmware trailer.
The next thing you will need to to is to extract rootfs from the 1.6.5.3.cramfs file. You may want tou use uncramfs available on the net, or just mount this file using something like this
mount -o loop 1.6.5.3.cramfs /mnt/cramfs
and then just copy the files to the build dir.
The next thing is customizing the firmware. I've examined it and found 2 busybox executables - /bin/busybox & /sbin/busybox. The second are just used by insmod, so I've decided to alter it. I've used used busybox-1.0pre5 (www.busybox.net) for the purpose, but have patched, to make insmod & passwd --stdin working (the patch named 1.6.5.3-busybox.diff, it's also contains the config I've used). You will need to make the busybox, and install it over the extracted rootfs using
make PREFIX=/path/to/roofs install
The next thing to do is the altering of the init scripts of the wl500g. The patch is named 1.6.5.3-patch.diff.
Finally you will need to pack the firmware using the trx tool from broadcom. I've supplied the pack script for the purpose:
mkcramfs cramfs pack.cramfs
cat pack.cramfs 1.6.5.3.trailer > pack-trailer.cramfs
./trx -o pack.trx 1.6.5.3.vmlinuz pack-trailer.cramfs
At this point you've got the pack.trx file which can be uploaded to wl500g. For other details see http://wl500g.info/showthread.php?s=&threadid=65
Regards,
Oleg.
Re: WL-500b firmware update?
Quote:
Originally posted by Technik
Oleg, would it be hard for you to make an update for WL-500b as well please? Unfortunately I don't have any Linux box at the moment so I can't make it myself. I think it could be interesting for some other WL-500b users too. Anyway, thanks a lot for this detailed HOW-TO - very nice work! :)
here you go: http://files.wl500g.info/asus/wl500b..._en_patch1.trx
Re: Building the custom firmware
Quote:
Originally posted by Oleg
Info on how I've build the firmware.
First read the http://www.seattlewireless.net/index.cgi/LinksysWrt54g it contains the info about one of the Broadcom based Linksys router. Most of the things applies to wl-500g. But wl-500g is the best one. :)
For building the firmware you will need the linux box. I'm using RH8 for the purpose. Second, you will need the tools availbale from the linksys site. See the seattlewireless for the details. I've used WRT54G 1.42.3 supplies sources.
I've sent the 1.6.5.4.tar.gz file to the forum@chupa.nl. Hope Antiloop will post it.
The first thing you will need to do is to install broadcom tools. The next one is to extract files from the Asus 1.6.5.3 firmware. The simplest way for this is using the extract script I've supplied:
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.vmlinuz skip=28 ibs=1 count=705256
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.cramfs skip=705284 ibs=1
dd if=wg01060503_WL500g_en.trx of=1.6.5.3.trailer skip=3769092 ibs=1
This will produce 3 files, containing compressed linux kenel, rootfs & asus firmware trailer.
The next thing you will need to to is to extract rootfs from the 1.6.5.3.cramfs file. You may want tou use uncramfs available on the net, or just mount this file using something like this
mount -o loop 1.6.5.3.cramfs /mnt/cramfs
and then just copy the files to the build dir.
The next thing is customizing the firmware. I've examined it and found 2 busybox executables - /bin/busybox & /sbin/busybox. The second are just used by insmod, so I've decided to alter it. I've used used busybox-1.0pre5 (www.busybox.net) for the purpose, but have patched, to make insmod & passwd --stdin working (the patch named 1.6.5.3-busybox.diff, it's also contains the config I've used). You will need to make the busybox, and install it over the extracted rootfs using
make PREFIX=/path/to/roofs install
The next thing to do is the altering of the init scripts of the wl500g. The patch is named 1.6.5.3-patch.diff.
Finally you will need to pack the firmware using the trx tool from broadcom. I've supplied the pack script for the purpose:
mkcramfs cramfs pack.cramfs
cat pack.cramfs 1.6.5.3.trailer > pack-trailer.cramfs
./trx -o pack.trx 1.6.5.3.vmlinuz pack-trailer.cramfs
At this point you've got the pack.trx file which can be uploaded to wl500g. For other details see http://wl500g.info/showthread.php?s=&threadid=65
Regards,
Oleg.
Hi,
i examined the kernel config of the linksys sources and discovered, that the don't enable the usb support by default. Also the prt port ist not enabled.
Did you create you own kernel config ? If yes, can you post it here ?
Rgds
Michael
Re: Re: Building the custom firmware
Quote:
Originally posted by zomk3
Hi,
i examined the kernel config of the linksys sources and discovered, that the don't enable the usb support by default. Also the prt port ist not enabled.
Did you create you own kernel config ? If yes, can you post it here ?
Rgds
Michael
Michael, I've not rebuild kernel, I've used the kernel & the modules supplied by ASUS. WRT54G kernel & modules can't be used directly - they have different ethernet interfaces, led drivers and possibly more. The closest kernel should be from the wap54 & wrt55. Asus also has the modules, which we can't recompile using the Linksys sources - the things related to parallel port (parport_splink), splink_led (it's pretty simple). And the main problem is the debugging of the newely build kernel.
BTW, I'm was able to build some modules to use with existing kernel using the wrt54g config (I've added the ext2, loop, nfs and the friends). I'm was able to mount nfs share.