Espressif have packaged the GCC-based toolchain for ESP8266 as a VirtualBox appliance running lubuntu which makes it super easy to get started with compiling your own firmware for the module.
All your code is expected to go in a shared folder on your host machine (OS X or Windows) that you mount to the virtual machine by running the
mount.sh script at
#!/bin/sh sudo mount -t vboxsf share /mnt/Share
The problem with this script is that all files in that shared folder will be owned by
root:root and the compiler running as user
esp8266 will fail to create new files and include the necessary libraries. I am not sure if this is an issue only when running OS X as the VirtualBox host.
The solution is to specify the correct owner (user and group) for the mounted files. We figure that out by running
umask && id from the terminal:
$ umask && id 0002 uid=1000(esp8266) gid=1000(esp8266) groups=1000(esp8266),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),118(sambashare)
Then we modify the
mount.sh script to include the following option:
#!/bin/sh sudo mount -t vboxsf -o umask=0002,gid=1000,uid=1000 share /mnt/Share
and mount the shared folder by running
Which results in shared folder being mounted with the correct permissions: