ISL3893 Source: Difference between revisions

From Appelwiki
No edit summary
 
(9 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Arco's source ==
I tried to create a smaller sourcetree that has the usb patch in it. At first the make dep in the kernel dir is still needed.
* [http://appeltaart.mine.nu/isl3893/isl3893-source-20060403.tar.bz2 http://appeltaart.mine.nu/isl3893/isl3893-source-20060403.tar.bz2] (35MB)
And now create it:
tar xvjf isl3893-source-YYYYMMDD.tar.bz2
cd isl3893src
make dep -C firmware/uClinux/kernel/
cd firmware/apfw
make image
#recovery Boot your AP
EXPORT APIP=192.x.y.z
./putfirmware.sh
== Compiling the source ==
=== the short version ===
=== the short version ===
This example has been made with the medion source.
This example has been made with the medion source.
Line 7: Line 23:
* No error? then there is a recent apfirmware.img in the apfw dir.
* No error? then there is a recent apfirmware.img in the apfw dir.


=== The quality of the manufacturers source.. ===
== 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"
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"


Line 22: Line 38:
* make clean removes al the proprietery stuff  
* 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.....


==== Linksys Wetgs5 ====
See http://www.student.kuleuven.ac.be/~s0169612/isl3893.html for more info.


=== So what's next? ===
Probably the best option is to make a new base firmware to work with. All patches can be applied to this and it can distributed with all patches on it.


idea's:
* standard shelld
* network settings from make menuconfig
* apps for gpio


Wish:
* integration of uClinux or any other tree
* 2.6 kernel?






----


----


----


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 toolchain
---------------------------------
After Arco did some serious patching to the sources on sf.net this should work out of the box: [http://appeltaart.mine.nu/isl3893-tools-20060319.tar.bz2 appeltaart.mine.nu/isl3893-tools-20060319.tar.bz2]


unpack
cd tools
cp depmod.old /sbin
./make-tools.sh
# takes a few minutes ...
# that was easy, wasn't it ? :-)




Line 152: Line 183:


There may be trouble getting the webserver boa (/etc/init.d/boa and /bin/boa) running, and a webfilesystem has to be added later.
There may be trouble getting the webserver boa (/etc/init.d/boa and /bin/boa) running, and a webfilesystem has to be added later.
== Known problems ==
* depmod fails for modules: change uClinux/kernel/Makefile DEPMOD=/bin/true

Latest revision as of 12:51, 3 April 2006

Arco's source

I tried to create a smaller sourcetree that has the usb patch in it. At first the make dep in the kernel dir is still needed.

And now create it:

tar xvjf isl3893-source-YYYYMMDD.tar.bz2
cd isl3893src
make dep -C firmware/uClinux/kernel/
cd firmware/apfw
make image
#recovery Boot your AP
EXPORT APIP=192.x.y.z
./putfirmware.sh

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

Linksys Wetgs5

See http://www.student.kuleuven.ac.be/~s0169612/isl3893.html for more info.

So what's next?

Probably the best option is to make a new base firmware to work with. All patches can be applied to this and it can distributed with all patches on it.

idea's:

  • standard shelld
  • network settings from make menuconfig
  • apps for gpio

Wish:

  • integration of uClinux or any other tree
  • 2.6 kernel?









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.


Known problems

  • depmod fails for modules: change uClinux/kernel/Makefile DEPMOD=/bin/true