One of strengths of GNU/Linux is the proportional degree of freedom that enables the user to modify or recreate key components of the operating system. On Sept. 24, 2009 I attended the Intel Developer Forum (IDF), at the Moscone Center in San Francisco, California. During the morning lunch, informally chatting with an Intel employee who claimed to be involved in his organization's efforts in compiler development, I refuted his assertion that the multiplicity of GNU/Linux distributions was detrimental to the operating system commercial support. Rather, I said to him, the ability to modify the ubiquitous open source flagship is --if not its main strength-- a very compelling feature. Whatever the (commercial) target may be, I said, there is likely an Linux distribution ready to address the problem.
Indeed, I have not posted any blog entries in three(3) months, rather I have been getting soaked in microbloging techniques in Metztli IT account. It is in that fast-paced medium that I came across the topic that I hinted above, in the introduction. I am referring to SuSE Studio, the Novell SuSE online service that allows users to build Linux based appliances and/or custom Linux distributions. Pretty nifty, I thought.
Hence, I decided to give SuSE Studio a “spin.” I signed up to request an invitation, subsequently completed a questionnaire, and within a few minutes got a reply back inviting me to login with an account either from Novell, Google, Yahoo!, or OpenID. Recalling that I had suggested to my friend Metztli (yes, that is her name; I am not referring to my business organization) an alternative operating system to her Windows environment, I based my initial OpenSuSE build on something she might relatively find all set up -right “out-of-the-box.” Accordingly, I uploaded the IBM Lotus Symphony 1.3 RPM including the language pack. I wanted to test how well the finished automatic build integrated outside user applications.
Additionally, I uploaded an Metztli IT appliance logo and background ...little customization to test the procedure and outcome. Subsequent snapshots were taken to visually illustrate the procedure, though some of them were already uploaded to Metztli IT TwitPics -the visual complement to Twitter.
GATHERING OUR BUILD RPM ADDITIONS.
Upon my initial login into my SuSE Studio into the Start tab, I am prompted for an appliance name:
Subsequently, I selected the Software tab. Out of personal preference, I would elect to have the GNOME environment in the Patterns section (please note that there are only three(3) items in the Pattern container, i.e., is incomplete); however, out of consideration for my friend Metztli, I decided on KDE for a smoother migration from her proprietary environment. Oh, yes selected the icon/link Upload RPMs...
And I am directed at the Software sub-tab with two buttons; these will allow the builder to upload the RPMs from his local machine/storage or from a Uniform Resource Locator (URL). The former was my choice, as can be seen indicated with the pointer arrow.
The process of uploading the symphony-1.3.i586.rpm starts in SuSE Studio.
I perform the same upload operation on my local language RPM file symphony-nl1.3.586.rpm. In due time both files are uploaded.
I go back to the main Software tab by pressing the software overview link. Once at that location, there are at least a couple of ways to direct the builder to include the recently uploaded RPM packages: selecting the Uploaded RPMs box icon or searching for those in the (all) Packages list; of course, the first is suggested.
Proceed to add desired uploaded RPMs by pressing the appropriate button. Observe in the left pane, under Software changes, reflected the action undertaken. As can be seen the quantity will show the RPM expanded -i.e., in an uncompressed final state.
By selecting -under the section labeled Your appliance- the gears icon, To be installed, or preferably the check mark icon, Selected, it can be verified that both of our packages will be installed into our build.
CONFIGURING OUR INITIAL TEST BUILD ...GENERALLY SPEAKING.
Proceeding with the Configuration tab, we observe that in the General section, under Users and groups, there are defaults for the root or super user of our SuSE distribution, as well as a a single user. As in every software distribution where default user names and passwords are used, at the very least we should add some extra characters; there are crackers and script kiddies out there that are constantly probing web resources for forgetful or negligent administrators leaving default data credentials.
Please observe the default regular user in the bottom row as well as my slightly modified version –those are strictly for illustrative purposes. As can be observed with my pointer, besides the root user, you can increases the number of regular users; or decrease those by selecting the rightmost x on the row.
The Network and Firewall settings may also be modified by checking the appropriate boxes.
Next I modified the Default locale. From the drop down menu, I selected the Spanish language but left the English keyboard default.
The Default time zone came next and I modified it to reflect the USA Region and the Pacific (Los Angeles) Time Zone.
Under the Personalization section, an Appliance log may be uploaded –as well as a different Appliance background. Notice that selecting my logo, the preview shows approximately how it will appear in the finished product. Although subsequently uploaded an background[link?], it is still not reflected in the screenshot.
At the Startup section of the Configuration tab, we can see that there are five(5) runlevels to choose from (number 4 is omitted). I select number 5: Graphical Login; however, had I been building an appliance, obviously, I would select number 3: Normal console.
Additionally, if I desired to make the user accept an agreement, as precondition to use my appliance, I would select the Add a new EULA link.
Upon my selection of the Server section of the Configuration tab, I can verify that the SuSE Studio will lend a helping hand if we forget some (important) aspect of our appliance. For instance, checking the Configure MySQL database box, under Database configuration will activate an error message in the left pane of the screen; of course, we have not added the proper application and SuSE Studio provides an link for the user's remedial of the issue –cool!
The appliance builder will also appreciate the hints provided to prepare her database for the appliance consumer.
Proceeding to the Desktop section of the Configuration tab, there is an option to automatically login the regular user –if I check the small box. We are also offered the opportunity to add a script and automatically start desktop program(s).
The Storage & Memory section of the Configuration tab contains two subsections: Virtual appliance -for Xen and VMware formats; and Disk image -applicable format. In Virtual appliance subsection, the RAM size may be adjusted from the 512MB default, as well as the virtual disk size of 16GB default. And yes, the extended memory check box will enable more that 4GB of Memory. The Disk image subsection will only allow the modification to the Swap partition 512MB default size.
Finally the Script section of the Configuration tab will provide the option to Run a script at the end of the build or Run a script whenever the appliance boots. For instance, selecting this last option will provide the bare bones of Bash script to which the appliance builder should add the desired operation code.
A short note on the Overlay files tab is in order. Compressed or single files added using this tab resources “will be copied into the appliance after the packages are installed.”
BUILDING OUR VERY FIRST LINUX DISTRIBUTION
Chihuahua! We got to the Build tab of SuSE Studio. We can select the format for our appliance, or in this case, slightly customized OpenSuSE distribution. I may select either of four(4) formats: USB stick / hard disk image; Live CD/DVD (.iso); VMware/VirtualBox (.vmdk); or Xen virtual machine.
Since I am planning on installing this build on actual hardware, if my friend does not back down on her initial impetus, I selected Live CD/DVD (.iso) image. Upon that selection, notwithstanding, the Messages section in the left pane of the screen will provide a suggestion advising: Install Yast2-live-installer; else our OpenSuSE Live CD/DVD will not provide the option to install into actual hardware. SuSE Studio helpful hints and immediate remedial of this sort of beginner builder issues should indeed be appreciated.
Here is another screenshot of the above but with the suggested Yast2-live-installer package(s) already selected as verified in the left pane of the screen, under Software changes.
Hence, after pressing the green Build button next to the format of our Linux distribution, and waiting for a few moments, the bar under Builds section shows the progress of the OpenSuSE build procedure.
Note: we could have selected the server or any other supported SuSE Linux distribution; these latter options important for the commercial support required for an appliance vendor.
After the build is complete, we may Testdrive our CD/DVD image –without leaving SuSE Studio! As a matter of fact this is one of the Tips under Messages in the left pane of the screen for other formats testing prior to downloading.
Well, we can see that our Testdrive successfully boots to the Grand Unified Boot Manager (GRU splash screen; notwithstanding, please note the warning in the orange colored bar above our Testdrive splash screen: ...keystrokes sent are not encrypted. Obviously, although I have booted this build, I realize that any sensitive data should be entered through the secure shell (SSH); that is, entering (sending) login information through the graphical interface is a no-no.
Nevertheless, it is insightful for the Testdrive to show us that it can get until the user(s) login screen.
The networking tab of the Testdrive operation explicitly states: You will not be able to make outgoing connections. This effectively disables any SuSE Studio user thinking on abusing the Testdrive privilege.
Using Sun MicroSystems VirtualBox to Test Our OpenSuSE Live CD ISO Image
Noticing that GNU/Linux Debian repositories did not have a current 2.6.30 kernel modules for VirtualBox Open Source Edition (OSE) 3.0.6, I had to build my own modules. My intention was to test drive locally my recently downloaded OpenSuSE 11.1 with only the IBM Lotus Symphony 1.3 office productivity suite installed.
After my VirtualBox OSE application was built and installed, I proceed to boot from the OpenSuSE LIve CD ISO image.
And as in the previous SuSE Studio online TestDrive instance, I was able to boot into the screen prompting me for the username/password combination.
After my appropriate login credentials are accepted, OpenSuSE progress bar superimposes on the subsequent screen moving into the next phase...
Subsequently I am entered into the KDE Desktop (Escritorio in Spanish) and greeted with OpenSuSE Project splash screen:
Closing the splash screen, I proceed to find out if Lotus Symphony 1.3 has been installed appropriately by the SuSE Studio facility. Hence I open the applications tab.
As I proceed to open available installed applications, I can see that, of course, there are none other than the Symphony ornage/yellow icon.
Pressing the Symphony icon, and after a short time, I am presented with the IBM Lotus Symphony license agreement; enter the number one(1) to accept it and Symphony installation into the my home directory continues.
And I am able to write in English upon modifying language settings for the appropriate document instance:
Or write in Spanish -the default language selected in SuSE Studio when I built the OpenSuSE 11.1 for my friend Metztli. The language enabler module symphony-nl1.3.586.rpm is what enables Symphony 1.3 to write in other than English languages.
NOTE Although due diligence has been applied, the information may not be accurate under all circumstances.
By reading, analyzing, or using, the information provided at Metztli Information Technology, individual(s) and/or entity(ies) assume all risk. Consequently, please do not hold Metztli Information Technology,its associates, or myself, responsible if unforeseen effects are experienced. You are not obliged to use the information provided.
Metztli IT reserves the right to modify the procedure --including deleting the blog entry.