Home > MDD > Open Source Software

NLS: That All May Read

Materials Development Division

Open Source Software

The Materials Development Division has developed software to support the deployment of the Digital Talking Book system.

This software is for the use of Network Libraries supporting the NLS program. It is also made available to NLS contractors and any other non-profit or commercial entity who wishes to build equipment for sale to libraries.

It is provided as free open source software and is provided under the terms of the license printed below. Use of this software or of the algorithms embodied in the software by NLS contractors does not in any way alter the responsibility of the contractor to adhere to NLS specifications relevant to the contract.

Gutenberg Cartridge Duplicator

NLS has developed an efficient and inexpensive duplicator for Digital Talking Book cartridges (DTBC). The system is called Gutenberg and is based around a personal computer running the Linux operating system.

Gutenberg is designed to be used when multiple copies of books or many different books must be duplicated. It can be used for single book copies, however simpler solutions exist using existing PC software for this task.

Gutenberg:

  1. Will allow the duplication of up to 20 cartridges simultaneously
  2. Will write enable and write protect DTB cartridges.
  3. Will duplicate directly from zip files downloaded from BARD
  4. Has associated scripts to download and prepare images of DTBs for use with the duplicator.

Download Code

Hardware Requirements

There are two incantations of Gutenberg. The first uses an existing PC with an installed operating system. In this mode the Linux operating system and all required software for gutenberg are installed on an external USB hard drive. When the duplicator is to be used, the PC is rebooted and directed to boot off the external hard drive rather than the internal disk. This arrangement has the advantage of using existing IT infrastructure and is ideal if the duplicator is not required as a dedicated appliance.

For this scenario the hardware requirements are:

  1. An existing PC, with more than 512 MB of memory, a network connection, USB ports and the ability for the BIOS to boot from an external USB drive. (Any existing software and operating system on the internal had disk is not altered.)
  2. USB hubs (one, two, three or four)
  3. USB extension cables or the NLS 'toast rack' DTB cartridge fixture.

NLS has tested this system with several Dell desktop PCs and Dell and Sony laptops. It is expected that most modern computers could be configured to boot from an external USB hard drive and thus be used as a duplicator.

The second form of the duplicator is one using a dedicated computer (as shown in the picture below). The dedicated duplicator has linux installed onto the internal hard drive.

The dedicated duplicator hardware requirements are:

  1. An PC, with more than 512 MB of memory, an internal hard drive, a network connection and USB ports.
  2. USB hubs (one, two, three or four)
  3. USB extension cables or the NLS 'toast rack' cartridge DTBC cartridge fixture.

NLS has tested this system with several Dell desktop PCs and with the Asus EEE Box and Asus EEE netbook.

Duplicator Example

Operating System Requirements (Linux)

The operating system under which MDD has developed Gutenberg is the Fedora distribution of Linux. Specifically the current release uses Fedora 14 or 15 however any current Linux distribution (Suse, Ubuntu etc) could be used. Some modification of the scripts and code may be required with distributions other than Fedora 10.

Software components

In addition to an installed Linux system, the following components are required (and installed with the RPM distribution):

  1. gutenberg - The executable program (installed in /usr/local/bin)
    This is the main application and contains the Graphical User Interface to control the duplicator.
  2. 52-gutenberg - UDEV rules (installed in /etc/udev/rules.d) to recognize a library cartridge upon connection to prevent the drive from automatically mounting and displaying a directory listing.
  3. gutenberg-UFD - usb-storage kernel module parameters (installed in /etc/modprobe.d) to speed up recognition of USB flash devices upon connection.
  4. mkvfat - bash script to create a vfat cartridge image from a directory of files. (gutenberg uses a cartridge image not individual book files)
  5. zip2vfat - bash script to create a vfat cartridge image from a zip file (previously downloaded from NLS)
  6. bard2vfat - bash script to download a book and create a vfat cartridge image. (uses the DB number to identify the required book on BARD)
  7. mkvfat - bash script to create a vfat cartridge image from a directory of files. (gutenberg uses a cartridge image not individual book files)

Installation

  1. Install the latest "Fedora" distribution of Linux by following the instructions at: http://getfedora.org.
  2. Install msdos tools and unzip with the dnf installer (if not already installed)
    # dnf -y install dosfstools unzip
  3. Enable the NLS/BPH program repository:
    # dnf -y install http://engineering.nlsbph.org/repo/LoCrepo-1.0.2.noarch.rpm
  4. Install gutenberg:
    # dnf install gutenberg
  5. Connect the USB hubs (one for each column of 5 cartridges (toast rack) to be duplicated.
  6. Run gutenberg as 'root' (required to enable write protection/enable to function):
    $ sudo /usr/local/bin/gutenberg
    or
    $ su -
    # /usr/local/bin/gutenberg
  7. Press F3 to configure the hubs. Select the root hub and the ports on the root hub that the external hubs are plugged into.

To update Gutenberg once it has been installed, use the command:
# dnf update gutenberg

Please note that since version 2 of Gutenberg, DTBs packaged as ZIP files can be duplicated directly without the need to produce an image file as described above.

Development Environment

Gutenberg is written in C and compiled by the GNU C compiler. The development environment used in writing gutenberg was Eclipse. The source code is available from the NLS/BPH Materials Development Division.

Gutenberg screenshot

Software License

This program is a work of the United States Government.
Per 17 U.S.C. § 105 this work is not copyrighted within the United States of America.
Outside the U.S.A this work is copyright © 2006-2011, The Library of Congress.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the the Library of Congress, the United States Government nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE LIBRARY AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNITED STATES GOVERNMENT AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Library of Congress Home      NLS Home     Comments about NLS to [email protected]     About this site      Legal     Comments about this site to the NLS Reference Section

Posted on 2016-08-12