A while back I had picked up a neat little fanless Intel Atom computer based on the BayTrail N2807 CPU. It’s a dual-core system running at 1.6 GHz and has 2 GB of RAM and onboard flash disk, and seemed ideal as a micro server for my home LAN.
The device turned out to be a bit flaky to set up, so I thought I’d share my installation notes here. There are multiple revisions of this mini PC, and I believe I have one of the first versions. The case looks like this:
First, I created a USB flash drive with the Ubuntu 16.04 server install image using Ubuntu’s Startup Disk Creator app. Then, plug in an HDMI monitor and wired keyboard to the Liva. Hit F7 when the BIOS screen comes up and select the flash drive to start the installer.
The main issue I ran into was during the disk partitioning step. If I chose one of the guided partitioning options, the process wouldn’t complete, and raised an error about “Identical mount points for two file systems” on the flash storage.
After several unsuccessful attempts to try other options, I found a solution that worked. First, choose manual partitioning mode. Select the entire disk, and create a new partition table. Then select the free space and have it create partitions automatically. At this point I could save these changes and have the installer proceed past the partitioning step.
Everything else in the installer is pretty straightforward. Once I had everything set up the way I wanted, I disconnected the monitor and keyboard and intended to use the system as a headless server. However, the system refused to boot without a monitor attached. I tried several modifications to my GRUB bootloader command line to try to work around this, but had no luck. If someone knows the customization to make here, please let me know and I’ll update this post with the info.
Instead, I chose the lazy option. You can buy “dummy” HDMI connectors that emulate a monitor – for example here’s one that you can use.
Once I connected that to my Liva Mini PC, it was able to boot up headless and the device is now usable to me again.
I hope this information might be useful to others trying to make use of this handy mini PC system.
Over the last month I’ve had the opportunity to borrow/rent a 3D printer from a friend of mine. This was a healthy thing for me, since I had recently joined a local hackerspace (Brainsilo) to have access to a 3D printer a member kept there. With all the hype and excitement around 3d printing, I quickly got caught up in the possibilities and was overwhelmed with all the amazing things I could now potentially create, either of my own design or from sites like Thingiverse.
Having to actually go to Brainsilo to kick off prints was just inconvenient enough, and my ethusiasm just manic enough, that I started to seriously consider buying a printer of my own. Based on my research, one of the best values in 3d printing appeared to be the Printrbot Simple Metal, which you can buy for $539 in kit form or $599 assembled (plus shipping). Thankfully before I gave in to the desire to impulse-buy one of these, I worked out an arrangement to borrow this same model from a friend of mine who was starting to get a bit bored with it. In the end I worked through my obsession and gained more realistic expectations about what 3d printing could offer me.
I’ll reveal the conclusions now: it’s not useful enough for me at this time, but may be worth re-examining what options are out there in another year or so. But I will also say that the Simple Metal does live up to being one of the best value printers you can get for under $1k – I advise getting the heated bed accessory for it (another $100) and setting up an Octoprint networked print server.
My hope was to be able to use this printer to create useful things. A lot of people seem to use them for creating figurines and toys, but I wanted to build enclosures for various embedded boards I had (especially the RaspberryPi). I was disappointed with the results in a number of ways. First of all, printing anything thin-walled or with narrow standoffs wasn’t working for me, because it turns out that PLA is too brittle. Nearly all of the RasPi cases I tried printing fell victim to something snapping or cracking as I tried to fit the board into the case.
The solution here is likely to print with ABS plastic instead of PLA. That requires a heated bed, and the fumes of ABS are not something I wanted to deal with in my home office setup. Another issue which I assume would have been resolved with a heated bed was warping. I saw a lot of warping of anything that had a large surface area (especially embedded board cases). Printing with a brim mitigated this slightly, but still not enough. Printing with a raft fixed the warping issues, but as much as I tried to tweak the raft settings in Cura, the raft was always too strong and more or less ruined my prints when I tried to remove it.
3d printing is still pretty far from a simple usability experience. You have to learn the nuances of your printer, slicer, and even tweak print settings for every kind of filament you’re using. Hmmm….can I get away with printing this without support structures? Often you’ll waste hours trying a print without them and end up throwing it away. The process is quite tedious and iterations are slow.
I did have a few nice successes in printing, though. This particular RasPi B+ case from Thingiverse came out well (at least, the case doesn’t have any parts broken off of it yet, though I did have to tolerate some warping in the print). I have a solid set of parts to build this bulldozer battle bot. And I had fun with one of my neighbor’s kids building this 3d printed walking robot.
Overall I’d have to say it’s still worthwhile to wait and see how the technology advances. We’re still in the infancy of 3d printing, and improvements in quality, convenience, and price will be substantial over the next few years. Printing in PLA is mostly useful for toys and prototyping things to eventually make in ABS. Without the ability to print ABS conveniently in my home, I think a 3d printer is still too much of an expensive toy, and if I want a 3d printed item, I’m better off finding a local printer a site like makexyz.com and having them print in ABS and apply the specialized knowledge they have about how to optimize prints with their printer.
This blog hasn’t been updated in quite some time. Like many people, I’ve switched over to using a social media platform for shorter posts (and especially photo sharing). I don’t use Facebook, but found a lot of the embedded Linux and kernel community seems to have adopted Google Plus, and I do like their circles model for sharing posts.
So if you’re curious what I’ve been up to lately, check out my Google Plus page.
Some noteworthy adventures I’ve been on this summer include a trip to Asia, and climbing Mount Saint Helens with my wife. Below are some direct links to the photo albums which documented these travels.
Mount Saint Helens
I do have a couple of blog posts in mind that I may be writing up soon. Over the last month I borrowed a 3d printer and have some observations on that technology that I think are worth sharing. Until then, this is just a short update to let readers know that Google Plus is where you’ll get more regular updates of what I’m up to.
In early November I’ll be in Barcelona for the European Embedded Linux Conference. Once again, I’ll also be involved with running another Yocto Project Developer Day on Nov. 8, the day after ELC-E officially ends.
The intro level hands-on lab class I’ll be teaching has been reworked considerably based on feedback I received from the first event we did in February, to allow for more independent learning/exercises. And as before, we’ll have some hands-on labs for experienced Yocto Project developers as well in addition to a panel discussion.
I’m really excited to help people get started using our build system, and to meet our OpenEmbedded contributors from across the pond. Don’t be a stranger!
I thought it would be fun to write about how bicycling has evolved in my life over the past five years, when I got back into riding as an adult.
My original goals when I bought my first road bike were to find an activity that I could enjoy doing outdoors that could be an alternative to spending time at a gym. I didn’t want to have to drive places to do this activity, and there were few options for decent mountain biking nearby, so I decided to get a road bike.
Of course, I figured what I needed was your typical racing-oriented road bike, so I ended up with an entry-level Specialied Allez:
This was a great bike, and it really epitomized that feeling of just ‘gliding’ along that is so special about road riding.
As I am somtimes wont to do with new interests that I deeply enjoy and become passionate about, I soon became a bit obsessive about learning about my new sport and spent a lot of time in online forums. Through these forums I found many examples of people who were bike commuters, and rode to work and to run errands on a daily basis. For someone who couldn’t get enough of bicycling, this seemed like the logical next step for me – after all, why wouldn’t I want to substitute ridng my bike instead of driving my car? Anything that could add more time on my bike was good in my book!
So I started riding to work, finding decent back-road routes to get to my employment, and no longer needed to hit the gym during lunchtime. I became a bike commuter, and quickly found that my bike was not especially well-suited for carrying loads. I wanted something more comfortable to ride, not just for commuting but also for the increasingly longer rides I was doing during the summer.
There are some things that can make a bike much more suitable for commuting and longer-distance rides; a taller head tube, more “relaxed” frame geometry, clearance for wider tires, and rack and fender mounts. Soon I had my eye on a new bike, and replaced the Allez with a Salsa Casseroll:
This was a significant step up in comfort and practicality while still being a road bike well-suited for riding centuries. I could set it up as above with a light set of wheels for my faster rides, and I could also put fenders on it for the mild but wet winters I started to encounter after moving to Portland. A rack gave me the versatility to mount pannier bags on the bike, and I had something I could run errands with:
For most people, a bike like this is a perfect all-around, general purpose bike. But the longer I lived in Portland, the more I found myself using the bike as a serious commuter and errand-running machine. Trips to the grocery store and carrying increasingly heavy loads were taking their toll on my wheels, which needed to be replaced. Also, if you ride much in the rain, rim brakes will quickly wear down the surface of your rims and require frequent wheel rebuilds.
Four years after getting the Casseroll, I decided it would be worthwhile to have a second bike – one set up for wet winter riding and that could carry large loads without pushing the bike’s limits. Having a more upright riding position would be fundamental to this bike – no drop bars this time. And disc brakes work exceptionally well in wet conditions and no longer wear down your rims when braking. So meet the newest member of my family, a customized Surly Disc Trucker:
Riding this bike is just plain fun. The upright riding position feels like I’m sitting high, as one would in an SUV vs. a sedan. The tires on this bike are even wider than the Casseroll, and the sprung Brooks saddle also offers a bit more give on rough roads. The bike is definitely heavier and feels a bit slower than the Casseroll, but more than makes up for it with the fun factor.
So there you have it – a case study in the evolution of myself as a bicylist. I could now care less if I ever rode a racing oriented road bike again. It was a great introduction to the joys of riding on the road, but comfort, versatility, and practicality are the main attributes I seek to fulfill in my riding nowadays.
I guess you could say this is how I roll. 🙂
After teaching a very successful Yocto Project hands-on lab at the Intel Developer Forum last September, I learned that there was a lot of demand for training resources along these lines. Rather than having me fly out to various Intel sites to teach these courses, I decided it would be better to develop some hands-on labs in video format, so we’d have some “scalable” training materials to meet the demand.
The first screencast video was publicly released last week at the Embedded Linux Conference in Redwood City, CA. It’s a half-hour long and combines some introductory theory with hands-on exercises you can follow along with.
Note: You’ll probably want to view the video in full-screen mode when viewing the more detailed slides and during the live demos. You can also directly download the video in Windows Media format (300 MB) or Ogg Theora format (500 MB).
Topics covered include:
- An overview of the Poky build system
- How the Poky sources are organized (types of metadata and where to find them)
- How to build your first Linux image and run it under emulation
- An introduction to recipes and an explanation of the most common types of metadata, using actual recipe examples
- An introduction to layers
- Where to obtain Yocto BSPs from
- How simple it is to download and enable a Yocto BSP
- Where to find further project resources (documentation, mailing lists, git repository, bugzilla)
By the end of this screencast, a new user will understand fundamental concepts about the build system, and be able to start their exploration of the Yocto Project with a solid foundation of knowledge.
Quite honestly, creating this screencast was pretty agonizing, as the video editing tools Linux offers are either horribly complicated or extremely unstable. Perhaps at some point I’ll write up everything I learned about screencasting and give a talk for PLUG. 🙂
This won’t be the last screencast, but I can’t promise a timetable for the next one just yet.
We’ve got a full day of presentations and hands-on labs geared toward embedded Linux development with Yocto, both for new users as well as more experienced folks. I’ll be teaching the intro hands-on lab with Jessica Zhang, as well as presenting Techniques for Troubleshooting Common Build Errors in the intermedite developer track.
Most of all, I’m really looking forward to meeting members of the OpenEmbedded and Yocto community in person. So please say hello if you’ll be at either of these events!