= Ariba on !OpenWrt Routers = == Introduction == This suite aids the cross-compilation of the Ariba framework for Openwrt on a Broadcom 2.4 chipset (e.g. Openwrt on an Asus WL-500g Wireless Router). == Preparation == You should use external storage for your Ariba libs, for example an USB flash drive. You also need aditional run-time memory, so your flash drive should include a swap partition. Also, there seems to be a problem with symlinks on fat, so better use ext2 or ext3. You should install the latest bleeding edge snapshot of Openwrt, for the Asus WL-500g this would be: http://downloads.openwrt.org/snapshots/trunk/brcm-2.4/openwrt-brcm-2.4-squashfs.trx On a fresh install, you will need to install following packages: {{{ opkg update opkg install bash gdbserver kmod-usb-core kmod-usb-storage kmod-usb2 libopenssl libpthread libstdcpp swap-utils }}} Depending on the format of your flash drive, you might also need: kmod-fs-vfat, kmod-fs-ext2 or kmod-fs-ext3. I've included a few little scripts that made my life on the OpenWrt box easier in openwrt-scripts. At the time of writing, we still need to copy a few libs by hand from our toolchain environment to the router. Those are: {{{ toolchain/lib/libgcc_s.so.1 and toolchain/usr/lib/libstdc++.so.6.0.13 }}} Be sure to set the symlinks on the router correctly, e.g. libstdc++.so.6 -> libstdc++.so.6.0.13 == Cross Compiling == Per default, the {{{ariba-brcm-2.4}}} directory should be in the top level of an ariba source tree, e.g. {{{ariba/ariba-brcm-2.4}}}. You can tweak this by editing {{{ARIBA_BRCM_DIR}}} in the cross-compilation scripts. {{{openwrt-buildroot}}} should hold the latest openwrt buildroot. It can be obtained with: {{{ svn co svn://svn.openwrt.org/openwrt/trunk/ mv trunk openwrt-buildroot }}} "variables" defines a bunch of variables used by all cross-compilation scripts, you should tweak those to best fit your compiling environment. To cross-compile ariba, do: ./build_toolchain - from the ariba-brcm-2.4 dir ariba-brcm-2.4/bootstrap_ariba_libs - from the ariba source tree ariba-brcm-2.4/make_ariba - from the ariba source tree == Deployment == * TODO: which files to copy where == Running == * TODO: how to run ariba on the router == Ideas == Ideas for improvement and bug-fixing: - The build_toolchain script is not very tolerant to changes in the openwrt buildroot, so it may have to be adapted after time. - Link against ulibc++ isntead of libstdc++, could have better performance. - Try getting the log4cxx stuff to work. Note: I think it actually runs faster without log4cxx, so I don't know if this is worth the effort. - Stick a Bluetooth dongle in the router and see how this works out. You'll have to install (and possibly compile) the right kernel modules for the router, apart from that they shouldn't be any problems.