WAG54GV3 Howto

From ProjectWiki
Revision as of 15:00, 21 December 2009 by Wikisysop (Talk | contribs)
Jump to: navigation, search

Contents

How to compile WAG54GV3 Firmware

This tells u how to compile the Linksys WAG54GV3-AU firmware. Plz ignore the goofy writing style and feel free to correct or clarify parts as needed. This is written for unbuntu since all the newbs use that, but will prolly work with whatever if your not complteely tarded~

  • first downloads teh TI-toolchains-2_1_0-cy07.PROPER.tar.bz2 and WAG54GV3-AU_v1.00.22.PROPER.tar.bz2.
wget http://blea.ch/~eris/wag54g/TI-toolchains-2_1_0-cy07.PROPER.tar.bz2
wget http://blea.ch/~eris/wag54g/WAG54GV3-AU_v1.00.22.PROPER.tar.bz2
  • extract TI-toolchains-2_1_0-cy07.PROPER.tar.bz2 and copy opt/ to / (there is probably already a /opt hopefully it wont copy over anything impotant. However usually mv just nicely merges two sets of files.. i think.. or hell whatevah just cp -R it.. u_u).
tar -jxf TI-toolchains-2_1_0-cy07.PROPER.tar.bz2
sudo cp -R opt /
rm -rf opt

That'll get your toolchain setup and in the proper location.

  • Set the proper paths.
export PATH=$PATH:/opt/TI-toolchains-2_1_0-cy07/mipsfple/bin/:/opt/TI-toolchains-2_1_0-cy07/mipsfple-uclibc/bin/

now the compilers should be in your path.. type mips- and press tab a few times, you should see a buncha mips-blah-blah files show up.. this means issok! :D (if you plan to work with the code alot, make mods, etc, might wanna add this to .bashrc or .login or such :)

  • extract TI-toolchains-2_1_0-cy07.PROPER.tar.bz2 to your home dir. it will create the WAG54GV3-AU_v1.00.22 dir.
tar -jxf TI-toolchains-2_1_0-cy07.PROPER.tar.bz2
cd /WAG54GV3-AU_v1.00.22/src
  • Okaies lastly run teh sorta totally lameass scripte to actually build everything. Alternately see the Manual compile section below...
./make.sh

This will make everything, hopefully. If your done you should have a file called upgrade_code.bin in the image dir.. (may be 1 directory up if you cd router'ed). If not see the troubleshooting section..

Manual compile

Normally you run ./make.sh, but if thats having issues, it may be useful to make each step seperately, helps finding error messages as it'll prolly halt abruptly leaving the error message visable and not buried under a shitton of other crap. To do that first type this once:

cd router

and then type (one line at a time newbs):

make linux-clean
make linux-dep
make linux
make clean
make 
make linux-modules
make install
make rom
make upgrade
make lang

onoes! teh fail :/

if you gets:

/home/yourname/WAG54GV3-AU_v1.00.22/src/linux/linux-2.4.17_mvl21/tools/7zip: error while loading shared libraries: libstdc++-libc6.2-2.so.3: cannot open shared object file: No such file or directory

trys:

sudo apt-get libc6

Or install something with libc6, I THINK!! Okaies, try that first, and if thats not workin or your not on debian/ubuntu/etc and since i may have just forget what i installed to get this file... just do this:

wget http://blea.ch/~eris/wag54g/libstdc++-3-libc6.2-2-2.10.0.so
sudo mv libstdc++-3-libc6.2-2-2.10.0.so /usr/lib/

What no bison?! if you gets:

make[2]: bison: Command not found

trys:

sudo apt-get install bison

if you gets: (btw this is only necessary if your re-building after a previous build, but rly that it generates error messages and fuglys up your terminal should be reason enough to fix this...)

/bin/sh: rcsclean: not found

trys:

sudo apt-get install rcs

What did j00 do to fix0r this?!?!

Tbh, i cannot remember exactly, fixd few things, firstly finding the right toolchains and where to put it was a plus, then finding a few syntax errors in the main Makefile, and umm ummm, oh yah, finding that library file was pita mostly because i didn't get that it was looking for file to run 7zip and not link it or somethign and missing libstdc++blahblah, also installing bison and such...

diff of src/router/Makefile:

249c249,250
<       fi )
---
>       fi 
> #     fi )
294c295,296
<       fi )
---
>       fi 
> #     fi )
367c369,370
<       fi )
---
>       fi
> #     fi )

Also, just rememered, was getting this error:

 make[3]: *** No rule to make target `sangam_atm/tn7atm.o', needed by `tiatm.o'.  Stop.

Seems the nuked the sources for this for some reason, but thankfully DID have a precompiled version laying about in:

WAG54GV3-AU_v1.00.22/src/router/lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/atm/tiatm.o

So, I added rule to the atm Makefile to cp tiatm.o into the /src/linux/linux-2.4.17_mvl21/drivers/atm/

185,186c185,189
< tiatm.o:      $(tiatm-objs)
<       $(LD) -r -o $@ $(tiatm-objs)
---
> #tiatm.o:     $(tiatm-objs)
> #     $(LD) -r -o $@ $(tiatm-objs)
> 
> tiatm.o:
>       cp  ../../../../router/lib/modules/2.4.17_mvl21-malta-mips_fp_le/kernel/drivers/atm/tiatm.o ./

Which causes it to copy the precompiled object file insteads of trying to compile it... (oddly i went thru this whole procedure once without it erroring, was only on the second attempt it bitches, like idk?!)

Ossum, yet useless cause its AU firmware wth?!

Likes zomg this is ossum, yet useless to me as i have EU or capitalist american firmware?! Well sry, i dont even own one of these and just did this for a friend, but the main problems were in the router/Makefile, you can prolly copy/pasta the modified Makefile from this version over and get it to work (it had several syntax errors... SYNTAX?! WTF?!?! i srsly suspect they just fux0rd it to prevent easy compilation).

jaja... sounds easy, but took 4 days :P


Linksys is a registered trademark of Cisco corporation. Linux is a registered trademark of Linus Torvalds. All information presented here without warranty implied or otherwise. The contributers and site owners are not responsible for your actions.

Personal tools
irssi scripts
eggdrop scripts