This message was posted on behalf of Intel Corporation
Thank you for your interest in Intel® Edison Breakout Board.
If you are interested in building and customizing images and kernels, the best way to start is checking the Intel® Edison Board Support Package (https://software.intel.com/en-us/node/593589, http://www.intel.com/content/www/us/en/support/boards-and-kits/000005616.html).
Please let me know if you find the previous information useful.
thanks for the answer! I'll find my way through the docs and post the result here (if I get anything running). Currently my plan is to load the kernel and afterwards a BusyBox in the initramfs which shut off all unused peripherals and then starts my static linked program e.g. by a script. Could that speed up the process in general?
If there are any other suggestions (maybe my thoughts are complete wrong) that might help I would be happy
Keeping you updated
I've gone through the documents and my kernel is currently compiling. Nevertheless I could not figure out how to disable the peripherals by default. It would be nice if I can get a BusyBox running when the kernel loads the initramfs. I don't need the changeroot process and would like to stay in the initramfs (I want to get my program into that). Is there any way how to do it?
SpiderKenny's post is quite interesting, are there any important discussions in the past which have not made their way into the tutorial?
All the best
I got some errors which do not allow me to build the edison-image recipe. Instead the core-image-minimal recipe is compiling well. When I do as described in IoT - Build an Intel® Edison Board Image Using Bitbake | Intel® Software I will run into some errors:
1. Fetcher failure for URL: [...] Checksum mismatch!
2. Function failed: Fetcher failure for URL: 'http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/archive/f89009ada191.tar.bz2;name=openjdk;unpack=false' Unable to fetch URL from any source
3. as 2. mentioned the fetch from icedtea7-native_2.1.3.bb failed with exit code 1
Otherwise if I compile the core-image-minimal method everything seems fine and I can boot the process with runqemu qemux86. But that does not work on the edison itself I guess.
What more information do you need to see what I'm doing wrong?
Thank you all for the help, I really appreciate it! Now I used the webproject
But nevertheless I've got some problems compiling my kernel again
After applying the patch from meta-java - Layer containing recipes for OpenJDK and other open source Java-related components into my building directory the build does not stop at the icedtea-stage but later:
ERROR: Task 1484 (/home/thomas/Edison/iot-devkit-yp-poky-edison-20160606/build_edison/../poky/meta-intel-iot-devkit/recipes-extended/libmodbus/libmodbus_3.1.2.bb, do_compile) failed with exit code '1'
Even if I retry to compile the error occurs again. Does someone got similar problems or depends the build on the machine I'm using (like post #23 from Building iot-devkit-yp-poky-edison-20160606 does not work )?
*** EDIT ***
I'm using a Ubuntu 14.04 LTS
3 of 3 people found this helpful
Ok, I found a really nice solution! So to make sure everything is well documented I will write my steps down.
First of all remove the Intel provided documents listed above for a custom compile. In this case you have to deal with the forum and hope for the help of others. But I made good experiences and could achieve a faster boot. FYI I use a Ubuntu 14.04 LTS on a MacBook Pro
$uname -a Linux ThomasLinux 4.4.0-72-generic #93~14.04.1-Ubuntu SMP Fri Mar 31 15:05:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
The wiki page on https://edison.internet-share.com/wiki/Using_a_vanilla_Linux_kernel_with_Intel_Edison provides almost every information needed for the build. Just follow the steps from that page and build your own Vanilla Linux Kernel and the buildroot as initramfs which provides you a simple busybox clone (or something similar). To test everything you can use the virtual machine manager https://wiki.ubuntuusers.de/virt-manager/ just use the generated bzImage as kernel and rootfs.cpio.bz2 for the initrd. Your machine should boot and you can login as 'root'
Intel's U-Boot (2014.04 or so) is quite old for the faster boot procedure and let me run into a kernel panic or even worse. To be honest I don't really know why and my succeed is a result of try&error. You should update your U-Boot to a newer version of that. Be sure to check out this thread:Update U-Boot There is a good way to start from scratch and using the repo provided by 0andriy. You should take a look at his u-boot repo by using the following command in the cloned git:
$ git checkout edison $ make edison_defconfig
Because I had problems like Gccv5.4 undefined reference to `__normal___udivdi3' I had to install some more packages onto my machine. After some time and by using aptitude I was able to install the multilib packages which are required to build the u-boot. I had some packages from the gcc-4.8-base updated by Ubuntu to 4.8.3 (or so) but the gcc multilib package's dependency was on a prior version. So I had to downgrade some packages. Later I was able to build the U-Boot in the newest release. The method from Newer Kernel on Edison (OpenWrt) from PieterGit Jan 9, 2017 6:36 AM didn't work on my Ubuntu.
After everything was built and the U-Boot was updated to 2017.X I could transfer the data onto the Edison and continue with the procedure from https://edison.internet-share.com/wiki/Using_a_vanilla_Linux_kernel_with_Intel_Edison#U-Boot. And I booted my own compiled kernel and initrd files. Success.
After starting the process by hitting 'run bootcmd_edsboot' from the U-Boot I was able to get a boot time from approx 7-8 secs. All in all I would guess around 11 secs to login could be possible.
But I haven't tried to use WiFi in this build so the story continues...
PS: From time to time I plugged the edison into a Win7 machine and the OS said that I had to format the disk to use it. I clicked on yes and my whole system went nuts. Somehow later I used a procedure described in Starting with the Edison Part 1 – Setup – Jamie's Blog and was able to recover my edison. On the Ubuntu there was an error about a 'superblock' on sdc1. This was try&error too to get the disk back running.
This message was posted on behalf of Intel Corporation
I’m glad to hear that you found a solution.
Thank you for sharing your experience with the community, we really appreciate it.
Have a nice day.