5 Replies Latest reply on Jun 24, 2015 2:04 PM by JTilghman

    Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?

    Bluzcat

      Hi there. I started tinkering with the Edison board last week. I followed the instructions to install the Yocto based standard distro, and got the board up and running. However, I find the Yocto based distro completely inadequate for my needs. First of all, I don't want BusyBox on my board at all. Don't get me wrong, BusyBox is great for when space is super limited, but other distros like Raspbian Wheezy run just fine on an SD card with just 4GB space without BusyBox. Secondly, I find opkg completely lacking as well, and I'm not that happy about the standard partitioning either. So after some Googling, I found Ubilinux. Great! A Debian based distro with a real package manager! So I was able to re-flash one of my two Edison boards and get it up and running. I was happy until I discovered that they had a similar unusable partitioning of the flash drive :-(

      Why on earth would anyone want to waste 1.6GB of space on a /home partition on a board like Edison???????? Anyway, I've posted some questions on the EmutexLabs forums, but I'm not sure anyone is reading them. I haven't gotten any replies at least. So now I'm thinking that the only way I'll be able to get anything that I like is to take the existing Edison Yocto build, rip out BusyBox and opkg, replace them with the standard Gnu/Linux commands and apt/dpkg, change the default partitioning and entirely get rid of /home and give that space to the root partition. But I'm pretty new to Yocto, and since I've already bricked one Edison board, I'm not too keen on screwing something up and bricking the second one as well. I also read somewhere that it's not possible to verify the Yocto distro in QEMU because it doesn't support all the instructions in the Atom processor. Any help with this would be greatly appreciated. I love the concept of the Edison, and I hope it becomes a successful IoT platform, but I have to say that I've spent more time on fighting the environment than with almost any other IoT dev environment. Compare this with bringing up a Raspberry Pi. It literally takes 15 minutes. I've now spent about 30 hours on the Edison, and it's still not usable...

      Thanks.

        • 1. Re: Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?
          JTilghman

          Sorry you are having some problems. I know the feeling as I have been working with mine.

           

          To be honest I don't consider the PI in the same league as the edison, and if you think they are then maybe you need to re-evaluate your usage of one or the other.

           

          That being said, it's pretty simple to fix your problem do a custom yoco bitbake and change the rootfs size to what you need and add the packages you want.

           

          Also, you say you bricked your second edison, I find that funny as I just bricked my second yesterday and have posted here for help. Its pretty tough to brick them, can you tell me what happened and maybe I can help you recover it ?

           

          Thanks,

          JT

          • 2. Re: Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?
            Bluzcat

            Hi JTilghman, and thanks for your reply. I know the Edison and Pi are two different beasts, but from a tinkerers point of view and getting them up and running a distro, they're not that different other than the form factor. And hands down, the Raspbian distro is an order of magnitude slicker than the Yocto based one that comes with Edison. I have several Pi boards running full stacks with Java based applications, web servers, etc using only a 4GB SD card and vanilla Raspbian Wheezy. For my Edison project, I use the stackable dev boards from SparkFun.

             

            As far as the bricked board goes, I can still communicate with it over the USB port using Kermit. I can interrupt it and get the boot loader prompt. When trying to re-flash it, it just hangs after running the DFU code. You can read the details here. My last response captures the output from the boot loader: Loading Debian (Ubilinux) on the Edison failed and Edison won't boot anymore

             

            You got me curious about how to change the Yocto recipes and run bitbake to fix my problem. I'm pretty new to Yocto, so if you have a concrete solution, or practical hints, I'm all ears. I searched for Edison conf files on the Yocto site, but nothing came up. Thanks.

            • 3. Re: Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?
              JTilghman

              My advice is to use the edison bsp document for setting up a Yocto bitbake environment, make a base build (basically just build what you have installed). Once thats done, I can point you to a lot of things you can change. I like the Yocto build system and the image it makes seems to be more stable than say ubilinux.

               

              I also found this: http://gentoo.ed-solutions.de/dokuwiki/start:edison This might serve your needs as well.

               

              Also from your comments: "And hands down, the Raspbian distro is an order of magnitude slicker than the Yocto based one that comes with Edison. I have several Pi boards running full stacks with Java based applications, web servers, etc using only a 4GB SD card and vanilla Raspbian Wheezy."

               

              I don't think Edison really is designed for those kinds of applications, not saying it won't run them just that's not what I think of as an IOT device.

               

              Anything that the PI can do, edison can do you just need to tweak Yocto or load ubilinux or Gentoo to get what you want.

              • 4. Re: Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?
                Bluzcat

                Thanks again JTilghman! Much appreciated. I found the BSP documentation, and took a quick look at the link you posted. As far as the Java/Raspberry Pi/Edison discussion, I think Java is a superb language for IoT applications because of the rich libraries, great IDE support, etc. It's also required for languages like Groovy, which I think is even more exciting as an IoT dev platform. I don't really know exactly what I'll be doing with the Edison yet, but possibly some wearable type thingie, or maybe an expensive, super smart IoT remote sensor :-)

                For me, part of it is how quickly I can put something together, and if I can do it without spending weeks writing too much low level code. I've seen some Java examples using the MRAA libraries, which means I should be able to use Groovy as well to access the GPIO pins. I'm not much of a Python guy. Even running server type apps doesn't have to be heavy-weight. Many people think that Java is extremely heavy-weight, but it doesn't have to be at all. I went to a Java One conference in 1998, and a guy did a presentation of a project where he had written an entire high performance IP router application in 100% Java, and it outperformed the C based code that he had replaced. Lot of progress has been made since 1998 on JVM performance as well as language features. Anyway, that's just my angle, I know some people would probably disagree with me, and I'm not here to start any language wars...

                I'm just more productive with Java and Groovy, and part of the excitement with a platform like Edison is that it actually enables people to use that for IoT applications. As far as creating very simple sensors, I'm also looking at the Particle stuff. That seems like a really exciting platform where they put a lot of thought into the entire end to end application framewor. Thanks again for the help!    

                • 5. Re: Ripping out BusyBox + opkg and changing the partition table in the Yocto based build?
                  JTilghman

                  Part of my day job is doing weblogic administration, so i see the big clunky side of JAVA everyday. You bring up some great points, and I agree with you. Use what works, interesting ideas you have.

                   

                  Also here is a link that might help you unbrick your edison, it fixed mine.. https://edison.internet-share.com/wiki/Intel_Edison_Research

                   

                  If you need anything else, or just have questions hit me up and I will see what I can do for you.

                   

                  Check some of the SparkFun posts under edison and you will see me. I think edison is one of the neatest devices I have seen in a long time.

                   

                  Thanks,

                  JT