COMP 3000 2011 Report: LinHES

From Soma-notes
Jump to navigation Jump to search

A screenshot of LinHES' start up splash screen

Name: LinHES

Developer: Cecil Watson

Latest Stable Version: 6.04<ref name = "Current">ftp://linhes.org/R6/Current/</ref>

Website: http://www.linhes.org/bugs/

Part I

Background

LinHes (Linux Home Entertainment System) is, as the name suggests, a Linux based distribution intended for home theater PC use<ref name = "LinHES Wiki">[1] Lang, J.-P. (2011, October 18). Wiki. Retrieved October 18, 2011, from LinHES Official Site: http://www.linhes.org/bugs/projects/linhes/wiki</ref>. The primary functionality of LinHes is built around MythTV (an open source, freeware alternative to products like Tivo and Windows Media Center)<ref name = "MythTV Wikipedia">[2] Wikipedia contributors. "MythTV." Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 22 Sep. 2011. Web. 19 Oct. 2011</ref>. One of MythTV's biggest complaints is the complicated nature of its setup and installation. LinHES aims to correct this issue with its operating system. The primary goal of LinHES is to provide a simple easy to use interface for MythTV and to streamline its setup into a more accessible process<ref name = "LinHES Wiki"/>. In order to make installation and setup as easy for the user as possible, LinHES is compatible with most standard home theater PC hardware, much of which is configured automatically by LinHES <ref name = "KnoppMyth Wikipedia">[3] Wikipedia contributors. "KnoppMyth." Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 31 May. 2011. Web. 19 Oct. 2011</ref>. As an added bonus to users who want an especially easy setup, there are specific high performance hardware bundles listed on the website and forums that have been tested with LinHES and are guaranteed to work properly, easily and effectively<ref name = "KnoppMyth Pamphlet">[4] Watson, C. H. (2011, September 14). The Pamphlet of KnoppMyth. Retrieved October 18, 2011, from My Set Top Box: http://mysettopbox.tv/pamphlet.html</ref>.

LinHES is developed by Cecil Hugh Watson<ref name = "KnoppMyth Wikipedia"/>. The first release was in August of 2003 under the name KnoppMyth <ref name = "KnoppMyth Wikipedia"/>. KnoppMyth refers to the fact that until recently the operating system was based on Debian Linux with configuration scripts from the Knoppix Linux distribution. Since its release LinHes has gone through about a dozen major and minor versions <ref>http://www.knoppmyth.net/CHANGELOG.txt</ref>, although officially its most recent release is referred to as release 6. LinHES retained the KnoppMyth name from its creation right up to its most recent version (release 6). For release 6 KnoppMyth was modified to an architecture loosely based Arch Linux. This architecture change prompted Cecil Watson to rename KnoppMyth to a more generic name, descriptive of its purpose opposed to its architecture. On his original KnoppMyth site, Cecil Watson mentions that LinHES "is what [he] called [his] home entertainment system"<ref name = "KnoppMyth Pamphlet"/>.

LinHES can be downloaded from its official website's downloads page. This page includes the most recent stable release (release 6) as well as beta releases for release 7. Release 6.04 (the current stable release) is 682<ref name = "Current"/> megabytes. Although the exact size varies slightly between versions, most are roughly 700 megabytes in size (generally just under 700 megabytes).

Installation/Startup

The installation type menu

Before LinHES even begins the boot up process, the user is presented with some special customization options for LinHES. These options include things as trivial as removing the splash screen from the installation to much more useful options like configuring the installation to a specific recommended hardware system. The complete list is:

  • LinHES (default)
  • LinHES without splash screen,
  • Special Hardware (which takes the user to a list of hardware options)
  • Debug Options (which takes the user to a list of specific debug options)
  • Boot from local drive

As a first time user, unfamiliar with the system, I will be sticking to the LinHES (default) installation route for the remainder of this report. Once this option is selected, the kernel is booted and the user is taken to a installation type menu (shown on the right). From here you have the option to:

  • Install or Upgrade
  • Run MythFrontend
  • Exit
  • Close menu

First Install Menu Options

We will proceed with the "Install or Upgrade" option. Next the available hard drives on your system and their sizes will be listed and you will be asked to select which one you want to install to. You will then be asked to specify whether you are upgrading an older version or installing a new one and some addition hard drive space usage and file system preferences. These options are presented in a simple drop down menu screen (pictured on the left). I set the installation type to "Full/Auto" and left the rest of the options as their default values (as these details are trivial in regards to the operating system as a whole). The next step is to specify your internet options:

  • Wireless or Wired
  • Static or Dynamic IP
  • Network device
  • Hostname

