Porting programs

From Qi-Hardware
Jump to: navigation, search

[edit] Develop with OpenWrt SDK

Porting application with OpenWrt-SDK is much easier than developing with openwrt-xburst.git.

  1. wget http://downloads.qi-hardware.com/software/images/Ben_NanoNote_2GB_NAND/latest/OpenWrt-SDK-xburst-for-Linux-x86_64-gcc-4.3.3+cs_uClibc-0.9.30.1.tar.bz2
  2. make symbolic name "/home/xiangfu/openwrt-xburst.full_system" to your SDK folder. this is my fault, the SDK is built on our build-host. I use this dir to compile the SDK, next time I think we should change it to "/opt/openwrt/"
  3. there is a folder named 'package' under OpenWrt-SDK. For each package you want to create, you'll have to create a sub-folder in 'OpenWrt-SDK/package' with the same name as the package you want to create. And in this directory, create a Makefile explaining how to build it.
  4. Here is a sample Makefile which is for 4th, there are more comments in this makefile.
  5. compile the package in OpenWrt-SDK: make V=99 or make package/PACKAGE_NAME/compile V=99 The V=99 option makes output more verbose, so that in case of errors we can easily figure out what happened.
  6. the OpenWrt work flow is like:
    1. make package/PACKAGE_NAME/compile
    2. download origin source code to 'dl'
    3. extract to build_dir/target-mipsel.../PAKCAGE_NAME-PAKCAGE_VERSION
    4. apply the patches in package/PACKAGE_NAME/patches/* which are patches created by you to fix compile errors for OpenWrt or for NanoNote.
    5. configure && make && make install.
    6. generate the PACKAGE_NAME.ipg under 'bin/xburst/packages/'

[edit] openwrt-packages

  • Some NanoNote packages not in OpenWrt are provided by the openwrt-packages repository, also known as qipackages in the software build process.
  • One idea would be to clone this repo and add new ports to it (with appropriate symlinks) for easy pulls.
  • See openwrt-packages for guidelines around this project.

A list of failed packages is produced for each release, as well as in snapshot builds.

[edit] Links

Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export