For building HIPL on the kamikaze release 7.09.
Get and extract OpenWRT kamikaze 7.09 source.
$ tar xzf kamikaze_7.09.tar.gz
Get all patches for HIPL on OpenWRT from http://hipl.hiit.fi/hipl/contrib/openwrt/7.09/patches/, which produce Makefiles and configuration files for necessary packages. And apply them into the kamikaze_7.09 source tree.
$ ls 64 etc_config_dhcp.diff 64 etc_firewall_user.diff 64 etc_config_network.diff 64 etc_hostapd.diff 64 etc_config_wireless.diff 64 hipl_openwrt-7.09.diff 64 lib_wifi_madwifi.sh.diff 64 kamikaze_7.09 $ cd kamikaze_7.09 $ patch -p1 < ../hipl_openwrt-7.09.diff $ patch -p1 < ../etc_config_dhcp.diff $ patch -p1 < ../etc_config_network.diff $ patch -p1 < ../etc_config_wireless.diff $ patch -p1 < ../etc_firewall_user.diff $ patch -p1 < ../etc_hostapd.diff $ patch -p1 < ../lib_wifi_madwifi.sh.diff $ ls package/hipl/Makefile Makefile
Note that you might also change the kernel version in <path_to_kamikaze>/target/linux/brcm47xx-2.6/Makefile into 2.6.23 or a similar version number, especially if you are using vanilla kamikaze sources.
Get the newest hipl source tree from the hipl repository, pack them as a tarball and place it under the dl directory.
$ tla get hipl--main--2.6 hipl--main--2.6 $ mkdir -p kamikaze_7.09/dl $ tar czf kamikaze_7.09/dl/hipl--openwrt--2.6.tar.gz --exclude=\{arch\} hipl--main--2.6
An alternative to that is to get a hipl tarball from http://hipl.hiit.fi/hipl/contrib/openwrt/, and to place it in the directory kamikaze_7.09/dl/. However, this tarball is currently too old. Do that only when you get in trouble with the first method with the newest sources.
$ wget http://hipl.hiit.fi/hipl/contrib/openwrt/hipl--openwrt--2.6.tar.gz -O kamikaze_7.09/dl/hipl--openwrt--2.6.tar.gz
Copy our own kernel configuration file for brcm47xx from http://hipl.hiit.fi/hipl/contrib/openwrt/7.09/config/target/linux/brcm47xx-2.6/config/default and place it as kamikaze_7.09/target/linux/brcm47xx-2.6/config/default.
Enable hipl in the Networking menu by executing "make menuconfig".
Network ---> <*> hipl
Build OpenWRT, make a vmlinuz and a rootfs image.
$ make V=99
Or you can also build just a hipl package.
$ make package/hipl-install V=99
Load the images on WGT634U and reboot.
If you are able to reboot your device with your image, the next thing to do is to install kernel module packages needed for running hipl. Make sure first that the following packages are available in your kamikaze tree.
$ cd bin/packages/ $ ls -l kmod-crypto* kmod-ipsec* kmod-ipv6* kmod-tun* $ cd bin/packages/ $ ls -l kmod-crypto* kmod-ipsec* kmod-ipv6* kmod-tun* 28 -rw-rw-r-- 1 pisa src-pisa 26423 Sep 3 16:57 kmod-crypto_2.6.22-brcm47xx-1_mipsel.ipk 12 -rw-rw-r-- 1 pisa src-pisa 11297 Sep 3 16:57 kmod-ipsec4_2.6.22-brcm47xx-1_mipsel.ipk 16 -rw-rw-r-- 1 pisa src-pisa 14299 Sep 3 16:57 kmod-ipsec6_2.6.22-brcm47xx-1_mipsel.ipk 36 -rw-rw-r-- 1 pisa src-pisa 33031 Sep 3 16:57 kmod-ipsec_2.6.22-brcm47xx-1_mipsel.ipk 168 -rw-rw-r-- 1 pisa src-pisa 165355 Sep 3 16:57 kmod-ipv6_2.6.22-brcm47xx-1_mipsel.ipk 8 -rw-rw-r-- 1 pisa src-pisa 6820 Sep 3 16:57 kmod-tun_2.6.22-brcm47xx-1_mipsel.ipk
If they are not available, configure your OpenWRT again to add them as packages.("<M>")
Install the packages in your WGT634U device. On your device console:
# scp user@srv:path/to/kamikaze_7.09/bin/packages/kmod-{crypto,ipsec,ipv6,tun}* . # ipkg install kmod-crypto* kmod-ipsec* kmod-ipv6* kmod-tun*
Load the installed modules, unless you already have /etc/modules.d/35-hipl.
# cd /lib/modules/2.6.21.3 # insmod sha1.ko # insmod aes.ko # insmod tun.ko # insmod ipv6.ko # insmod af_key.ko # insmod xfrm_user.ko # insmod ah4.ko # insmod esp4.ko # insmod ipcomp.ko # insmod xfrm_tunnel.ko # insmod ah6.ko # insmod esp6.ko # insmod ipcomp6.ko # insmod tunnel6.ko # insmod xfrm6_tunnel.ko
Don't panic even though some of those modules do not exist. Chances are, the missing modules are already embedded in your kernel image. To know whether a certain object is configured as a module or not, refer to the configuration file kamikaze_7.09/target/linux/brcm47xx-2.6/config/default.