Recent Changes - Search:
 Welcome to the Cisco Academy for Vision Impaired Linux Wiki.

PmWiki

edit SideBar

Eyes-FreeLinuxInstallationUnderWindows

Eyes-Free Linux Installation Under Windows

A Comprehensive Guide

By Deborah Armstrong

The goal is to install a command-line Linux on your Windows PC without sighted assistance. You will be using Windows and your favorite screen access solution to work with the Linux console. You can use Braille, speech or screen enlargement. This guide can be followed by a person who is both deaf and blind,because everything can be accomplished with a Braille display.

Here are the things you will not be doing in this guide:

  • Installing Linux on separate hardware.
  • Using a Linux-based screen reader.
  • Working with the Linux graphical user interface.
  • Learning about RedHat or its derivitives.

All of the above tasks are quite doable without sighted assistance, however this guide does not cover them. There are many alternate paths to get Linux up and running so feel free to explore other solutions! The end of this guide, however, contains two brief appendices on using Linux screen access during the installation process.

The Nine Steps You'll Follow

The overall plan is:

0) Get some background info -- a step you can skip if you know this stuff already.

  1. Download/install VmWare Player. Install JAWS scripts if desired.
  2. Install and set up ports with the null-modem emulator. Windows will think they are real

hardware serial ports cabled together.

  1. Instal terminal emulators. TeraTerm is necessary, but PuTTY is nice to have and will not conflict.
  2. Use the terminal emulators to confirm you can communicate between virtual ports.
  3. Download the Ubuntu or Debian iso.
  4. Skim the table of contents for the Debian and/or Ubuntu installation guides. Later, if problems occur, you'll know where to look.
  5. Create a virtual machine attached to the iso. Add a virtual serial port to the default configuration.
  6. Run your terminal emulator, boot the virtual machine, and commence with the install.
  7. Set up the system so you can connect to it without the serial port, using the network instead.

What You'll Accomplish

After you finish this guide you will know:

  • The steps for installing a Debian-based distro.
  • The basics of using a virtual machine for testing and troubleshooting.
  • How to work with the Linux console using terminal emulation.

If you succeed with this guide you will be able to more easily install Linux on real hardware or walk another person through the process. Even if you are helping someone work through the graphical installer, you will have some knowledge of how the installation proceeds.

You will also have the ability to use a virtual machine to test out a Linux installation.

Even if you fail with this guide, you will learn something useful about how the install process works and Linux troubleshooting in general. Linux is under constant decentralized development, has bugs and changes without accompanying documentation getting updated. So if it refuses to work, try something else.

Assumptions

All software mentioned in this guide is free to download. However, some asumptions about your level of knowledge are made. This guide asumes you know:

  • How to use Windows and your screen access program.
  • How to search the net for additional information.
  • How to create directories, move and copy files and find things on your Windows system.
  • How to download and install software under Windows.

This guide asumes no previous experience with Linux.

You should read through this entire guide before beginning if your tolerance for frustration is low. If you enjoy a more trial-and-error approach to learning, feel free to simply attempt each step as you read about it. Be aware that if you skip over information you might miss something you could need later on.

About the Author:

Deborah Armstrong is the alternate media specialist at De Anza college in Cupertino, California. Though she works just two miles from the Apple campus, she knows nothing about Macs. She is an advanced Windows user and dabbles with programming in her free time. She started fooling with Linux in her garage in 2003, and has steadily attempted to improve her system administration knowledge. Contact her at debee AT jfcl DOT com.

Step 0: Background

Linux is a free and open operating system that mimics Unix. It fully controls your computer, giving users the ability to do everything they can in Windows, or on a Mac.

Unlike these other operating systems, Linux is at its most basic level command-line and text-based. Graphical user interfaces run on top of the "console" interface so even when they are not accessible a blind or visually impaired user, as well as a remote sighted user can always access the system through a character-based interface.

Linux has many flavors, called Distributions. Unlike Windows owned by Microsoft or the Mac, controlled by Apple, Linux is created, updated and maintained through a world-wide network of volunteers. Many of these developers have their own ideas about what kind of Linux they want, and so distributions (called distros for short) proliferate.

This guide focuses on two distros, Ubuntu and Debian.

Debian is older, some say stogier, with a strong base of users and developers. It has rigorous practices for how applications should be packaged and the kinds of software which can be included in the system. Debian is conservative about its release cycle, and does not have a regularly scheduled new release.

Ubuntu is based on Debian. Note that many other distros are also Debian-based but are not covered here. Ubuntu is newer, flashier and has more of the modern software that the average user is considered to want. Ubuntu has a strong community of supporters, and web-based forums for getting assistance. Ubuntu has an aggressive release cycle; every six months a new version is out. Often documentation doesn't keep up with the new releases, and new versions often introduce new bugs as well. On the flip side, the community works hard to fix these bugs, but sometimes it takes some hunting online to locate those fixes.

Since its first inception in 1991, Linux has been running on PCS of all sizes and abilities. But in the past few years, more and more users have turned to running it regularly on virtual machines.

A virtual machine is a computer emulated in software. For this guide, we will use just one of the many virtualization solutions: VmWare. The free VmWare player will emulate a PC while running under Windows.

A serial port is an old-fashioned hardware interface used to connect a computer to either another computer, a printer, or a test instrument in a labratory. It is similar to USB and was in widespread use before the USB interface existed. It was used to connect computers before networks and the internet became ubiquitous.

In this guide, we use another kind of emulator, a serial port emulator. This makes software on your PC believe it is communicating with real hardware: a physical serial port. But in fact, the emulation lets you use your Windows screen reader to access Linux through a terminal.

Terminals were also hardware beasts originally. Using either a network or serial ports they enabled multiple users to share a single mainframe or minicomputer. The terminal acted as the keyboard and screen.

We are using terminal emulation in this guide as well.

So basically we have a pretend PC that is connected to ersatz serial ports that we communicate with using an emulated terminal. All of this is accomplished in software, though it mimics hardware that was originally used for the same purpose.

We are going through all this effort because we need to use a Windows screen access program to work with a Linux-based installation program. A sighted person would simply walk up to a machine, pop in an installation CD and read the installation screens as they appeared.

As blind and visually impaired users, we'd like to independently learn Linux too, but we need to take some extra steps to be able to read those mostly inaccessible installations.

Another piece of hardware we are virtualizing is a CD-ROM. When you install Linux on real hardware, you typically download an ISO, which is a full image of a file system that can be burned to CD.

Burning a CD isn't necessary, because given an ISO, VmWare can simply treat it as if it were a CD-ROM drive.

The programs that comprise a distro are called packages. This is because they've been "packaged up" for that distro with all the relevant installation and post-installation configuration scripts that distro needs.

Another term you need to know is mirror. A mirror is simply an internet site that contains the files for a distribution. An installation routine will often grab files from the closest mirror instead of keeping them on the CD. This requires internet access for the user doing the installation, but ensures the most current programs are installed and that the size of the files to install stays manageable.

Lastly, it's good to be familiar with the term ssh, which defines the most popular protocol for communicating with a Linux system over a network. Whether the machine is on the other side of the globe or simply in the next room, you can ssh in to Linux using terminal emulation, as if you were cabled to the machine directly.

Step 1: download/Install the VmWare Player

You can certainly download the VmWare Player directly from the VmWare site at: https://my.VmWare.com/web/VmWare/evalcenter?p=Player&lp=default

But, you'll need to register a free account and use your password to access the downloads.

Many other download sites on the net also offer the VmWare Player. However, there is no guarantee that the latest version is accessible. If you want success, try downloading VmWare Player from the Cisco Vision Acadamey For The visually Impaired's cucat site where an older, but nicely accessible version is available:

	http://www.cucat.org/class_notes/Linux_admin/vmstuff/VmWare/

The very oldest (version 2) Player is most suitable for netbooks and slow machines. However, it won't let you create your own virtual machines. The various incarnations of Player versions 3 and 4 will. Version 3 has been extensively tested with screen access. You will also find some JAWS scripts for VmWare Player in the cucat directory. They were zipped with the 7Z compression scheme native to the 7-Zip utility.

The home for these JAWS scripts is at:

	http://mysite.verizon.net/marangs/VmWare.html

Here are additional links from the VmWare site that have proven to work in the past:

	http://downloads.VmWare.com/d/info/desktop_end_user_computing/VmWare_Player/4_0

replace the 4_0 in the above link with 3_0 or 2_0 to get older versions. As of this writing, the current version is4.02.

