-
Notifications
You must be signed in to change notification settings - Fork 38
0.3 What is here
Here are Yocto recipies that build a working system image for the Intel Edison based on Yocto Morty and Pyro. Yocto, of course, is a build system, that downloads sources for a build environment, builds these, then downloads sources of a complete linux distribution, builds, packages (in this case as DEB's) and installs them to the system image. It also builds a crosscompile environment (SDK) so you can devellop locally and deploy to the remote Edison. Using for instance Qt Creator, you can develop locally for your host machine and debug, or build for the remote Edison and remote debug. Qt Creator will upload the executable and start with gdbserver for you. When your application works well, you can create a recipy and add it automatically to you system image.
The Edison comes of course with a system image preloaded based on Yocto Dizzy. Some of the recipies no longer build as the sources have disappeared. The branches starting with dizzy- have been updated by me, with either the broken recipies pointing to new sources, new versions of the sources, or otherwise removed. I haven't build these recently, so more stuff might have broke. If so, let me know. As far as I'm concerned, the only interesting version right now builds a preempt_rt version of the original 3.10.17 kernel.
The system image consists of a few distinct image files:
- u-boot Currently this needs to be generated outside Yocto for the morty brances, the pyro64 branch builds u-boot just fine.
- linux kernel with initramsfs We need a initramfs because some kernel modules need to loaded late. To do this they can not be built-in. Unfortunately the modules are needed to access the sd card, where we have the root file system. The initramsfs holds a copy of the necessary modules, loads these, then mount the sd card. It then performs a switch_root, continuing the boot from the sd card if nothing happend. Of course if the rootfs won't boot, the initramfs can provide a busybox shell from which you can try to fix things.
- rootfs An ext4 formatted file system, containing the remaining kernel modules, systemd for maintaining services and other well known linux user space tools.
To boot, you will need to interrupt u-boot while booting from a terminal, add some environment variables and then manually boot the new kernel and rootfs. If you don't manually interrupt, your old image will boot.
After boot you can login, connect to ethernet (if you have a supported USB ethernet adapter), connect to wifi, and start securing your device. You need to use a terminal program to connect via USB to the Edison for this, at least until you have wifi or ethernet working. I have used screen and Gnome Terminal (which works a bit better as you have a line buffer that you can scroll up).