Tuesday, December 1, 2015

How to do porting of TI Z-Stack Linux Home Gateway to Raspberry Pi

The following steps show you how to do porting of TI Z-Stack Linux Home Gateway to Raspberry Pi.

1. Sign SLA with TI to get source code installer "Z-Stack_Linux_Gateway-1.0.1-src-linux-installer.run"

2. Run "chmod +x Z-Stack_Linux_Gateway-1.0.1-src-linux-installer.run".

4. Run "./Z-Stack_Linux_Gateway-1.0.1-src-linux-installer.run" in VirtualBox 32 Bit Ubuntu to install source code to "/home/yk/Z-Stack_Linux_Gateway-1.0.1-src".

5. Run "sudo apt-get install git" to install git first and run "git clone https://github.com/raspberrypi/tools" to get cross compiler and tool chain for Raspberry Pi.

6. vi .bashrc under /home folder and add the following two lines

     export PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin
     export TCLIB=~/tools/arm-bm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/lib/

7. Restart terminal to make .bashrc deployed.

8. Change directory to /home/yk/Z-Stack_Linux_Gateway-1.0.1-src/Source and run "./build_all"

9. After build complete, you will get z-stack_linux_gateway_arm_binaries_.tar under /home/yk/Z-Stack_Linux_Gateway-1.0.1-src/Source/out/Precompiled_arm.

10. scp  z-stack_linux_gateway_arm_binaries_.tar to you Raspberry Pi and plugin CC2531 USB dongle with FW CC2531-GW-ZNP_38724.hex.

11. Open 2 SSH client shells on your host PC and connect them to Raspberry Pi.

12. In one of SSH login, untar Z-Stack Linux Gateway Binaries
      $ cd ~
      $ mkdir z-stack_linux_gateway_arm_binaries
      $ tar xvf z-stack_linux_gateway_arm_binaries_.tar -C z-stack_linux_gateway_arm_binaries

13. In the same SSH login, run the following commands to start Z-Stack Linux Gateway servers.

      $cd ~/z-stack_linux_gateway_arm_binaries
      $cp protobuf/libprotobuf-c.so.0 /usr/lib/
      $cd servers
      $chmod +x ./zigbeeHAgw
      $./zigbeeHAgw beaglebone

14. On another SSH login, run the following commands to start Z-Stack Linux Gateway application
      $ cd ~/z-stack_linux_gateway_arm_binaries/servers
      $ chmod +x ./start_application
      $ ./start_application