Skip to content

Releases: ii/edison-src

2.1

09 May 05:43
@hh hh
Compare
Choose a tag to compare
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 install

compile/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

ww05-15 gtihub release w/ tarballs extracted

05 May 04:45
@hh hh
Compare
Choose a tag to compare

I've noticed that the yocto binaries and sources have been down for five days, so here's some simple instructions to build an edison image without having to go to Intel.

Download sources from github:

git clone [email protected]:ii/edison-src.git
cd /edison-src
./device-software/setup.sh
source poky/oe-init-build-env
touch conf/sanity.conf # if building as root... BUT you shouldn't do that
bitbake edison-image

My version of setup.sh downloads tarballs from this release page rather than embedding them into the git repo.