Once again, my exact choices are irrelevant to this report. Next you will be asked to specify the type of system you are installing. You are given the following choices (the descriptions given by LinHES are given beneath each option):

  • Standalone
Complete system that doesn't allow outside connections.
  • Frontend_only
Frontend only, needs a master backend already on the network
  • Master_backend
Tuners, scheduling and database. This allows for remote frontend and slave backends.
  • Slave_backend
Extra tuners

Time Zone Selection Screen

As this was my first installation and a did not have multiple computers that I wanted to access the system, I selected Standalone. The next option is your resolution (800x600(SD),1280x720(HD),Auto). You may also setup a remote at this menu, if you have one. Since I do not own a remote I simply set the resolution to "Auto" and then selected finish. At this point you are treated to a retro image of the globe (pictured on the right) while you select your time zone, if LinHES cannot auto-detect one. After a few more irrelevant options menus (Network File System options if your media is stored on a remote NFS share, whether you want automatic updates and user account settings) you will be presented will one last chance to confirm installation. From here LinHES completes the install on its own and reboots when complete.

Basic Operation

The main options menu. All other menus have the same general look.

The interface of LinHES is meant to resemble a console interface, such as you would find on TV service menus (start up options menu pictured to the right). This menu is only shown on start up the first time you boot the system; it is just meant to configure some of the final details of your system (file locations, etc.). From this menu you have the following options:

  • General
This contains all the options for LinHES across multiple menus (such as Locale Settings, Shutdown/Wakeup Options etc.)
  • Capture Cards
This allows you to setup the capture card on your system, if you have one, to work with LinHES.
  • Video Sources
This allows you to setup the video sources you want to be able to view on LinHES.
  • Input Connections
This allows you to manage the various input sources you may have connected your LinHES.
  • Channel Editor
This allows you to allocate video sources to channels on LinHES (from a TV tuner or other sources) and set how you would like the channel in filter your feed, the specific display setting and general channel information.
  • Storage Directories
This allows you to specify groupings for the video sources on you system (live TV,trailers etc.)

Once you have finished specifying your options, press the escape key to be redirected to the main menu. The main usage menu lists the following options (no descriptions will be given as these options are self explanatory):

  • Watch TV
  • Media Library
    • Watch Recordings
    • Watch Videos
    • Listen to Music
    • Play Online Streams
    • Image Gallery
    • Play Games
  • Manage Recording
    • Schedule Recordings
    • Recording Rules
    • Upcoming Recordings
    • Previously Recorded
    • Set Priorities
  • Information Center
    • News Feeds
    • Weather
    • System Status
    • Hardware Profile
  • Optical Media
    • Play DVD
    • Play VCD
    • Archive Files
    • Import video files from DVD
    • Import CD
    • Eject media
  • Service Menu
    • MythTV configuration
    • LinHES configuration
    • Backup LinHES
    • Restore LinHES
    • Upgrade LinHES

As I do not have a TV tuner, a capture card or cable I was not able to fully enjoy all the features of LinHES. However, since using these features would mainly consist of me watching TV this did not reduce my ability to assess LinHES' operation. I was still able to watch DVDs, listen to music, watch online streams, play games and enjoy many other features. One feature I found particularly fun was the "Play Online Stream" option. This option contains a sub-option of "Apple Trailers", which lists all the trailers from the Apple Trailers website in a handy alphabetical list (which can be traversed very quickly). When selected the trailers are fully loaded (to save the user from buffering during playback) and then played automatically when ready. Upon completion LinHES returns to the trailer list again. The play games menu option was also very interesting. Unlike most home theaters, LinHES still maintains the gaming power of any PC and includes the options the play standard PC games as well as emulate games from older console systems (assuming you own the original, otherwise this would be illegal). Included are emulators for MAME,NES and SNES. All games are played the same as you would on any PC with the keyboard and mouse. LinHES also includes a variety of other menu settings if you are not happy with the default (including some that are optimized for widescreen televisions). Most of the other features act fairly predictably, which is a very good thing in this case, as entertainment systems should make all their options clear and intuitive for easy use.

Usage Evaluation

Overall, I was very happy with the performance of LinHES. Its interface was simple and elegant. It did not feel cluttered or over categorized to the point of tedious menu traversal. In many ways I would say that LinHES goes above and beyond its goal of providing an easy to use home theater PC setup. Not only does it do everything you would expect a media center to do, it has many features that you would not expect to find in alternative media centers that provide a more complete multimedia experience. In addition the installation process was fairly painless; LinHES walks you through the more complicated options and can be up and running in no more than 20 minutes. The boot up time was also very fast. I found the boot up time to be much faster than most operating system I have dealt with in the past. However, this is not surprising since you cannot do as much on a home theater as a standard PC. As a final note, I am quite fond of the interface's look. It was nicely laid out and used a pleasing color scheme that I would be happy to see every day when I used it.

