Techgage logo

SUSE Studio: The Do-it-Yourself Linux

Date: July 24, 2009
Author(s): Rob Williams

Linux is well known for being very customizable, but with SUSE Studio, things are taken to an entirely new level. Imagine taking a base template, building on top of it with your personal software choices, then configuring countless other aspects (even a SQL database), and then building it as a bootable ISO or VM. That’s exactly what makes SUSE Studio so great.



Introduction

If you’ve ever dreamed of building your own Linux distro, or have given it a try in the past but found it to be too complicated, then the service that SUSE Studio avails is bound to intrigue you. Well, as long as you’re perfectly happy with openSUSE, that is.

I first learned of SUSE Studio a a few months ago, and though I don’t dabble with openSUSE all too often, the idea behind the service was far too interesting to ignore. It wasn’t so much the premise of the service, but the fact that it was unbelievably robust. Rather than it be a question of, “What can it do?”, it was more like, “What can’t it do?”.

To put it simply, SUSE Studio is a service that allows you to compile many different aspects of a distro together in order to ultimately build something you could call your own. Since the base of the process is openSUSE, an already well-established distro, you won’t have to worry about every little aspect of building a distro truly from scratch, such as hardware-detection, the installer, et cetera.

Like any new self-respecting service site, SUSE Studio is in its beta stage, and is currently only accessible if you have received an invite. Luckily, anyone can sign up and hope for such an invite, so if you’re interested in taking the service for a good spin, sign up right away and cross your fingers that you’ll get your invite in good time. At it stands, there is no word on when the service will launch to the public or remove its beta tag.

Closer Look at SUSE Studio

Before I jump into our in-depth look at the service, I’d like to preface everything by suggesting who should, and who shouldn’t be prepared to use SUSE Studio. If you consider yourself a Linux newbie, chances are you don’t want to dive into something like this, because the service gives a lot of control, and you’re bound to welcome yourself with a lot of trial and error. If you want to just get up and running with a Linux install, I’d recommend downloading the full-blown version of SUSE, or another popular distro (Fedora, SabayonLinux, PCLinuxOS and Ubuntu are my recommendations).

Who this service is designed for are those who understand Linux a little bit better than the average user. Understanding the desktop is one thing, but in order to build something with SUSE Studio that you’ll be happy with, you’ll want to understand a little bit of the back-end as well, and especially know which applications you’ll want to be bundled with the finished distro. After all, building your own distro is supposed to ultimately please you, so if you overlook some key factors, you may end up having to configure the installed distro more so than if you had of just downloaded the full-blown openSUSE DVD.

Or, you could not listen to me at all and give it a try regardless. After all, there’s nothing really at risk except your time, so if you’re at all intrigued by the idea of customizing and building your own distro, by all means give it a go.

Once you’re logged into the service, you’ll be immediately greeted with the page that allows you to get right to building and customizing your very own distro. Here, you can choose from one of the many “base templates”, separated into three categories: openSUSE 11.1, SUSE Linux Enterprise 10 and SUSE Linux Enterprise 11. Unless you’re looking to build a Linux server or business PC, you’ll just want to pay attention to the first section.

The first two available options are to build a text-only distro, while the other four allow you to bundle in a desktop environment. These include the minimalistic IceWM, GNOME, KDE 3 and also KDE 4. You can also name your distro at the bottom to something that will help you better pick it out later, should you design more than one.

For my first distro, to help breathe in the full experience quicker, I went with JeOS, the text-only distro. The first tab worth checking out is Software, which is where most of the software configuration takes place. Here, you can search for software using the available search box, or browse by category. It’s important to note that each base template truly is a “base”, in that software, unless it’s explicitly needed, is not included.

To give the search feature a whirl, I searched for Lynx, a text-based web browser that deserves to be installed on any Linux system, especially a text-only one. Sure enough, the result came right up, and adding it was as simple as clicking the “+ add” button to the left. If you’re unsure about the application you’re about to add, you can look at the “Popularity” tab, as the longer the bar, the more common its inclusion in other people’s builds.

Should the application you’re looking for not exist in openSUSE’s base repository, you have the option of adding others to your list. If you’re unsure whether the application you want is available in any available repository, you can use the search box and after a second of waiting, you’ll have your answer. After you add a repository to your list, the search box on the main page will include it in its query.

