Difference between revisions of "COMP 3000 2011 Report: LinHES"

From Soma-notes
Jump to navigation Jump to search
Line 119: Line 119:
Of the 538 major packages that comprise the core of LinHES, only ten (10) 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:
Of the 538 major packages that comprise the core of LinHES, only ten (10) 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:
#Linux Kernel
#Linux Kernel
#*Version included:2.6.39<ref name = "Kernel Used">[http://linhes.org/cgit/cgit.cgi/linhes_pkgbuild/tree/abs/core/kernel26/PKGBUILD] LinHES PKGBUILD for Kernel. Retrieved on November 13, 2011.</ref>
#*Version included:2.6.39<ref name = "Kernel Build">[http://linhes.org/cgit/cgit.cgi/linhes_pkgbuild/tree/abs/core/kernel26/PKGBUILD] LinHES PKGBUILD for Kernel. Retrieved on November 13, 2011.</ref>
#*Current Version:3.1.1<ref name = "Kernel Build"> [http://www.kernel.org/] The Linux Kernel Archives. Retrieved on November 13, 2011.</ref>
#*Current Version:3.1.1<ref name = "Current Kernel"> [http://www.kernel.org/] The Linux Kernel Archives. Retrieved on November 13, 2011.</ref>
#*Version Difference: The Linux Kernel used is two versions behind the current version (both which were released on November 11). Since the most recent Kernel was only released two (2) days ago (as of November 13, 2011), it is incredibly likely that the lapse is only due to the short time since its release. This theory is further supported by the fact that the most recent release of LinHES was released on the same day (giving them no time to incorporate the new kernel).
#*Version Difference: The Linux Kernel used is two versions behind the current version (both which were released on November 11). Since the most recent Kernel was only released two (2) days ago (as of November 13, 2011), it is incredibly likely that the lapse is only due to the short time since its release. This theory is further supported by the fact that the most recent release of LinHES was released on the same day (giving them no time to incorporate the new kernel).
#*Modifications: PKGBUILD file is 286 lines of code (13kb). Likely had moderate modifications. <ref name = "Kernel Build"/>
#*Modifications: PKGBUILD file is 286 lines of code (13kb). Likely had moderate modifications. <ref name = "Kernel Build"/>
Line 130: Line 130:
#*Modifications: PKGBUILD file is 188 lines of code (7kb). Likely had low to moderate modifications<ref name = "Libc Build"/>.
#*Modifications: PKGBUILD file is 188 lines of code (7kb). Likely had low to moderate modifications<ref name = "Libc Build"/>.
#*Original 2.14 Source: [http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz here].
#*Original 2.14 Source: [http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz here].
#GNU Bourne Again Shell
#*Version included: 4.1 <ref name = "Bash build">[http://linhes.org/cgit/cgit.cgi/linhes_pkgbuild/tree/abs/core/bash/PKGBUILD] LinHES PKGBUILD for Bash. Retrieved on November 13, 2011.</ref>
#*Current Version: 4.2 <ref name = "Current Bash">[ftp://ftp.cwru.edu/pub/bash/FAQ] GNU Bash FAQs. Retrieved on November 13, 2011.</ref>
#*Version difference: There is only one (1) minor release between the version used and the current version. Since the current version was released long before the release of the current LinHES it is likely that they are simply waiting for major releases to bash before incorporating them since it plays such a small role in the overall running of the system.
#*Modifications: PKGBUILD file is 69 lines (3kb). Likely minimal modifications<ref name = "Bash Build"/>.
#*Original 4.1 Source: [http://mirror.csclub.uwaterloo.ca/gnu/bash/bash-4.1.tar.gz here]


===Initialization===
===Initialization===

Revision as of 19:46, 13 November 2011


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 or 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. 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, much faster than most operating system (which it should be since you cannot 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"/>. And 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 ten (10) 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:

  1. Linux Kernel
    • Version included:2.6.39<ref name = "Kernel Build">[10] LinHES PKGBUILD for Kernel. Retrieved on November 13, 2011.</ref>
    • Current Version:3.1.1<ref name = "Current Kernel"> [11] The Linux Kernel Archives. Retrieved on November 13, 2011.</ref>
    • Version Difference: The Linux Kernel used is two versions behind the current version (both which were released on November 11). Since the most recent Kernel was only released two (2) days ago (as of November 13, 2011), it is incredibly likely that the lapse is only due to the short time since its release. This theory is further supported by the fact that the most recent release of LinHES was released on the same day (giving them no time to incorporate the new kernel).
    • Modifications: PKGBUILD file is 286 lines of code (13kb). Likely had moderate modifications. <ref name = "Kernel Build"/>
    • Original 2.6.39 Source:here
  2. GNU C Library
    • Version Included: 2.14 <ref name = "Libc Build">[12] LinHES PKGBUILD for libc. Retrieved on November 13,2011.</ref>
    • Current Version: 2.14 <ref name = "Current Libc">[13] GNU Official Site. Retrieved on November 13,2011. </ref>
    • Version Difference:None
    • Modifications: PKGBUILD file is 188 lines of code (7kb). Likely had low to moderate modifications<ref name = "Libc Build"/>.
    • Original 2.14 Source: here.
  3. GNU Bourne Again Shell
    • Version included: 4.1 <ref name = "Bash build">[14] LinHES PKGBUILD for Bash. Retrieved on November 13, 2011.</ref>
    • Current Version: 4.2 <ref name = "Current Bash">[15] GNU Bash FAQs. Retrieved on November 13, 2011.</ref>
    • Version difference: There is only one (1) minor release between the version used and the current version. Since the current version was released long before the release of the current LinHES it is likely that they are simply waiting for major releases to bash before incorporating them since it plays such a small role in the overall running of the system.
    • Modifications: PKGBUILD file is 69 lines (3kb). Likely minimal modifications<ref name = "Bash Build"/>.
    • Original 4.1 Source: here

Initialization

References

<references/>

Part III

Due: December 5, 2011