WOCE Build Instructions

From WebOS-Ports
Jump to navigation Jump to search

Supported Platforms

Currently the only supported platform is Ubuntu 12.04. We have tested and confirmed that x32 and x64 Ubuntu Desktop and Server successfully build WOCE. Other platforms may work but are not supported.

Older versions of Ubuntu may also work, it's been tested successfully on Ubuntu 10.10. It's also very likely that you'll have success with Debian or Debian-based distributions.


We recommend you follow the instructions to install WOCE Build Environment. continue at your own risk! USE 32-bit.


Prerequisites on Debian-based systems

Your Debian/Ubuntu installation will need the following installed. If you do not have them, run the command after the package name. You can test if they are found by just typing the command name. If it says command not found, you need to install it.

git sudo apt-get install git
gcc sudo apt-get install build-essential
python sudo apt-get install python
curl sudo apt-get install curl
unzip sudo apt-get install unzip

If you're uncertain at all, just cut and paste the following. If some of these packages are already installed and up-to-date, they'll be skipped.

sudo apt-get install git build-essential python curl unzip

Note: If you are a beginner with Ubuntu Linux Distribution, you should update all the packages on your system to avoid problems when you will compile.

Note: If you are using x64 ubuntu you also need to install the following package

ia32-libs and g++-multilib sudo apt-get install ia32-libs g++-multilib

Start setup

  • Create a WOCE directory, we recommend you place it in your home directory.
  • Clone down the woce-build repo from github
git clone git://www.github.com/woce/woce-build
  • Start the build. This is as simple as cd'ing into the woce-build directory and running make or if you have multiple cores make -j<number of cores here>
  • When the build finishes the binaries will be under the packages folder in their appropriate directories (e.g. LunaSysMgr in ./packages/sysmgr/luna-sysmgr/build/woce/armv7-stage/release-topaz/LunaSysMgr)

Installing the Binaries

  • Install the SDK/PDK
  • Enable 'Developer Mode' on your TouchPad (How To Enable Developer Mode)
  • Connect your TouchPad via USB to your (Linux) computer
  • From your TouchPad, when the connection is detected, just tap 'Close' in the notification window.

From your (Linux) computer, execute the following commands - take note that there is an assumption of where the new LunaSysMgr is at:

novacom run -- file:///sbin/stop LunaSysMgr
novacom run file://bin/mount -- -o remount,rw /
novacom put file:///usr/bin/LunaSysMgr < ./packages/sysmgr/luna-sysmgr/build/woce/armv7-stage/release-topaz/LunaSysMgr
novacom run file://bin/mount -- -o remount,ro /
novacom run -- file:///sbin/reboot

Your device will reboot in to the new LunaSysMgr

Done!

You're done! Your very own LunaSysMgr should now start on your TouchPad.

Don't forget to join the IRC channel #webos-ports on Libera and report any issues to WebOS Port's bugtracker. Oh, and contribute your code changes!

Packaging

Beware: Dragons Ahead. These instructions will probably *not* be in a functional state when you try them.

First, you need a custom version of woce-build. For now lets use ShiftyAxel's woce-build.

git clone git://github.com/ShiftyAxel/woce-build.git
cd woce-build
git pull origin alpha

now that you have the packaging repo, we need to setup the custom target to get full woce with patches building.

cd ~/
git clone git://github.com/ShiftyAxel/LunaSysMgr.git
cd LunaSysMgr
git pull origin alpha-testing
cd ''wherever you put your woce-build''
cd config
edit the custom.mk and remove the 2 warning lines.

Trigger the main build.

cd ..
make CONFIG=custom

Trigger the packaging

cd packages/sysmgr/luna-sysmgr
make CONFIG=custom; make CONFIG=custom package

Take the package that just was generated and install it with preware.

IMPORTANT: Do not restart your device at this point! Perform a luna restart.

Profit?

Developer Extras

  • Follow the instructions above to ensure you have the needed software and that the build works for you as-is.
  • Clone a copy of LunaSysMgr somewhere for your development pleasure
  • Edit config/custom.mk:
    • Remove the error and warning lines as indicated
    • Change LUNASYSMGR_URL to point to your LunaSysMgr source tree
  • run 'make custom' ('make custom -j8' or similar) to build LunaSysMgr from your source tree. If you change a source file, another 'make custom' will rebuild only what's needed.
  • Test your new feature(s) and submit pull requests to woce/LunaSysMgr! :)