As if that feature wasn’t cool enough, you even have the ability to pre-install software not found in any repository. There are a few possible options here. The first and perhaps most common will be the “Upload RPMs” option as seen on the screenshot of the Software tab above. With it, you simply upload an RPM (common Linux package manager) file, and because all of the relevant information is found inside, the installation will pretty much be taken care of for you.

Distro Configuration

Another more robust option, though, is the allowance to upload either a single file, or an archive and then choose where you want each one installed to. In my test, I wanted to install the most recent version of Mozilla’s Firefox and also Thunderbird, since all that’s available in openSUSE’s base repository is a “stable” version. I tested both methods of adding a file here, which are to either upload the file from your own machine, or to have the server download it from a direct URL.

The latter option is preferred over the former since it will happen much quicker, but either works the same. Once a file is uploaded to SUSE Studio’s servers, you then choose where you want the archive or file to be placed. In my case, I asked for both Firefox and Thunderbird to be placed under /home/techgage/programs/, since that’s where like to put applications not handled by my OS’ repository.

As mentioned earlier though, you also have the option of uploading just a single file, and allowing it to be placed anywhere on the machine. Since non-Debian-based distros can’t handle .deb files too easily, I uploaded a script called deb2targz that turns a .deb into a .tar.gz, allowing for easy extraction on any machine. I had that copied to the /usr/sbin/ file, so it’d be ready for whenever I needed it. Another nice touch is having the ability to adjust both the owner and usergroup for the file, and also the permissions.

Of course as you’d imagine, SUSE Studio expands far beyond simple software configuration, and the Configuration tab is where most of that magic happens. It’s split into sub-sections for finer control, such as General (networking, time zone, users), Personalize (boot screen images, logos), Startup (runlevel, EULA), MySQL database, Desktop (auto-logon, auto-start programs), Storage & Memory (VM size, swap size) and also Scripts. Let’s quickly tackle each, one by one.

Under the General tab, you’ll have the option to choose your preferred language and keyboard layout, choose your time zone, configure how you connect to the Internet and also configure your system’s users. If you connect to the Internet using a DHCP connection (essentially, no manual IP address required), then the default option should suit you fine. For more advanced configuration, you may choose to configure things during the boot process, or with NetworkManager (that would require a desktop environment).

You also have the option to enable the firewall if you like, and make certain some ports are left option (such as for SSH). Finally, you can easily configure as many users as you like here, and also their passwords. I’m not crazy at the fact that you’re unable to add a user to more than one group at this stage, but in all my testing, it didn’t really seem to matter once I was in the OS (SUSE takes care of things apparently).

The Personalize tab is where things can get really fun. Here, you can customize the boot screen (and GRUB) background image, and also the logo to represent the distro. Ideally, formats with transparent backgrounds will give the best result, although I couldn’t find anywhere on their site that offered up a recommendation for the ideal dimensions for said images. You may have to go through some trial and error on that one. I’m no artist, so I left everything at default.

Depending on the base template you chose, the Startup page will offer different results under the runlevel options. Since I chose to go with a text-only template, I left things alone at “Normal console”. Also, if for some reason you feel like your distro should have an EULA included, you can add it here. This is most likely only to be used by businesses, especially if you choose to bundle special software or databases with the install.

Once you take a look under the Server tab, you’re likely going to be a little impressed. We’ve seen SUSE Studio offer a great deal of control up to this point, and this tab takes things even further. Here, you’ll be able to not only create MySQL users and add them to databases, you’re also able to import one to be ready for when the OS is either booted up via the Live CD/DVD or when it’s installed.

The final three tabs are rather simple compared to the others. Desktop allows you to choose whether or not auto-logon is enabled, and also for which user. If you want a desktop application to start up after you hit the desktop, you can configure that as well. The Storage & Memory tab matters only to those who plan on using their build with VMware or Xen, or with a thumb drive. Here, you can choose how large the partition should be and also how much RAM should be dedicated, in addition to the virtual disk size.

Finally, should you want some scripts to be run after the installation, you can configure it all on the Scripts tab. This should be useful if you took advantage of pre-installing applications, a database, or scripts, since you could easily change the permissions or ownership of each one. Another option would be to automatically add lines to various files on the PC, such as to auto-configure your SSH known_hosts file, or even to pre-configure a set of aliases in your .bashrc file. The sky’s the limit.

Building the Distro, Testing it Out

