Open Coretool opened 8 years ago
I essentially had the same idea - basically reimplementing the same concepts in Chromium OS as node.js + HTML code where possible.
The checkout instructions for Chromium are over at https://dev.chromium.org/developers/how-tos/get-the-code - Just a warning, it's about a 15-10GB download.
Is this the source of the browser or of the OS ? 10 GB is huge for a browser...
Ash/Aura are actually part of the Chromium browser - they're basically build options you can enable.
You might be able to get the relevant portions of the source here: (without the 10GB+ download) https://chromium.googlesource.com/chromium/src/
What you're after is src/ui/aura
and src/ash
10 GB is huge for a browser...
I had the same thought when I was purchasing a VPS to fulfill the system requirements for the build
^^ Let's see what we can get out of this thingy !
Is it just me or is it impossible to clone only the chromium source from this page ?
I can clone just fine with git clone https://chromium.googlesource.com/chromium/src
Yeah... was an error on my side... It works just fine ^^
Just pushed an initial commit with some of the extracted files I think we'll need. Looking at the dependency graph, looks like we need to tackle Aura first to get it working with EGL.
Looking at the documentation, looks like ozone already has an implementation we can use.
Also, what license do you want to use? The Chromium license looks compatible with most open source licenses. I was personally leaning towards MIT.
But it's a lot easier just to license under the same licenses as Chromium and ChromiumOS.
I'd use MIT ... That's basically the most open license you can get.
I've looked into ozone and I think I've found what I wanted:
Ozone has got 3 different platforms. The only one that we're really interested in is probably gbm. Gbm needs mesa so we will have to wait for lite to finish the mesa port.
Ozone only renders in 600x800 so we might want to scale this since full screen would be much better !
I was looking at targeting gbm as well and once we figure out how it does the rendering, it shouldn't be too hard to change the rendering size.
The source code from Google uses their own "configure" system and the ninja build system. Should we keep their stuff or try to port over to autoconf and automake?
For testing we should leave it as it is, but afterwards we should change to more commonly used systems as we're going to pack everything into an npm package (maybe with prebuilt binaries ?)
I've found some good demo code under src/ui/aura/demo/demo_main.cc
Down the line I was also thinking of replacing the full Chromium implementation in Ash with the embedded version since it's a lot easier to build with a precompiled library than to keep building the entire Chromium source all the time.
More useful demo code:
src/ui/ozone/demo/ozone_demo.cc
src/ui/views/examples/examples_main.cc
Thanks for the code, I'll look into it!
I think we should build the content shell with ozone first and then build everything ontop of that. That's probably like what you suggested :).
Yep, that's what I had in mind
Quick update: Instead of trying to modify the source directly and resolving dependencies independent of Google scripts, I'm going to be modeling the project after NodeOS/qemu. So instead of having the source in repo, it'll be downloaded along with all the other tools and dependencies when a build is run. We'll be building aurora on top of the existing source.
Yeah, sure, that's what I thought we would do anyway ^^
However, we should make it optional because it takes quiet some time to build it...
Yeah - primarily we're going to use prebuilds
So we will have to create a script that builds prebuilds for every platform ...
Only Linux and since it's the early development stages, we'd only need to target 64-bit.
Yeah but for the future since NodeOS will target 32-bit, arm, etc ^^
Got the aurora demo compiled, but I can't get it to run on my Ubuntu box - Possible issue: https://groups.google.com/a/chromium.org/d/msg/ozone-dev/PrqBxBmSG3s/Qyv_GZKtAwAJ
Did you terminate X ?
I think the first two we will be able to patch ... the third one will be a bit more challenging but should be possible
I didn't even start X - Got to my display manager's login ui and immediately went into the CLI - Got a similar error to the OP of the topic.
I did get it "running" with X running, but with no display on screen.
The first two I think we already have. The last one might require some patching...
I'll search the driver / export it from ChromeOS
https://chromium.googlesource.com/chromiumos/third_party/libdrm/ ^ This is probably the one we're after
https://chromium.googlesource.com/chromiumos/third_party/mesa/
I've had success compiling libdrm on my Ubuntu VPS without the need to checkout the entire ChromiumOS repo (just needed to install libpciaccess-dev). I'm going to try installing it on my local box tomorrow.
So do we still need point 3 ?
I'm cloning the whole chromium src now and will grap what I need to start hacking on it. Do you mind, if we list what we have to do and afterwards split it into several issues so we can track progress on everything ?!
Sure - libdrm should resolve point 3, but I still need to test
So @joshgarde did you get the content shell ?
Either I'm not installing the library correctly or something else is needed -
I'm going to test a few more things out, but some other repos to probably investigate: https://chromium.googlesource.com/chromiumos/third_party/drm/ (<-- Seems outdated) https://chromium.googlesource.com/chromiumos/drm_hwcomposer/
Why do we not just copy the driver out of a fully functional chromeos image (i.e. use a vm and then extract the driver ?)
We can, but I would also like to be able to build from source if the binary isn't available (this is an open source project after all).
Yeah... maybe we want to contact a chromium dev ? (Using the mailing list )
Sure - it'd speed up development a bit
So I'll go and make some friends... or try to ?! ^^
Go for it - I'll join in too
Have you seen / tried out the 'tutorial' on how to deploy an ozone content_shell ? It looks pretty good ...
What did you compile exactly ?
https://www.chromium.org/developers/design-documents/ozone
Truthfully, I didn't see that part of the documentation. 😪 I was compiling aura_demo.
Yeah, I thought that ^^ I think we should try this one out (I'll do that soon)
Compiling right now on my VPS - Will report back with results
I think we have to define a clear plan of what we want to do here.
My idea is to try to copy the way they built the gui on Chrome(ium)OS to NodeOS. To do so, I suggest, thaz we "study" the code they used in chromeOS and port it to NodeOS. What do you think ?!