Hello. So this is going to start our series of how to build operating systems from source. And our first video is going to cover OpenEmbedded. So just a brief overview of what we're actually going to do. We're going to start off with a description of what OpenEmbedded is. And then for building from Source, we're going to describe why we do this, the setup for it, and then the procedure for it. And then, so what is OpenEmbedded? OpenEmbedded is the Linux system that was created for a project called the Yocto Project. And one of the advantages of OpenEmbedded is that it's very, very easy to customize. When you see all the other options, you will go back to this one and see how easy it is to just customize your own operating system. And it's used primarily for cross-compilation. So if you're on an operating system or a certain build-up operating system, that might not compile on another computer, this one is very useful for compiling other operating system stuff on its own computer. So that's what cross-compilation is. And then, it also works on any Linux distribution so it's very versatile in that way. So reasons for building from source. So this is basically, general reasons for building from source for all the videos. So one of the reasons is, you're able to customize the code in whatever way fits what you're doing. So one way is, maybe you didn't want GPU accelerated hardware support, this means you're doing something graphics-heavy and you don't want anything else in your operating system that might not cover that. So doing building from source will help you achieve whatever goals that you might have with your operating system. Another reason, not quite applicable reason, but maybe you're just really curious about how the operating system works, so it will give you all the source code and then you can see first-hand what is happening in the OS and so forth. And also, we want to stress that if you're not too knowledgeable in the OS, that you don't try to touch the source code at all and just use whatever simple instructions that are provided in the 96Boards websites that we provide. If you are knowledgeable in OS then go ahead, you guys can just modify the source code however you guys want. So for the set-up, what you want are your host machine which is your computer, you're going to be compiling and building the OS on. We're going to be using a Linux host machine. And one way to set up a host machine let's say, if you're running Windows or Mac, you can run it through a Virtual Machine. But for Virtual Machine you got to make sure the DragonBoard is connected to the Virtual Machine instead of your actual computer, so then we can actually flash the board through fastbooting. And another way is just to have a Linux computer. You can either dual boot or just have a fully Linux computer. And for all the videos and in this demo, we'll be using Ubuntu 16.04 and on VMWare Workstation Pro. So here are some instructions on how to get started. So before we start, we want you guys to understand what fastbooting is, and how you want to transfer images from your computer to the DragonBoard using fastboot. And you usually need a USB to micro USB connection and so forth. And we want you to follow the steps provided in the 96Boards instructions that we give you for fastbooting, steps one to four, because five is but give you an image that's not quite the image that you build from source, it's just the default image that they provided. So you just want to follow steps one to four, and then follow the instructions for building from source that we'll provide. So let's go to the website to see what the instructions website says. So here we are in the OpenEmbedded website. And then if you scroll down, you'll see a bunch of dependencies that you might need to install. So let's make this bigger so you guys can see. Close that big thing. And here, you want to install git. We already told you to install git in previous videos. But just in case you don't have one. You don't have one. Actually you will need to do this because this is for your host machine not for your DragonBoard, so you will need to install git. Yeah. And then here's all the dependencies that you might need for your specific host machine. So if you go here, we're using Ubuntu so you might need to install these, that's a lot but I guess you need it. And then here we will need to install whiptail or dialog, they both do the same thing, just pick one. And then later it shows you that you need to download the Bootloader and the eMMC partitions. But these are all part of the instructions for fastbooting, so if you just followed the instructions, you should be cleared on this one. And then if you go here, this is the actual instructions for building it. And then after this it will show you how to customize all your images to fit whatever role you want your operating system to fit. So, here we see one of the images that you can build. It's the console-only image. And the instructions are really simple, you just run this one command and it will customize it perfectly for whatever need you have. So the console-only image, you just do a bitbake, and then the image name, and then it will do it for you. And then the X11 image with GPU hardware accelerated support, this one is a little more complicated, but it's still like five steps. So after you do bitbake, you want to go to your DragonBoard, and you want to look at all of these and then you're done. So, as you can see bitbake allows you to just build an image without actually going into the source code. And you guys can find more bitbake images that are online to fit whatever roles you have. We've given you three examples of images that you can use through bitbake. But if you guys are curious on how to use bitbake more, then just use your favorite search engine to find out more. And then one more thing, let's just go onto our Virtual Machine to see how to connect the DragonBoard to the Virtual Machine. So for our purposes we're using the VMWare Workstation, so let's just power this on for a bit. It might take a while but let's just wait. So Virtual Machines are generally very slow as you can see right now. It's because it's trying to run your Virtual machine operating system and your host operating system at the same time. So it's not quite fast but. What a beautiful rush of speed. Let's just wait a little bit until it goes to the login screen. We can probably- okay. So here we are. So if we go into VMWare and then removable devices, we see that the DragonBoards not connected. But if we connect the micro USB to USB connection to our mezzanine that is connected to our DragonBoard. Yeah, so this is important. Connect it through the mezzanine and the DSP. And then if we click on this again, you'll see that the 96Boards console is there. It's very hard to see, but it's there. So let's just click on Connect Disconnect from Host, and the host meaning that we're disconnecting from Windows and then we're connecting to the Ubuntu operating system. Let's just click that and then it will show a message, and then we just click okay. And now your DragonBoard is connected to your operating system. So, that's all the clarification that we wanted to provide. If you guys need more clarifications on what steps you need to follow, just check out the 96Boards open hours that happen every week. Or you can just ask us directly through Coursera. So look out for more videos on building from source. This was our building from source for OpenEmbedded.