64-bit FC5
The support for the 64bit version of FC5 is based on Inf-level headers. These provide a simplified version of the DICE environment. For instance, there are no local ldap or dns servers, also the installed software set is much smaller.
Example source profile
/* nelson */
#include <inf/os/fc5_64.h>
#include <inf/hw/dell_optiplex_gx620.h>
#include <live/wire_c.h>
dhclient.mac 00:14:22:36:89:B9
/* Inventory information */
inv.sno 643JZ1J
inv.allocated ascobie
inv.location JCMB-2422
/* End of file */
The main thing to notice is that the profile uses Inf level OS and hardware headers.
If you find a header is missing at the Inf level, please contact the MPU.
Installation procedures
CD images for installing an FC5 64bit machine can be found in the MPU AFS group space,
/afs/inf.ed.ac.uk/group/mp-unit/cdroms
. PXE booting is not supported.
Kerberos keytabs
To permit login without additional password authentication you need to add principals to the krb5 keytab (possibly having to register the machine first, if it is new).
Initially, you need to know what principal you are trying to create, and then use your
/admin principal to create it, and extract it to a keytab on the machine.
Within kadmin, you want to run the following:
*) ank -randkey <principal>
*) ktadd -k /etc/krb5.keytab <principal>
For example, to create a 'host' service principal (host is the most commonly used service principal - it's used for SSH, and for local account validation), for a machine called 'example-for-squinney', you would have ...
[duffus]sxw: /usr/kerberos/sbin/kadmin
Couldn't open log file /var/lcfg/log/kerberos: Permission denied
Couldn't open log file /var/lcfg/log/kerberos: Permission denied
Authenticating as principal sxw/admin@INF.ED.AC.UK with password.
Password for sxw/admin@INF.ED.AC.UK:
kadmin: ank -randkey host/example-for-squinney.inf.ed.ac.uk
NOTICE: no policy specified for host/example-for-squinney.inf.ed.ac.uk@INF.ED.AC.UK; assigning "default"
Principal "host/example-for-squinney.inf.ed.ac.uk@INF.ED.AC.UK" created.
kadmin: ktadd -k /etc/krb5.keytab host/example-for-squinney.inf.ed.ac.uk
Entry for principal host/example-for-squinney.inf.ed.ac.uk with kvno
3, encryption type Triple DES cbc mode with HMAC/sha1 added to keytab
WRFILE:/etc/krb5.keytab.
Entry for principal host/example-for-squinney.inf.ed.ac.uk with kvno
3, encryption type DES cbc mode with CRC-32 added to keytab WRFILE:/etc/krb5.keytab.
Package specifications
It is possible to install multiple architecture versions of the same package concurrently. Typically this occurs where an application only works in 32bit mode so you have to install all the 32bit versions of the necessary libraries. Currently the package specification parser in the LCFG server will not allow multiple conflicting specifications of a package. To get around this problem there is a new way of specifying the architecture, note that this is not intended to be a permanent solution. Here's an example:
i386/zlib-1.2.3-1.2.1
zlib-1.2.3-1.2.1
i386/zlib-devel-1.2.3-1.2.1
zlib-devel-1.2.3-1.2.1
Note that due to a change in the way updaterpms works you will need to specify noarch
for all packages which are architecture-independent. This can be done in the usual way or with the new syntax. For example:
yum-2.6.0-1/noarch
noarch/yum-2.6.0-1
Seeing which architectures are installed for a package
To list all packages with their architecture using rpm, run the following command:
rpm -qa --queryformat "%{name}-%{version}-%{release}.%{arch}\n"
You can add this to ~/.rpmmacros, it changes the default query to list the architecture:
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
Package Lists
There are separate LCFG level package lists for the 64bit platform.
-
lcfg/lcfg_fc5_64_base.rpms
-
lcfg/lcfg_fc5_64_postship.rpms
-
lcfg/lcfg_fc5_64_updates.rpms
-
lcfg/lcfg_fc5_64_installbase.rpms
-
lcfg/lcfg_fc5_64_installroot.rpms
There are separate Inf level package lists, currently the only one used is inf/inf_fc5_env.rpms
, this file must work on both i386 and x86_64 platforms.
New macros
There are now new header macros, ARCH_I386
and ARCH_X86_64
which can be used as conditionals in the headers to target packages and resources to the correct platform. Also for fc5 on x86_64 the OS_ID
macro is set to fc5_64
instead of fc5
.
Porting software
Some software specifies a BuildArch in the specfile. If this only contains the string i386
, you will need to append x86_64
as well to allow building on 64bit machines.
Library paths
Libraries on 64bit machines are stored in /lib64
, /usr/lib64
, /usr/local/lib64
, etc. You may well have to hack autoconf, Makefiles and such like so that include paths are correct, otherwise you may end up with a 32bit binary by mistake. Note, in particular that the PAM module directory is /lib64/security
.
-- StephenQuinney - 31 Jan 2007