Skip to content
Christof Boeckler edited this page Oct 4, 2015 · 18 revisions

Introduction

Running Linux 3.x and X.org 7.x in 64 MB diskless is not trivial. Thinstation is a minimalist Linux distribution, so it takes more interaction from you than a typical fat “include-everything-and-the-kitchen-sink” type of distribution (like e.g. RedHat). In order to keep the boot image small, you have to define which hardware will be supported by it. Thinstation uses so called machine profiles to represent hardware configurations. There are a couple of predefined machine profiles, but you probably have to create your own.

What is a machine profile and how do I use it?

Technically spoken, a machine profile is a subdirectory of build/machine containing the files module.list, firmware.list, vbe_modes.list or package.list.

The build.conf file directive machine complements firmware, module, package and param directives. Example:

machine myPC

It’s supposed to satisfy firmware, kernel module and X.org driver dependencies for a particular hardware platform in one go. You can have several machines defined in build.conf to create a boot image that runs on several types of hardware.

How do I create a new machine profile?

Short summary: Create a “fat” boot image, boot it and note which kernel modules were loaded.

  1. Uncomment or add package extensions in build.conf, as well as any potential X.org targets (package xorg7-*) that may be used by a platform.
  2. Build using the command ./build --allmodules. This generates a rather big image with everything driverwise.
  3. Boot the client with this image and run /bin/hwlister.sh. This will generate one, two or three files:
    • module.list (always),
    • vbe_modes.list (probably) and
    • firmware.list (maybe).
  4. If you are running a TFTP server with writable root, they’ll automatically get uploaded. Otherwise they’ll be in / on the Thinstation client and you’ll have to transfer them manually by a USB stick or network.
  5. On your build computer, go to the thinstation/build/machine directory, create a new subdirectory (e.g. myPC) and put the above files there.
  6. If you want to include a certain X.org driver in your machine profile, you have to create a package.list file containing the appropriate package line.

You probably will want to edit build.conf and remove package extensions afterwards. Remember to omit --allmodules on your next build.