10 Replies Latest reply on Oct 6, 2014 2:46 PM by tra757

    Why Yocto and not Debian?


      After attending a recent Galileo hackathon, the consensus from the event seemed clear.


      The hardware is great (bar the RS232 to 3.5mm and not using full sized USB host port). The device has enough power for many applications and arduino shield compatibility which is rather nice.


      The major issue though the teams faced was the software side... My own team for example wanted to hook up a wiimote to the Galileo via bluetooth.

      I have already done a very similar project on a Raspberry Pi so wanted to try and replicate it on a Galileo. Immediately I stumbled onto some issues. First being the provided Yocto image does not contain any build tools?

      One of the stupid issues though I have been having since day 1 of playing with this board is SSL certificates... Basically the Galileo can't talk to anything over ssl (so HTTPS is a no go). With so much of the web moving to ssl based communication, even downloading a simple file via wget off github failed to work!

      So if someone knows a way around this, please do let me know.


      Next issue, isn't shipped with anything like GCC or make? Immediately you are stuck. The normal way around this is you apt-get/yum it, but these have major repositories filled with 99% of packages you need. Yocto does not seem to have this? I know one can use opkg and AlexT's, but it is rather limited to a few major packages and libraries (no git for example).


      What I really don't understand is why the official operating system is Yocto? It seems perfect for embedded devices that rarely need modified, that can be shipped with only a few required packages, but using it for the Galileo, a board designed for general purpose tinkering and inventing I don't believe was a smart decision.

      I think a much smarter decision would be Intel backing a Debian or Ubuntu OS, one where they take charge of the process of building it etc. I know one can build Debian or Ubuntu yourself and it works, but why aren't Intel?

      Especially with such a big fuss being made about the Quark chip onboard being X86, make use of the software available!


      If anything, the hardware should be the only thing limiting the developers, not the software seeing as so much already exists!

        • 1. Re: Why Yocto and not Debian?

          Quoting from the Yocto web site:

          "The Yocto Project is an open source collaboration project that provides templates, tools and methods to help you create custom Linux-based systems for embedded products regardless of the hardware architecture."


          It is not an operating system; just a set of tools to build a Linux one.


          Wget works to download, build, and install OpenSSL. I got my certs from Google, and SSH works fine. Was a bit of a pain getting them installed, since I had no idea what I was doing.


          Directions for BSP Builds including build tools are readily available, as well as early ports of Debian. Just browse the forum. Lots of good information there.


          My standard link for doing anything useful with Galileo is always Sergey's blog. Read the whole thing::




          There have been no official Galileo releases since last October. I am not sure Intel knows what they want to do with this beastie. Just post your questions on this forum. Someone has been there, done that - and will help. That includes a number of Intel engineers not officially related to the Galileo project.

          • 2. Re: Why Yocto and not Debian?

            Most users won't have a clue they need to download openSSL, I sure didn't. Why isn't installed by default? Nor could I find a guide to do so once I have figured out what was wrong. Perhaps I was using wrong search terms.


            My big question I guess is if Intel is investing so much into this venture, why are they not investing in the software?


            It just seems to me the software side of things was a second thought.

            It has caused me to turn back to my Raspberry Pi for a few projects now, as the operating system is so much better looked after by the Raspberry Pi foundation... and they are a charity!

            • 3. Re: Why Yocto and not Debian?

              My impression of Galileo: this was developed by an Intel version of a skunk-works which had a small core of very talented developers, located in Ireland.


              I have seen nothing to indicate this is an Intel mainstream product; I think corporate is just sitting back, waiting to see where it goes. The follow-on product, Edison, has switched from Quark to an Atom SOC.

              • 4. Re: Why Yocto and not Debian?

                Basically the Galileo can't talk to anything over ssl (so HTTPS is a no go). With so much of the web moving to ssl based communication, even downloading a simple file via wget off github failed to work!

                So if someone knows a way around this, please do let me know.


                That's because the wget you get by default is from BusyBox and it doesn't support SSL.


                The solution is to install a full standalone wget package, e.g. from my repo, it's available there.


                As far as "gcc out of the box" is concerned - I was a little surprised too, but we have a solution - alternative 0.7.5-based image with devtools (just search the community using "devtools" keyword).

                I also plan to add dev packages to the repo as soon as I have time for that (which is unfortunately most probably a month away, as I don't have any free time to spend for this at the moment).

                • 5. Re: Why Yocto and not Debian?

                  Here's my 2p worth...

                  I wouldn't put the development tools on Galileo, for a few reasons:


                  1. The board needs as much resource as possible left over for running it's primary task. Why use up resources with compilers, linkers, libraries and source code that only gets used for development, not for the intended end task of the device.

                  2. Intel already makes available a proven development system - IoT ADT. You run the development tools, with a nice big IDE and full screen resolution on a separate machine. The code gets installed and debugged live on the Galileo there is a debug server which runs on Galileo. So you are writing code in a nice environment, it runs live on Galileo - what more could you need?

                  3. Galileo is NOT a desktop system, its a development kit, it is NOT R-PI, use Galileo for what it is, and stop trying to turn it into R-PI. There is a very good reason why Galileo has no video output hardware at all on-board.

                  • 6. Re: Why Yocto and not Debian?

                    Compilers, linkers, libraries and source code use no system resources other than disk (SD) space. In a 32gb card, they don't even count.


                    There are a lot of use cases for a small computer. Yours is not mine.

                    • 7. Re: Why Yocto and not Debian?

                      Hi @AlexT_Intel ,


                      First of all, thanks for your great contributions. I read your blog quite extensively, the multiple messages you posted here, I don't manage to get HTTPS working. I installed the full linux image (v1.0.1) you provide on the SD card, deployed your wget as you also explain here (wget won't work for secure url ), but it still fails when I run a simple test:


                      $ wget https://aws.amazon.com

                      --2001-01-01 00:18:14--  https://aws.amazon.com/

                      Resolving aws.amazon.com...

                      Connecting to aws.amazon.com||:443... connected.

                      ERROR: cannot verify aws.amazon.com's certificate, issued by '/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=Terms of use at https://www.verisign.com/rpa (c)10/CN=VeriSign Class 3 Secure Server CA - G3':

                        Unable to locally verify the issuer's authority.

                      To connect to aws.amazon.com insecurely, use `--no-check-certificate'.


                      Similar problem when I try to install nodejs modules or python modules: they all complain because of the SSL certificate check.

                      Is it because I miss the root CA somewhere?


                      By the way, I noticed on your blog that you lack resources to host your repository, I have plenty of storage and virtual machines for you if you still need that.



                      • 8. Re: Why Yocto and not Debian?

                        Replying to my own post, it seems that openssl/wget are missing the CA certificates. So I took the certificates that were installed in the first linux box I found (usually in /etc/ssl/cert/) and copied them in the galileo ... and it worked. Here is the command line I used:


                        wget --ca-certificate=/media/realroot/ca-bundle.crt https://aws.amazon.com


                        Oh, and by the way, don't forget to set the right time otherwise wget will complain that the certificate is not yet valid. Use the following command to set the current date:


                        date -s "YYYY-MM-DD HH:mm:ss"

                        • 9. Re: Why Yocto and not Debian?

                          Yep, as you've already found out yourself - that was just a question of adding CA certificates into the right place, the SSL/TLS protocol itself is supported by the full wget.


                          You could also just use the "--no-check-certificate" option, which switches off certificate validation in wget, but getting the CA certs is the Right Way security-wise.

                          • 10. Re: Why Yocto and not Debian?

                            I don't understand why you would want a development package on the Edison.  You should be developing on a real dev machine and flash the code into the Edison or any other micro for that matter.


                            Yocto is hard to use, too hard for most probably, but I like being able to slim down my OS to bare minimum so I can fit more of my code on the Edison.  Say you build a robot.  Why would your robot need to run gcc?  These things were made for, as they say, the IoT so automating anything and everything you can think of but once your code is done, you flash it and let it do what you made it for.


                            ThreadX is like that.  You only build in what you need and leave the rest of the code space for your code.  The Edison isn't meant to be a desktop or tablet replacement.  These are brains that make stupid things smart but it takes a bigger brain to make them smart.  I like the Edison and hope it continues.  It is powerful and relatively cheap compared to the Arduinos, which are far too expensive in my opinion.


                            I am mostly working with the Freescale FRDM-K64 and the Edison now because they are far less expensive than the Arduino products.


                            Just my 2cents worth.