Preface
I have noticed that every personal computer costs - first and foremost - time. It doesn’t matter whether it runs on MS Windows, OSX, Linux or UNIX, how much time it saves me or what - formerly unknown - possibilities it opens up. It takes time for the computer to boot up, time for me to log in, time to start a program. Or - even worse - time for finding something on the internet and copying it onto my computer. The PC can do nearly anything - allows me do nearly anything. But it also takes up my time and distracts me - because, while waiting for one thing, I can do this or that. Pretty soon I’m in multitasking mode and getting next to nothing done.
But this book is about something else. It’s about small computers, built for one purpose: to be switched on and soon forgotten. It’s about computers that don’t have a keyboard or a display, that are there to do what they were built for. Sure such a device is boring when it works. But this book is not about using such devices, it is about building one.
- What do I need to do this?
- What do I have to consider?
- What can I do with such a device?
- What must I know in order to build it?
- What is already there?
- What kind of hardware can I use?
Certainly many things in this book will be outdated in short time, given the pace with which information technology evolves. Therefore I’ll try to carve out some fundamental principals and take the available hardware as an example.
Audience
This book is for anyone who wants to build their individual computer according to their own design based on PC Engine ALIX or similar hardware.
It presumes a basic knowledge of the UNIX command line.
To build the UPS circuit, basic knowledge about electronics assembly is required.
Organization
The first part of the book deals with the things I can do or want to do with such a device. What software do I need and what special things do I need to consider? Problems will be dealt with in more detail in later chapters.
Chapter one illustrates some applications and talks about some basic conditions for these applications. These may include the number of interfaces for a networking device, additional hardware for special purposes or particular software requirements.
The second part deals with the hardware used. What does it have in common with personal computers, what is different?
Chapter two goes into detail about PC Engines ALIX computers. What hardware options are there? Which device drivers do I need? What software is available especially for this hardware?
Chapter three covers additional hardware for special projects.
The third part deals with the software used. It is about appropriate Linux distributions and how to install them onto the hardware. It also explains about the components of a Linux system and their purpose and about additional software and how to install it onto the system.
Chapter four goes into some Linux distributions that I find suitable for headless Linux projects.
Chapter five illustrates different ways of installing my choice of Linux distribution into the hardware.
Chapter six goes into detail about the components of a Linux system. What is their purpose and what alternatives do I have?
Chapter seven shows how I can compile and install software that is not available in my chosen Linux distribution.
The fourth part of the book deals with the daily operation and offers hints on how to solve possible problems.
Chapter eight goes into detail about daily operation. How do I configure the device for the operational environment? How do I update the system? How do I know if security updates are needed in the first place?
Chapter nine presents some trouble-shooting strategies. What can I do if a program doesn’t start at all? When it crashes? How do I track problems in the network? Which programs help me with which problems?
Chapter ten introduces some protocols and mechanisms that I may encounter in the course of the project which may prove helpful to know about.
Chapter eleven lists some additional resources that may provide help for some problems.
Conventions
Program code and input in the command line is written in constant width
text. This is also used inside paragraphs for literal command line options.
Emphasized text is written in italics.
Acknowledgements
This book began as accompanying documentation for a few projects with PC Engine ALIX computers.
I would like to thank the users of the PC Engines support forum for their helpful suggestions, especially Nicolas (pure_debian) for his reference to flashybrid and for the idea of using virtual machines.
Willy Tarreau suggested I use the PC8591 to monitor the mini UPS which made the circuit considerably easier.
Thanks go to KDG Wittenberg for providing me with some ALIX machines for testing purposes after my own device became operational and could only be used for a limited number of tests.
Many thanks to Lorri King from able Sprachschule for correcting my perception of how a meaningful english sentence should look. I take the credit for any remaining mistakes in English grammar and orthography.