A hint of Vanilla…
by Hexxeh on Aug.12, 2010, under ChromiumOS
Turns out I wasn’t just slacking off these past few months. Alright, maybe I was just a little. No matter, the next releases are ready. Yes, plural. Allow me to explain…
Before today, if I wanted to upload a new image for everyone, it took hours just to prepare the final image and distribute it. Then there were the days of testing before, and the hours and hours a build took to complete. This is all very tedious and annoying if you’re working on it for a few days straight. So I thought I’d solve that problem and automate the build process. Now builds happen every day, with the latest code, without me having to take any action other than to fix things when it goes wrong (and it does, quite a bit, but it’s still hugely easier). So what does this mean for you?
This means that now you don’t have to wait for me to release a new build to try the latest and greatest that ChromiumOS has to offer, you can just hit up the new ChromiumOS Vanilla page linked at the bottom of this post and take the newest build for a spin. Just to give you some idea of what that means if you’re coming from Flow, here’s a list of new features/improvements:
- Revamped login UI – your username is remembered and you can take a photo to appear with your login using your webcam
- 3G modem support
- Chrome Web Store ready
- Lots, lots faster
- Official ChromiumOS updater (my servers for this aren’t yet live, though)
- Browser sync
So, sounds great, right? Sadly, there are a few drawbacks. I’ve not yet integrated my changes into the new system. So if you’re hardware isn’t supported in a standard ChromiumOS build, it won’t work in a Vanilla build. This will change eventually, I still have more work to do; right now there are huge drawbacks to using my modified versions using this system, I need to find workarounds before it’s ready for public consumption.
None of these builds are tested by a human and therefore not guaranteed to even boot (this is by it’s very nature, it’s automated!). Eventually we’ll mark some of them as verified, but not yet. Secondly, there are no VMWare/VirtualBox builds available yet; this is something I’m working on right now and should be available pretty soon.
You can go and download the current build right now on the special Vanilla builds page here.
SteamEnabler for Mac
by Hexxeh on May.19, 2010, under Other
I present, SteamEnabler for Mac. This is basically what you saw in the previous post, except about a million times easier. Simply run the app, type in your username and select the game you want to install. The only catch is, that you need to have the GCFs for the game you want in your “Steam Content” folder; SteamEnabler does the rest. You’ll need to have installed Portal already for this to work, too. Some people running Leopard have had trouble running this, not sure why this is. Should work great on Snow Leopard, though.
The following games are currently available:
- Team Fortress 2 – works very well
- Counter-Strike: Source BETA – works, but you can’t connect to real servers, listen servers probably work
- Day of Defeat: Source – lots of messed up textures, I’ve basically put this in to see if anyone can play around some more and get it working fully
I’d like to thank Nem for his fantastic HLLib library, which saved me lots and lots of time in putting this together. I’d also like to thank HubmaN for his help and advice on this.
Team Fortress 2 for Mac
by Hexxeh on May.18, 2010, under Other
After Valve released Portal for Mac last week, it’s been possible to get Team Fortress 2 running on your Mac. After lots of fiddling around, I’ve nailed down precisely how to do it. First, a video:
Here’s the howto I’ve come up with:
1) Reboot to Windows or grab yourself a Windows machine.
2) Create a folder called “team fortress 2″
3) Extract the following GCFs into it, in order: source materials.gcf, source models.gcf, source sounds.gcf, source 2007 shared materials.gcf, source 2007 shared models.gcf source 2007 shared sounds.gcf, team fortress 2 materials.gcf, team fortress 2 content.gcf, team fortress 2 client content.gcf, source 2007 mac binaries.gcf. These may be more than is actually required, but your client will just crash if it’s missing something sometimes, so it’s better to get them.
4) Put this “team fortress 2″ folder alongside your “portal” folder in “Steam Content\yourusername”.
5) Open a Terminal, and navigate to this new “team fortress 2″ directory.
6) Run the following command: chmod +x hl2_osx
7) Run the following command cp tf/bin/client.dylib bin/
8) Run the following command cp tf/bin/server.dylib bin/
9) Ensure steam_appid.txt is present and contains “440″.
10) To launch the game, type the following: ./hl2_osx -game tf -novid
Doesn’t run quite as well as it does in Windows, but it’s nice not to have to reboot. How do I do this, you might ask? It’s quite a long process right now, but if you’re up for the challenge and don’t mind getting yours hands dirty, then there you go. Steam will need to be running when you launch the game, or it’ll just crash. You might also need to have the GCF files in the right folder too, didn’t test this, I had them there anyway. If you crash just as the game is about to enter the map, try setting all your graphical settings to the absolute minimum, as this sometimes helps. Once you get in, you can bump them back up again. Not sure why this is the case, but it helped for me.
As a bonus, here’s Counter-Strike: Source BETA running too: http://grab.by/4rJL
(Note: the FPS is actually around 250fps, I had to tab out to take a screenshot which caps it at 20fps because it’s in the background)
Maybe you can kill that Boot Camp partition like I did now. Have fun!
Concorde, landing on your device soon…ish
by Hexxeh on Apr.27, 2010, under ChromiumOS
You’ve all been using the application menu I shipped in Flow, and many of you have told me how much you like the idea, infact there are currently a little under 20,000 devices actively using Flow and this menu. So, I’m going to take it a step further.
Right now, any application in your menu is just a website. It’s a convenient system, but they are basically just bookmarks and the end of the day. This is useful, but it’s taking the “OS is just a browser thing ” a tad too far in my opinion. So, I’d like to build on this. Meet Concorde. Concorde is the name for what you should all be getting shipped in the next release, and it takes the application menu a step further.
A website has limited control over your device, and with the exception of some of the HTML5 stuff, requires an internet connection. But why should something as simple as a calculator require a net connection? It shouldn’t. How about something like Dropbox? If this is simply a website, it can’t sync files to your machine, it simply needs more access and a platform to run on in the background. This is what Concorde provides.
There are three major components:
- The application server
- The Concorde API
- The app store
Firstly, the application server. Many developers are already familiar with PHP, infact it’s one of if not the single most popular programming language for web applications. So we’re now taking it to the netbook. This means you can bring apps to devices without even learning a new language, and it’s perfectly suited to the fact the apps display in the browser. Talking to hardware and the OS can be complicated via PHP though, especially so for beginners. Enter the Concorde API.
The Concorde API provides a set of methods for controlling the hardware and software present on the device. This means you have access to the filesystem, networking, audio; pretty much anything you could possibly want in an easy to use set of methods. Many people are asking for a way of using 3G dongles, and this is something that could be added via a Concorde package. Dropbox, as I previously mentioned? This can be added via a package too. You no longer have to wait for me to ship a new version to get a new feature, developers can easily work with me to add functionality via this new platform.
Developers will also be able to ship binaries for things like Dropbox where they are required, but obviously this can present a security issue. Developers will be responsible for keeping these working and fixing bugs where they arise. If your application ships with binaries, then the right is reserved to pull your application from a device or at least disable it in the event that it starts acting undesirably. Lastly? The app store.
The app store provides a centralised place for users to find new applications. It’s very easy to use, and I’ll be giving a demo closer to the release showing you this. Basically, this replaces the existing application menu; in fact the application menu will be a Concorde package in itself, running from the local application server. As I mentioned earlier, there is a security concern when installing third-party applications onto your device. The app store will be the sole official source of applications/packages and as such all packages have be screened by myself. That said, you should not install any application if you do not trust the developer. Encrypted/encoded (a la IonCube) PHP code will not be permitted into the app store, in the interests of openness and so that anyone who wishes to can view what is going to be installed to their device.
This also allows for users to roll their own quick fixes for issues before they appear in the main ChromiumOS code. I’ll be shipping some features in this format, things like settings panes for mods, especially those that will likely never appear in the main source tree. Many of you have asked for auto-login, this should be coming, along with volume controls on the UI and full proxy support. I’m also hoping to try and find a solution for the black screen of death issue on a few machines, if you have any thoughts on this topic, please do email me.
It really should be the most amazing release yet, but it’s a hell of a lot of work, so don’t expect it any time soon. Hopefully once I’ve pulled together some system for this, I can open up the development process to the public and you can help me flesh it all out. Even once the release is done and we’re shipping the platform to end users, the API can still be modified as long as we retain compatibility with applications using old versions. This will all be in a public SVN repo for anyone to check out and play with, and you can even install your own working copy of the API on your device to test new functionality.
You will also be able to leverage the Velocity update engine to update your Concorde package, simply by publishing an update script and payload to the app store. All new installs will use this version and existing users of your package will be offered the update. This system will also be usable for those who want to improve support for a specific set of hardware, you can install a Concorde package which targets your hardware and can provide fixes and device specific functionality.
So why am I telling you now? Well, the API is still a work in progress, and basically; I’d like to know what functionality you’d like exposed in an easy to use way. Closer to release I’ll be releasing a developer copy of this to users who wish to develop packages for the platform, and to help me improve the docs for this. What sort of apps can you envision running on this? Answers in the comments, please.
If you have any questions, add it in a comment and I’ll do a follow-up post with the answers to a selection of the more popular ones. That’s pretty much it for the Concorde platform. It’s a pretty ambitious idea to implement this well, but I’m pretty confident we can do it. Oh one more thing, we should be shipping via the updater, so it’s a one button process to update when it’s released.
European VPSes now available!
by Hexxeh on Mar.23, 2010, under Other
I’m pleased to say that I can now offer VPSes located in Europe! The servers are hosted in Frankfurt, Germany. This is pretty much the same deal as the US node, except for the fact that I’m no longer offering the 128MB VPSes (the $5/m extra for twice as much is worth it, trust me). Pricing is pretty much the same as the US node:
- $12.50 – 256MB RAM – 20GB disk – 125GB bandwidth
- $17.50 – 384MB RAM – 30GB disk – 180GB bandwidth
- $22.50 – 512MB RAM – 40GB disk – 250GB bandwidth
- $30.00 – 768MB RAM – 60GB disk – 375GB bandwidth
- $35.00 – 1GB RAM – 80GB disk – 500GB bandwidth
- $60.00 – 2GB RAM – 160GB disk – 1000GB bandwidth
As you can see, I’ve reduced the prices on the larger VPSes compared to the US nodes, to make them more attractive. Bandwidth is also a bit cheaper, but IP addresses are a bit more expensive:
- Extra IP addresses: $2 each per month
- Extra bandwidth: $30 per 500GB per month
- HVM: $7.50 per month (only available on 512MB and above)
I’m allowing customers to use HVM if they wish, but this is at an extra cost per month as shown above. This means you can run Windows, if you so wish (and have a license). We’re also running a slightly faster quad-core (2.83Ghz vs 2.4Ghz). First come first served, once it’s gone, it’s gone! Payment is via PayPal only. You can get my contact details to order using the link at the top of the page.
It’s Flow time…
by Hexxeh on Feb.15, 2010, under ChromiumOS
- User-customisable menus (rearrange, add, delete apps on your own menu)
- Automatic updates via the Velocity engine (with an all new interface from what you saw in the BETA, it’s now been integrated into the browser)
- nVidia GPU support (this includes ION, and it’s fully hardware accelerated)
- Realtek RTL8187SE support (RTL8192E is coming as an update soon)
- Audio fix
- Flash fix
- Bookmark Sync fix
- Power indicator fix (as long as it worked in Cherry)
- Battery life improvements
- Increased image size to 2GB (1GB was becoming too restrictive, needed to do this to add more hardware support, sorry!)
- Webcam support (to test this, right click on a YouTube video and then click settings)
One feature that didn’t make the cut this time, is the new login screen. There’s quite a bit we need to do with that before we can ship it, and I just couldn’t get it all done in time and still get this release out in a reasonable timeframe (we were late already). I spent pretty much all of today tweaking the nVidia support and working to make sure it was a smooth as ride as possible moving between an Intel GPU device and a nVidia GPU device.
The nVidia support, is well, pretty awesome. The only nVidia hardware I had available to test for myself was my desktop, running a 9800GTX. This setup had no issue at all powering through 720P and 1080P YouTube content.
The applications directory doesn’t have too many apps right now, however soon I will be taking submissions for new applications to be added to this directory for users to add. If you’d like to get a headstart on this, you will need to produce/find a 128×128 transparently backed PNG icon for the app. It should blend in with the existing icons as best as possible, or it may not be accepted.
You can find the release on the main site here.
I’ll update this blog post more tomorrow once I’ve had some sleep, just wanted to get this to you as soon as it was ready.
Lastly, some credits and messages of thanks:
- Cosmic Duck for producing the artwork and redesigned website
- redpig for helping me with ChromiumOS build related topics
- mdwittenberg for his work on the wiki (and everyone else who contributed)
- egrep, inferno10681, Billiam, aikidoka for being excellent testers
- The #chromium-os IRC channel on Freenode for all their help and assistance
- The ChromiumOS development team for producing such an amazing operating system
Going with the Flow
by Hexxeh on Feb.08, 2010, under ChromiumOS
As you may of heard, there is a new release due out February 12th if all goes to plan. Lots of people have been asking about what we’ll be launching, so, a short post detailing what should be hitting your netbook this Friday/Saturday (depending on your timezone). I’m very excited about this build, certainly the best yet and we’ve got a few new really cool features. A short list:
- User-customisable menus
- Automatic updates
- nVidia GPU support (this includes ION)
- Audio fix
- Flash fix
- Bookmark Sync fix
- Power indicator fix (as long as it worked in Cherry)
- New login UI (login to WiFi before logging into the OS)
- Battery life improvements
- Increased image size to 2GB (1GB was becoming too restrictive, needed to do this to add more hw support, sorry!)
Not all of these are complete yet, and so I cannot 100% guarantee that they will make it into the final build. The first two, for example, are completed but the nVidia drivers are not yet. If a feature does not make it to release, I’ll ship it shortly afterwards via the auto-updater. I’ll be taking submissions for the application directory later this week. If you want to prepare in advance, find/create a 128×128 transparent background PNG icon for the app, and have this ready to submit along with the name and URL of the application.
This release also represents a major change in how the builds are made. Up until now, they’ve all by made by hand, running through the ChromiumOS build process. Flow breaks from this pattern, and uses a system I call Reflow. Reflow leverages the auto-update system I wrote as a rootFS customisation tool. This basically saves me a hell of a whole lot of legwork in producing the builds, leaving more time for testing. It also lays down the framework for the rolling releases system I mention a month or two back, as it means the entire process can in theory be scripted and therefore automated builds provided via the site (a la nightly builds).
Oh and I’ve moved to WordPress as opposed to Tumblr, but you probably already noticed that, right?
It’s Zero hour!
by Hexxeh on Jan.10, 2010, under ChromiumOS
At long last, Chromium OS Zero has been released. What can you expect from this new build? Well:
- Newer version of ChromiumOS code
- Major speed improvements for many users
- Reduced Broadcom delay
- New artwork for the boot process
- Full extension support
- Reduced download size, clocks in at under 250MB
- Still fits on a 1GB USB drive despite the new features
- Beginnings of multi-language input (requires a little terminal work to add your language as there is no UI yet)
- Quite a lot more!
I hope you enjoy this build, and want to take this opportunity to thank you all for your continued support of this project.
Now selling super-cheap VPSes!
by Hexxeh on Dec.13, 2009, under Other
When writing the build system on Nitrogen, the VPS I bought to set all this up on, I hit a pretty big snag that’s holding things back. Basically, due to the way Fivebean do their virtualisation, I couldn’t create the images properly (no loop devices thanks to OpenVZ). I contacted my provider, Fivebean, and while they’ve always been great to me, they couldn’t come up with a solution: but understood fully and offered me my money back.
So I had to go find either a cheap dedicated server or a Xen-based VPS. I looked around, but I couldn’t find anything suitable in my price range ($30 or less per month). So then I had an idea. What if, I bought a high-spec dedicated server and virtualised it myself? So, that’s just what I did. The idea behind this is, that I can sell off the capacity of the box I don’t need to make up the extra cost. Here’s the box I’ve bought:
- Intel Xeon 2.4ghz quad-core
- 8GB DDR2 RAM
- 500GB HDD space
- 100mbit connection
- Located in Atlanta, GA
So, I’ve created various plans and I’m basically selling them at what it costs me plus roughly estimated PayPal fees. If you’re interested, drop me a line at hexxeh@hexxeh.net or pop into ##hexxeh on FreenodeIRC (if I’m not around, drop me an email, or alternatively you can tweet me and I’ll get you a tweet back once I’m online). Here are the plans I’ve come up with:
- $7.50 – 128MB RAM – 10GB disk – 65GB bandwidth
- $12.50 – 256MB RAM – 20GB disk – 125GB bandwidth
- $17.50 – 384MB RAM – 30GB disk – 180GB bandwidth
- $22.50 – 512MB RAM – 40GB disk – 250GB bandwidth
- $32.50 – 768MB RAM – 60GB disk – 375GB bandwidth
- $42.50 – 1GB RAM – 80GB disk – 500GB bandwidth
- $80.00 – 2GB RAM – 160GB disk – 1000GB bandwidth
All prices are per month. If you need something a bit different, please ask and I’ll see what I can come up with for you. There are also various extras available:
- Extra IP addresses: $1 each per month
- Extra bandwidth: $40 per 500GB per month
After your VPS is delivered, you also get access to a VPS control panel (I’m using SolusVM: http://solusvm.com) where you can reboot/reimage your VPS and check how much bandwidth you’ve used and so on. Right now the selection of OSes is fairly limited: Debian 5, CentOS 5.3 and some older versions of Fedora and Ubuntu.
So as far as ChromiumOS goes, I’ll be resuming work on it once I’ve got this box filled with customers. That way I can stop worrying about making sure it’s paid for for this month and start using my slice to get the new build system running.
After the downtime on the ChromiumOS site, the site and wiki have been transferred to this new platform so there shouldn’t be any speed/stability issues there now.
A taste of what’s to come…
by Hexxeh on Dec.09, 2009, under ChromiumOS
I thought I’d best create a blog to keep you informed of what I’m getting up to, especially currently with Chromium OS. So here’s a quick overview of my current plans with that:
- Fully automated build system
- More wireless support
- Pushing changes back into the main source tree
- New website with automatic status showing on how a build is going, possibly even ETAs generated automatically
- Faster releases, I aim to get the build process tuned down so we can get builds rolling off as fast as changes hit the main source tree
- And here’s the big one I think many of your have been waiting for, automatic updates. This may not be in initial versions, but it is certainly now a long-term goal for my builds
- Less soda-themed names
Those are just a few of the things I’m planning. Right now, I’m working on building the automated build system, and that’s coming along well (though the 512MB of RAM the server has is becoming rather restrictive). I’ll be posting more about each of these new features and plans soon.
The long term goal, is basically to become the de facto Chromium OS build for general users (as opposed to developers who are comfortable building themselves). I’ll also be publishing every single bit of my code as open-source.
I’d also like to take this opportunity to express my thanks to various people:
- Google, and redpig in particular for helping me out when I needed it amongst other things.
- Every single other developer working on the Chromium projects, because none of this could happen without each and every one of you.
- Users on the Google Groups for ChromiumOS/Chromium, many problems I’ve encountered have been resolved from very useful posts by the users there, my thanks go out to you all!
- Donators who helped to pay for the VPS and who are ensuring I can continue to run it to provide you with fresh builds regularly. Big thank you to you guys, and everyone else, you should thank them too! They’re playing a big part in making this happen.
- All the users who have supported me and send their thanks via Twitter/email, really, thankyou! Please, keep spreading the word as you’ve been doing so well so that more people can try out this fantastic OS and hopefully use it on their netbooks.
If you love what I’m doing (thanks! I enjoy doing it and I’ve met some fantastic people whilst working on it), and would like to help out, here are a few of the things you could do:
- Work on the wiki! Editing a wiki is something anybody can do, you don’t need to have edited one before, it’s very intuitive and you can pretty much learn as you go along. If you’re still unsure, stick to the existing format and just add to the compatibility lists, for example.
- Spread the word! Give your friends copies of the builds and point them to the site, let them try it out! If their hardware is incompatible, add details to the wiki, and you never know, I may be able to ship a fix in a future version!
- Donate! Donations have paid for the server on which builds happen and much of the site runs on, and this project simply could not function without their support! Any amount is very much appreciated.
- Share your ideas/suggestions for the project! While not everything is feasible for implementing, most ideas are and you may have thought of something I or somebody else didn’t!
- Use the builds! This is by far and away the most important thing you can do to show your support.
To those who have tried to reach me via Twitter and haven’t gotten a reply, please, tweet at me again. I sometimes may miss a tweet by accident when I open my client and see many hundreds of new tweets. Please do check the wiki and FAQ first to see if your question is answered there. Many of the questions I am asked, are, and I’ll simply point people to the relevant page. Save me a little time by checking there first, please.
Any future updates to my Chromium OS builds will be found here first, and hopefully you can enjoy my comments/stories about how the project is getting on.