TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Yocto, RockPi and SBOMs: Building modern embedded Linux images

161 pointsby mvip3 months ago

17 comments

jcalvinowens3 months ago
Yocto can be incredibly simple, this is my favorite example: <a href="https:&#x2F;&#x2F;github.com&#x2F;bootlin&#x2F;simplest-yocto-setup&#x2F;">https:&#x2F;&#x2F;github.com&#x2F;bootlin&#x2F;simplest-yocto-setup&#x2F;</a><p>Only the kernel and bootloader usually need to be specialized for most modern arm boards: the userland can be generic. Most of the problems people have with yocto are due to layers from hardware vendors which contain a lot of unnecessary cruft.
评论 #43137720 未加载
codetrotter3 months ago
Last time I tried Yocto, some people here on HN suggested that I try Buildroot instead.<p>I don’t see so many mentions of Buildroot in this thread yet.<p>If you are interested in Yocto it might be worth having a look at Buildroot as well. I liked it a lot when I tried it.<p>My thread from years ago, where people told me about Buildroot:<p><a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18083506">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=18083506</a><p>The website of Buildroot:<p><a href="https:&#x2F;&#x2F;buildroot.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;buildroot.org&#x2F;</a>
评论 #43136713 未加载
评论 #43137825 未加载
评论 #43134573 未加载
评论 #43135625 未加载
chocobor3 months ago
Q: How do you guys centrally update field devices?<p>I am working on professionalizing our IOT setup that currently consists of a few dozen raspberries which run docker containers. They are individually updated by sshing into them and running apt update manually. Docker containers are deployed with a commercial solution. I want to have a centralized way to update the OSes, but it does not really make sense for our small team to introduce yocto knowledge, because that would make us fall behind development schedule even more. Also, the hardware needs are just too boring to justify rolling our own os. I have not yet found a hardware independent Linux distro that can be reliably updated in an IOT context.<p>I am now looking if we can buy ourselves out of this problem. Ubuntu Core goes in the right direction, but we don&#x27;t want to make us dependent on the snap store. Advantech has a solution for central device management with Ota updates, maybe we are going that route.<p>How do you guys update field devices centrally? Thanks!
评论 #43137051 未加载
评论 #43139387 未加载
评论 #43137795 未加载
评论 #43137895 未加载
评论 #43137130 未加载
评论 #43137903 未加载
palata3 months ago
Yocto is pretty great! Unfortunately I feel like it gets a lot of criticism, but usually from people who haven&#x27;t gotten to learn it. Like &quot;I had to spend 2h on Yocto and this thing <i>suuuuucks</i>, I threw a docker image there and called it a day&quot;.<p>Which is a pity, because when used correctly it&#x27;s really powerful!<p>From the article, I can&#x27;t help but mention that one third of the &quot;key terminology&quot; is about codenames. What do people have with codenames? I can count and easily know that 5 comes after 4. But I don&#x27;t know how to compare Scarthgap and Dunfell (hell, I can&#x27;t even remember them).
评论 #43134044 未加载
评论 #43135182 未加载
评论 #43133146 未加载
评论 #43133374 未加载
lukeh3 months ago
Love Yocto! It has a learning curve but it took about a week from nothing to an embedded image including Swift and Flutter apps, U-Boot, etc. A curve worth climbing.
评论 #43132636 未加载
评论 #43132441 未加载
评论 #43132944 未加载
bootloop3 months ago
I am actually scared of switching jobs in case my next job doesn&#x27;t involve yocto.<p>How would I make use of the countless hours I have already invested in this piece of software? Countless keywords and the dark magic of the ever changing syntax.<p>But when it works it works..
评论 #43134701 未加载
评论 #43135835 未加载
评论 #43137183 未加载
Palomides3 months ago
&gt;you can’t run “apt update”<p>if you want to get a little weird, you can tell yocto to compile everything into deb packages and host them yourself with something like aptly
评论 #43132485 未加载
评论 #43133235 未加载
评论 #43137071 未加载
dgfitz3 months ago
I read just the title and wondered if this was a yocto post.<p>I have (accident) become the yocto SME at my $dayjob. Probably the biggest positive has been free SBOM generation, and cooking things like kSLOC counts into recipes.<p>The learning curve stinks, the build suite is very powerful.
fathermarz3 months ago
As someone in the Software Supply Chain business. Yocto SBOMs are considered low quality because they include things that do and do not exist in the final compiled artifact. When you compare what exists inside, physically from a binary perspective, what is included in the manifest, and what is generated in the build root, you will find they will never align unless you get creative and map artifacts together. Today they are accepted as meeting the compliance checkbox, but once the industry matures, they will need to adjust their approach.
评论 #43137504 未加载
评论 #43135422 未加载
dgfitz3 months ago
This toolchain is about half my dayjob.<p>Bitbake is a meta-compiler, and the tool suite is very powerful. Just realize to this means you need to be an expert error-message debugger, and able to jump into (usually c&#x2F;c++) code to address issues and flow patches upstream.<p>It really is gratifying when you finally kick out a working image.
评论 #43134525 未加载
vlovich1233 months ago
Ah BitBake and OpenEmbedded. That’s what Palm used for WebOS. It was simultaneously amazing and a nightmare. In 2024 you should not be using it. There are better alternatives.
评论 #43136247 未加载
josteink3 months ago
&gt; One limitation of the current disk image for Rock Pi is that you don’t have a functional TTY.<p>I believe on systemd-based systems these are service-units you need to enable, and with yocto, possibly install?<p><pre><code> systemctl enable -now getty@tty0 (etc) </code></pre> Or something like that. I’ve experienced similar issues while working on a x86 based NAS and also on the RPi when enabling serial-consoles.
评论 #43137872 未加载
maufl3 months ago
What I would really like is something like Docker to build images for my raspberry pis. Just a single file, shell commands, that&#x27;s it. I feel that Yocto is already too complicated if you want a reproducable setup for you raspberry pi at home.
评论 #43137916 未加载
评论 #43137005 未加载
评论 #43137558 未加载
klysm3 months ago
I think long term yocto and build root are going to be replaced by container tooling. Theres not that big of a difference between compiling an OS image and building a container image.
评论 #43135833 未加载
kierank3 months ago
It&#x27;s crazy that you have to use this custom &quot;embedded&quot; tooling when the vendor should be implementing support in vanilla Linux distros.
评论 #43134088 未加载
评论 #43134588 未加载
评论 #43133348 未加载
评论 #43136830 未加载
评论 #43134720 未加载
msarnoff3 months ago
The one thing I still don&#x27;t like about Yocto is the setup process. You need to check out multiple layer repositories, make sure you check out the right commit from each repository (need reproducibility!), put everything in the correct directory structure, and then set up `bblayers.conf` and `local.conf`.<p>I&#x27;ve got a script that does all this, but it&#x27;s still a pain.<p>I&#x27;ve been thinking about putting everything in a monorepo, and adding poky, the third-party layers, and my proprietary layers as submodules. Then, when the build server needs to check out the code or a new developer needs to be onboarded, they just `git clone` and `git submodule update`. When it&#x27;s time to update to the latest version of Yocto, update your layer submodules to the new branch. If you need to go back in time and build an older version of your firmware image, just roll back to the appropriate tag from your monorepo.<p>Anyone else have another solution to this issue?<p>Oh yeah, and the build times. It&#x27;s crazy disk I&#x2F;O bound. But if you&#x27;re using something like Jenkins on an AWS instance with 96GB of RAM, set up your build job to use `&#x2F;tmp` as your work directory and you can do a whole-OS CI build in minutes.
评论 #43134786 未加载
评论 #43134980 未加载
评论 #43135169 未加载
评论 #43134787 未加载
pengaru3 months ago
yocto is an excellent tool for building one&#x27;s job security