2.1
Pre-release
Pre-release
I'm copying the release here and also exporting the ext4 image as a tarball for use with docker as a base-image available on docker hub at yocto/edison
yocto/edison:ww18-15
You can use the directly via
docker run -ti yocto/edison:ww18-15
or in you Dockerfile as
FROM yocto/edison:ww18-15
They are build fairly simply:
$ unzip edison-image-ww18-15.zip
$ ls -lah edison-image-edison.ext4
-rw-r--r-- 1 hh hh 512M May 8 22:05 edison-image-edison.ext4
$ sudo mount -o loop edison-image-edison.ext4 /mnt
$ cd /mnt2
$ sudo tar cvfz /tmp/edison-image-edison.ext4.tar.gz .
# edison-image-edison.ext4.tar.gz is attached below
$ docker import -t yocto/edison:ww18-15 < /tmp/edison-image-edison.ext4.tar.gz
# optionally I push it to dockerhub
$ docker push yocto/edison:ww18-15
Dockerfile
Now we can utilized that base in a Dockerfile
FROM yocto/edison:ww18-15
ADD base-feeds.conf /etc/opkg/
RUN opkg update
# most of the software we need to compile stuff
RUN opkg install python-pip bluez5-obex bluez5-dev bluez5-testtools bluez-hcidump \
bash bison coreutils diffutils e2fsprogs elfutils findutils git iw less libevent-dev lirc \
nodejs opkg-utils quilt rsync ruby-staticdev screen syslinux tar tcpdump time \
util-linux-uuidgen uuid vim
# python stuff for bluez
RUN curl https://bootstrap.pypa.io/ez_setup.py | python
RUN pip install ipython && pip install evdev && pip install PyBluez
# RUN pip install dbus-python # IOError: [Errno 2] No such file or directory: '/tmp/pip-build-root/dbus-python/setup.py'
# emacs is a must
RUN cd /tmp && wget -O - http://mirrors.ibiblio.org/gnu/ftp/gnu/emacs/emacs-24.5.tar.gz \
| tar xfz - && cd /tmp/emacs-24.5 && ./configure --without-x && make -j 11 install \
&& cd /tmp && rm -rf /tmp/emacs-24.5
# cpio is required
RUN cd /tmp && wget -O - wget http://ftp.gnu.org/gnu/cpio/cpio-2.11.tar.gz \
| tar xfz - && cd /tmp/cpio-2.11 && sed -i -e '/gets is a/d' gnu/stdio.in.h \
&& ./configure --enable-mt && make -j 12 installcompile/edison
$ docker build -t compile/edison .
$ docker push compile/edison # optionally push to dockerhub
$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
compile/edison latest 7525790f6dd3 15 minutes ago 655.9 MB
I'm hoping to get it to a point where it can self-host a compile of edison-src into an image that can do the same.
hh@iicoreos4 ~/edison-src $ docker run -ti --volume=`pwd`:/edison-src --net=host compile/edison /bin/bash --login
root@iicoreos4:/# cd /edison-src/
root@iicoreos4:/edison-src# make
/bin/bash -c "source out/current/poky/oe-init-build-env /edison-src/out/current/build ; bitbake -c cleansstate edison-image ; bitbake edison-image"
### Shell environment set up for builds. ###
You can now run 'bitbake <target>'
Common targets are:
core-image-minimal
core-image-sato
meta-toolchain
adt-installer
meta-ide-support
You can also run generated qemu images with a command like 'runqemu qemux86'
Loading cache: 100% |#########################################################################################################################################| ETA: 00:00:00
Loaded 1290 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.22.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Unknown"
TARGET_SYS = "i586-poky-linux"
MACHINE = "edison"
DISTRO = "poky-edison"
DISTRO_VERSION = "1.6.1"
TUNE_FEATURES = "m32 core2"
TARGET_FPU = ""
meta
meta-yocto
meta-yocto-bsp = "(detachedfromyocto-1.6.1):c4f1f0f491f988901bfd6965f7d10f60cb94a76f"
meta-intel-edison-bsp
meta-intel-edison-distro = "ww18-15:866d704e50fcfd88dfed7ea06c50363cbbae9ead"
meta-intel-iot-middleware = "(detachedfrom52ca21c):52ca21c1587ff7870599eee3a08179090af27848"
meta-intel-arduino = "ww18-15:866d704e50fcfd88dfed7ea06c50363cbbae9ead"
NOTE: Preparing runqueue
NOTE: Executing RunQueue Tasks
NOTE: Tasks Summary: Attempted 2 tasks of which 0 didn't need to be rerun and all succeeded.
Loading cache: 100% |#########################################################################################################################################| ETA: 00:00:00
Loaded 1290 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
Build Configuration:
BB_VERSION = "1.22.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "Unknown"
TARGET_SYS = "i586-poky-linux"
MACHINE = "edison"
DISTRO = "poky-edison"
DISTRO_VERSION = "1.6.1"
TUNE_FEATURES = "m32 core2"
TARGET_FPU = ""
meta
meta-yocto
meta-yocto-bsp = "(detachedfromyocto-1.6.1):c4f1f0f491f988901bfd6965f7d10f60cb94a76f"
meta-intel-edison-bsp
meta-intel-edison-distro = "ww18-15:866d704e50fcfd88dfed7ea06c50363cbbae9ead"
meta-intel-iot-middleware = "(detachedfrom52ca21c):52ca21c1587ff7870599eee3a08179090af27848"
meta-intel-arduino = "ww18-15:866d704e50fcfd88dfed7ea06c50363cbbae9ead"
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: Error executing a python function in /edison-src/out/linux64/poky/meta/recipes-devtools/gnu-config/gnu-config_20120814.bb:
The stack trace of python calls that resulted in this exception/failure was:
File: 'relocatable_binaries_preprocess', lineno: 6, function: <module>
0002:def relocatable_binaries_preprocess(d):
0003: rpath_replace(d.expand('/edison-src/out/linux64/build/tmp/work/x86_64-linux/gnu-config-native/20120814-r0/sysroot-destdir/'), d)
0004:
0005:
*** 0006:relocatable_binaries_preprocess(d)
0007:
File: 'relocatable_binaries_preprocess', lineno: 3, function: relocatable_binaries_preprocess
0001:
0002:def relocatable_binaries_preprocess(d):
*** 0003: rpath_replace(d.expand('/edison-src/out/linux64/build/tmp/work/x86_64-linux/gnu-config-native/20120814-r0/sysroot-destdir/'), d)
0004:
0005:
0006:relocatable_binaries_preprocess(d)
0007:
File: 'chrpath.bbclass', lineno: 7, function: rpath_replace
0003:
0004: for bindir in bindirs:
0005: #bb.note ("Processing directory " + bindir)
0006: directory = path + "/" + bindir
*** 0007: process_dir (path, directory, d)
0008:
File: 'chrpath.bbclass', lineno: 43, function: process_dir
0039: perms = None
0040: else:
0041: # Temporarily make the file writeable so we can chrpath it
0042: os.chmod(fpath, perms|stat.S_IRWXU)
*** 0043: process_file(cmd, fpath, rootdir, baseprefix, tmpdir, d)
0044:
0045: if perms:
0046: os.chmod(fpath, perms)
0047:
File: 'chrpath.bbclass', lineno: 4, function: process_file_linux
File "chrpath.bbclass", line 4, in process_file_linux
File: '/usr/lib/python2.7/subprocess.py', lineno: 679, function: __init__
0675: cwd, env, universal_newlines,
0676: startupinfo, creationflags, shell,
0677: p2cread, p2cwrite,
0678: c2pread, c2pwrite,
*** 0679: errread, errwrite)
0680:
0681: if mswindows:
0682: if p2cwrite is not None:
0683: p2cwrite = msvcrt.open_osfhandle(p2cwrite.Detach(), 0)
File: '/usr/lib/python2.7/subprocess.py', lineno: 1249, function: _execute_child
1245: child_exception = pickle.loads(data)
1246: for fd in (p2cwrite, c2pread, errread):
1247: if fd is not None:
1248: os.close(fd)
*** 1249: raise child_exception
1250:
1251:
1252: def _handle_exitstatus(self, sts, _WIFSIGNALED=os.WIFSIGNALED,
1253: _WTERMSIG=os.WTERMSIG, _WIFEXITED=os.WIFEXITED,
Exception: OSError: [Errno 2] No such file or directory
ERROR: Function failed: relocatable_binaries_preprocess
ERROR: Logfile of failure stored in: /edison-src/out/linux64/build/tmp/work/x86_64-linux/gnu-config-native/20120814-r0/temp/log.do_populate_sysroot.146
ERROR: Task 1310 (virtual:native:/edison-src/out/linux64/poky/meta/recipes-devtools/gnu-config/gnu-config_20120814.bb, do_populate_sysroot) failed with exit code '1'
NOTE: Tasks Summary: Attempted 80 tasks of which 75 didn't need to be rerun and 1 failed.
Waiting for 0 running tasks to finish:
Summary: 1 task failed:
virtual:native:/edison-src/out/linux64/poky/meta/recipes-devtools/gnu-config/gnu-config_20120814.bb, do_populate_sysroot
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
Makefile:49: recipe for target 'edison-image' failed
make: *** [edison-image] Error 1