The install is typical and should not present any surprises. However the older versions of the Player may require you use Object Nav or your JAWS or mouse cursor to navigate its screens. Newer versions use a web-based interface which you can navigate easily with arrow keys and tab.

When VmWare Player finishes being installed, it will restart your computer. This is important if you jumped ahead and started downloading software for the following steps, as you'll wish to wait until the download completes before choosing to finish the install.

While we are discussing downloads, you might want to think about keeping organized by creating directories to hold all this stuff. For example, you could make a new folder called VmExperiments, and inside create folders for the programs you download, isos you collect, documentation you save locally, virtual machines you intend to create and even a folder to hold the notes you make.

VmWare Player when it installs by default lives in C:\Program Files\VmWare\VmWare Player and for our purposes that's just fine. It creates your virtual machines, by default in C:\Documents and Settings\USERNAME\My Documents\My Virtual Machines where USERNAME of course is yours. But you might prefer to create your machines in a different folder and you'll be able to make that choice if the folder is already available.

Step 2: Install The Null-Modem Emulator

The Null-modem Emulator (Com0Com) has a home page at

	http://com0com.sourceforge.net/

As of this writing, the current version is 2.2.2.0. It can also be obtained from the cucat site in the directory:

	http://www.cucat.org/class_notes/Linux_admin/utils/ 

You can download a zip file, unzip it and skim its readme file. The installer is in setup.exe and it behaves like a typical installer. It will also run the Found New Hardware Wizard and you can pick the default "Install the software automatically" which will connect Windows to the drivers needed for the emulator. You'll need to select Finish for both the Found New Hardware Wizard (for each of the ports it installs) and then choose Finish for the Com0Com installation.

The readme and setup utilities are installed in C:\Program Files\com0com and the drivers are installed elsewhere.

The COM port pair with names CNCA0 and CNCB0 will now be available. Because terminal programs work with ports named Com1, Com2 etc. you'll need to assign new names to the pair.

Com0Com has both a command-line and a graphical interface for the post-installation configuration. To get to the command-line interface:

  1. Go to Start-Programs-Com0Com-Setup Command Prompt.
  2. A command prompt will appear reading "Command>". You can try it out by typing Help.
  3. The help will scroll but don't worry; you don't need many of these commands now. At the command prompt, type list and press ENTER. The installed ports will appear, probably CNCA0 and CNCB0. It will also show that they have no "portnames" yet assigned.
  4. Type change CNCA0 PortName=COM2 and press ENTER. If you don't want to use Com2, use any port name beginning with COM as in COM17 or COM65. Tera Term is able to use any number, as long as the port begins with the three letters COM.
  5. Type change CNCB0 PortName=COM3 and press ENTER, and remember you can use any other available port name.
  6. Type list again. You should now see that your two ports have names assigned that are friendly to Windows software.
  7. Type Quit to exit the Com0Com command prompt.

Additional Com0Com Configuration Notes

There is no space between the variable PortName, the equals sign and its assignment.

You can use device manager to see what ports are used on your system already. For example, Bluetooth drivers often use ports, and USB to serial adapters, as well as internal modems will use these port names as well.

Some older GPS, ham radio, fax, BBS and Braille embossing software works only with ports 1 through 4, so if you have any older software it is often wise to leave these ports free.

Remember that this emulator only creates ports in pairs, to virtually cable them to each other. The names CNC0a and CNC0B are the Com0Com names for the ports it creates. Names like Com5 or Com67 are names that Windows programs will reference.

If you are familiar with hardware serial ports, you'll wonder about setting parameters like handshaking, parity, data bits and baud rate. For our purposes, this isn't necessary, because the emulator will ignore these settings, and the terminal will work fine with defaults since the two ports are already "cabled" to each other in software.

Step 3: Set up terminal emulation

The most accessible terminal emulator, Tera Term is at: http://sourceforge.jp/projects/ttssh2/files/

As of this writing, 4.73 is the current version.

The Cucat site also has TeraTerm in the directory at this link:

	http://www.cucat.org/class_notes/extras/Teraterm%20pro/

If you use JAWS, you will also find Termpro.jss, the JAWS script for Tera Term in the cucat extras directory, the same place where Tera Term is located.

Copy the JAWS script ttermpro.jss into your personal JAWS settings folder. An easy way to find this folder is to find the currently used version of JAWS on the start menu, select explore JAWS then explore my settings. Place the source file in this folder.

Usually the folder is c:\Documents and Settings\USERNAME\Application Data\Freedom Scientific\JAWS\v.vv\Settings\enu replacing "USERNAME" with yours and v.vv with the JAWS version.

Once the script file is in place, launch TeraTerm. Now press JAWS key plus 0 to launch the script manager. The currently open script should be ttermpro.jss and you should see the script source in the currently open window. Now select file then save to compile the script. When asked whether or not to overwrite the current file select yes.

Also grab PuTTY (another terminal emulator):

	http://www.chiark.greenend.org.uk/~sgtatham/putty/

Both are small programs. When you install Tera Term, choose the compact install, because its installer includes a lot of additional goodies by default that you will not need. These extras simply clutter up your system tray and add unwanted tasks that autorun when your computer starts up. There is both a standard and a full installation therefore which you should avoid.

PuTTY isn't necessary, but there are situations where Tera Term might not work properly so it is convenient to have a different terminal emulator to troubleshoot. For example, if your screen access fails to track the cursor or the Linux system fails to clear the terminal screen, you can always run PuTTY to see if the same thing is happening. There are also configuration programs on Linux which make heavy use of ASCII line-drawing graphics that can confuse a Windows screen reader. Sometimes PuTTY will ignore these graphics and let you read these screens more easily. However screen readers generally cannot accurately track the cursor in PuTTY, so use Tera Term for ordinary terminal emulation.

PuTTY doesn't need to be installed. Simply unzip it to a directory of your choosing, and you can run PuTTY.EXE when the need arises. As of this writing, the current version is 0.62.

There is also a Windows installer for PuTTY. This simply adds shortcuts and stashes it, along with a bevy of related command-line tools in a folder under Program Files.

Setting Up Tera Term

Tera Term stores its configuration in teraterm.ini which is its default, but you can store alternate settings in as many .ini files as you wish to create. Advanced users can manually edit it but Tera Term provides a setup menu to make this easy. Start by simply changing settings, saving them and they'll be in teraterm.ini which by default is in the program directory where Tera Term was installed. That's usually C:\Program Files\teraterm

When you become more advanced, you can create a shortcut which will launch Tera Term with a customized .ini file, automatically connect you to a site and even log you in without you needing to supply a password manually. But this is beyond the scope of this guide.

For now, simply follow these steps to get Tera Term set up to best work with your screen access and your virtual machine:

  1. When Tera Term runs, the new connection dialog box appears by default. You can press ESCAPE to dismiss this dialog, if in the future you wish to bypass it. However, this time we'll first configure the serial port.
  2. You are in a list view of host names. Press shift-Tab to go to the previous control which is the connection tuype, set by default to TCP/IP. Select the radio button for Serial port instead.
  3. Press tab once to get to the next control, which now has changed in to a list of available serial ports.
  4. Arrow through the list to pick one of the port names you assigned in your setup for Com0Com. Tab to the OK button and press it.
  5. Your blank window appears with a standard title and menu bar. Use Alt-S to pull up the Setup Menu. From there, select the first choice, Terminal
  6. In the terminal settings dialog, change the terminal size to 80 X 25 and ensure the terminal ID is set to Vt100. Press OK.
  7. Return to the settings menu, and choose Window. In this dialog, set the cursor shape to vertical line. If it is set to horizontal line or block, it will not be tracked accurately by your screen reader. The other choices should not need changing. Press OK.
  8. Call up the setup menu a third time and arrow down to Save setup. The default filename is teraterm.ini. Unless you are using Tera Term for other purposes, go ahead and save with this default filename.

You now have Tera Term set up to default to communicating with the first port in your connected pair. In a later step we'll connect to the second port and verify they can communicate.

Setting up PuTTY

