Linux
Toys II
¤ Hardware
for Projects ¤
Linux
Toys
¤
Starting with Linux
¤
Advancing
with Linux
About
Linux Toys
I had the idea for Linux Toys (Wiley Publishing, 2003)
before I had even heard of Linux. In the early 1990s, someone handed me
a disk with "free" software on it that ran in UNIX. Although UNIX, as
it was delivered by my co-workers a AT&T, was brilliant, it was
also rather boring. But, add some free software and put together the
pieces the way you liked (since it was free, as in freedom to use it as
you please), and you could have UNIX Toys.
I never did write UNIX Toys, since my attention soon turned to Linux.
After writing a few successful Linux books, I felt it was time to
revitalize the idea as Linux Toys. So, in 2002 I approached Chuck
Wolber to work with me to put together some projects from free and open
source software and some PC hardware. We finished the book in late
2003. It became the first publication in the Extreme Tech book imprint and was
nicely slashdotted
in late December.
I learned some lessons from Linux
Toys that I took into account with Linux Toys II. Primarily, I gained
a new respect for successful, on-going open source initiatives. The
original LinuxToys.net site was created as a Linux Toys community, with
forums, news, articles and polls. We also planned to maintain and
enhance the 13 projects in the book going forward.
Over time, the effort to maintain the community became too much for the
few of us that were trying to keep the site going. Also, maintaining
enhancements for thirteen different project also turned out not to be
feasible. So, because of the fast-paced nature of open source software
development, some of the projects in Linux
Toys will no longer run on most Linux systems as we describe in
the book. (As a result, for Linux Toys II, I stuck close to existing
open source initiatives and point readers to those initiatives for
forums, software updates, and ways to contribute.)
In any case, the rest of this page describes the projects in Linux Toys and notes some of the
challenges of getting the now several-year-old software working as
described in the book. Here are links to descriptions of those
projects:
Music Jukebox Home
Video Archive Television
Recorder/Player Arcade Game Player
Home Network Server Home Broadcast Center Temperature Monitor
Digital Receptionist Mini
ISP Web Hosting
Doghouse Linux Toy Car
Controller Digital Picture Frame
Project
1: Music Jukebox
Create the Linux
Toys Music Jukebox on an elegant PC and add it to your entertainment
center.
The Linux Toys Music Jukebox project started as a way to be able to
play your whole CD music collection
from a PC's hard disk instead of from the individual CDs. It's turning
out to be a pretty good foundation for
that and a lot more.
Turn on the project and you can continuously rip and play your entire
music CD collection.
This is one Linux Toys project that is immediately fun and useful.
Here's how it works:
Install the Linux Toys Music Jukebox software from the Linux Toys CD.
Start up the service.
Any music that has been copied to your hard disk (in the specified
location) begins to play randomly.
(Or you can play from your own playlist instead.)
Any music CD that you insert into the CD drive is automatically ripped
and stored by artist, album and song name.
The jukebox can grab the CD information it needs from any CD database
on the Internet (valid ones are set up
by default, so this happens automatically if you are connected to the
Internet). To make it a standalone unit,
the Linux Toys CD contains a copy of the Freedb.org CD database. CDs
that aren't in the database, we describe how to add manually.
The majority of the software used in the jukebox comes from the
following projects:
- Linux Toys CD:
On the Linux Toys CD, the ltjukebox package contains the scripts used
to start and run the jukebox.
- Fedora or Red Hat Linux: This
project was tested on Red Hat Linux 9 operating system.
(You can get Red Hat Linux 9 with the Red Hat Linux 9 Bible). Most
versions of Fedora Core can be used for this
project as well.
- Compression: The jukebox uses Ogg Vorbis audio compression,
instead of MP3.
Ogg Vorbis is a free audio encoding stardard. Basic Ogg Vorbis commands
are in the vorbis-tools package (which comes in most Linux systems). In
particular we use the commands ogg123 (to play) and oggenc (to encode).
- Ripping: The autorip script is the basis
for the script we used for
ripping CDs. It looks up an inserted music CD in the CDDB or FreeDB
databases, to get what it needs to name the
music files properly. Then it rips them to hard disk with cdparanoia command.
- Playing: The musicd script was
written by Chuck Wolber to either randomly play all your music or play
from a playlist (if one is present).
- FreeDB: The freedb.org CD database software
is included on the Linux
Toys CD. This allows you to set up the jukebox to be its own CDDB
server. You can even configure that software so
your computer acts as a CDDB server to others on your LAN or the
Internet.
The project will
run on most any PC that can run Fedora or Red Hat Linux and has a
supported sound card. An Internet connection
(Ethernet or modem) makes it so you don't have to set up your own CD
database.
Project
2: Home Video Archive
Copy home videos to
your PC, then burn them to CD, DVD, or VCDs.
The Linux Toys Video Archive project simply steps you through the
process of capturing video from an outside source
(like your VCR or camcorder), then copying to another medium (such as a
CD, DVD, or VCD). The quality of the video
isn't so great, but it's still fun the play with.
The project goes
something like this:
Install the Linux Toys Home Video Archive software from the Linux Toys
CD.
Add a TV card and connect video hardware to your computer.
Play the video into your computer and capture it to your hard disk.
Burn the video to a medium of your choice (including possibly
converting it to a low-quality VCD you can play on your home DVD
player).
You can playback your recorded video to make sure it came out alright.
Software for the
Home Video Archive comes from the following projects:
- Linux
Toys CD: Software
packages for this project are stored in the ch04-VideoArchive directory
on the Linux Toys CD.
- Fedora
or Red Hat Linux: As usual, you need
the Red Hat Linux 9
operating system (which you can get with the Red Hat Linux Bible).
Presumably, later versions of Red Hat Linux (such as the Fedora Core)
can be used for this project as well.
- Ffmpeg:
The ffmpeg package contains a
set of tools for doing video and audio recording, streaming, and
compression. We happen to use mjpeg for our video examples.
- Nvrec: From the nvrec package we use the
ffmpegrec command to do the actual recording. Using nvrec commands
seemed to improve audio and video synchronization.
- TV player: The xawtv package (which comes
with Red Hat Linux) lets you view incoming video on devices that are
supported by the video4linux project (television,
Webcams, etc.).
- Video player: We use mplayer (a limited version)
to let you play back the video/audio streams you record.
- VCD creator: To create VCD video
images, we use a software package called vcdimager. Despite our having
some problems getting very good quality VideoCD output, it was still a
fun tool to play with, since the VCD would actually play in a home DVD
player.
An old junker PC probably won't work very well with this project. A
slow CPU will have trouble keeping up with the video processing. You
need to add at least a TV card to get your video input. You will
probably also want a CD and/or DVD burner, a VCR or camcorder to input
your video, and possibly a new video card (if yours can't cut it).
In this project's Linux Toys chapter, we describe some of the different
options you can use to record video/audio streams. We also describe how
to create CD and DVD disk images and burn them on to the appropriate
media.
Project
3: Television Recorder/Player
Display TV listings
and select shows to record now or cue for later recording.
NOTE: When XMLTV changed its
format because of changes to how the television listings are formatted,
WebVCR+ broke. The changes required to fix it are so extensive that we
are recommending MythTV as a better project for TV recording. (Setting
up a personal video recorder with MythTV is described in Linux Toys II.)
The Linux Toys Television Recorder/Player is for those of you who are
too cheap to buy a TIVO or other type of personal video recorder. With
a bit of luck, you'll be able to record your television programs from
listings that reflect your local broadcast television, cable or
satellite provider.
In general, here's what you do to get your Linux Toys Television
Recorder/Player going:
Install the Linux Toys Television Recorder/Player software from the
Linux Toys CD.
Add a TV card and connect your antenna or cable input to the TV card.
Set up channel names and numbers, as well as other xawtv settings for
viewing television.
Download television listings for your local area.
Use the graphical WebVCR+ window to get the correct settings to do your
recording.
Again using WebVCR+, choose the shows you want to record, then record
one that's on now or cue shows to record later.
Use mplayer to play back your recorded television shows.
Software for the Linux Toys Television Recorder/Player comes from the
following projects:
- Linux Toys CD: Software packages
for this project are stored in the
ch05-WebVCR directory on the Linux Toys CD.
- Fedora or Red Hat Linux:
You need the Red Hat Linux 9 operating system
(which you can get with the Red Hat Linux 9 Bible). Presumably, later
versions of Red Hat Linux (such as the Fedora Core) can be used for
this project as well.
- TV player:
The xawtv package (part of Red
Hat Linux 9) lets you view video on video4linux devices (television,
Webcams, etc.).
- XmlTV:
Using commands from the xmltv package, you can
download your TV listings from the Internet. (Keep an eye on this
project, to look for updates if your TV listings stop working.)
- Ffmpeg: The ffmpeg package contains a
set of tools for doing video and audio recording, streaming, and
compression. We happen to use mjpeg for our video examples.
- Nvrec: From the nvrec package we use the
ffmpegrec command from to do the actual recording. Using nvrec commands
seemed to improve audio and video synchronization.
- WebVCR+: Once you have basically
configured the project, software from the WebVCR+ project does most of
the work. WebVCR+ is where you configure the recorder settings, viewTV
listings, and select the shows you want to record.
- Video player: A limited version of mplayer is used to play back
the video/audio streams you record.
As with our
other video projects, the faster the speed of your CPU, the better your
resulting video will be. You will also need a lot of disk space to
store your shows. As for hardware, you'll need a modem or broadband
connection to get your TV listings and a TV card to connect to the
antenna/cable.
Project
4: Arcade Game Player
Play classic arcade
games using the multiple arcade machine emulator.
The
Arcade Game Player project is based on the Multiple Arcade Machine
Emulator (MAME). We include the X
version of MAME called XMAME
(strangely enough). With XMAME, you have software that runs on a Linux
desktop that emulates classic game consoles from the 1970s, 1980s, and
1990s.
We
include three game ROMs that are in the public domain that you can use
to try out XMAME. We also included a graphical front-end called
gRustibus for launching the games. MAME can emulate more than 1900
unique games (and more than 3000 when you add in different versions of
the same game).
With this project, we tell you how to:
- Install the Linux Toys Arcade Game Player software from the Linux
Toys CD.
- Calibrate your joystick.
- Obtain and install legal game ROMs.
- Tune the games to run their best.
- Configure Linux to boot directly to a MAME screen, then launch
games directly from that screen.
Software for the
Linux Toys Arcade Game Player comes from the following projects:
- Linux Toys CD: Software
packages for this project are stored in the ch06-Arcade directory on
the Linux Toys CD.
- Fedora or Red Hat Linux:
As usual, you need the Red Hat Linux 9
operating system (which you can get in the Red Hat Linux Bible).
Presumably, later versions of Red Hat Linux (such as the Fedora Core)
can be used for this project as well.
- Xmame: We include the xmame package on the Linux Toys CD, to
do the actual game emulation on your computer.
- Game
ROMS: There are three games for XMAME that are considered in the
public domain. Those three games are included on the Linux Toys CD.
Check out the MAME FAQ
to read over some of the legal issues relating to using game ROMs, or
read this article which is available from the
TechTV site.
- Graphical front-end: The gRustibus software
provides a way to graphically tune the games the way you want, then
launch them from the desktop.
Not
much to learn about Linux with this project. However, we do show you
some hacks for modifying your login screen and describe how to launch
an application (in this case, a game) immediately when you log into
Linux.
Project
5: Home Network Server
Safely share
printers, files, and an Internet connection using the Linux Toys Home
Network Server.
Everything for this
project comes with the Fedora Core or Red Hat Linux distributions (no
additional Linux Toys software). For the home user, setting up Red Hat
Linux as a server for sharing an Internet connection with the other
computers in your home is a great way to use an old PC. And since the
computer is secure (with a firewall in place) and on all the time, why
not use it to share files and printers with your other home computers?
With this
project, we tell you how to: Install Red Hat Linux
and configure the server's network interface. Configure the server
to hand out IP addresses to computers on your LAN (using DHCP). Tune up the server's
firewall to protect your home network from intruders and route traffic
from your network to the Internet. Set up Red Hat Linux
to do file and printer sharing with other computers in your home. Add some other Linux
Toys projects so they work on your home network.
Software for the Linux Toys Home Network Server comes from the
following projects:
- Red Hat Linux: As usual, you need
the Red Hat Linux 9 operating system
(which you can get with the Red Hat Linux Bible). Presumably, later
versions of Red Hat Linux (such as the Fedora Core) can be used for
this project as well. All the software for this project is in Red Hat
Linux.
- Firewall: We recommend iptables (the default
firewall software in Red Hat Linux) for setting up your firewall.
- IP address sharing: You can set up
your Linux Toys Home Network Server as a DHCP server, to assign IP
addresses to the client computers on your home LAN.
- File and Printer Sharing: To share
files and printers on your home LAN, we describe how to configure Samba on your Home Network
Server.
Besides the
features just mentioned, there is a short lesson in the Home Network
Server chapter that describes how to configure on-demand dialing. If
you are stuck with a regular dial-up connection for reaching the
Internet, on-demand dialing allows your server to only start up the
Internet connection when someone makes a request for something from the
Internet.
The
software described in the Home Network Server project is quite stable
and commonly used. Opportunities for enhancing this server fall into
the category of personalization. Things you might want
to consider adding to your own server include:
- Content: Consider what types of
files you want to be able to share among the members of your family:
music, digital images, videos, and so on.
- Services: Any services that run in
Red Hat Linux can be added to your Home Network Server. For example,
you can set up the server to make backup copies of files from other
computers, to do wireless networking, or to act as a database server.
Of course, you can also add any of the public servers (Web, FTP, or
mail servers) that are described in other projects in Linux Toys.
Project 6: Home Broadcast Center
Stream video and audio from your Linux Toys Home Broadcast Center to
others on your LAN or the Internet
Stuff in Home Broadcast Center
Stuff to learn
Stuff to improve
There are lots of different ways of geting video into your Linux
computer (Webcam, cable television, surveillance camera, etc.). Using
software that comes with the Linux Toys Home Broadcast Center, you can
stream that video and audio to other computers on your LAN or on the
Internet. Although the software in this project does not produce
professional quality video, it does give you a chance to play with
streaming video.
The Linux Toys Home Broadcast Center chapter of Linux Toys describes
how to:
Install the Linux Toys Home Brodcast Center software from the Linux
Toys CD.
Add a TV card and connect video hardware to your computer.
Check that video is working properly on your Linux computer.
Configure the server to stream video.
Configure
the video stream to direct the video to the server. Display the
streaming video on a remote client as it comes in.
Software for the Home Broadcast Center comes from the following
projects:
- Linux Toys CD: Software packages for
this project are stored in the ch08-HomeBroadcast directory on the
Linux Toys CD.
- Fedora or Red Hat Linux: As usual,
you need the Red Hat Linux 9 operating system
(which you can get with the Red Hat Linux Bible). Presumably, later
versions of Red Hat Linux (such as the Fedora Core) can be used for
this project as well.
- Ffmpeg: The ffmpeg package contains the
tools used in this project for playing and distributing the streaming
video. In particular, the ffserver command starts the streaming video
server and the ffmpeg command directs the video to that server.
- TV player: The xawtv package (which is in
Red Hat Linux) lets you view video on video4linux devices (television,
Webcams, etc.).
- Video player: We use a limited mplayer version to let you
play the video/audio streams being sent from the Home Broadcast Center.
In this
project's chapter in Linux Toys, we suggest how to manipulate your
video output to get a good balance of quality and performance. This project presents a very
rudimentary introduction to streaming video. You can work to
improve the project by trying different codecs and compression settings
to maximize the quality of your streaming video.
Project
7: Temperature Monitor
Monitor the
temperature from Linux, then read it into a Web page, email message, or
anything else you like.
NOTE: Shortly after Linux Toys
came out, the person we had building and selling the temperature
monitor hardware stopped doing so. The standard one-wire sensors
don't seem to work with the software that comes on the Linux Toys
CD. I suggest you refer to the DigiTemp site if you would
like to follow up on this project.
The Linux Toys
Temperature Monitor is based on the DigiTemp
project. Using DigiTemp, you can continuously monitor the temperature
from 1-Wire sensors attached to a serial port on your Linux computer.
Then you can use the temperature readings any way you like (in a mail
message, Web site, or graph).
With this
project, we tell you how to: Install DigiTemp
software from the Linux Toys CD. Obtain and set up
the 1-Wire temperature sensors. Continuously read
temperatures from all sensors and save them to a file. Set up your email
and/or Web page to read in the current temperature settings.
Software
in this project includes the following:
- Linux Toys: Software for this
project is stored in the ch09-DigiTemp directory on the Linux Toys CD.
- Fedora or Red Hat Linux: As usual,
you need the Red Hat Linux 9 operating system
(which you can get with the Red Hat Linux Bible). Presumably, later
versions of Red Hat Linux (such as the Fedora Core) can be used for
this project as well.
- Temperature Monitor: The bulk of
this project comes from the DigiTemp project, which lets
you monitor 1-Wire weather sensors in
Linux.
In the Temperature
Monitor chapter, we teach a little bit about using the cron facility to
have commands run at set times. We use cron to start the script that
checks and stores the temperature at set intervals.
Project
8: Digital Receptionist
Turn your Linux
system into a telephone answering machine that forwards audio voice
messages in email.
The VOCP project forms the basis for
the Linux Toys Digital Receptionist project. This was a very
challenging project for us to get going, but it was fun enough to play
with that we decided to keep it in the book.
Start with a supported voice
modem (not just any modem will do) to avoid what was our biggest
impediment. The project takes you through setting up the voice modem to
receive calls, creating multiple voice mail boxes, and forwarding
messages (either the full audio message or just text saying it's there)
to your email. There are some really cool features we haven't even
touched yet (like routing messages to specific mail boxes based on
incoming caller ID). With this project, we tell you how to:
- Set up the hardware you need (voice modem, speakers, sound card
and microphone).
- Install the Linux Toys Digital Receptionist software from the
Linux Toys CD.
- Configure the special version of vgetty (you need to remove the
vgetty in Red Hat) to listen for incoming telephone calls.
- Configure VOCP set compression, log file locations and so on.
- Plan and set up voice mail boxes.
- Record your own voicemail messages
- Playback voicemail messages that were forwarded from your email.
Software for the
Linux Toys Digital Receptionist comes from the following projects:
- Linux Toys CD: Software packages
for this project are stored in the ch10-DigitalReceptionist directory
on the Linux Toys CD.
- Fedora or Red Hat Linux: As usual,
you need the Red Hat Linux 9 operating system
(which you can get with the Red Hat Linux Bible). Presumably, later
versions of Red Hat Linux (such as the Fedora Core) can also be used
for this project.
- VOCP: The heart of this project are
the vocp and mgetty-vocp packages, which both come from the VOCP project. Those packages
handle the features for answering incoming calls and setting up the
mail boxes.
We offer some
suggestions for debugging your voice modem. The project also offers the
opportunity to create a series of voicemail boxes to navigate the
voicemail system. Here are some
ways of enhancing this project:
- Caller ID: As mentioned earlier,
caller ID features are built into the project and we didn't explore
those features in the book.
- Fax service: The VOCP software is
reported to support faxes, which we would also like to explore further.
- Text-to-speech: VOCP
supports a text-to-speech feature that we understand translates text
email messages to audio.
- Voice modem controls: We'd like to
provide some better instruction for controlling voice modem operations.
In particular, we had trouble controlling volume levels (we provided
some workarounds that seemed to help somewhat).
Project
9: Mini Internet Service Provider
Set up services that
are used by real Internet Service Providers to support dial-in
customers.
Inside
Fedora and Red Hat Linux are features used everyday by Internet Service
Providers
(ISPs) to allow their customers to dial-in to the Internet, publish
personal Web pages, and access e-mail. All the basics are
there. Although being a real ISP requires much more diligent
support, with nothing more than a PC and a couple of modems, you can
set up Red Hat Linux to offer the same basic services to a friend or
two. (Check your ISP's acceptable use policy first, to make sure this
is legal for you.)
With the Mini ISP
project, we tell you how to:
- Install Red Hat Linux and configure the server's network
interfaces.
- Configure one or more modems to let your "customers" dial-in to
your server.
- Configure
the firewall to allow dial-in customers to be routed to the Internet
and to allow Web, FTP and e-mail service from the Internet.
- Set up DNS so your server can serve up its own domain name.
- Allow users to have personal Web pages, file storage through FTP,
and E-mail accounts.
- Add a user account for anyone you want to allow to use your
server.
Software
for the Linux Toys Mini ISP project is all in Fedora and Red Hat Linux.
The
packages used come from the following projects:
- Red Hat Linux: As usual,
you need the Red Hat Linux 9
operating system (which you can get with the Red Hat Linux Bible).
Presumably, later versions of Red Hat Linux (such as the Fedora Core)
can be used for this project as well. All the software for this project
is in Red Hat Linux. An Everything install will save the hassles of
going back and adding packages later.
- Domain Name System
server: Since we have you set up your ISP with a real domain
name,
we threw in a procedure for configuring DNS to identify the location of
your server to the Internet. We use bind software for
configuring DNS.
- Dial-in server: mgetty
is the daemon can be run in the background to listen for incoming calls
to Linux. We describe how to use mgetty to allow clients to dial-in
using a PPP connection (as they would with a real ISP).
- Firewall: We recommend iptables
(the default firewall software in Red Hat Linux) for setting up your
firewall. It has to be configured to route your customers from the
modem connection to your Internet connection. We also describe which
port number need to be opened to offer your services to the Internet
(Web, FTP, DNS, etc.).
- Web server: The Apache Web server
is included in the Red Hat Linux distribution. While most Apache
configuration we include in the Web Hosting Service chapter, we
describe how to make simple modifications so individuals can load their
own Web content.
- FTP server: We describe vsFTPd
FTP servers in the Web Hosting Service chapter. Here we just describe
how to limit your FTP server so that only your ISP clients can get in
to put their Web content into their own directory.
- Mail server: We tell how
to start postfix as the e-mail
server. Then we show how to turn on ipop to let users get their mail
over the Internet.
- File and Printer Sharing: To
share files and printers with computers on your home LAN, we describe
how to configure Samba on your
Home Network Server.
This
chapter is a great way to touch on many of the basic services that are
in Red Hat Linux that you can offer on the Internet. Because these
services are only touched on, however, you need to do some serious
further study on securing your computer from intruders if you are using
the server for business. (Security topics are covered in the Red Hat
Linux Bible, as well as other books on Red Hat Linux.)
Project 10: Web
Hosting Service
Serve up contents for
multiple Web sites from a single server.
While the Mini
ISP project lets you pretend to be a real ISP, the Linux Toys Web
Hosting Service project lets you pretend to be a big-time Web hosting
service. Like the ISP project, the features you learn about here are
those that are truly used by professional Web hosting services. This
project relies primarily on the popular Apache Web Server software
(which comes with Red Hat Linux) to set up a computer to do virtual
hosting. Virtual hosting can allow a single computer to host Web
content for multiple domain and host names.
Gaining
experience providing services to clients, while still limiting their
access to the server, is the other major intention of this project. For
example, the project shows how to use disk quotas to limit space usage
and techniques to prevent access to your server's file system outside
of each client's home directory. With the Web Hosting Service project,
we tell you how to:
- Evaluate the resources you need, such as the amount of disk
space and data transfer required.
- Install Red Hat Linux and configure the server's network
interfaces.
- Set up DNS for each domain you are hosting.
- Add a user account for each person who will be providing Web
content.
- Configure the server to allow each user to have FTP access and
an E-mail account.
- Configure a virtual host container on the Web server for each
domain you are offering from your server.
- Set up disk quotas to limit the amout of disk space that can be
used by each user.
Software for the Linux Toys Web Hosting Service project is all in Red
Hat Linux. The packages used come from the following projects:
- Fedora or Red Hat Linux:
As usual, you need the Red Hat Linux 9
operating system (which you can get with the Red Hat Linux Bible).
Presumably, later versions of Red Hat Linux (such as the Fedora Core)
can be used for this project as well. All the software for this project
is in Red Hat Linux. Do a server or Everything install to save the
hassles of going back and adding packages later.
- Domain Name System server: Because
we are demonstrating how to set up Web sites for multiple domains on
one computer, we suggest that you might want to configure DNS for each
site. For that, we point to the description of the DNS server software
called bind in the
Linux Toys Home Network Server chapter.
- Web server: The Apache Web server software comes with
Red Hat Linux. We step through how to configure a basic Apache Web
server, paying particular attention to how you can set up multiple Web
sites on the same computer (referred to as virtual hosting).
- FTP server: Using vsFTPd, we describe how to set up
an FTP server (with particular emphasis on how to configure vsFTPd to
restrict client access to a set area of the hard disk.) We also
describe how to restrict access so that FTP is the only way a client
can access the computer.
- Other services: Because
procedures for configuring a network connection, setting up an E-mail (postfix) server, and configuring a
firewall (iptables) are similar
to those described in the Linux Toys Home Network Server project, we
point people to that project for information on setting up those
services.
The Web Hosting Service is mostly intended as a way to get you
thinking about setting up a Web server in a way that allows content
from multiple domains to be served up. Assuming that you need to server
multiple clients to do that, the emphasis here is how to do that in a
secure way.
Project
11: DogHouse Linux and BSD Games
Create a Linux distro
on a floppy and play old character-based games.
There are
lots of Linux-on-a-floppy and Linux-on-a-CD projects around. They
provide a cool way to see what Linux is like without bothering whatever
you have on your hard disk. Doghouse Linux is a small Linux
distribution that fits on a floppy disk. If you bought Linux Toys to
run on a 486 (which we told you not to do), this is the one project
that should run on that old box. Chuck named the project during the
72-hour weekend Chuck, Kevin and I spent over my garage polishing off
the projects.
Besides playing with some Linux commands, we packaged in a few old
character-based games I used to play at Syracuse University a few
decades ago. Games like adventure, wump, and fish will give you the
idea of what the first games were like that ran in UNIX. With the
DogHouse Linux project, we tell you how to:
- Create a bootable Linux floppy from the DogHouse Linux boot image.
- Run a few commands, for those who have never used the shell.
- Play a few character-based games.
- Install a larger set of character-based games, if you want to try
a few more.
Software for the
Linux Toys DogHouse Linux and BSD Games project comes from the
following projects:
- Linux Toys: Software for
this project is stored in the ch13-DogHouse directory on the Linux Toys CD.
- Herbix: DogHouse Linux
is based on a floppy-based Linux project that is called Herbix. We took out some of
the networking features in Herbix to have space for the games. Herbix
is a pretty cool project, allowing you to serve Web content from your
hard disk with Herbix booted.
- Games: The BSD Games
package came most recently from the Red Hat Linux 7.1 Powertools. It
includes games such as adventure, backgammon, cribbage, fish, hunt,
pig, robots, tetris-bsd, trek, wargames, worm, and wump.
There's not much
in this project for old Linux hacks. However, there is some discussion
of obtaining, mounting, and copying disk images (for floppy disks or
CDs). This can open your eyes to some really cool bootable Linux
distributions. Check out Distrowatch.com for other bootable
distros. As for the games, you can think of those as mostly a way of
seeing how computer games were played with just a keyboard and
character terminals.
Project
12: Toy Car Controller
Operate a toy car
from Linux.
The Linux Toys Toy
Car Controller is a fun project for showing how you can control remote
devices from Linux. We tell how to wire a radio control (RC) car to a
relay board (we used a Lynx-PORT
board). Then we describe how to:
- Execute scripts that run the RC car around in patterns.
- Execute scripts that let you run the RC car in real time from the
keyboard.
We also
illustrate how to use the toy car controller scripts as login shells,
so that you can login and control a toy car over the network. (Of
course you need some sort of video stream to watch your results.)
Software in this project includes the following:
- Linux Toys: Software for
this project is stored in the ch14-RemoteControl directory on the Linux Toys CD.
- Red Hat Linux: As usual,
you need the Red Hat Linux 9
operating system (which you can get with the Red Hat Linux Bible). Presumably,
later versions of Red Hat Linux (such as the Fedora Core) can be used
for this project as well.
- Toy Car Controller Scripts:
Chuck created scripts that turn on and off the relays on the Lynx-PORT board.
This project is more
about remote control than toy cars. Once you can control the relay
board, there are a lot of thing you can control from that board. Of
course, any kind of remote car, plane, blimp, and so on should work.
Also, if you have not done soldering before, Chuck offers a few good
tips.
We need to work out some latency problems we have with the video when
we run the toy car over a network. Aside from that, we are looking for
really cool ways to use the Lynx-PORT board for other projects.
In particular, we're looking at using the X.10 features of the board to
expand our use of the board to control a whole house of X.10 equipment
(lights, sprinklers, garage doors, and so on).
Project
13: Digital Picture Frame
Adapt a laptop
computer into a picture frame to continuously display digital images.
The Linux Toys
Digital Picture Frame project describes how to adapt an old laptop
computer into a picture frame that can be used to continuously display
your digital images. Then we describe how to:
- Choose a laptop (with related hardware) and picture frame.
- Install Red Linux and Linux Toys software.
- Load images on the laptop.
- Take apart the laptop and fit it in the picture frame.
- Continuously display your pictures in the picture frame.
The trick is to
start with a cheap laptop that you can spare if you break it by
mistake. Once it's built, you can just put it on your coffee table, sit
back, and watch.
Software in this project includes the following:
- Linux Toys: Software for
this project is stored in the ch15-PictureFrame directory on the Linux Toys CD.
- Red Hat Linux: As usual,
you need the Red Hat Linux 9
operating system (which you can get with the Red Hat Linux Bible). Presumably,
later versions of Red Hat Linux (such as the Fedora Core) can be used
for this project as well.
- ImageMagick: We use ImageMagick as the software for
converting your digital images to the proper size.
- Xloadimage: We use the
xview command from the xloadimage package in Red Hat Linux as the
software for displaying the digital images.
- Digital Picture Frame software:
Chuck created software to resize and continuously play the images.
This project is
primarily a hardware project. Chuck painstakingly disassembled a laptop
and put it inside a picture frame for this project. I tried as best I
could how to recreate the process for you. We also briefly teach you
what tools in Linux let you load images from digital cameras or over
the network. Using a LAN card from the laptop is a good way to feed
images to the laptop later without having to add a keyboard.
© Christopher
Negus, 2005