Once you’re satisfied with your hard work, you can move on over to the “Build” tab up top and choose from four different options. If you plan to install your build to a PC, your best bet is the Live CD/DVD (.iso) option. This will produce a disc image that can be burned… simple enough. Then there’s a disk image option, which allows you to copy the image to a thumb drive or similar external storage device. Be warned, though, because since it copies over an actual Linux installation, the storage device will be completely formatted.

For those looking to use their build as a virtual machine, you’re able to produce either a VMware or Xen image, which will allow you to test out your build very fast.

Once you decide on an option, clicking “Build” will perform the task right away. You’ll be greeted with a progress bar to give you an idea of how long the build process will take, and once it’s complete, you’ll be able to see how long it took. Because the process is performed on the SUSE Studio servers, as soon as you start it, you’re able to navigate away from the page and come back to it later.

Before you download the resulting build, you’ll have the option to take it for a test-drive, right through your web-browser. This functionality uses Adobe’s Flash technology at the forefront, so you’ll have to have that installed in order to take part in the feature. After clicking “Testdrive”, you’ll be brought right to a page that will automatically boot the OS for you.

At the top of the browser, you’ll have a time limit, which I assume is to make sure an inactive virtual OS isn’t hogging up server resources, and while using it, you can check the “Modified Files” section to see exactly which files on inside of the distro were altered during use. By default, networking is off, but you’re able to turn it on with some limitations, such as, no outgoing traffic.

Incoming traffic is fine, though, as you can see in the above photo SSH was started without issue. To test out that feature, I SSH’d in from my home PC, and within seconds, I was actually inside of the OS I just built… even before downloading it. Now that’s cool.

So let’s give things a good test, aye? After downloading my fresh VMware image, I loaded up VMware Workstation and opened it up. By default, the profile for the virtual machine is slim, but certain things like a Floppy drive is left enabled. So, you can remove it to save being nagged by the software when you first boot your new build up. You can also adjust the available RAM and other various things like that if you wish.

After booting, the first thing you’ll see is the GRUB boot screen, offering either a regular boot or a failsafe boot, along with keyboard and boot options. Nothing too surprising here. Had I been more artistic, it could have been my background and logo seen here!

For some bizarre reason, my very first boot brought on a strange issue… a disk error. This wasn’t a major roadblock, as a quick fsck solved things, but I did find it a bit odd to encounter. It could have been a fluke, or the fact that I accidentally rebooted the VM before it was fully booted the first time (that’s what I get for trying to get the best screenshots!). After fsck was complete, a reboot showed no further issues.

Because I had such a barebones installation, there wasn’t much I could do. “ping” didn’t even exist as a command, and neither did nano (I like it over vim, alright?), so for the most part, you couldn’t get much more slim than this. Thanks to me adding in Lynx earlier on though, that was indeed available, and as you can see below, I was quickly able to browse our website.

Of course, to give the service a good test, one can’t only build a single profile, so I played around and in total, built around eight. Only three I took seriously though, to see if there were any major problems that weren’t so apparent from my first build. After the JeOS build, I decided to try a rather bare KDE 4 installation, and bare is pretty much what I got. As you can see below, there’s not much on the PC past a default KDE 4 install, and even some of the icons in the Desktop Folder are broken (and didn’t work).

This isn’t so much the fault of SUSE Studio as it is my fault for not knowing what to install, however. As mentioned earlier in the article, when choosing a base template, it in no way could be considered bloated, because what’s not necessary simply isn’t included. Because of this, you’ll want to have a good understanding of which applications you’ll need to add in, in order to have a fully robust system. Even by default, there’s no installer included, for example. So if you build a Live CD without it, you’ll be unable to install. I learned from that mistake pretty fast!

As you’ll notice in the above shot, though, the deb2targz script I manually added into the distro copied itself over just fine, as it executes without an issue. The fonts for some reason are unbelievably small in the terminal, but part of that might be thanks to the fact that I was running it as a virtual machine.

Testing it Out Continued, Final Thoughts

One trick I discovered rather quickly was that after choosing a base template, the best thing is to take a look at the “Recommended” list of applications, and go from there. This list is different depending on the template you choose, so have no worries… it’s completely customized. From there though, you have the option of either adding in the entire list, or going through one-by-one, adding which seems important. If you utilize this list, chances are you’re going to be a lot happier with your final build.