Unlike Tera Term, PuTTY stores its settings in the Windows registry. Simply run PuTTY.EXE. You will be presented with its configuration dialog, but unlike Tera Term, this window is for configuring all settings in PuTTY as well as configuring your current connection. There is a tree view of cattegories on the left hand side, and as you change to a different cattegory, the controls on the right side of the window also change. If you press ESCAPE, PuTTY will simply exit and nothing will be configured. There is no way to run PuTTY without working first in this dialog.

  1. You are at a prompt for IP address. Shift Tab once to get to the category tree view.
  2. Press End to go to the last item in the tree view, serial port.
  3. Tab forward once to an edit box with a prompt to select your "serial line". Unlike Tera Term which provides a combo box of available ports, PuTTY expects you to key in the port name directly.
 # Once you've keyed in com5 or com14, or whatever port name you've given one of your pair, shift tab to return to the tree view.  
  1. Press Home to return to the top of the tree view, the session configuration. Arrow down from there until you get to appearance.
  2. In the appearance category, tab once to ""adjust the use of the cursor" and set it to underline. Tab once more and chek the box for cursor blinks. These two settings will help your screen access find and track the cursor.
  3. Back in the tree view, arrow down to appearance. Tab forward until you can change "System Menu appears on Alt-Space" and check that box.
  4. These are all the settings you really need, so it's now time to save them. Shift Tab back to the tree view, and press Home to return to the Session cattegory. Tab forward until you get to the group of five controls labeled "Load, save or delete a stored session".
  5. The first of these is an edit box for typing a name. This isn't a filename; it's simply a configuration name of your own choosing. You are free to keep it blank for now.
  6. The next control in this group is a list box of existing saved sessions. If you select one, its name will be the current one in use. Arrow to Default settings, which, unless you've used PuTTY before should be the only available setting.
  7. The third control in this group is the load button. If you press SPACEBAR on this button you wil load in new settings, so don't do that yet.
  8. The fourth control in this group is the Save button. If you press SPACEBAR here, you will Save your settings under the name that appeared in the second control, the list box of named settings.
  9. Go ahead and press SPACE as you do want to save these as your default.
  10. The fifth and last control in this stored settings group is delete. If you were to press SPACEBAR here, you'd remove the default settings, so don't do that!
  11. You are finally ready to tab over to and press the Open button.

Additional PuTTY Notes

There is no OK button in the configuration dialog. You simply set up things the way you want, enter a settings name in the edit box for "load, save or delete a stored session", and then you press save. At any time, to Open PuTTY with the currently established settings, press Open.

If you want to make a temporary configuration, say to select a different serial port, you can simply press Open after making your choices without pressing the Save button.

Be careful to not press Load or Save by mistake. If you make changes, and press Load, they will be overwritten with any setting whose name appears either in the edit or the combo box. If you start a new session, and press Save before configuring anything your Save will wipe out any previously saved settings under the same name. You must first configure settings, then supply or select a pre-existing name, and then press Save. To repeat: remember that load or save do not call up any dialog box for loading or saving files; they simply save a named configuration in the registry.

It's also worth knowing that PuTTY is a bit more friendly for the sighted user, that it better emulates an X-Terminal and that it also can be called up with a shortcut and instructed to auto-log in to a site without the user needing to manually key in a password. If you administer systems for sighted users, understanding how to configure PuTTY can come in handy.

Step 4: Test Your ports and Terminal

Both PuTTY and Tera Term can open multiple connections. So you can use one to talk to one port in your pair and the other to talk to the second port.

Or you can use either PuTTY or Tera Term to talk to both ports.

