VoCore: Starter Tutorial Part1

In this tutorial, I will show you the full process about setup a develop environment and compile/run a “hello world” on VoCore, step by step.

1. Prepare Linux
a) Download and install VirtualBox. VirtualBox is a famous open source VM software, I like it. If you are using Linux OS already, just ignore this.


Screen Shot 2014-11-20 at 10.45.00 am

Click on the links, you will get the install package, run it to install VirtualBox into your computer. If you have VoCore you can not be a newbie to such thing.

b) Download Ubuntu. Ubuntu is the first UI Linux I used. I like the font :)

Screen Shot 2014-11-20 at 10.47.38 am

After download, you will get the ubuntu install iso file.

c) Setup VirtualBox and install ubuntu into it.
Screen Shot 2014-11-20 at 10.51.24 am (2)

Better to have 30GB free disk space(at least 20GB).
Screen Shot 2014-11-20 at 10.51.38 am (2)

Click “Create”, then double click the new item in VBox.
It will popup a window request you to select the iso.
Now select your downloaded ubuntu iso, then click Start.
Screen Shot 2014-11-20 at 10.51.59 am (2)

Rest is the install Ubuntu, I will not post here, please check ubuntu.com for the install instruction.

d) Install VirtualBox driver to ubuntu.
After ubuntu installed and startup successfully, we have to install VirtualBox driver so we can use the network, etc in VM.

Details is here: https://www.virtualbox.org/manual/UserManual.html

Now we have a Linux system in VM.

2. Prepare OpenWrt.(http://vocore.io/wiki/index/id:15)

a) Install necessary tools:
sudo apt-get install zlib1g-dev libncurses5-dev gawk subversion libssl-dev git

b) Download openwrt
git clone git://git.openwrt.org/openwrt.git

c) Make & Compile
goto openwrt folder(git create that), for example: cd ~/openwrt
make menuconfig
Screen Shot 2014-11-20 at 11.07.52 am (2)
make sure the config is like upper picture.

call make to compile openwrt, or make -jX for faster speed.(X is your CPU core number +1, for my macbook pro, it is -j9)

3. Write your first application.
use vi or any text edit, create main.c.

#include <stdio.h>

int main(void)
    return printf("hello world\n");

Now there are two ways to compile your main.c
One is to write a makefile, put the file to openwrt package folder, I will show this way in later tutorial.

Another way is super simple :) Just make sure main.c is in current folder.

`find . -name mipsel-openwrt-linux-gcc` -g main.c -o hello

Now you have the compiled application, hello.
Note: you might get this warning, just ignore that.

mipsel-openwrt-linux-gcc: warning: environment variable 'STAGING_DIR' not defined

4. Upload to VoCore

a) Connect to your VoCore.

Here is the tutoral

b) scp the file to VoCore, password vocore.

scp ./hello root@

c) ssh to VoCore.

ssh root@

d) Try to run your first app.
Works well :)
Screen Shot 2014-11-20 at 11.39.21 am (2)

Next tutorial, I will show how to remote control GPIO.

18 thoughts on “VoCore: Starter Tutorial Part1

  1. In real application it is not that simple just calling gcc. Linking external libraries is the hard part. The helloworld example is not that meaningful.

    1. This is for beginners..:) I think this is “real” app. Just step by step, you can not become fat in one day. For me, library is just -l, but for beginners that is a long way.

  2. Hi I am a super beginner. When I try “3. Write your first application.” I get ” -bash: syntax error near unexpected token `(‘ “

    1. Make sure openwrt is compiled successfully.
      And mipsel-openwrt-linux-gcc is somewhere in openwrt folder.

      1. How do I know if openwrt is compiled successfully? When I run “make -j9” it does a bunch of compiles and makes (1,2,3). I don’t get any error codes when its done (when I think its done).

        1. goto openwrt/bin/ramips/ folder, check if there is openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin, if not, your openwrt is not compiled.

  3. call this directly: find . -name mipsel-openwrt-linux-gcc
    what you get?

  4. “./staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-”

    Thats what it comes back with

  5. Looks normal, this should work.
    ./staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc- -g main.c -o hello

    1. “mipsel-openwrt-linux-gcc: error: main.c: No such file or directory
      mipsel-openwrt-linux-gcc: fatal error: no input files
      compilation terminated.”

      Thats what I get when I put that in

  6. Oh :) I get it. …There is no main.c in your current folder…Just create one with that code.

  7. gezz how do do that, go into “openwrt/staging_dir/target-mipsel_24kec+dsp_uClibc-” and create a folder?

    1. orz
      Just use any text editor, create a text file with the source and named main.c then put it in your openwrt folder.

  8. “#include

    int main(void)
    return printf(“hello world\n”);

    This is the source that I name “main.c”?

    1. This source has some problem when I paste it to html..
      Now fixed.
      It should be #include

Comments are closed.