Re: [Celinux-dev] CELF Project Proposal- Refactoring Qi, lightweight bootloader

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/29/09 04:25, Somebody in the thread at some point said:

Hi -

(We're talking about ARM11+ case here, just to save a lot of qualifying)

I wasn't suggesting you don't have firsthand experience all over the
place, eg, busybox, I know it.  What I do suggest in the principles I
have been bothering your Christmas with here can really pay off and are
in the opposite direction to Qemu, bloated bootloaders, and buildroot
style distro production.

In the PDF I spent a dozen pages pointing out that I think buildroot is silly
and how it diverged from its original goals.  Why do you bring it up here?

Buildroot is the original "select a bunch of projects and I will sit building them for you all day and give you a rootfs tarball". What I talked about is "buildroot style distro production", where you sat there building things being a bad way if it's possible to use a real distro with precooked binaries.

Building natively is nice.  I think cross compiling extensive amounts of stuff
is generally counterproductive, and you don't seem to disagree with that.

I completely agree with it.

(However, if there weren't cases where cross compiling _does_ make sense I
wouldn't bother building the second stage cross compilers in my project and
packaging them up for other people to use.  "I don't recommend it" != "people
who do this are stupid".)

Earlier I pointed out that I use cross for bootloader and kernel.

The problems with cross generally come from having to continually fight projects that don't want to build cross and maintaining and building the hundreds of projects that make up your rootfs as your own personal burden. Over time it seems to me it will be on a loser when it comes up against established distro projects like Fedora that are inheriting the quality of native built stuff and delivering binaries for your CPU ready cooked. (Of course this is only true at this ARM11+ point, below that cross like buildroot is the lifesaver).

So yes, I would tell people to avoid cross distros if they can find a native built one that is workable for them because they can expect less issues and more consistent quality. And they're not gonna be expected to build anything themselves.

You're conflating a bunch of issues.  You can boot a full distro under qemu or
under real hardware, so "use a native distro" is orthogonal to "develop under
emulation vs develop on target hardware".  And building a hand-rolled system
or assembling prebuilt distro bits can both be done natively (under either
kind of "native"), so that's orthogonal too.

See above. Qemu itself is an unnecessary burden for the developer, that goes triple if the guy follows the way you suggested and makes a giant Qemu build farm so he can follow that buildroot style and rebuild his whole distro pointlessly with distributed make, instead of simply downloading distro-built binaries and getting on with his life.

I'm really not understanding what argument you're making.  "The one specific
configuration I've chosen to use is better than any other possible
configuration"...  Possibly there's a "for your needs" attached somewhere that
you're missing?   You seem to be confusing "that's not an interesting option
for me" with "that's not an interesting option".  You're conflating a bunch of
different issues into a One True Way, which is sad.

Yes, I am sorry if it makes you uncomfortable but some things are inherently the wrong direction. Bootloader bloat is the case in point, if there's an OS like Linux on the box it's always preferable to do your business in that, not add faux bash to your bootloader.

Sometimes you might get forced into going in the wrong direction, Robert was making the case about needing to light up his display super quick at boot. If that happens you may bend to it, but it doesn't change that it was the wrong direction and you want to try to avoid it next time.

Or you just do it native and you don't care about extreme rebuild case
because you're using a distro that built it already.

I find reproducibility to be kind of nice.  (Remember when ubuntu dropped
Powerpc support?  Or how Red hat Enterprise is finally dropping itanic?  Even
today can you build a full distro natively on new hardware like microblaze or
blackfin?)

I also don't see any difference between your "let the distro handle everything"
with "the vendor supplies a BSP, why would you need anything else?"  That's
certainly a point of view, and for you it may be fine.  Anything can be
outsourced.  But "I don't have to do it, therefore nobody does" is a
questionable position.

Hm, you were telling me I was conflating things earlier.

With RPM in terms of process you can easily rebuild the packages if you have the SRPM. So it's nothing like a BSP blob, rebuild is always easily possible package by package, and the packages explain their build dependencies so it can be automated. So "reproducibility" is possible.

My point is that typically on desktop and server distro installs, you do not go around rebuilding packages, Gentoo excepted because that's their thing. I've done it to a couple of packages over the years and that's it. The reason for going the distro route is I can rely on and exploit the work they already did. (And in Fedora's case, their quality demands are higher than mine so it's an automatic win).

So while reproducibility is possible, it's almost never needed by end users. If they do need it, they're going to have to get some metal that allows them to do it, maybe the mass Qemu farm thing or whatever. But not typical users.

There's more things you can do to speed it up if you want to go down that
rabbit hole (which the presentation does), and there's more work being
done in qemu.  (TCG was originally a performance hit but has improved
since, although it varies widely by platform and is its own rabbit hole.
Also switching to gigabit NIC emulation with jumbo frames helped distcc a
lot.)

Just saying people don't do distribution rebuilds for their desktop or
server boxes unless they're Gentoo believers.

Linux From Scratch does not exist?  My friend Mark (who inherited a "Slackware
for PowerPC" cross-build system) is in reality unemployed?  Nobody ever
actually works _on_ Fedora and needs to do a development build?

It's interesting to see someone who can imply these things with a straight
face on an embedded development list.

You are making straw men here. Normally, people who are using a distro do not do whole distribution rebuilds for their desktop or server boxes, it is a stone cold fact. It must be 99%+ of distro users never customized one package let alone dist-rebuild. They use the binary packages coming from the distro, that is the point of having a distro.

Yeah other people have buildroot-style build policies and do other things, good luck to them. I'm suggesting they should be avoided for use at this ARM11+ level.

So the need to consider
this heavy duty stuff only exists at the distro.  In Fedora case, guys
at Marvell are running it and have access to lots of fast physical
hardware they hooked up to Koji (you touch on this in your PDF).  I
don't think it's like they were waiting to hear about Qemu now they're
gonna drop that and move to emulation.

You also seem to be unaware that QEMU was only started in 2003 (first commit to
...
Therefore, they didn't "drop" support, QEMU wasn't ready for prime time back

Please read what I actually wrote above, which has nothing to do with Qemu dropping anything. It seems you would call this kind of thing "conflating orthogonal issues".

By the way:

   http://fedoraproject.org/wiki/Architectures/ARM/HowToQemu

You continue to conflate orthogonal issues.

Again I didn't say it's not possible to use Qemu, it's just slow. And for the reasons of having unified dependencies in your build system, if it is possible to build on your execution device that is preferable.

They're in the business of
making fast ARM chips and they're going to outpace Qemu.

They're not in the same business.  They don't compete.  You don't deploy on
qemu, and when you go down to Fry's to get a laptop the x86-64 is likely to
continue to be the main option for the forseeable future.

Developers have to make a decision whether to use the native metal or emulation. Qemu is slow, so much so you suggest having a build farm of Qemus to work around that. Native metal is getting faster.

So I would advise people to use their fast native box if they have one, because I think it's going to get faster quicker than Qemu basis over the next years.

But in general, Moore's Law says that qemu on current PC hardware is
about the speed of current PC hardware seven years ago.  (And obviously
nobody ever built anything before 2003. :)

The speed surely depends on the architecture being emulated.  I did try
Qemu on ARM on a nice desktop box here and it seemed unworkable to me.

You couldn't make it work, therefore it can't be made to work?

Oh no: it worked. It was "unworkable" as a basis for development because it was slower than my native hardware. So I moved to that and removed the burden of Qemu and syncing two rootfses from my development thinking.

I am perfectly happy to trust Fedora to take care of disribution
rebuilds for me.

Good for you.

Did it ever occur to you that there are people out there who do the bits you
don't personally do?  That all these packages don't emerge from zeus's
forehead on a quarterly basis?  That someone, somewhere, is actually
interested in how this stuff _does_ work?

Of course.  Do you know about Koji?  It's pretty cool.

http://arm.koji.fedoraproject.org/koji/

That level of infrastructure and investment is done by the distro, not the users who can get high quality, immediately usable binaries for free. We shouldn't be advising devs that they need to get into reproducing the distro as the price of entry. (They can get into that if they absolutely have to, they can even run their own koji which is packaged in Fedora.)

This is what I have been calling "buildroot thinking" again.  What do
you think you will be rebuilding exactly out of Fedora when you put it
on an ARM11+ system?  Typically, it's going to be zero packages, nothing
at all.  What you will need to build typically is this:

"All the world's a Cortex A8, and always will be."

Look, go have fun.  I'm sure what you've chosen to do is going to work just
great for you, and you'll never need to care about anything else.  Personally,
I no interest in speaking to you ever again about anything, and I have a spam
filter for situations like this.

I'll even make you happy: "You win!"  There you go.

*plonk*

I see.

Well, unfortunate as it is I now have to address the back of your head with your hands clamped over your ears, I would like to thank you for an interesting thread.

-Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-embedded" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Gstreamer Embedded]     [Linux MMC Devel]     [U-Boot V2]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux ARM Kernel]     [Linux OMAP]     [Linux SCSI]

  Powered by Linux