In TeraTerm to open a second window, do the following:

  1. Choose The File Menu
  2. Choose the New connection menu.
  3. You will be in the same New connection dialog box that we saw before. Select your second com port and tab over to OK. (If instead you see a list of host names, you'll want to shift-tab once to change the radio button from TCP/IP to Serial.)

Once you select OK, a new window, connected to that port will open.

In PuTTY, here's how to do the same thing:

  1. Use your mouse cursor to left-click on the graphic at the upper lefthand side of the title bar. This calls up the system menu. You can also get there with alt-space if you remembered to check the appropriate box during your configuration step.
  2. A system menu will appear. Arrow through it until you arrive at "New session" and press ENTER
  3. You will be at the edit box for entering a "serial line". Enter the name of your second port.
  4. Tab over to Open and press SPACE.

In PuTTY you've opened the entire configuration dialog box again, so you could, when you become more advanced save your session under a different name, so you'd have a saved setting for each port.

Now that you have two windows open -- say one is connected to COM5 and the other to COM6, you can type in each window and hopefully your typing will appear in the other window.

You will not see your typing echoed in the window where you are entering characters. This is because echo is usually controled by the host system you are connected to, and right now, you simply are testing if both ports are truly connected to and can communicate with each other.

If the test worked, close the windows and the terminal program and proceed to step 5.

If it didn't work, go back to your terminal programs configurations, and also check your settings in Com0Com. Documentation for Com0Com, PuTTY and Tera Term is all superb, so don't hesitate to use it to assist with your troubleshooting.

Step 5: Get your distro

For this guide, you can choose between Ubuntu or Debian. Other distros can certainly be installed using a Virtual Machine and a serial port, but they are not covered here.

Ubuntu

You will need to download Ubuntu's "alternate install" or "server install" or "minimal install"CD instead of the graphical, or desktop installation. This is because the graphical desktop installer has an instalation system you won't be able to access from a virtual machine.

As of this writing, the current version is

	Ubuntu 12.04 LTS (Precise Pangolin)

The easiest way to find this is to google for Ubuntu Alternate Install. Here is one direct link:

	http://releases.ubuntu.com/precise/ubuntu-12.04-alternate-i386.iso

Or you can go to the Ubuntu server page at:

	http://www.ubuntu.com/download/server

Of course there's no guarantee these links will always work. However many mirrors distribute the Ubuntu alternate install CD so it shouldn't be difficult to locate.

If you don't have a fast connection, try the minimal installation CD: Ubuntu 12.04 "Precise Pangolin" Minimal CD http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-i386/current/images/netboot/mini.iso

If you'd like to fool with a pre-installed Ubuntu already set up to use a serial port go to:

	http://www.cucat.org/class_notes/Linux_admin/vmstuff/VirtualMachines/ubuntu/serial_users/

Differences

The Server CD installs all components needed for a typical server automatically. It supports LVM and raid without you needing to manually make any configuration changes. By default, it also installs components like Apache and Samba that are typically needed in a server environment. It results in a larger, but more complete system.

The Minimal CD installs the smallest possible Ubuntu command-line only system. If you want more packages, you'll be manually installing them later on the existing system.

The Alternate install CD gives you the most control, letting you install what you want.

Be aware that the alternate CD fetches the fewest packages from the internet but is the largest installation CD. The minimal CD is the smallest image, but fetches nearly everything it needs from the Internet.

The standard server CD is a compromise, and by default installs more software likely to be needed in a server environment.

Debian

If you'd like to install Debian instead, try http://www.debian.org/releases/stable/debian-installer/

In the above link you can replace the string "stable" with "testing" to get a newer, but less stable version of Debian. You'll have to pick your platform (I-386) from the list.

If you were installing on real hardware, you might discover that you needed the testing version to support newer equipment, or that you wanted the stable version because it didn't include lots of extra support for hardware you didn't even have. For a virtual machine it doesn't matter whether you pick Testing or Stable, but if you want to experiment installing with Software speech, this is available only in the Testing edition.

Step 6: Peruse Installation guides

Before doing much with Linux, it is a good idea to at least skim the relevant documentation. Unlike Windows, you often cannot simply experiment with Linux without breaking something. In Windows, you can click or tab around, and just figure it out as you go along. With Linux, you often get cryptic error messages, or a process simply fails to complete. Having an idea of where to look for help can lower your frustration, so take time now to acquaint yourself with the installation guides for the distro you've chosen.

The Ubuntu installation help is at:

	https://help.ubuntu.com/12.04/installation-guide/i386/index.html

and the Debian guide is at:

	http://www.debian.org/releases/stable/i386/

And, for Debian, you can replace the "stable" with "testing" to get a slightly newer but less accurate version of this guide.

If you have a slow connection it is a good idea to locally save the installation guide on your own drive.

Installation manuals asume you are using real hardware, with physical hard disks and real CD drives. Many steps, such as burning an ISO to CD, or partitioning your drive, are completely unnecessary when running in a virtual machine. Burning the ISO is necessary because the hardware has to boot from the CD to install. The virtual machine can "pretend" the actual ISO is a CD. Partitioning is necessary when you want to back up parts of a system easily, or keep one part from growing too large. With a virtual machine, this is not a concern, because you set up the maximum size when you create the machine. And a machine is just a few files which are easily backed up.

Of course if you want to learn about partitioning before trying it out on real hardware, a virtual environment is a wonderful place to experiment. You can even set up a dual-boot system without fear that it could fail and clobber your real Windows partition.

So read through these guides to get an understanding of how the install works, but don't worry about knowing how or even needing to perform every part of a real hardware install.

One warning: most of the documentation states:
"If you are booting with a serial console, generally the kernel will autodetect this."
This implies you won't need to do anything special, but that sentence refers to those rare computers which literally have no video card or keyboard, and their ONLY console is a serial port. Unfortunately most PCS have a video card, so by default no Debian or Ubuntu install will automatically choose the serial port instead. It is possible to purchase some HP servers, for example, that do not have a keyboard or video support, but you do not have this hardware, so simply ignore that optomistic piece of documentation!

Step 7: Create and Configure The Virtual Machine

Run VmWare Player from Start-Programs-VmWare Player. Accept the license agreement, then select the button to "skip this version" because the list of updates it presents at startup are usually for trial versions of more advanced software you don't need now.

You will land in a list view of available machines. (If you are using Version 2 of VmWare Player, you won't be able to create a machine, so you'll need to get instructions on how to accomplish this from the Appendix at the end of this document.)

Tab over to Create a New Virtual machine, and press SPACE on that button. If this doesn't work, go to the file menu and choose Create a New Virtual machine. Yet another way to do this is simply to type CTRL-N.

The new virtual machine wizard appears. The first screen is for selecting the source of the installer image. Under Install from, there are three radio buttons. It defaults to the radio button for Installer disk so if using Debian, or the Ubuntu alternate CDS, select the second radio button for Installer disk image file (ISO) and enter or browse to the filename of your iso image. Then press Next.

If for some reason, you are experimenting with a standard Ubuntu server or desktop iso , which defaults to the graphical installer, select the third radio button, "I will Install the Operating System later". The reason this is necessary is when the helpful wizard detects a Ubuntu CD it automatically installs it and you want to learn how to do the install yourself and end up with a system you can access with a serial terminal.

The next screen is for choosing your guest operating system. This is VmWare terminology for the operating system that will live inside the machine you're creating. Pick Linux from the list, tab to version and pick Debian5 even if you're installing Ubuntu. This way the wizard won't get any ideas about going all graphical on you!

The next screen asks you to supply a virtual machine name. This will be the base filename for your machine, so plan carefully. If you'll do several experiments you might call this UbuntuFirstTry or Ubuntu12Experiment. This way later on if you create more machines it will be easy to remember which is which. The name you supply will appear in the "library" a list on the lefthand side of the VmWare Player screen that displays all the machines you've created. It is also the base filename for all the files that will comprise the machine. So if you called your machine DebianTest1, you could back up DebianTest1.* and ensure that every file got copied.

This wizard screen is also where you can specify the location for your virtual machine and if you choose, where you can store it in the folder you created earlier to hold all your experiments. If you don't make a selection it will default to saving your machines in My documents in a directory named My Virtual Machines.

If the wizard finds an existing machine in the specified directory, it will complain, but as long as you give each machine a different name, and don't just pick the default, you'll be fine. So if you don't want to create separate folders for each machine, simply select continue and ignore that warning.

The next screen asks you to specify the disk capacity. It's worth reading the entire explanation which clearly defines the choices you have. You can decide how large your virtual machine can grow and you can also choose to keep it in a single file or to split it in to smaller chunks to facillitate easier backup.

The next screen summarizes the settings you've made. Some settings, like whether a sound card is available and the total memory assigned to the machine can be set later, but sensible defaults were provided automatically.

There is a check box to power on this machine when the wizard finishes; you might wish to uncheck it.

Unfortunately the machine doesn't yet have a serial port, so you'll need to press SPACE on the "customize hardware" button. A list appears of items you can customize but serial port isn't on it. The help for these items is excellent so if you do wish to make changes here, go ahead and read up on them.

This is also the screen where you'd want to attach your ISO to a simulated CD drive. To do this arrow down to "New CD/DVD Autodetect" and tab over to the "Connection" group of radio buttons, then select the second one, "Use ISO image file". Because you are selecting the ISO here rather than on the first screen of the wizard, VmWare Player won't try to do an automatic graphical install for you.

To actually add a serial port, focus on any item on the list (it doesn't matter which one) and tab over to Add.

Another list of virtual hardware appears. You might notice that this repeats hardware from the previous list, but the idea is that you can have multiples, like two network cards, three USB connections or an extra parallel port. Simply select Serial Port and tab over to Next.

You'll next get to choose whether to "use a physical serial port on the host" "serial port output to file" or "serial port output to named pipe". You want to use a physical port.

Actually, you are making VmWare Player "think" you are using a physical port, but the Com0Com emulator is creating that port virtually as well. We have to do this work-around because our Windows screen access cannot read the Linux console directly.

Screen access for Linux does exist, but it can be tricky to try to get it working while you are still learning how to install a system. Windows users have the same problem: it is hard but not impossible to install Windows using a screen reader. If you really want to try Linux screen access, and skip this whole serial port thing, take a look at Appendices C and D of this guide.

Tab over to Next. The next screen lets you select the "physical" port.

Select one of the ports from the list. Do not select the first choice "autodetect" because it is likely to detect a port other than the one you want. Pick one of the ports you've set up with Com0Com.

Earlier versions of VmWare will recognize ports that are named beginning with the letters COM. Later versions of VmWare will actually recognize the CNC ports directly, so don't be surprise if you see CNCA0 and CNCB0 on the list. You can pick one of those or the COM name you've assigned to that port; it doesn't matter. The COM name is just an alias you need for the terminal emulator to find that port.

You can also select whether to "connect at power on" so keep that box checked. You'll need the serial port as soon as the machine starts up.

Click finish and you'll be back in the original hardware list, except at its end a new item is added, "serial port 2 using COMX, where "X" is the number of your port. Notice that it is serial port 2 and not serial port 1. This is because the first serial port is reserved by VmWare Player for advanced debugging, and can't be reassigned.

Press OK, and you're back in the final screen of the wizard you saw before. Tab over to Finish, and you've created the machine.

Your new machine is now in the "library" list. But we are not ready to "play" it yet, because there is a bit more information we need to first convey.

Step 8: Install Your Distro

To run a virtual machine, the VmWare term is "play". To stop a virtual machine you can "power off" or you can restart it by selecting Reset and with some operating systems, by sending CTRL-ALT-Del.These tasks can all be performed from the Virtual machine menu, which you get to with Alt-V.

Your keyboard either belongs to Windows or to the running virtual machine. To tell the machine to use the keyboard you "grab" it which is VmWare terminology. The keystroke is CTRL-G.

To tell Windows to "grab" the keyboard back. you press Control and Alt at the same time.

Because Windows grabs the keyboard as soon as Control and Alt are pressed, sometimes it doesn't see the release of these keys and your programs might think that control and alt are still held down. If this happens tap control and alt a few times so Windows sees that these keys were released.

When the virtual machine has the keyboard you are typing directly in to the machine, just as if you were using a real second PC. The problem is that these installs are not accessible by default. So just as you cannot read the screen on a real machine when you first boot it up, you won't be able to read the virtual machine screen either. Like a real machine it has an "emulated" BIOS and it will boot either its virtual CD or its virtual hard drive. Luckily when you walked through the wizard, you told it to have the install ISO act as its virtual CD so it knows to attempt to boot that first. But Linux CDS, just like Windows CDS boot up in to different installation screens, which are rendered graphically, and inaccessibly, inside the virtual machine.

Boot Parameters

To work around this, you'll need to supply "boot parameters" to the install kernel before it loads. The kernel is the heart of the Linux operating system, and the installer also uses its own kernel because it too, is Linux.

To get to the boot prompt, the procedure is different for each and every Linux installation, which is why it's good to have the documentation handy. And, unfortunately, the documentation asumes you can see the install screen and read the directions to get to the boot prompt from there.

Most sighted users won't need a prompt; they'll simply press ENTER and follow the menus by selecting defaults.

But you're going to need to enter those kernel parameters, so here's some steps for the current installations of Ubuntu and Debian.

For most installations based on Debian, you can press ESCAPE when the installer screen loads and then type your parameters. You will be at the boot prompt. Alternatively you can press H for help and Enter. A text screen of help options loads, with your cursor flashing at a boot prompt.

The first parameter is actually a label for the boot manager. It's set up to boot different sequences depending on what's chosen from the graphical installer. But you can control this too by supplying the boot label directly. For the Ubuntu minimal (mini.iso) the keyword is cli. For the Debian CDS the keyword is install. The keyword install is also used for the alternat Ubuntu install CD. The keyword S (uppercase) is used for an experimental software speech install in Debian testing.

 We'll have some specific examples in a few more paragraphs. However because the point of this is learning, remember that the first thing you type at a boot prompt is not a parameter, but rather a boot label.

To confuse things a bit, the Debian installer actually lets you arrow from one boot label to the next, press TAB and additional parameters to the end of the supplied defaults. But that's just how this particular boot manager is configured, and you can't rely on this interface when working with any install CD.

After the boot label and a space, you type the actual kernel parameters. For the serial port, you'll type
console=ttyS1
This tells the kernel to redirect the console to the serial port. Remember, it's the second and not the first serial port in the virtual machine. VmWare Player numbers them starting at 1 but Linux numbers starting at zero. So ttyS1 is the second serial port.

The tty is in lower case and the S is in upper case.

More advanced users might wonder why we don't supply /dev before the device name. That's because the /dev directory hasn't yet been created; we are simply giving the bare device name to the kernel, which hasn't yet loaded. At this point you are communicating not with the installer but with the boot manager on the installation ISO, and you are passing kernel parameters to the installer to tell its kernel how you wish it to boot.

After pressing SPACE, the next parameter, which you can optionally provide is the type of installer front end (or interface) you wish to use. You can specify noninteractive, gtk, newt or text.

The noninteractive will run without asking any questions at all. It will install, but it might give you a system that doesn't work.

The gtk parameter is for the graphical front end and isn't appropriate here.

The newt front end is what's run by default. It's text-based, but it uses line drawing ASCII graphics, highlighting and reverse video, so it can be difficult to use in a terminal interface. If you are experience though it can make an install easier to get through because you simply use arrows and the enter key, and occasionally the tab key to havigate through screens.

The text-based front end numbers all choices, so you'lll need to read through menus to make your selections, but you won't have to worry about where a highlight is located. You can simply enter the number that corresponds to your choice. Unfortunately, with all those numbered menu choices it can be rather tedious to plow through once you gain some experience.

The variable here is DEBIAN_FRONTEND and beware that it is all upper-case. Be aware also that this is a parameter you supply to the installer and not the kernel. The reason it is important to know more about the syntax you are typing is because it helps later when reading more advanced guides.

The final parameter you can supply is the priority level. The installer is sophisticated and uses this priority variable to determine which questions to ask. If priority is set to critical, the fewest questions are asked and most of the install is noninteractive. If priority is set to low all possible questions are asked of the user. Setting priority to medium is a good idea, and priority=high is the default. High asks some questions but not enough for you to really customize the install.

The priority variable is a parameter that is being passed to the kernel and not the installer.

So now for some examples. Before you actually try one of these, run TeraTerm and ensure it is connected to the second port in your emulated pair. The virtual machine should be connected to the first port. For example if CNCA0 is com5 and the virtual machine is connected to com5, then you probably set CNCB0 to have an alias of com6. You'll want Tera Term to connect to COM6.

One common mistake is to connect both the terminal and the virtual machine to the same serial port. You can always run the command line setup again for Com0Com and use the List command to verify the port names.

Install Ubuntu from mini.iso

Select the machine from the VmWare Player library. Tab over to Play Virtual Machine. After a few seconds you hear a beep. Press CTRL-G. Press ESCAPE. Then type:
cli console=ttyS1 DEBIAN_FRONTEND=text priority=mnedium
press ENTER.

You will be asked many installation questions and work with an installation menu. You'll be using the text-based interface with numbered menus.

Install Ubuntu from The Alternate Install or Server CD

Select the machine from the VmWare Player library. Tab over to Play Virtual Machine. After a few seconds press CTRL-G. The first screen is graphical and will ask for your language; Press ENTER to accept English (the default.) The graphical install begins; so your next keystroke (to exit it) is ESCAPE. Another graphical dialog asks if you are Sure, and the OK button is the default, so press ENTER. Next type:

linux console=ttyS1 priority=critical
press ENTER.

You will only be asked a few installation questions and you'll be using the interface that uses highlighting and reverse video. You'll have to navigate the install with arrow keys and TAB and your screen reader might not properly track the highlight at times.

Install Debian from The Testing Distribution's CD

Select the machine from the VmWare Player library. Tab over to Play Virtual Machine. After a few seconds press CTRL-G. Press ESCAPE. Then type:
install console=ttyS1 DEBIAN_FRONTEND=text
press ENTER.

You will be asked some installation questions, but with priority defaulting to High, most choices will be made for you. You will navigate the text-based interface by keying in numbers corresponding to the choices you desire.

Install Debian from the Stable Distribution's CD

Select the machine from the VmWare Player library. Tab over to Play Virtual Machine. After a few seconds, the stable version's installer will emit a beep. press CTRL-G. Press ESCAPE. Then type:
install console=ttyS1 priority=low DEBIAN_FRONTEND=text
Again you are using the text-based installer with numbered menus, but this is the most tedious form of the install; all possible choices will be presented.

More Background

To summarize, The installation CD will sometimes but not always beep after booting. It will display a friendly welcome screen which may or may not be easy to bypass.

you'll absolutely need the boot label; it's usually install but for the minimal Ubuntu installation that label is cli, and for the Alternate and Server CDS it is linux. Some boot labels are simply called boot, or root, or newinstall or whatever name its creator dreamed up. Many CDS also have a label named "rescue" which gives you a minimally runnigng system for troubleshooting purposes.

You'll usually press ESCAPE to get to a boot prompt, but some installers, for example, the standard desktop installation CD for Ubuntu require more elaborate procedures. The alternate install needs you to press ENTER first, to bypass an initial question, then press ESCAPE and then tell it you are sure you wish to exit the graphical installer. Finally, a boot prompt appears.

Debian installs will go to the boot prompt with ESCAPE but the introductory screen actually displays the labels you can type, so you could arrow between them and press TAB to add additional parameters.

If your screen reader has OCR capabilities you might be able to read the welcome screen in the virtual machine and figure out how to get to the boot prompt. As versions change, the installation procedures also change so these instructions, though they were tested as of this writing, will probably not work exactly as documented.

So get yourself to the boot prompt, and type the label, usually install.

After you've typed the boot label, you press SPACE and the kernel boot parameter console=ttyS1

this is so you can communicate with your terminal program and thus use your screen reader.

If you were installing on real hardware, using real hardware synthesized speech, and you had a kernel that supported the speakup screen reader, you'd instead type something like speakup.synth=dectlk

or if you were using a Braille display and the installer supported its parameters, you might type BrlTTY=auto,/dev/ttyUSB0

but these parameters are best detailed with other guides that show how to install using screen access for Linux. Check the Appendices of this guide and google for additional tips if you want to take this route.

If you wish more information on these topics, try googling for boot parameters, speakup BrlTTY and for installing over a serial terminal, try googling for headless install.

After you key in the parameter for your console, you can optionally type DEBIAN_FRONTEND=text, to force it to use the basic text-based installer. As of this writing this didn't always work, but it's worth a shot. Remember DEBIAN_FRONTEND must be upper-case.

Next, you can type a priority parameter to control the verbosity and detail level of the install. priority=low gives the most info; priority=high is the default and priority=critical gives the least.

The install starts. You'll be asked for your language, then given a chance to configure your keyboard. You'll watch as the install detects hardware, mounts the CD-rom, detects the network, obtains an IP address, and a mirror for downloading packages.

You may be prompted for some of this if your priority is not high.

The install will eventually prompt you for

  • Your host name.
  • Your full name.
  • Your user ID
  • Your password (it will need this entered twice)

Debian also is able to have a root account and prompt for that password as well.

At this point, you are mainly following prompts, and as a beginner, it's perfectly OK to simply pick defaults. But if you want to learn something about the install process, you'll want to read each installation screen thoroughly and also the accompanying documentation.

There are many terms which you won't understand. Your best bet is to simply maintain a list of these unfamiliar words and google for answers.

If you set your priority to low, you will see many, many installation screens indeed. If you used the default frontend you might have trouble reading the screens depending on your screen access and whether it copes well with all the drawing characters.

Your first install might not work, and that's fine, because the idea is to learn something. Or you might get a great install, but the virtual machine keeps trying to boot to the CD. Before restarting the machine, tab past Play Virtual machine to Edit virtual machine, and remove the CD-rom so it will only boot the hard disk.

Additional Notes

Sometimes when you start to play a machine a dialog box pops up informing you of updates you can download or removable devices you can add to your machine. You can check a box in this dialog to tell it to stop randomly displaying hints.

You usually only have about 30 seconds after a machine boots to get to the boot prompt, or by default, it will begin the install process without additional boot parameters.

If you need to reboot or shut down a frozen machine, return your keyboard to windows by pressing CTRL-ALT. Then either focus on the virtual machine in the library list and press the context key or type alt-V for the Virtual machine menu. Here you can select Power and suspend, shut it down or reset it. You can also send ctrl-Alt-Delete directly to the machine, since VmWare traps the ctrl-Alt keys.

You can always power off a virtual machine and edit its settings. You can change the iso or remove the CD, add memory, change or add another serial port or remove the sound card even to see what sorts of error messages you get from software speech when sound is unavailable. You can do fun things like include legacy CD-rom support for troubleshooting or add a virtual floppy drive. You can also change the way it works with the network. The NAT setting by default has it sharing your host's IP address and the virtual machine is invisible to the rest of your network. If it is in "bridged" mode, it is connected directly to your network and will be visible to other machines on that network.

Step 9: Accessing your machine without the serial port

Asuming you have a successful Linux installed now, your problem is that you want to connect to it using your network. Because you installed with a serial port, it should be communicating still with the serial port when you reboot. But knowing how to use it over the network will let you work with other virtual machines that weren't installed for a serial port console.

To communicate with the machine via the network you need its IP address. If you kept your network setting as NAT which was the default, then VmWare Player assigned its IP address. If you changed its network to "bridged" then your network's DHCP server assigned its address, and it might be trickier to find the address your machine was given.

If VmWare assigned the lease, you can snoop through its leases file to locate that information. Find this in C:\Documents and Settings\All Users\Application Data\VmWare and the file you are actually seeking is named vmnetdhcp.leases. This is a text file with Unix line endings, so open it with Ed Sharp, Notepad++ or some other editor that can handle these line endings. You can also open it in notepad but be aware its formatting will look strange.

You are looking for your machine's entry, and if you experimented with different machines, your latest will be nearer the bottom of the file. Each entry looks something like this:

lease 192.168.28.136 {
starts 2 2012/04/03 16:37:38;
ends 2 2012/04/03 16:47:47;
hardware ethernet 00:0c:29:76:df:c8;
client-hostname "ubuntu";
}
In this example, the IP address is 192.168.28.136. This is the set of numbers after the word lease.

Now open Tera Term but instead of connecting to a serial port, connect to 192.168.28.136 or whatever address you found in the leases file.

Tips on Using Terminal Emulation With Screen Access

You will find that familiar Windows keystrokes like the arrows and tab are inconsistent or fail to work at all under Linux. This happens because Linux software has been developed by thousands of volunteers over three decades and interfaces are not consistent. Also because this is a command-line system, you'll be mostly (after the install finishes) typing in long strings of parameters that follow commands. Even when you use text editors, you'll often find that they use keys like CTRL-D to delete or the letter J to cursor up a line. This is because early terminals didn't have arrow keys, and when they did they sent out different control codes, so software typically stuck with common keystrokes.

Because your screen reader expects to echo the character, line or word under the cursor as you move it with arrow keys, it will no longer do this reliably if arrow key usage is inconsistent.

So when working with a terminal, know you'll have to use your mouse cursor, or object navigation to read or reread information. With the JAWS scripts, information newly written to the screen will be echoed, but if portions of the screen are repainted, this will also echo. For example if you move the highlight from choice A to choice B, you'll hear both choices read again as the highlight is removed from A and placed on B.

You can always opt with JAWS to set it to no speech, with Insert-S and that will silence the automatic echoing.

With other screen access, if you can silence output you can simply use a review cursor to read the screen.

Linux screen access, by the way also suffers from these problems, though it often copes better with all the ASCII drawing characters that clutter up the installation screens.

Take your time and read each screen carefully while performing an install, and next time you can skip through, picking defaults without needing to read as much.

Conclusion

This completes the guide for eyes-free Linux installation using a virtual machine. Please email the author if there are serious errors which need to be corrected or additions you feel would improve the document.

 Have fun and feel free personally to add your own tips to this document.

Appendix A: Fetching Other Useful Utilities

One tool you might need in your grab bag is 7-zip. A file archiver with a high compression ratio, 7-zip is useful for the average user because it can decompress a variety of formats, and because it is free.

Especially on Windows, you might not want separate utilities to deal with gz, z, tar, lzh, 7z, zip, cab, arj and msi archives, and you might need a utility that is unencombered by license restrictions, and thus can be distributed throughout a commercial organization.

Virtual machines too are typically compressed in the native 7z format of 7-zip. Simply right-click on any archive, after you've installed the 7-zip utility, and you'll be able to decompress it in a flash. The 7-zip home page is at:

	http://www.7-zip.org/

Another tool which makes life easier is WinSCP, which enables you to copy to and from a Linux or Unix system using the SCP protocol, built in to nearly all distributions. You have the familiar Windows interface for arrowing, tabbing, pressing ctrl-C to copy and CTRL-V to paste. You can also rename/move files, and work with them much as you do in Windows explorer. As you become more advanced, you'll find it handy to view each file's Linux permissions as well. The current version, as of this writing is 4.3.7

The Home page for WinSCP is at:

	http://winscp.net/eng/index.php

You might also wish to grab a copy of NotePad++, an accessible editor that is more powerful than Notepad. One handy feature is its ability to cope gracefully with files that come from Linux and have line-feeds and no carriage returns. This is useful for example, when you're looking at a file from your Linux system under Windows or when you need to snoop through the VmWare DHCP leases file. As of this writing its current version is 6.1.2

It's home page is at:

http://notepad-plus-plus.org/

Another utility highly recommended by the Cavi instructors is Ninite, which lets you download and keep multiple applications updated simultaneously. Ninite maintains a page of screen reader friendly apps at:

http://ninite.com/accessible

There advertising states: "Ninite's advanced automation will install the apps in the background and without any toolbars or junk."

Ninite will install and automatically update Firefox, PuTTY, 7-Zip, NotePad++, and WinSCP along with a variety of other useful utilities. You simply check boxes for every application you desire (all are free) and pick the "get installer" button. Ninite downloads all of them without you needing to click next on every screen for every installer. A ninite installer also will keep all the applications updated; simply run it again and it will take care of the update. It also says No to all toolbars and extra stuff that many apps attempt to sneak on to your system.

Appendix B: Creating Virtual Machines for VmWare Player version 2

Version 2 is useful for slower machines, pokey processors or less memory. If you do wish to use it, consider installing Debian, instead of Ubuntu, or install the mini.iso for Ubuntu because it too, requires less memory.

These installers require less memory because they fetch packages from the net as needed rather loading them in to memory. But they take longer to complete.

VmWare player uses a .vmx file to control the configuration of the machine. Because it is a text file, you can edit it in notepad, NotePad++ or a programmer's editor like Ed Sharp. But you still need a way to create a hard disk image which has a vmdk extension and a file to hold the ram which has a vram extension. You might also need some help with the syntax of the vmx file.

There are several ways to accomplish this. By far the easiest is to go to: EasyVMX!: Virtual Machine Creator

 at:

http://www.easyvmx.com/

You simply fill out a few online forms; all are accessible, and it creates an empty hard disk image for you, a properly formatted VMX file and the other files you need to boot the virtual machine.

Another way to get a virtual machine is to simply take one of the working machines from either the virtual marketplace, Cavi, or the Vinux virtual machine, and install a new operating system on those machines. However it is probably silly to download a complete virtual machine if you simply need an empty one to start with.

One reason you might want a working machine first, is if you are having trouble and need to ensure VmWare Player itself is working. Luckily regardless of what version of VmWare you've created machines on, even if it's a commercial version like VmWare Workstation, you can always run them on VmWare player.

The open-source Cavi machines are at:

http://www.cucat.org/class_notes/Linux_admin/vmstuff/VirtualMachines/

The Vinux virtual machine is at:

	http://vinuxproject.org/downloads

And the Virtual Appliance marketplace is at:

https://solutionexchange.VmWare.com/store/category_groups/19

Appendix C: Installing with Software Speech

The Linux console screen readers are Yasr (for yet another screen reader) and Speakup. Yasr isn't suitable because you have to run it from an already fully functioning system.

Speakup is a kernel module, which in plain English means it is tied directly in to the operating system. But it is an optional component that may not be included in the limited kernel that's part of most installers.

Speakup was originally intended to work with the now rare hardware speech synthesizer. It supported the Dectalk, Dectalk Express, SpeakOut, Lite Talk Accent and Apolo among others.

It also asumed you'd mostly interface through a real, hardware serial port. That's also rare these days.

So various "adapters" were developed -- programs to connect speakup with a software synthesizer. Also various software synthesizers exist, but by far the most popular is espeak. The Espeakup connector directly interfaces speakup with espeak.

The problem was, until recently that you had to configure your own kernel for speakup, install software speech, and lastly install the connector and configure speakup to use it. This couldn't be accomplished until you first had Linux up and running.

Enterprising Debian developers have worked around this problem by adding software speech to the Debian installer.

For the current version of this Appendix (Sept. 2013) I tested this with several machines and also installed it on three separate and very different laptops. In each case, I had success, so I believe the software speech install in Debian is now quite reliable.

Why Debian

Debian is the distribution on which Ubuntu is based. Ubuntu documentation often refers to the "upstream" developers -- the people who work on Debian.

When this article was originally written, Debian was a distribution that planned to include a talking install with software speech. However it was still being tested and didn't work too well.

Things have changed and now Debian can run its installer with software speech and give you a fully talking install. Best of all, you can use it to get a command-line Linux with no graphical user interface, thus enabling it to run on hardware too old or too slow for Ubuntu. Or, you can go "whole hog" and install the graphical user interface (the gnome deskp) complete with Orca its screen reading solution. The choice is yours.

Debian comes in three flavors, the unstable, the testing and the stable distribution. The current stable release is Wheezy (the code names are characters in the Toy story movies). Wheezy as of this writing is the same Debian flavor that is used for Raspian, the port of Debian that runs on, and is recommended for users of the Raspberry pi. So if you have a pi and want the most similar experience on a PC, you might consider installing Wheezy.

Step 1: Get the ISO.

Download the Wheezy NetInst Iso from

	http://www.debian.org/releases/wheezy/debian-installer/

You don't need the full CD nor the business card CD. The Netinst is the smallest image, and will download the quickest. It will be able to pull everything else it needs from the internet during install.

If you are in doubt at all, choose the 32-bit (I-386) version. Even if your system is 64-bit, sometimes 64-bit virtual machines cannot run if the bios isn't properly configured. You will see a message similar to:

Message Reads:

	You have configured this virtual machine to use a 64-bit guest operating system.  graphic 157  However, 64-bit operation is not possible. This host is VT-capable,
	but VT is disabled.
	This is usually because VT has been disabled in the BIOS/firmware settings or the host 
	has not been power-cycled since changing this setting. Please:
	(1) Verify that the BIOS/firmware settings enable VT and disable 'trusted execution.'
	(2) Power-cycle the host, if either of these BIOS/firmware settings have been 
	changed.
	(3) Power-cycle the host, if you have not done so since installing VMware Player.
	(4) Update the host's BIOS/firmware to the latest version.
	For more detailed information, see http://vmware.com/info?id=152.

End of message.

In English, this means you don't have hardware virtualization and that Vmware can't run a 64-bit guest. You'll then be asked "continue without 64-bit support?" This rarely works, so simply use a 32-bit version.

Step 2: Boot the iso.

If you are doing this on real hardware, you'll need to burn the ISO to an actual CD or a USB flash drive. There are many tutorials out there explaining how.

However, if you are working with a virtual machine, simply do the following:

Run Vmware Player. Select the button labeled "Create A Virtual Machine". If you keep ending up in a standard file open dialog box, you can try file, create a new machine, or simply type CTRL-N.

Either way, the New Virtual machine wizard should appear, as further described in Step 7 of the main portion of this guide. Under "install from" pick the second radio button labeled" installer disk image". Tab over to browse, and browse to the iso you downloaded.

Step 3: Create your Virtual Machine.

Continue through the rest of the wizard. You'll advanced to the next screen after the ISO is accepted where you will choose the guest operating system. This is the one you're installing, so pick Linux, then tab over to the Linux choices and pick Debian here. Again, you can choose between 64-bit or 32-bit.

After choosing next, a screen appears for selecting the maximum size of the virtual hard disk. This is the biggest it can grow, not the initial size. You will find 4GB is plenty for a command-line Linux, unless you intend to fool with lots of recorded media. If you are just experimenting, even 1GB will be sufficient while you master Linux and install simple programs. Most documentation on Linux is text-based and will not consume much space.

On the next screen, you supply a name for your virtual machine, and you also browse to the path where it will be storred. I selected "WheezyFirstTry" as my machine name, something easy to identify in the library of machine names that appears when Vmware player first opens. For the path, I picked the default which is My Virtual Machines, under My Documents in my user directory.

The final screen has a check box labeled "power on this machine after its creation" That's checked by default, so it will power on the machine when you choose finish. On this final screen, you can also select to "customize hardware" which lets you add devices such as a virtual or real serial port, a usb flash drive or even your real CD Rom or real hard disk. Because the Debian installer now talks, you don't need a serial port.

Finally, you select finish, the Debian net installer boots, and the system beeps.

At this beep, you can enter Boot parameters, as discussed in detail under step 8 in the main portion of this guide. But here, for Debian Wheezy the only thing you need to type is the letter s. Simply type s, press enter, and that loads all the components of a software-speech enabled installation.

The s you are typing is a lower-case letter. If you do want to use boot parameters, you need to follow the s with the press of a tab key, then type the parameters in. For example you could type s followed by a tab followed by the syntax:

	priority=low

which would force the installer to show you far more questions and asume few if any defaults.

You can read all about boot parameters in the debian installation guide at

	http://www.debian.org/releases/stable/i386/ch05s03.html.en

but if you are a beginner, there's no need to worry about them.

The first installation screens will ask you to pick your language, country and keyboard. These can be very tedious, because the synthesizer will actually attempt to speak all available languages. The installer can successfully talk with many, though not all of them. If you can easily read the English in this guide, it might be best to simply press Enter a few times to choose English as the default for both the language and the keyboard. Basically, the first press of Enter will select the default language which is English. The second press will select the default country, which is the United states and the third press will select the keyboard which is U.S. English.

After you get past the language, country and keyboard settings, the install will detect the rest of the hardware, finish installing the necessary installer components and occasionally display a percentage. If you have a slow machine, you could even believe it had frozen on you.

Navigating With Speakup

When you work with an actual talking Linux, which is what powers the talking installer, you are using the Speakup screen reader, which is a module that's directly tied in to the Linux kernel. Because speakup is an actual part of the operating system, it always knows what's on the screen, but it might not always give you that information in the way you expect.

Speakup echoes everything written to the console and stops talking if you press a key. You can press the Windows key to safely shut it up without entering anything amiss. Control or shift will also silence speech but beware that alt and control pressed together will switch your keyboard away from the virtual machine, so I find using the Windows key to be safest.

When you halt speech it's only silent until something new appears onscreen. There are more permanent ways to stop speech, discussed soon.

Speakup has a "speakup" key, which when pressed in conjunction with other keys, performs screen reader functions. The speakup key is abbreviated spk in online help and other documentation. It can be the caps lock key or the insert key. You don't need to go in to a special "laptop" mode; the caps lock and insert are always available as "spk" keys.

You will pretty quickly want to adjust rate and volume. Hold the speakup key while you ppress the number 1 on the standard number row above the letter q. That turns down the volume. Hold speakup while pressing 2 in the number row and you'll turn up the volume. When maximum or minimum volume is reached with multiple presses of these keys, speakup will not announce anything. But if for example, you've cranked up the volume with number 2, you can press speakup-1 to turn it down and hear speakup say Vol 8" or "Vol 7". The highest volume is 9.

The other thing you'll want to change is rate, and that is handled with Speakup-5 and Speakup-6. These settings can be permanently saved with the speakupconf utility, but they cannot be saved until you have a running system.

Another important parameter I like to set is the punctuation. This is handled by holding the speakup key and pressing Function keys F9, F10, F11 and F12. F12 will set the reading punctuation level to 4, (press it a few times, and F10 will set the punctuation level to 4. You have to hold insert or caps lock while pressing these keys. The F11 and F9 with the speakup key decrement the Reading punctuation and the punctuation level respectively. Why speakup has two different punctuation settings I do not know and why it needs four separate keys to adjust them, seems confusing. But that's the way you do it.

I find for installations, I like to have all punctuation enabled, setting both to level 4. The installer can show you a row of underscores to represent a fill in blank, and you'll miss that with punctuation set lower. Also it's helpful to have punctuation highest for just confirming details of partitioning and the like as you become more advanced.

If you've found dealing with punctuation and speech challenging in a terminal environment, you'll discover that speakup won't ever read the graphics drawing characters, so setting its punctuation to level 4 will not be overly tedious.

Make it Louder

It's also important to mention that even with speakup's volume set to 9, you might need more volume out of your sound card.

To do this, perform the following steps:

  1. Press Alt-F2. This switches you to the second Linux console.
  2. Press enter to activate that console. You'll be at a shell prompt.
  3. Carefully type this command:
	amixer set Master 100%,100%,unmute

press Enter. This sets the "master" volume as high as it will go. The M in Master is capitalized.

  1. Type this line, if the volume still needs raising:
	amixer set PCM 100%,100%,unmute

The three letters in the PCM device are all uppercase.

  1. And if the volume is still not to your liking, last try:
	amixer set Speaker,100%,100%,unmute
  1. After you pressed Enter, and got some feedback from the Amixer command, you can now switch back to your install console with Alt-F1.

A running Linux system has alt-f1 through alt-F8 assigned to switch to separate consoles. This install only has three consoles, because it's trying not to eat too much memory. The third console displays debug messages, so if you need a shell prompt, stick with the console on Alt-F2.

More Speakup Commands

Back to the screen reader. You won't always need to hold the Speakup key, if you have a numeric keypad, numeric 7 8 and 9 read the previous, current and next line respectively. 4, 5 and 6 read previous current and next word. 3 2 and 1 read by characters. In the text-based install, you'll review the screen to repeat anything you've missed, but you won't have to locate or track a cursor. For many Linux packages, tracking a cursor is necessary, but for the install, all the choices will be numbered.

But if you have no numeric keypad, you'll be holding that speakup key down a lot. To review the current line, hold caps-lock and the letter i. Holding caps lock while you press the letters u or o reads the previous and next line respectively. the j k and l keys do the same for previous, current and following word and m, comma and period work for previous, next and following character.

As you use these review keys, you are navigating a virtual screen, and unless the real screen is updating, its content will not change. While you have one of the tedious menus onscreen, say the one for selecting your keyboard, experiment with the review keys and practice locating and spelling words you didn't quite understand. Notice that if you press the keystroke to read the current character twice, it will be voiced phonetically.

There are many more speakup keys. To get a current list, you can hold speakup while pressing F1. The help screen that "appears" isn't visible to your monitor or even the operating system. You can arrow through the choices, and press Spacebar to exit. It's a read-only virtual buffer, and you can't interact with it accept to arrow through it and listen.

If you want speech to stop more permanently, you can hold the Speakup key while pressing enter. This will prevent Speakup from reading while the screen is scrolling. However as soon as you type anything, including a keystroke to review, speech will be enabled again. You can turn Speakup off all the wway by holding speakup and the control key while pressing enter. This is a toggle so it's easy to get Speakup back!

More on Installing

Now that you've gotten familiar with speakup and passed through the language, country and keyboard menus, the system will not prompt you again until it's time to enter a host name. Advanced users who changed their priority level would see more questions or get an installation menu, but by default, the Debian installer skips most installation choices that it can answer itself automatically.

As the installer asks you questions remember it's easy to google for the Debian Installation guide, and look through that for explanations of these choices. Basically, you'll be asked for a hostname, a domain, a root password, your full name, a user name, a password for that user, and your time zone. Some of these choices will have defaults which are displayed after the prompt. You can just press Enter to accept that default.

 A few choices, such as your user name have a default you can edit. For example if your full name is Jonathon Doe, the user name prompt will show Jonathon. If you'd prefer your user name to be Jay, simply press Ctrl-U to "undo" the current entry, and type in your new user name.

For passwords, you'll be prompted twice to enter the exact same password.

And some choices will have menus, like the time zone menu. These choices are numbered. In a default install that doesn't include speech, the interface with a highlight bar would be displayed, but the Debian installer is smart enough to invoke the text-based front end when software speech is enabled. So if you've tried this install using a terminal, you'll notice the interface is a lot more speech friendly than you might have seen before.

When you get to the menus for partitioning, you won't have any defaults. This, by the way is a great method for practicing partitioning. But if you just want to get Debian running, simply pick the choices recommended for beginners. Read the entire contents of the screens to understand the options To have speakup repeat an entire screen, the keystroke is the caps lock down while you press the apostrophe, or on the numeric keypad, hold insert and press Plus.

You will probably choose to put everything in a single partition, and that's just fine until you become a professional system administrator.

After partitioning, you will next select a Debian mirror, and the menu of choices is long. The default choice is United states, and you can simply press Enter to accept that. However, you are now probably proficient enough with Speakup, that finding your country shouldn't be too difficult. After a few more questions, the system will grwo silent as it locates the mirror, and verifies the files are downloadable and intact.

Finally, you'll be asked to install software, and this probably is the most confusing screen in the installer. The first choice, for a graphical desktop is the default, and if you want a small, fast system, you should not select it. Instead, type numbers corresponding to your choice, separated by spaces or commas. For example, on my install, 2 4 6 7 8 10 were my choices.

If you pick the defaults, the system will boot in to a graphical environment and be inaccessible to a beginner. An advanced user or a blind beginner with some assistance can get back to the console, or character based interface with speakup running.

After software installation finishes, you are asked to put grub on the master boot record. Handling this step wrong could make a multi-boot system unusable, but with a virtual machine, simply pick the defaults. Grub, the Grand Unified Boot Loader is what makes it possible to boot your system in a flexible way so you can run multiple operating systems and/or multiple Linux kernels.

Finally the installer does some cleanup and is ready to reboot.

Vmware helpfully ejects the CD, the system boots, and hopefully talks.

If you run in to problems with the install, on real hardware, you can re-insert the CD, reboot and try again. With Vmware, the first boot is from the CD, and after that it boots straight to the hard disk. So you'll need to create a new virtual machine to try a new install.

Appendix D: Using Hardware Speech or Braille Displays To Install Linux

If you want to use a Braille display in Linux, this portion of the BrlTTY reference manual lists the driver codes you will need:

http://www.mielke.cc/BrlTTY/doc/Manual-BrlTTY/English/BrlTTY-10.html

For example, if you have a Braille Note on the third serial port (what Windows calls COM3 and VmWare calls Serial Port 3) you'd type:
BrlTTY=bn,/dev/ttyS2
as one of your boot parameters.

The reason you use /dev here for the serial port is that BrlTTY is simply another program, and not part of the Linux kernel. It will load after the kernel is in memory.

Your Braille display cannot work with your Windows screen reader and BrlTTY in Linux at the same time, so turn off Windows Braille support first before attempting this. If you have an old display, not currently supported by Windows screen access, you might discover that BrlTTY supports it under Linux.

Another way to run BrlTTY under the installation is to wait until the first screen boots, the one asking for your language, then use Alt-F2 to switch to another console. Press Enter to activate that console, then type:
brltty -b ts -d /dev/ttyS1

replacing the ts (which is for TeleSensory's Braille displays) for the driver of your display and of course supplying the appropriate serial port. In this case, of course you really would need to have a physical, and not a virtual serial port, and you'd need to have Vmware using it.

BrlTTY can autodetect USB displays, and Vmware can attach a virtual USB port to a real USB port. You can even use a USB-To-Serial converter.

The device name for a USB serial converter is /dev/ttyUSB0 or whichever USB port it actually is cabled to. You don't need to supply a device for a USB port because BrlTTY can auto-detect the type of display when its interface is USB

BrlTTY can also in many cases autodetect a Braille display

 so for example:

If you have a hardware synthesizer, and want to try Speakup in Linux, the full documentation, including its important list of the driver codes is here: http://www.Linux-speakup.org/spkguide.txt

For example, if you have a DoubleTalk LT or Litetalk, this would be one of your boot parameters

speakup.synth=ltlk

The speakup.synth is a syntax for telling the kernel to load a particular speakup module when it starts.

  • *End**
Edit - History - Print - Recent Changes - Search
Page last modified on September 18, 2013, at 08:31 AM