Skip to content
Christof Boeckler edited this page Sep 27, 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 thinstation/build/machine containing files like module.list or vbe_modes.list.

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

machine myPC

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

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, 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.

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