After that idea struck me, I prepared a new build, this time GNOME-based, added in all the recommended applications/tools, and then went through one by one, removing what I didn’t find necessary. After I was done, I built another VMware virtual machine, booted up, and this time saw a sweet-looking OS, with nary a feature broken.

Although I don’t have accompanying screenshots (thanks to accidentally (this time for real) formatting a hard drive before I grabbed them), I built both a thumb drive image and also a Live DVD image to give things a test on my notebook. As you’d imagine, everything worked out fine, and I was at the desktop within just a few minutes. Installation was a total breeze (SUSE has one of the best installer programs around), and all the important boot switches for my Windows install were added as they should have been.

The only issue I encountered was the lack of of functioning wireless, and that’s no doubt due to the fact that I forgot (rather, didn’t know better) to include the appropriate packages in my build. I did some searching online for an answer, and really couldn’t find out what I overlooked, but I’ve no doubts it can be done. After all, we’re dealing with a distro that runs just fine on notebooks and has for a long while (I ran SUSE on my notebook before the likes of Ubuntu even existed).

Before I get too far off-track though, I should touch on the thumb drive aspect, because it’s a little bit different than you’d imagine. Some distros copy over to your thumb drive just fine, especially if their boot process is based around syslinux. SUSE Studio, however, outputs the build as a .RAW file, which must be copied byte by byte to either a thumb drive, or hard drive.

To copy things over, the best thing to do is use ‘dd’, regardless of whether you’re on a Linux or Windows machine (for Windows, you’ll need to download dd for Windows). Under Linux, I copied things over with this command:

dd if=Techgages_JeOS.x86_64-0.0.1.raw of=/dev/sdf bs=4k

if= allows you to specify the raw file, while of= is your device. Under Windows, the of= output would be something like of=e:, with the drive letter being the thumb drive or external storage device. Be warned though, that dd will overwrite the entire device, and because the .RAW file includes both an ext3 and swap partition, your device will result in something like this:

The key is to just be careful when copying the image to your thumb drive, and it’s absolutely imperative that you copy any data you need to retain off of the drive before doing this. Once you copy over the image, your data is likely to be unrecoverable, especially if it’s only a few gigabytes in size.

Final Thoughts

When I first learned of SUSE Studio, I couldn’t wait to give it a good test. After all, when designing your own distro is made this easy, what’s not to like? Well, I can say that after having used the service to a good extent, I’m still quite excited about all it offers, and I think if this service continues to become more refined, and similar services from other distros become available, there are going to be few complaints.

The big question comes down to who this service is useful for. I don’t at all believe that such a service is needed for the regular Joe, unless that person really wants to take ultimate control over their distro and wants an easy way to do it. While other distros, such as Gentoo, offer great control, SUSE Studio makes it far, far easier to get up and running with a desktop quickly.

Other benefits of this service include complete customization of the GRUB boot loader and also the splash screen, along with pre-configured software packages, users, networking, pre-run scripts, pre-imported MySQL databases, and so forth. There’s little in the way of blocking you from being able to create the distro you want. Although the benefits are few for the home users, I think where a service like this really shines is in the business environment. Being able to customize the distro to your company’s liking so easily is fantastic.

What makes usage of this service so enjoyable is simply the fact that it’s so robust. When I learned of the ability to build the distro I just built as a VMware virtual machine, I simply couldn’t believe it. The options are truly grand, and whether you want to install your customized distro on a netbook, a notebook or a desktop, via a thumb drive, CD/DVD-ROM or even a virtual machine, the choice is yours.

Throughout all my use, I really did find little to complain about. It took a few tries before I could produce a distro I was happy with, but that’s where the “Testdrive” feature comes into play. So, just don’t expect to sit down and have the perfect distro within minutes. It’s certainly going to take between an hour or two if you really want to get down to the nitty-gritty of things.

When all said and done, SUSE Studio is one heck of a service, and I look forward to seeing what improvements will be implemented prior to the final launch, and better yet, see just how well the service succeeds, as that will be the deciding factor as to whether the competition will follow.

Discuss this article in our forums!

Have a comment you wish to make on this article? Recommendations? Criticism? Feel free to head over to our related thread and put your words to our virtual paper! There is no requirement to register in order to respond to these threads, but it sure doesn’t hurt!

Copyright © 2005-2020 Techgage Networks Inc. - All Rights Reserved.