Loading HIPL on Netgear WGT634U

For building HIPL on the kamikaze release 7.09. 

  1. Get and extract OpenWRT kamikaze 7.09 source.

      $ tar xzf kamikaze_7.09.tar.gz
      
  2. 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.

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

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

  5. Enable hipl in the Networking menu by executing "make menuconfig".

      Network  --->
      <*> hipl
      

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

  7. Load the images on WGT634U and reboot.

  8. 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>")

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

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