Enjoy DIY Learning Modules designed for engineers:
- Short, self-paced learning anywhere, anytime
- Technologies, Applications & Trivia
See Current Essentials Offerings
What Do You Want to Learn Next? Share Your Suggestion by Replying below!
Enjoy DIY Learning Modules designed for engineers:
See Current Essentials Offerings
What Do You Want to Learn Next? Share Your Suggestion by Replying below!
How about a topic focused on Embedded Linux? It could be an "Part II" extension to the existing Single Board Computers (SBC) learning module.
The topic could introduce different Embedded Linux build systems (Yocto, builtroot, OpenWRT, etc.), highlight their differences, suitability for different types of projects, relationship with hardware (device tree), boot process (including uboot), and more!
How about a topic focused on Embedded Linux? It could be an "Part II" extension to the existing Single Board Computers (SBC) learning module.
The topic could introduce different Embedded Linux build systems (Yocto, builtroot, OpenWRT, etc.), highlight their differences, suitability for different types of projects, relationship with hardware (device tree), boot process (including uboot), and more!
BTW there is really nothing mysterious about the term "embedded" its way overused, it is just a smaller kernel and the small bords are getting bigger, look at a laptop is that embedded? Yes. the line is very burly. Get out your dousing rods or the wigi board.
I have a great working relationship with some of the projects as I have used them in one form or another. Basically, let us start with OpenWRT: This just a group of very small images that can be used to flash routers, Like LinkSys. etc. It's all there. but not very useful for much else.
Yocto: Now this beast is a neat way to build a custom distro. So if you want for example like my RSS, and some other boxes that in my simulator, NexGen, I can add, remove things from my deliverables, Like things I need a full system when I do development and testing, but, on my release distro, I can remove a lot of things my system does not use, and other things it must have. for instance, I don't need, games, browser(s), compilers and a lot of other trash. But on the other hand, I need things like the full TCP/.IP stack (and there are parts not included like some routing protocols), LUA, Phyton(?), Java, and Seat Control (UNIX speak for users). My Distro is built on 3 images:
1) The OS itself.
2) The extra stuff.
3) Deliverable Software.
on other things I just use grub!
Some of the servers use the boot system that has been around since before Windose! That is TFTP boot. If you wish to read more there is a very good write up here!
Hi Cris, good observation and I agree that what is/isn't "embedded" is rather blurred. I would have called a system embedded if it were a specific/tailored hardware platform that includes microcontroller vs mircoprocessor, that is, high level of integration of GPIO, peripherals, SRAM, flash, etc. into the main processing chip. This is a very constrained view...now even Raspberry Pi can be considered an embedded platform and yet it is entire computer! Definitely very blurred!
I like your suggestion to start with OpenWRT because its the most simplest framework...the easiest to understand. Would be nice to include u-boot in the discussion (or cover it separately first) to understand the boot process from the very beginning.
I included a link to uboot (unix) which is really tfpboot
my bad! uboot and tftpboot are very similar where tftpboot asks the tftp server for its ip-adder etc and a small boot loader which invokes ftp if I remember correctly. uboot could be embedded into a chunk of flash which does things similarly to tftp. At some time they after they have their address and image info they both get it via ftp. in a Unix environment, your home directory is stored on the server at
/export/home/uname and the client remotely mounts the directory via NFS