ISL3893 Source
Compiling the source
the short version
This example has been made with the medion source.
- download the gpl1010.tgz
- untar this
- cd v1010/Software/firmware/uClinux/kernel and do a "make dep"
- cd to v1010/Software/firmware/apfw and do a make image
- No error? then there is a recent apfirmware.img in the apfw dir.
The quality of the manufacturers source..
It seems to be a sport to create a sourcetree that cannot be compiled into something working. It sure is no advertising like "Our product is as reliable as the source we supply"
Here are the results of several sources:
Medion MD40900
This one compiles into a firmware
cd /v1010/Software/firmware/uClinux/kernel make dep cd /v1010/Software/firmware/apfw make image
Problems:
- the datastore gives an error and the AP reboots
- make clean removes al the proprietery stuff
Sitecom WL122 (v1)
apps-non-gpl is not included. So it won't even compile. You can copy the apps-non-gpl from another source.
Fujitsu Siemens AP600
This one compiles into a firmware
cd /v1010/Software/firmware/uClinux/kernel make dep cd /v1010/Software/firmware/apfw make image
Problems:
- the datastore gives an error and the AP reboots
- make clean removes al the proprietery stuff
Linksys Wet54G V2
There are two sources, 2.10 and 2.07 This asks for a smidump which understands IslSchema. changing the uClinux/apps-non-gpl/datastore/etc/Makefile
schema: $(MIBS) MIB-exceptions #$(SMIDUMP) -f IslSchema $(MIBS) -o schema -e MIB-exceptions $(SMIDUMP) -f smiv2 $(MIBS) -o schema
It compiles now but my guess is that it's very broken. This sourcetree then survises a make clean because the .o files are not removed.....
The steps in this document have been tested by starting "from scratch", if necessary by deleting or renaming an already existing source-tree.
- Tried, not tested: The firmware-sources from Medion are very similar and should work too.
- Tried, not tested: The sources for the Sitecom WET-122-v1 can be compiled too, but you have to get the apps-nongpl-subtree elsewhere, for example from the AP-600-sources. Build the WL-122-v1-sources, then you will see where to copy the missing sub-tree.
- wet54gs5: See http://www.student.kuleuven.ac.be/~s0169612/isl3893.html for more info.
Used current version of the linux-platform and linux-tools:
- Linux opensuse 10.0 (german)
- gcc, gcc-c++, cpp 4.02_20050901-31 (as included in SuSE 10.0)
- flex 2.4.5a-297 (as included in SuSE 10.0)
- bison 1.875-56 (as included in SuSE 10.0)
- The binary /sbin/depmod.old is called by the build-scripts of some firmware-sources. Make a softlink from your existing /sbin/depmod, that works most of the time.
Building the firmware
Some steps may be unnecessary for the AP-600-sources, but can become necessary for other source-trees. They will not do any damage though.
The AP-600-sources were chosen because they are the easiest to build. They are not necessarily the best.
Also this HOWTO is not meant to be finished. You will have some basic functionality including shell-access. Then you can start making your own mods.
Get AP-600RP_GNU_source-code.zip. That should be the firmware-sources as released by Fujitsu-Siemens.
unzip AP-600RP_GNU_source-code.zip tar -xvzf Code.tgz cd v1010 chmod -Rv a+rwx * cd Software/firmware/uClinux/ make menuconfig # change flash-layout to 10000/200000/360000 # leave "Accesspoint Features" as they are # Development options: include shelld, additional command line tools, meminfo # exit + save cd kernel # Software/firmware/uClinux/kernel make menuconfig # no changes, exit + save make dep cd .. # Software/firmware cd ../apfw # Software/firmware/apfw make image # takes a few minutes. You should then have a new firmware-image in file 'apfirmware.img' # DO NOT UPLOAD THIS YET
Unfortunately there are a few bugs in the sources. I do not speculate on whether ZCom or Fujitsu-Siemens or whoever else might have planted these intentionally :-(
So now some patches:
cd ../uClinux/romfs/etc # Software/firmware/uClinux/romfs/etc/ vi startup.list # comment out datastore and paed, they are somehow corrupt # exit + save
# --- This part concerning /etc/passwd is only necessary for boa --- # # passwd is normally softlinked to /usr/etc, here we replace it by a file in /etc mv passwd passwd.old vi passwd # enter these lines: root::0:0:/:/bin/sh nobody::1234:1234::/:/bin/sh # exit + save
cd init.d # Software/firmware/uClinux/romfs/etc/init.d/ vi network # after the line 'ifconfig lo 127.0.0.1 up' add these lines a) for having the AP get its IP by dhcp: ifup eth0 autoip ifup eth1 autoip ifup br0 autoip ifup br0 dhcp # exit + save
b) Or for static IP: ifup eth0 autoip ifup eth1 autoip ifup br0 static 192.168.1.253 255.255.255.0 # exit + save
cd ../../.. # Software/firmware/uClinux/ cd ../apfw # Software/firmware/apfw make image # wait a while ...
Then you can hopefully upload apfirmware.img. This is also known as the "Load-And-Pray"-Mode :-)
To upload put your AP in safe mode by turning on the power with the reset-button pressed. The AP now has the IP 192.0.2.93 and no firmware. It responds only to tftp and ping.
Connect it to your PC and
ifconfig eth0 192.0.2.99 tftp 192.0.2.93 verbose trace bin put apfirmware.img quit # upload takes 1-2 minutes, led on AP flashes fast # the AP should then reboot automatically
# then: ifconfig eth0 192.168.1.99
The AP should come up and get an IP by dhcp or respond to ping 192.168.1.253. You can monitor what is happening if you start a sniffer on eth0.
You should be able to telnet 192.168.1.253
There may be trouble getting the webserver boa (/etc/init.d/boa and /bin/boa) running, and a webfilesystem has to be added later.