References

<references/>

Part II

Software Packaging

Since current versions of LinHES are based on Arch Linux, the packaging format used is pkg.tar.xz. This package format uses the Pacman packaging utility to manage packages<ref name = "Build a LinHES package">[5] Lang, J.-P. (2011). Retrieved November 13, 2011, from LinHES Official Site: http://linhes.org/bugs/projects/linhes/wiki/Build_a_LinHES_Package</ref><ref name = "Package Formats">[6]Wikipedia contributors. "Linux package formats." Wikipedia, The Free Encyclopedia. Wikipedia, The Free Encyclopedia, 9 Aug. 2011. Web. 13 Nov. 2011.</ref>. The detailed specifics of how to use Pacman to manage packages can be found here. However, as a brief overview several of the primary operations that can be performed with Pacman will be outlined in this section. Pacman does not have an official GUI interface, thus all the following operations will be outlined using command line inputs. To get a list of installed packages on your system simply type pacman -Q.<ref name = "Pacman">[7] Wikipedia Contributors. (2011, November 10). pacman. Retrieved November 13, 2011, from ArchWiki: https://wiki.archlinux.org/index.php/Pacman</ref>. A package can be added using one of two different ways, depending on if you want to install a single package or a package group. To install a single package type pacman -S package_name1 package_name2 ... (with your desired package names substituted in for package_name1 and package_name2 etc.)<ref name = "Pacman"/>. A package group can be installed using the same command with the package name replaced by a package group. For example, "pacman -S myGroup" would install all the packages in the group named myGroup<ref name = "Pacman"/>. You can see what packages belong to a group by running pacman -Sg myGroup<ref name = "Pacman"/>. To remove a single package and leave all of its dependencies run pacman -R package_name<ref name = "Pacman"/>. To remove a package and its dependencies which are not required by another installation package run pacman -Rs package_name<ref name = "Pacman"/>. To remove a package, its dependencies and all the packages that depend on that package run pacman -Rsc package_name<ref name = "Pacman"/> It should be noted that this operation is recursive and could remove many needed packages. The available packages for LinHES fall into two categories: Core (the set of packages needed to create a fully functioning system) and Extra (packages used by LinHES but not necessarily needed to create a fully functioning system)<ref name = "LinHES Build README">[8]LinHES Build README. Retrieved November 13, 2011. </ref>. As of November 13, 2011 the Core contains 538 packages and Extra contains 315 packages (making a total of 853 packages available in the software catalog for LinHES)<ref name = "LinHES PKGBUILD">[9] LinHES PKGBUILD Repository. Retrieved on Novemeber 13, 2011.</ref>. A full list of the available packages can be viewed here.

Major Package Versions

Of the 538 major packages that comprise the core of LinHES, only 11 of the most important ones will be discussed here. When discussing the how much the authors have modified the package used, the PKGBUILD file is observed. It stands to reason that the more code included in the PKGBUILD file, the more the authors have modified the package. The packages are as follows:

