-
-
Notifications
You must be signed in to change notification settings - Fork 188
Machine profiles
Running Linux 4.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 machine profiles to represent hardware configurations. There are a couple of predefined machine profiles, but you probably have to create your own.
Technically spoken, a machine profile is a subdirectory of build/machine
containing the files module.list
, firmware.list
(optional), vbe_modes.list
or package.list
(optional).
A machine profile is used with the machine
directive in build.conf
. For 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 multiple types of hardware.
The machine
directive abstracts firmware
, module
and even package
directives. It complements module
, package
and param
directives.
Short summary: Create a “fat” boot image, boot it and note which kernel modules were loaded.
- Uncomment (or add)
package extensions
andpackage extensions-x
inbuild.conf
, as well as any potential X.org targets (package xorg7-*
) that may be used by a platform. - Build using the command
./build --allmodules
. This generates a rather big image (> 200 MiB) with everything driverwise. -
Boot the client with this image (see note below if you have problems) and run
/bin/hwlister.sh
. This will generate one, two or three files:
-
module.list
(always), -
vbe_modes.list
(probably) and -
firmware.list
(maybe).
- 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. - On your build computer, go to the
thinstation/build/machine
directory, create a new subdirectory (e.g.myPC
) and put the above files there. - If you want to include a certain X.org driver in your machine profile, you have to create a
package.list
file containing the appropriatepackage
line in your new machine profile directory (see 5.).
You probably will want to edit build.conf
and deactivate package extensions
afterwards. Remember to omit --allmodules
on your next build.
Since the above image includes X it requires your thin client to have at least 512 MiB of RAM. If your thin clients have less RAM (but at least 128 MiB) you can still use an image without X. Replace step 1 from above with:
cd /build
cp conf/hwlister/* .
Be aware of the fact that some kernel modules necessary for running X (e.g. i915
for Intel graphics devices) will not be loaded if X is not currently running (like in this case). So if you create a machine profile in text only mode you will have to add such modules to the newly created machine profile manually. Otherwise you will not be able to run X properly with this profile. Use this method at your own risk!
If you create a directory etc
in your machine profile directory and put arbitrary files in it, these files will be copied into the initial ramdisk under /etc
. This mechanism can be used as a shortcut for configuration so that you don’t have to create a new package just for a few config files in /etc
. See machine profile NT-A3500
for an example.