Notes:
DIET-PC 2 features the following improvements:
- A two-digit version numbering scheme. This is really just business as
usual, except that the implicit "major" version number (1) has been dropped
(ie. DIET-PC 1.2 == DIET-PC 2). In practice DIET-PC's minor versions have
always effectively been major versions, and its patchlevels
minor-version-and/or-patchlevels. This new scheme just makes it official.
- DIET-PC 2 permits use of either a Linux 2.4 or a Linux 2.6 kernel (in fact,
it will even permit use of a 2.2 kernel with a devfs patch). It supports
both devfs (all kernel versions) and udev (2.6 only), and both initrd (all
kernel versions) and initramfs (2.6 only). Use of a Linux 2.6 kernel is
strongly recommended.
I intend to discontinue backward compatibility in the next release (DIET-PC
3), such that only Linux 2.6 and later will be supported.
- GLibC has been upgraded to 2.3.4, including partial TLS support (full TLS
support appears not to work on hardware older than 686).
- The discover() function has been generalised to make use of a user-
configurable resource file (/etc/net.conf), and externalised into a complex
shell script (/bin/discover). This makes /etc/rc simpler and easier to
understand. Console reports from /etc/rc are now highlighted to visually
distinguish them from kernel messages.
- The DIET-PC build automation in the skeleton package has been substantially
overhauled, both to ensure correct operation of the new assembler_installer
package and to add new features such as squashfs support (in conjunction
with unionfs only), initial ramfs support (Linux 2.6 only), UPX compression
(for initramfs only), and experimental support for supplemental non-volatile
filesystems (eg. mounting the boot medium as a read-only /opt area). The new
build tools have better environment checking and produce more useful
statistics. Back-ends such as mknbi have been replaced with embedded-
friendly alternatives.
IMPORTANT NOTE: the new mknbi-linux only works with Etherboot 5.2.x and
earlier. If you wish to use Etherboot 5.3.x or later, build your ROMs with
PXE support and use PXELinux with them instead.
- The shell package now supports using hard disks as a swap devices.
- A new assembler_installer package has been added. This allows you to use a
DIET-PC to assemble and install DIET-PC boot images, in a limited fashion.
The principal benefits of this are:
1) To allow you to install DIET-PC using the convenient "make install"
targets in the skeleton package Makefile, when this would normally not be
possible (because the installation medium is not local to your Linux
development platform), eg. local hard disks on old PCs formerly running
Windows.
2) As an aid for those unready/unwilling to install and use a complete
Linux distrubution. For example, you can install coLinux on Windows and
build DIET-PC images in this using a prebuilt DIET-PC root filesystem.
3) To make it easier to create boot images with the ext2 compression
(e2compr) feature (since this requires a custom kernel on the build host
as well as the run host).
- A persistfs package has been added, to support assembler_installer, and to
permit mounting of a non-initrd Ext2/Ext3 root filesystem. This package
basically just adds fsck and mkfs capabilities for VFAT and Ext2.
- Packages that implement applications with large disk footprints, such as
ica and mmedia_xine, have been reconfigured such that they install most
of their files to locations in /opt (eg. /opt/ICAClient, /opt/xine).
Installation scripts typically offer a choice between minimal and full
installation. This gives the system builder the option of removing bulky
files from the initrd through use of an external /opt filesystem.
- The rmedia-amount package has been renamed to "storageserver", as it is not
required merely for media access, and deals with media that are not
necessarily removeable. The package has been augmented with a media
autodetection capability linked to the hotplug system in the shell package,
such that - for example - a USB thumb drive will become available immediately
after it is plugged in. When using Linux 2.6, the package will also use ATA
rather than SCSI emulation to write CDs/DVDs.
- The rmedia-smount package has been dropped. I see no substantial benefit in
maintaining an alternative to automount. Supermount seems to have
significant performance problems, and is not well suited to dynamic
reconfiguration.
- Rdesktop, in the rdp package, has been upgraded to 1.4.0. The new version
supports many more RDP 5.x features, and is much better at autodetection of
available features. Of particular interest is disk redirection (similar to
Citrix ICA Client's Client Drive Mapping feature); the rdp package will now
provide an SMB-like share of all local storage devices
(\\<diet-pc-name>\storage) if the storageserver package is also present.
- The ica package has been simplified to do much the same thing as the rdp
package with regard to client drive mapping, ie. map the entire device tree
to a single drive letter, rather than separate ones. The ICA client binaries
have been relocated to /opt/ICAClient so that they may be external to the
initrd. The installer now has a choice of full or minimal ICA Client
installation.
- ica, rdp and rfb packages now manage their dedicated runlevels in a uniform
way. Each now has a session script that includes the default destination
(formerly in /etc/inittab), and options to enable initial Num Lock and/or
click-to-reconnect dialogs.
- The XFree86 4.4 drivers have been replaced with X.Org 6.8.2 drivers. Not
because X.Org is superior, nor because of any objections I have to XFree86
4.4+ licensing, but simply because so many Linux distributions have adopted
X.Org (as a result of the licensing furore) that the demise of XFree86 now
seems inevitable.
- X.Org drivers have been split into a two-level hierarchy (or three-level if
you count xcommon/xcore). Instead of multiple standalone packages sharing a
large amount of common content, there is now a generic core driver
(equivalent to x440-vesa), and a number of overlays that sit on top of the
core driver to add hardware acceleration for specific card/chip families.
The new structure allows inclusion of multiple hardware acceleration overlay
packages without conflict, with "fall-through" behaviour such that hardware
specific drivers will be tried successively according to the order listed on
the COMPONENTS line in the Makefile (reading right to left), followed finally
by the (mostly-)unaccelerated generic driver (vesa), until a working driver
is found. This makes it possible to create a single DIET-PC boot image that
can cater to variations in graphics hardware on the thin clients. However,
the "section cloning" method used to effect this makes it somewhat difficult
to vary Screen and Device section options on a per-driver basis.
The generic driver package will attempt to use several different types of
mouse devices concurrently, which provides a limited kind of mouse
autodetection also.
A generic-plus-accel solution is not as space-efficient as a standalone
driver, as it includes some modules that will never be used on any given PC.
However, it is more likely to work with less testing. It also reduces
content replication and therefore change management and upload/download
overheads.
- xcore (formerly xcommon) and X driver packages have been restructured to be
more product-neutral. DIET-PC 2 will offer a range of X server solutions
based on different products; all are expected to have some common features
(XKB, XDMCP and FontServer support). Some files and deltas formerly in
xcommon have been moved to the xserver packages.
- A TinyX (a.k.a. KDrive) implementation has been offered as an alternative to
X.Org and XFree86 3.3.6. I'm not bothering to document how I built this,
because it was a difficult hack. TinyX will find its way back into
mainstream X.Org eventually.
- An Xvnc X server package has been added. This should not be confused with
xserver_xorg_vnc (formerly x440-vnc), which is an overlay package rather than
a complete X server implementation. Unlike xserver_xorg + xserver_xorg_vnc,
xserver_xvnc cannot provide output to any kind of physical display device; it
implements an RFB server ONLY. It is intended for use in environments that
lack graphics hardware, in particular UML and CoLinux.
- The rfbserver package has been reengineered using x0vncserver, from the
RealVNC 4 distribution. x0rfbserver is no longer supported, and x0vncserver
is more lightweight. The rfbserver package is only useful in conjunction
with X servers other than Xorg and Xvnc.
- x336-s3 has been dropped, as it no longer serves any distinct purpose. I
was only holding onto it because I had hardware that XFree86 4.x didn't
support, but this support was added in XFree86 4.4 (and therefore X.Org
6.7.0).
- A new sshserver package, based on Dropbear, has been added. This is
convenient for those who require remote shell access to their DIET-PCs
(without the gross insecurity of traditional rsh). It doesn't replace
in.rrshd in the shell package however - this will be retained as an embedded
application launch mechanism because it is simpler, and because rsh is
present by default in almost every O/S.
- Many software component version updates. Almost every component is built
from the latest version of the source available at the time of release.
- I have made a few concessions to practical necessity. For example, the
shell package now includes the pthread library as standard, and xcore
includes basic X11 internationalisation. These files are not strictly
necessary for core functions, but reliance upon them by certain
applications is increasingly commonplace, and working around these
occasional requirements is troublesome.
- From this release onward, new binaries will be built with optimisation for
space rather than speed (-Os rather than -O2) and with the expectation of
more recent hardware (-mcpu=i686 rather than -mcpu=i586). DIET-PC 2 will
continue to run on 80386 and later (and I have a 386 to prove it!), but may
not perform as well as 1.1 for hardware older than Pentium II. Binaries
built for this release will probably not work in the 1.0 or 1.1 releases
due to glibc 2.3.4 dependencies.
- Package names have been changed to permit better automated parsing (in
particular by the assembler_installer package). Hyphens have been replaced
with underscores.
- Slight binary size reductions in places, through recompilation with a
newer compiler and more aggressive stripping using "-R .note -R .comment".
==
Paul A. Whittaker <whitpa@users.sourceforge.net>
Changes:
See ChangeLogs in individual packages (in cases where there is an equivalent 1.x package).
Copyright © 2010 Geeknet, Inc. All rights reserved. Terms of Use