Package Version Latest Official Release Official Source
Linux Kernel 2.6.39<ref name = "Kernel Build">[10] LinHES PKGBUILD for Kernel. Retrieved on November 13, 2011.</ref> 3.1.1<ref name = "Current Kernel"> [11] The Linux Kernel Archives. Retrieved on November 13, 2011.</ref> 2.6.39: here
GNU C Library 2.14 <ref name = "Libc Build">[12] LinHES PKGBUILD for libc. Retrieved on November 13,2011.</ref> 2.14 <ref name = "Current Libc">[13] GNU Official Site. Retrieved on November 13,2011. </ref> 2.14: here
GNU Bourne Again Shell 4.1 <ref name = "Bash build">[14] LinHES PKGBUILD for Bash. Retrieved on November 13, 2011.</ref> 4.2 <ref name = "Current Bash">[15] GNU Bash FAQs. Retrieved on November 13, 2011.</ref> 4.1: here
Qt Framework 4.7.3 <ref name = "Qt build">[16] LinHES PKGBUILD for Qt. Retrieved on November 13, 2011.</ref> 4.7.4 <ref name = "Current Qt">[17] Qt Downloads Page. Retrieved on November 13,2011. </ref> 4.7.3 : here
gzip 1.4 <ref name = "Gzip build">[18] LinHES PKGBUILD for Gzip. Retrieved on November 13,2011.</ref> 1.4 <ref name = "Current Gzip">[19] GNU Gzip downloads page. Retrieved on November 13,2011.</ref> 1.4: here
grep 2.9 <ref name = "Grep build"> [20] LinHES PKGBUILD for Grep. Retrieved on November 13,2011. </ref> 2.9 <ref name = "Current grep"> [21] Grep downloads page (Canadian Mirror). Retrieved on November 13, 2011. </ref> 2.9: here
vi 050325 <ref name = "Vi build"> [22] LinHES PKGBUILD for vi. Retrieved on November 13, 2011. </ref> 050325 <ref name = "Current vi"> [23] The Traditional Vi. Retrieved on November 13, 2011. </ref> 050325: here
which 2.20 <ref name = "Which build">[24] LinHES PKGBUILD for which. Retrieved on November 13, 2011. </ref> 2.20 <ref name = "Current which"> [25] Which download page. Retrieved on November 13, 2011. </ref> 2.20: here
mailx 8.1.1 <ref name = "mailx build"> [26] LinHES PKGBUILD for mailx. Retrieved on November 13,2011. </ref> 8.1.1 <ref name = "Current mailx"> [27] Arch Linux mailx download page. Retrieved on November 13,2011. </ref> 8.1.1: here
MythWeb (Web Interface for MythTV's Backend) 0.24 <ref name = "mythweb build"> [28] LinHES PKGBUILD for MythWeb.

Retrieved on November 13,2011. </ref>

0.24 <ref name = "current mythweb"> [29] MythTV official site. Retrieved on November 13, 2011. </ref> 0.24: here
Pacman 3.5.3 <ref name = "pacman build"> [30] LinHES PKGBUILD for pacman. Retrieved on November 13, 2011. </ref> 3.5.4 <ref name = "current pacman"> [31] Pacman homepage change log. Retrieved on Novmeber 13, 2011. </ref> 3.5.3: here

Version Difference Rationale

Linux Kernel and Utilities

For the kernel itself and all standard linux utilities included with LinHES, the most recent version available at the time of LinHES' version release was used. They clearly used the most recent version because it was the most recent. No further rationale is necessary to justify this decision. In the cases of the two utilities that don't use the most recent version, it is only a minor release that separates the included version from the most recent version. In these cases the version was likely used simply for simplicities sake. The developers likely did not want to go through the trouble of changing the version when the differences would not be noticeable. In terms of modifications to all of these packages, it would appear from examining the PKGBUILD files that no major changes were made. LinHES does not do almost anything that exceptionally different from other distributions. Its advantages come from the ease of use and minimalist design for home theater purposes. To achieve this no major changes to any of the core functionality of linux likely had to be made.

Other packages

For all of MythTV's included packages the most recent version was used. Although the reason for this is clearly because it was the most recent version, it is especially important that the most recent versions were used in this case. The core functionality of LinHES centers around MythTV and to include anything less than the most recent version would defeat the purpose of the distribution. The package itself does not appear to have been modified from its original as the purpose of LinHES was simply to streamline the installation and use by providing some abstraction and not modifying its functionality. The lack of modification can be seen in the PKGBUILD files for the MythTV packages. The Qt framework included only has one minor version difference between the most recent version. This was, once again, likely to have been used simply for ease of incorporation on the developers' part (not to create more work for themselves that would not noticeably affect operation of the distribution. Qt also does not appear to have any major changes when you examine the PKGBUILD file for that package.

Initialization

Verbose Start Up

According to the LinHES page on ArchWiki, "LinHES uses /etc/runit/1.local for startup scripts"<ref name "ArchWiki">[32] Wikipedia Contributors. (September 21 2011). LinHES. Retrieved November 13, 2011, from ArchWiki:https://wiki.archlinux.org/index.php/LinHES</ref>. From this and the verbose boot up screen I can conlude that the first 5 process run are:

  1. UDev Daemon
  2. MythVantage-modules
  3. standard ACPI modules
  4. UDev uevents
  5. Mysql

In order to start up these processes LinHES also mounts the local filesystem, activates swap and various other system tasks. Only the first 4 process mentioned are started from /etc/runit/1. This file starts the first 4 process and does some required system setup. LinHES then leaves /etc/runit/1 and uses /etc/runit/2 to start up the rest of the system. A Photoshopped image of the full verbose start up screen's commands can be viewed to the right.



References

<references/>

Part III

Due: December 5, 2011