This is a tutorial for using C/C++ compile application in VoCore2.
1. Prepare a USB disk or SD card, at least 256MB, because GCC takes around 110MB. USB disk or SD card must be EXT4 format.
For macOS or Linux, call mkfs.ext4 /dev/disk2
to do this. /dev/disk2 is the USB disk name on my computer, please change to the name on your computer. Or another way, directly format it in VoCore2, need to install e2fsprogs.
opkg update
opkg install e2fsprogs
mkfs.ext4 /dev/sda
NOTE: opkg update
requires internet, check vocore.io/v2.html, AP+Client mode for wireless connection. Or modify network switch settings, set ethernet port0 to VLAN 2(wan).
This is an example, directly patch /etc/config/network. Another way, you can change virtual network switch in LuCI, Network->Switch.
config switch_vlan
option device 'switch0'
- option vlan '1'
+ option vlan '2'
option ports '0 6t'
2. Mount SD/USB storage to /overlay
Patch /etc/config/fstab, add target /overlay to make sure once storage is detected, system will auto mount it to /overlay.
config 'global'
option anon_swap '0'
option anon_mount '0'
option auto_swap '1'
option auto_mount '1'
option delay_root '5'
option check_fs '0'
config 'mount'
option device '/dev/sda'
option target '/overlay'
option enabled '1'
config 'mount'
option device '/dev/mmcblk0'
option target '/overlay'
option enabled '1'
/dev/sda is for USB disk, /dev/mmcblk0 is for SD card.
3. Reboot
Make sure /overlay is valid. You can check by command df
.
root@OpenWrt:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 12800 12800 0 100% /rom
tmpfs 62492 660 61832 1% /tmp
/dev/mmcblk0 30363504 148636 28649428 1% /overlay
overlayfs:/overlay 30363504 148636 28649428 1% /
tmpfs 512 0 512 0% /dev
Or another way, directly manually mount /dev/sda or /dev/mmcblk0 to /overlay folder by command mount /dev/sda /overlay
.
4. Now we can install GCC
This part is easy, just call
opkg update
opkg install gcc
It will install gcc, ar, binutils,libbfd, objdump, libopcodes packages from openwrt server.
Then we can compile C source code, try gcc yourcode.c -o out
. Speed is not very fast, but works.
NOTE: compile better in /tmp folder(it is memory virtual disk) or in /overlay(it is the SD card we inserted). Rest path will store in NOR flash who has very limited write times and very little free space.