Auto Install
for
Mandrake Linux
0.25
Table of Contents
Copyrights, Trademarks, Credits
Contents of the Install Diskette
Anatomy of the 'syslinux.cfg' File
Summary of the Other Section Labels
Anatomy of the 'auto_inst.cfg' File
postInstall and postInstallNonRooted
Scratch Built Auto Install Diskette
Things to know before starting
Creating the Basic Auto Install Diskette
Creating an Updated Installation CD Set
Advanced and Less Error Prone Approaches
Alternate for Creating the Initial Image
Alternate for Creating an Updated CD Set
Setting up a Simple NFS Server
Network and Connection Examples
Single Interface Connections to a LAN or Internet
The Mandrake Linux Distribution provides a facility which allows for the automated installation on to computers that you use or manage.
The DrakX graphic installer has the capability of being used in the both interactive and automated modes. This document deals specifically with it's automated capability.
Automated Installation is intended for situations where the same 'Install' set is to be placed on multiple computers. This can be a substantial time saver for anyone. More importantly, the automation means that you do not have to sit in front of each computer filling in the blanks, picking this and that and hoping that you remember the selections you chose the previous time.
As a side benefit, it can be used as an emergency backup to re-install the same packages and basic configuration data on a computer that failed, lost everything and your normal back-ups can not be used to restore the computer.
I am sure that there more reasons to use the automated features, but that's your experiment. Me, I was just tired of having to remember what I installed the last time. Also, this document provides me with the opportunity to give back to the Linux community something in kind.
The following sections will provide an overview of the process, details regarding the Install disks and the configuration file which drives the installation process.
Copyright © 2001 by David Eastcott.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
Trademarks are the property of their respective owners.
Credits: Linux Mandrake and it's staff for providing this capability.
This document is based on the original DrakX documents provided by Mandrake Linux.
Special thanks to Pixel, Guillaume Cottenceau at Mandrake for the suggestions, corrections, insight and patience.
This document has been revised to conform with the capabilities of the 8.0 release. There are numerous differences between the previous release's capabilities and 8.0's (More likely, I just noticed them).
This document can be found on the Mandrake Linux web site:
http://www.linux-mandrake.com/drakx/auto_inst.html
or:
At http://members.shaw.ca/mandrake/drakx/8.0/auto_install.html you will find the HTML version of this document.
And at http://members.shaw.ca/mandrake/drakx/8.0/auto_install.pdf you will find the PDF version.
If you find an error or some feature I missed you can contact me by email at david@eastcott.net
|
0.2 |
2001-05-22 |
Re-wrote and updated for Mandrake Linux, Release 8.0 |
|
0.21
|
2001-05-27 |
Corrections, updates and added sections compssListLevel, compssUsersChoice, updated Scratch Built Auto Install Diskette, removed crypto. |
|
0.22
|
2001-06-03 |
More corrections, updated Anatomy of 'syslinux.cfg', bootloader, security, services ... |
|
0.23
|
2001-06-18 |
Formatting, bit of cleanup, corrections, spelling, Added section printer, Updated Problems and Issues, ... |
|
0.24
|
2001-08-09 |
Fix code fragment formating for html, updated 'wacom', fixed some usb references, updated section Creating and Updated Installation CD Set, |
|
0.25 |
2001-09-29 |
minor corrections. |
|
|
|
This will most likely be the last version of this document for Mandrake 8.0. Seeing as how 8.1 has been released. |
The Mandrake Linux distribution provides support for three basic automated methods:
|
CD-ROM |
|
Hard Disk |
|
Network Services: NFS, FTP or HTTP |
Each has its benefits and of course, drawbacks.
CD-ROM based automation is portable. With a floppy diskette and the CD-ROM set, you can install the distribution on any computer any where that has a CD-ROM drive and a floppy disk drive.
Hard Disk based installation is more for those of you which have multiple disk drives installed in the target computer, one to hold the distribution file set and a second which will contain the installed system. This would most likely be used in situations where the computer dual boots Linux and other OS's. It is not very portable, but it does afford one the ability to install Linux without disturbing the existing OS.
Network based automation is where the flexibility of the Automated Installation process really shines. One computer holds the distribution file set, all the other computers only need network based access to the file set. Now I just carry a single disk about, insert it in the desired computer, push reset and go for coffee.
With the three options, NFS, FTP and HTTP, you can actually install files from one computer to another, anywhere in the world. However, there are performance and reliability issues which you will have to be prepared to deal with when accessing servers outside your own local world.
There are two presentation styles which may be employed for each of the methods:
|
Fully automated (basic text) |
|
Replay (GUI based) |
The Fully Automated is the fastest since it only displays a simple set of messages indicating its progress.
The Replay approach generates a nice GUI presentation, very similar to the original install that you performed the first time (Manual Install).
The simplest approach is to perform a Manual Install, then generate the desired Auto Install diskette. The following are a brief set of steps to get started.
1. decide if you are going to perform a CD-ROM, Hard Disk or Network based install.
2. copy the contents of both CD-ROMs, or obtain the file set via ftp and:
a) For a Hard Disk, make sure that the Mandrake file set is present on one of the computers hard disks (partitions). Remember to retain the CD's directory hierarchy.
b) For network services, make sure the Mandrake file set is accessible on the server you want to use. (see section Setting up a Simple NFS Server). Remember to retain the CD's directory hierarchy.
3. Create a boot floppy disk using the appropriate image file:
|
images/cdrom.img for CD-ROM based install |
|
images/hd.img for Hard Disk based install |
|
images/network.img for Network Services based install |
See the images/README document for instructions on how to create the diskette. Also you will find additional / alternate images to use which may resolve situations for your particular equipment setup.
4. Boot the computer and perform the installation manually.
5. JUST before re-booting, select 'Generate an automatic install disk', then pick either 'Replay' or 'Automated'. This will create the needed diskette containing all the basic files you will need for the next installation.
6. Review the contents of the diskette and adjust as necessary before using. See the remainder of this document.
7. Install any where, any time and as often as you like, or until the coffee runs out.
There are a number of different and innovative approaches that you could use rather than the simplistic one above, but then that your job, eh? However, for those of you who are a bit braver or, just want to do it your self then you should see the section Scratch Built Auto Install Diskette for a basic approach.
After completing the Manual Install, you should have a diskette containing the following files:
auto_inst.cfg
This file contains your selections. See the section Anatomy of the 'auto_inst.cfg' File for details. In case you were wondering, you will also find this file in the /root directory with the name auto_inst.cfg.pl.
boot.msg
This file contains some text that appears as soon as you boot from the diskette. You could customize this.
help.msg
This file contains some text regarding the start up options and keys, which you can customize too. It is optional and may not be present on your generated diskette (space limitations).
ldlinux.sys
This is what booted (boot loader). Don't mess with it.
cdrom.rdz or hd.rdz or network.rdz
The file name is dependent on the Method you used to perform the manual install. It contains DrakX and other things which are needed for the automated install.
syslinux.cfg
This file contains information that the 'ldlinux' uses to boot and start the installation. You may have to modify this. See section Anatomy of the 'syslinux.cfg' File for details.
vmlinuz
This is the compressed Linux kernel image file. Don't mess with this one either.
The contents of the two files, syslinux.cfg and auto_inst.cfg, are what the bulk of this document is about, so with out further a due....
The contents of this file are dependent on which method you used for the Manual Install process, or you did your own thing. Regardless, the important portion is listed below:
|
default linux |
|
prompt 1 |
|
timeout 50 |
|
display boot.msg |
|
F1 help.msg |
|
F2 boot.msg |
|
label linux |
|
kernel vmlinuz |
|
append kickstart=floppy automatic=method:nfs, |
|
server:fileserver,directory:/mnt/mass/Mandrake/mandrake/8.0, |
|
network:static,ip:192.168.5.202,netmask:255.255.255.0, |
|
gateway:192.168.5.253,dns:192.168.5.253, |
|
ramdisk_size=32000 initrd=network.rdz vga=788 |
NOTE: All the text starting with 'append' through '788' are on ONE line.
More details and probably a better explanation of these tags and values can be found at: http://syslinux.zytor.com.
Ignore the rest of the file's contents for the moment. The following is a brief explanation of each of the above tags.
default linux - if the user presses ENTER or the optional timeout expires, this tells the ldlinux loader to locate the section label linux and begin booting the kernel as defined by the lines after the label.
prompt 1 - this tells the loader to prompt the user to enter an alternate label rather than just using the default one. You can have several different boot scenarios in this file, which is the reason that the generated file has so much in it. This parameter is optional, removing it means the installer will not have the ability to select an alternate boot section.
timeout 50 - this tells the loader to give the user 5 seconds to begin entering another label before using the default one and continuing on with the boot/install process. This parameter is optional and is not necessary if prompt is not used.
display boot.msg - this tells the loader to display the contents of the specified file before presenting a prompt. This is optional, but it may be a good idea to remind the installer what is being installed.
F1 help.msg - if the user presses the F1 key, then display the specified file's contents. This parameter and associated file are optional.
F2 boot.msg - if the user presses the F2 key, then display the specified file's contents. This parameter and associated file are optional.
label linux - this names a section that the loader is to go to for additional information. In this case, a section contains a kernel and append parameter. The value associated with any section label can be typed by the user at the prompt to instruct the loader to find the specific section, rather than use the default one.
kernel vmlinuz - this is the name of the file containing the compressed kernel image to load and start.
append=... - this is a list of space separated parameters passed to the kernel when the loader starts it.
kickstart=floppy - required, do not change.
An interesting tidbit; if you omit this option and set the automatic= option, you can do GUI based installs without having to enter the method information each time. Of course the auto_inst.cfg file, if present, is ignored.
ramdisk_size=32000 - required, do not change.
initrd=network.rdz - required, changes based on the type of method being used:
|
cdrom.rdz |
for CD-ROM |
|
hd.rdz |
for Hard Disk |
|
network.rdz |
for Network Services |
vga=788 - required, can be changed. Generally, this parameter affects the GUI installation, but it does have interesting effects when used in the Automated install.
|
text |
80x25 text |
|
vga16 |
80x25 text, 640 x 480 GUI |
|
785 |
80x30 text, 640 x 480 GUI (frame buffer) |
|
788 |
100x37 text, 800 x 600 GUI (frame buffer) |
|
791 |
130x48 text, 1024 x 768 GUI (frame buffer) |
|
794 |
158x64 text, 1280 x 1024 GUI (frame buffer) |
Others you can play with:
|
0x0f01 |
|
0x0f02 |
|
0x0f03 |
|
0x0f04 |
|
0x0f05 |
|
0x0f06 |
|
0x0122 |
automatic= ... ,dns:192.168.5.253, - this is specific to the install method and contains NO SPACES
automatic=method:nfs, - can be cdrom, nfs, ftp, http or disk.
interface:eth1, - specifies the ethernet interface to use (eg. eth0, eth5, etc.). It is only required for nfs, ftp or http methods when there is more than 1 ethernet interface. This feature can only be used if DrakX can auto detect ALL the ethernet cards.
The trick when installing with multiple network card is convincing the computer that the ethx you specify is the same one it thinks is ethx.
server:fileserver, - machine where the installable files live, can be an IP or a host.domainname (or host). This is only required for nfs, ftp or http methods.
directory:/mnt/mass/Mandrake/mandrake/8.0, - root directory where the files are found. This is only required for nfs, ftp, http or disk methods. For the disk method, this may also specify the location and name of an ISO image.
network:static, - how this machine gets it's IP information, static or from a dhcp server.
ip:192.168.5.202, - what is it for this machine.
netmask:255.255.255.0, - what is it's netmask.
gateway:192.168.5.253, - what is the gateway's IP. This is optional and should not be included if you do not want the /etc/sysconfig/network file to be set up with the GATEWAY definition.
dns:192.168.5.253, - what is the IP for the DNS server. Up to three DNS servers can be specified, each IP is separated by a comma. This is optional and should not be included if you do not have or use a DNS server. If it is not included, then the server: option must contain an IP address instead of a name.
network:dhcp, if dhcp is specified, then the IP, netmask, gateway and dns parameters are provided by the dhcp server and they do not have to be specified here.
user:anonymous, - user name, as required, for ftp login. This is only required for the ftp method.
pass:david@eastcott.net, - pass word, as required, for ftp login. This is only required for the ftp method.
disk:hda, - disk drive containing the directory or ISO image. This is only required for the disk method.
partition:6, - partition number of specified disk drive containing the directory or ISO image. This is only required for the disk method.
NOTE: If you are in a dynamic DNS environment, DrakX does not supply a 'machine' name to the dhcp server. This will be a problem for NFS servers which require reverse DNS lookups to qualify access to their exported directories. To resolve this, set up your exported directory so that you use the IP/netmask form rather than name.domainname form when defining who can access the exported directory.
NOTE: If you are using a network install method on a computer with multiple ethernet interface cards and you do not use the interface parameter, DrakX will ask you which one you want and then it will prompt you for the relevant information based on your specified method.
At this time I do not know the meanings associated with each of these additional choices.
|
vgalo, vgahi, vga16 |
Are just different resolutions for graphic installs |
|
text |
Is a text based install |
|
expert |
Has the advantage of disabling Automatic Hardware Detection |
|
rescue |
Allows you to repair an already installed system using the CD-ROM |
|
patch |
? |
|
preinst |
? |
|
oem |
? |
|
lnx4win |
? |
|
auto |
? |
|
all |
? |
|
ackbar |
? |
The contents of the auto_inst.cfg file are actually a Perl Scalar Structure declaration (o) used by the DrakX program to preset various options and selections. During a manual/graphic install, the various fields are filled in as you make choices from the various screens. Then when you create the diskette, portions of this structure are simply dumped to a file that you can use. With an Automatic install, all these choices have to be pre-selected.
As always, if you want the gory details, look on the CD-ROM in the directory Mandrake/mdkinst/usr/bin/perl-install for the actual perl modules.
The following sections identify the structure, the fields and sub-fields that are accepted.
Generally, the file contains a single declaration of the form:
$o = {...};
Within the opening/closing braces are a series of simple and/or compound declarations.
If you created a Replay type of automated install disk, then there is a perl code fragment at the end of the file after the closing brace as follows (see the section Problems and Issues):
|
package install_steps_auto_install; |
|
$graphical = 1; |
|
push @graphical_steps, 'doPartitionDisks', 'choosePartitionsToFormat', 'formatMountPartitions'; |
Summary of Primary Hash Entries
|
authentication |
netc |
|
autoExitInstall |
netcnx |
|
autologin |
nomouseprobe |
|
bootloader |
partitioning |
|
compssListLevel |
partitions |
|
compssUsersChoice |
postInstall |
|
default_packages |
postInstallNonRooted |
|
desktop |
printer |
|
intf |
raid |
|
isUpgrade |
security |
|
keyboard |
services |
|
lang |
superuser |
|
lvm |
timezone |
|
manualFstab |
users |
|
miscellaneous |
useSupermount |
|
mkbootdisk |
wacom |
|
mouse |
X |
The above list defines the configuration options that can be set directly. There are a number of other options which are derived from these entries, over-ridden by auto-scan / auto-detection features of the Mandrake install program. However, these will not be discussed here. Read the code if you want to know more.
Added to Mandrake 8.0
|
autologin |
|
bootloader |
|
compssUsersChoice |
|
desktop |
|
lvm |
|
netcnx |
|
postInstallNonRooted |
|
services |
Modified for Mandrake 8.0
|
compssListLevel |
|
intf |
|
mouse |
|
printer |
|
netc |
Deleted from Mandrake 8.0
|
installClass |
|
modem |
This option is used to specify how passwords are processed.
|
'authentication' => { |
|
|
|
'shadow' => 1, |
|
'md5' => 1, |
|
'NIS' => undef, |
|
}, |
Descriptions:
'shadow' - Indicates if shadow passwords are used
|
0 - disables |
|
1 - enables |
'md5' - Used to specify if md5 encryption is to be used for passwords
|
0 - disables, (use default crypt) |
|
1 - enables |
'NIS' - Indicates if NIS is to be used for authentication
|
'' - if NIS is not being used. Also, if this line is not present it means no NIS too. |
|
'broadcast' - if the NIS server is accessed via a broadcast message |
|
'w.x.y.z' - if the NIS server is at a specific IP address |
By default, Mandrake Linux installations enable md5 and shadow. Also, you will probably have noticed that the GUI based install no longer gives you the ability to select/de-select these two.
Related Hash Entries:
netc
This option is used to direct the installation process to automatically exit and re-boot the computer when the installation is complete.
'autoExitInstall' => 1,
Descriptions:
'autoExitInstall' - what you want to do
|
0 - when installation is complete, prompt the installer to re-boot and wait |
|
1 - when installation is complete, re-boot the computer automatically. |
NOTE: When you do a manual install, the auto_inst.cfg.pl file created in /root has this value set to 1. If you generated an Automated or Replay diskette, the auto_inst.cfg file also has this value set to 1.
CHANGE it to 0, otherwise the computer will re-boot and start the install all over again.
Related Hash Entries:
none.
This is used to have the system automatically log in a specific user, rather than having the usual log in prompt. This feature can be used with only one user and the user should be defined (see section users).
If the auto log in feature is not desired, then do not include this in your file.
'autologin' => 'david',
Descriptions:
'autologin' - is the name of the user that the system is to automatically log in as. Change it as you desire.
The installation process creates the file /etc/sysconfig/autologin and places this and other values in it.
Related Hash Entries:
desktop, users
This option allows you specify the boot loader to be installed and the associated parameters that it requires. The general structure and relevant parameters for each loader are presented and explained in their own section, rather than trying to show you the whole thing and adding comments indicating which parameter is valid for which bootloader. Also, check the notes at the end of each section for tidbits.
The following is specifically for the x86 architecture. I know that support is also available for SPARC, and PowerPC, but since I do not have these, I am not sure if these descriptions are correct.
DrakX is capable of installing either the Lilo or Grub bootloaders for 'x86' type computers. The following causes DrakX to install the Lilo bootloader and create the file /etc/lilo.conf. You really want to look at 'man lilo.conf' for the correct explanation for some of the following.
|
'bootloader' => { |
|
|
|
'methods' => { |
|
'grub' => 0, |
|
'lilo' => 'boot-text.b' |
|
}, |
|
|
|
'append' => undef, |
|
'boot' => '/dev/hda', |
|
'compact' => undef, |
|
'crushMbr' => 1, |
|
'default' => 'my_linux', |
|
'install' => '/boot/boot.b', |
|
'linear' => undef, |
|
'lba32' => 1, |
|
'map' => '/boot/map', |
|
'message' => "My text boot up\n", |
|
'password' => undef, |
|
'restricted' => undef, |
|
'timeout' => '5', |
|
'vga' => 'normal', |
|
|
|
'entries' => [ |
|
{ |
|
'type' => 'image', |
|
'kernel_or_dev' => '/boot/vmlinuz', |
|
'label' => 'my_linux', |
|
'root' => '/dev/hda6', |
|
'initrd' => '/boot/initrd.img', |
|
'append' => 'mem=128M', |
|
'vga' => undef, |
|
'read-write' => 0, |
|
or |
|
'type' => 'other', |
|
'kernel_or_dev' => '/dev/zip', |
|
'label' => 'zip', |
|
'unsafe' => 1, |
|
'table' => undef, |
|
'mapdrive' => undef, |
|
} |
|
] |
|
}, |
Descriptions:
'lilo' - can be one of:
|
'boot-text.b' - if you want just a simple text based prompt. |
|
'boot-menu.b' - if you want a text based menu or using the Grub bootloader. |
|
'boot-graphic.b' - if you want a graphical menu. |
DrakX automatically installs the three files boot-text.b, boot-menu.b and boot-graphic.b in the directory /boot. It then creates the file /boot/boot.b as a link to the value supplied.
'grub' => 1 - if present, the Grub bootloader is installed rather than Lilo. In addition, DrakX creates all the necessary files and directories that grub is expecting. NOTE: 'lilo' => 'boot-menu.b' must be used.
'append' - if present, it is used as the default for any per image entry that does not contain an 'append'. It is used to specify parameters to be passed to the kernel. eg. 'mem=128M serial=0,9600n8'.
'boot' - this allows you to specify the disk drive that it to be used as the boot device. Do not include the partition number. eg. '/dev/hda' or '/dev/hde'.
'compact' => 1 - if present, says to try and merge read requests for adjacent sectors. This is seldom used.
'crushMbr' => 1 - if this is present, it means replace (crush) the existing Master Boot Record and install the lilo equivalent.
'default' - this is used to specify the default kernel image to boot. The value here is the 'label' value for one of the defined 'entries'. eg. 'my_linux'.
'install' - is used to specify the file containing the new master boot record. eg. '/boot/boot.b'.
'lba32' => 1 - if present, says to generate 32 bit Logical Block Addresses instead of sector/head/cylinder.
'linear' => 1 - if present, says to generate linear sector address instead of sector/head/cylinder. This is seldom used.
'map' - this is the name and location of the map file created by lilo. eg. '/boot/map'.
'message' - this allows you to create a customized boot message. It is optional and if included, causes the file /boot/message to be created containing your string (don't forget to include '\n' where appropriate. Also use double quotes " ). If it is not included, then DrakX creates a default message for you.
NOTE: If 'lilo' => 'boot-graphic.b', then 'message' is ignored and the lilo.conf file will contain 'message=/boot/message-graphic' instead of 'message=/boot/message' and DrakX will install the file message-graphic for you.
'password' - if present, is a pass word string (clear text) used to protect booting of all images. eg. 'dickie'.
'restricted' => 1 - if present, reduces the password enforcement so that the user must enter a pass word only if the user enters addition parameters. 'password' must be present if 'restricted' is present. See section Problems and Issues.
'timeout' - if present, the time, in seconds, to wait for the user to enter a desired image. eg. '10'. Also, this forces a prompt for the image name to boot. Note: DrakX changes the value from seconds to tenths of a second for placement in lilo.conf. If you do not want a prompt, then set timeout to 0.
'vga' - this is used to set the default video mode and can be:
|
'ask' |
Ask at boot (kinda nice if you're just playing around) |
|
'normal' |
80 x 25 (default) |
|
'0x0f01' |
80 x 50 |
|
'0x0f02' |
80 x 43 |
|
'0x0f03' |
80 x 28 |
|
'0x0f04' |
80 x 30 |
|
'0x0f04' |
80 x 34 |
|
'0x0f06' |
80 x 60 |
|
'0x0122' |
100 x 30 |
|
'785' |
640 x 480 in 16 bits (Frame Buffer only) |
|
'788' |
800 x 600 in 16 bits (Frame Buffer only) |
|
'791' |
1024 x 768 in 16 bits (Frame Buffer only) |
|
'794' |
1280 x 1024 in 16 bits (Frame Buffer only) |
'entries' - this is an array of 'per image' entries describing selectable boot images. Normally you should not need to add any since DrakX installs three default entries. However, if you do add a new one, then use any label except linux, failsafe or floppy otherwise DrakX will rename yours to old_... when it inserts its own. So be careful.
Each entry has one of two forms:
'type' => 'image' - specifies that this image describes a Linux kernel image to boot.
'kernel_or_dev' - specifies the location and name of the kernel image to boot. eg. '/boot/vmlinuz'.
'label' - specifies the name associated with this image. eg. 'my_linux'.
'root' - specifies the device to be mounted as 'root'. eg. '/dev/hda6'.
'initrd' - if present, specifies the location and name of the initial ram disk to be loaded. eg. '/boot/initrd.img'.
'append' - if present, specifies the kernel parameters for this image. eg. 'ramdisk=8192K'.
'vga' - if present, specifies the video mode to be used with this image. ( See 'vga' above.).
'read-write' => 1 - if present, indicates the root file system is to be mounted read-write. If it is NOT present, then the root file system is mounted read-only.
or
'type' => 'other', - specifies that this image describes an arbitrary operating system to boot.
'kernel_or_dev' - specifies the location and name of the kernel image to boot. eg. '/boot/vmlinuz'.
'label' - specifies the name associated with this image. eg. 'my_linux'.
'unsafe' => 1 - see man lilo.conf.
'table' - see man lilo.conf.
'mapdrive' - see man lilo.conf.
This loader is used on SPARC computers. The following causes DrakX to create the file /etc/silo.conf. You really want to look at 'man silo.conf' for the correct explanation for some of the following.
|
'bootloader' => { |
|
|
|
'methods' => { |
|
'silo' => 1 |
|
}, |
|
|
|
'append' => undef, |
|
'boot' => '/dev/hda', |
|
'bootalias' => '', |
|
'bootdev' => '', |
|
'default' => 'my_linux', |
|
'message' => "My text boot up\n", |
|
'partition' => '', |
|
'password' => undef, |
|
'restricted' => undef, |
|
'timeout' => '5', |
|
'use_partition' => 0, |
|
|
|
'entries' => [ |
|
{ |
|
'type' => 'image', |
|
'kernel_or_dev' => '/boot/vmlinuz', |
|
'label' => 'my_linux', |
|
'root' => '/dev/hda6', |
|
'initrd' => '/boot/initrd.img', |
|
'append' => 'mem=128M', |
|
'partition' => undef, |
|
'read-write' => 0 |
|
} |
|
] |
|
}, |
Descriptions:
'append' - if present, it is used as the default for any per image entry that does not contain an 'append'. It is used to specify parameters to be passed to the kernel. eg. 'mem=128M serial=0,9600n8'.
'boot' - this allows you to specify the disk drive that it to be used as the boot device. Do not include the partition number. eg. '/dev/hda' or '/dev/hde'.
'bootalias' - ???
'bootdev' - ???
'default' - this is used to specify the default kernel image to boot. The value here is the 'label' value of one of the defined 'entries'. eg. 'my_linux'.
'message' - this allows you to create a customized boot message. It is optional and if included, causes the file /boot/message to be created containing your string (don't forget to include '\n' where appropriate. Also use double quotes " ). If it is not included, then DrakX creates a default message for you.
'partition' - ???
'password' - if present, is a pass word string (clear text) used to protect booting of all images. eg. 'dickie'.
'restricted' => 1 - if present, reduces the password enforcement so that a user must enter a pass word only if the user enters additional parameters. 'password' must be present if 'restricted' is present.
'timeout' - if present, the time, in seconds, to wait for the user to enter a desired image. eg. '10'. Also, this forces a prompt for the image name to boot. Note: DrakX changes the value from seconds to tenths of a second for placement in silo.conf. If you do not want a prompt, then set timeout to 0.
'use_partition' - this is used to specify where the bootloader is placed;
0 - to install the loader on the first sector of the drive (MBR) or,
1 - to install the loader on the first sector of the boot partition.
'entries' - this is an array of 'per image' entries describing selectable boot images. Normally you should not need to add any since DrakX installs three default entries. However, if you do add a new one, then use any label except linux, failsafe or floppy otherwise DrakX will rename yours to old_... when it inserts its own. So be careful.
Each entry has the following form:
'type' => 'image' - specifies that this image describes a Linux kernel image to boot.
'kernel_or_dev' - specifies the location and name of the kernel image to boot. eg. '/boot/vmlinuz'.
'label' - specifies the name associated with this image. eg. 'my_linux'.
'root' - specifies the device to be mounted as 'root'. eg. '/dev/hda6'.
'initrd' - if present, specifies the location and name of the initial ram disk to be loaded. eg. '/boot/initrd.img'.
'append' - if present, specifies the kernel parameters for this image. eg. 'ramdisk=8192K'.
'read-write' => 1 - if present, indicates the root file system is to be mounted read-write. If it is NOT present, then the root file system is mounted read-only.
This loader is used on PowerPC computers. The following causes DrakX to create the file /etc/yaboot.conf. You really want to look at 'man yaboot.conf' for the correct explanation for some of the following.
|
'bootloader' => { |
|
|
|
'methods' => { |
|
'yaboot' => 1 |
|
}, |
|
|
|
'boot' => '/dev/hda', |
|
'delay' => 0, |
|
'default' => 'my_linux', |
|
'defaultos => 'linux', |
|
'enablecdboot' => 1, |
|
'enableofboot' => 1, |
|
'initmsg' => "My init text\n", |
|
'message' => "My text boot up\n", |
|
'prompt' => 1, |
|
'timeout' => '5', |
|
|
|
'entries' => [ |
|
{ |
|
'type' => 'image', |
|
'kernel_or_dev' => '/boot/vmlinuz', |
|
'label' => 'my_linux', |
|
'root' => '/dev/hda6', |
|
'initrd' => '/boot/initrd.img', |
|
'append' => undef, |
|
'read-write' => 0, |
|
or |
|
'type' => 'other', |
|
'kernel_or_dev' => '/dev/zip' |
|
'label' => 'my_linux', |
|
} |
|
] |
|
}, |
Descriptions:
'boot' - this allows you to specify the disk drive that it to be used as the boot device. Do not include the partition number. eg. '/dev/hda' or '/dev/hde'.
'delay' - if present, the time, in ??? seconds, for the Open Firmware Delay.
'default' - this is used to specify the default kernel image to boot. The value here is the 'label' value of one of the defined 'entries'. eg. 'my_linux'.
'defaultos' - is one of 'linux', 'macos', 'macosx' or 'darwin'.
'enablecdboot' => 1 - if present, enables booting from CD.
'enableofboot' => 1 - if present, enables booting using Open Firmware.
'initmsg' - this allows you to create a customized boot message. It is optional and if included, will causes the file bootloader to display your string. Also use double quotes " .
'message' - this allows you to create a customized boot message. It is optional and if included, causes the file /boot/message to be created containing your string (don't forget to include '\n' where appropriate. Also use double quotes " ). If it is not included, then DrakX creates a default message for you.
'prompt' => 1 - if present, prompts the user to enter a image name to boot with. Should really be used with 'timeout'. NOTE: If 'timeout' is defined, then 'prompt' is ignored.
'timeout' - if present, the time, in seconds, to wait for the user to enter a desired image. eg. '10'. Also, this forces a prompt for the image name to boot, even if you have used 'prompt' => 0 or it is absent. Note: DrakX changes the value from seconds to tenths of a second for placement in lilo.conf.
'entries' - this is an array of 'per image' entries describing selectable boot images. DrakX installs three default entries and normally you should not need to add any. However, if you add a new one, then use any label except linux, failsafe or floppy otherwise DrakX will rename yours to old_... when it inserts its own. So be careful.
Each entry has one of two forms:
'type' => 'image' - specifies that this image describes a Linux kernel image to boot.
'kernel_or_dev' - specifies the location and name of the kernel image to boot. eg. '/boot/vmlinuz'.
'label' - specifies the name associated with this image. eg. 'my_linux'.
'root' - specifies the device to be mounted as 'root'. eg. '/dev/hda6'.
'initrd' - if present, specifies the location and name of the initial ram disk to be loaded. eg. '/boot/initrd.img'.
'append' - if present, specifies the kernel parameters for this image. eg. 'ramdisk=8192K'.
'read-write' => 1 - if present, indicates the root file system is to be mounted read-write. If it is NOT present, then the root file system is mounted read-only.
or
'type' => 'other', - specifies that this image describes an arbitrary operating system to boot.
'kernel_or_dev' - specifies the location and name of the kernel image to boot. eg. '/boot/vmlinuz'.
'label' - specifies the name associated with this image. eg. 'my_linux'.
Examples:
This first one is the simplest and I use it on a server to obtain a simple text based boot prompt, rather than the default graphic one. This also lets DrakX fill in all the auto detected stuff for me.
|
'bootloader' => { |
|
|
|
'methods' => { |
|
'lilo' => 'boot-text.b' |
|
}, |
|
|
|
'crushMbr' => 1 |
|
}, |
NOTE: I use the 'crushMbr' here to make sure that whatever is on the disk is replaced with lilo's bootloader. This may not be suitable for everyone (such as dual boot or if you want to keep the existing MBR). Your installation needs may be different, so use with caution.
This one adds an additional boot image that I use on my test machine to increase the size of the default ram disk.
|
'bootloader' => { |
|
|
|
'methods' => { |
|
'lilo' => 'boot-text.b' |
|
}, |
|
|
|
'entries' => [ |
|
{ |
|
'type' => 'image', |
|
'kernel_or_dev' => '/boot/vmlinuz', |
|
'label' => 'bigdisk', |
|
'root' => '/dev/hda6', |
|
'initrd' => '/boot/initrd.img', |
|
'append' => 'ramdisk=8192k' |
|
} |
|
] |
|
}, |
If I had wanted to make this new image the one which is automatically booted, then I would have added 'default' => 'bigdisk', just before the 'entries'.
Related Hash Entries:
keyboard
This option is an alternate package selection method. This option allows you to install packages based on their relative importance and has the following is its general form:
'compssListLevel' => 5,
Descriptions:
'compssListLevel' - the desired rating value can be one of:
|
5 - Must Have |
|
4 - Important |
|
3 - Very nice |
|
2 - Nice |
|
1 - Maybe |
Mandrake has taken most of the installable packages (*.rpms found in Mandrake/RPMS ...) and categorized them, hierarchically, into Groups (eg. Office, KDE) and then refined it a bit further into sub-groups (packages which should only be installed if corresponding tag has been selected) and then finally applied a numerical rating (1 through 5) to each package. If you look in the file Mandrake/base/rpmsrate, you can see the group/sub-group tags, followed by the rating levels and each package assigned to that level.
When you use 'compssListLevel', DrakX will install every package which has a rating greater than or equal ( '>=' ) to the value you specify with this option, regardless of the group or sub-group they have been listed in.
NOTE: Since the Mandrake Linux distribution comes on a varying number of CD's, you may find packages listed which are not found on the ones that you downloaded or bought - not to worry, DrakX knows this and will only attempt to install packages that you actually have.
Examples:
1. Make sure that your auto_inst.cfg does not have either 'default_packages' or 'compssUsersChoice'.
2. Add this: 'compssListLevel' => 3,
And voila, all packages rated at 3 and higher will be installed. A bit indiscriminate I know, but if you were to put 0 instead of 3, then all packages would be installed, or 6 and only the essential packages get installed.
The essential files are typically those packages that Mandrake considers 'basesystem' components (on GUI Install/Flat Listing they are the one that you can't select) and a few others which were needed for the auto installation.
Related Hash Entries:
compssUsersChoice, default_packages
This option is an alternate package selection method and if used 'compssListLevel' must be defined as well. These two together closely resemble the GUI based install where you selected which package groups to install. It has the following general form:
|
'compssUsersChoice' => { |
|
|
|
'<group_tag>' => 1, |
|
'<group_tag>' => 1 |
|
}, |
Descriptions:
'<group_tag>' - is one of the following:
|
ACCESSIBILITY |
GNOME |
NETWORKING_REMOTE_ACCESS |
|
ARCHIVING |
GRAPHICAL_DESKTOP |
NETWORKING_REMOTE_ACCESS_SERVER |
|
GNOME |
GRAPHICS |
NETWORKING_WWW |
|
AUDIO |
GNOME |
NETWORKING_WWW_SERVER |
|
DEVELOPMENT |
INSTALL |
NIS |
|
BOOKS |
KDE |
NIS_SERVER |
|
BURNER |
MONITORING |
OFFICE |
|
DEVELOPMENT |
GNOME |
GNOME |
|
COMMUNICATIONS |
NETWORKING_CHAT |
KDE |
|
CONFIG |
NETWORKING_CHAT_SERVER |
PHOTO |
|
DATABASES |
NETWORKING_DNS |
PUBLISHING |
|
DATABASES_SERVER |
NETWORKING_DNS_SERVER |
SCANNER |
|
DEVELOPMENT |
NETWORKING_FILE |
SCIENCES |
|
DEVELOPMENT |
NETWORKING_FILE_SERVER |
SHELLS |
|
BOOKS |
NETWORKING_FILE_TRANSFER |
SOUND |
|
GNOME |
NETWORKING_FILE_TRANSFER_SERVER |
SYSTEM |
|
KDE |
NETWORKING_FIREWALLING_SERVER |
BOOKS |
|
DEVELOPMENT_OTHER |
NETWORKING_INSTANT_MESSAGING |
GNOME |
|
EDITORS |
GNOME |
TERMINALS |
|
GNOME |
NETWORKING_IRC |
TEXT_TOOLS |
|
EMULATORS |
NETWORKING_MAIL |
BOOKS |
|
FILE_TOOLS |
NETWORKING_MAIL_SERVER |
TV |
|
GAMES |
NETWORKING_NEWS |
VIDEO |
|
GNOME |
NETWORKING_NEWS_SERVER |
|
|
DEVELOPMENT |
NETWORKING_OTHER |
|
|
KDE |
NETWORKING_OTHER_SERVER |
|
|
DEVELOPMENT |
|
|
|
3D |
|
|
NOTE: The indented tags indicate that there are packages in the corresponding Group which will only be installed if the indented tag is specified as well. If you look in the file Mandrake/base/rpmsrate, you can see the group/sub-group tags, followed by the rating levels and packages that are assigned to that level.
Before you get too carried away, remember that DrakX is going to install what it considers an essential minimum set of packages, then it looks at your selections and adds any extras that you selected and, any additional packages that are needed for your choices to operate properly.
Examples:
How do you select things? Well, have you ever tried the game 'Rubics Cube'; its kinda like that but with a bigger block.
First pick the features you want, then select the desktop you want to use. Then create a list of tags. Or you can look at the file Mandrake/base/compssUsers to see how Mandrake grouped things for the GUI Group Package selection screen and go from there. Finally, you have to set the package rating level you want as the minimum using 'compssListLevel'.
The following are some simple examples:
This is what would be selected if you were using the GUI install and selected the icons for Game station, Multimedia Station, Console Tools and KDE:
|
'compssUsersChoice' => { |
|
|
|
'GAMES' => 1, 'AUDIO' => 1, 'VIDEO' => 1, 'GRAPHICS' => 1, 'EDITORS' => 1, 'TERMINALS' => 1, 'TEXT_TOOLS' => 1, |
|
'SHELLS' => 1, 'FILE_TOOLS' => 1, 'KDE' => 1 |
|
}, |
|
|
|
'compssListLevel' => 5, |
This example is basically the same, except the rating level includes almost everything possible for these groups. The 'default_packages' option lets me add package(s) which would have been excluded.
|
'compssUsersChoice' => { |
|
|
|
'GAMES' => 1, 'AUDIO' => 1, 'VIDEO' => 1, 'GRAPHICS' => 1, 'EDITORS' => 1, 'TERMINALS' => 1, 'TEXT_TOOLS' => 1, |
|
'SHELLS' => 1, 'FILE_TOOLS' => 1, 'KDE' => 1 |
|
}, |
|
|
|
'compssListLevel' => 2, |
|
'default_packages' => [ 'jed' ], |
Kinda like the individual package selection of the GUI install. Except that the rating level gives you a bit more control on the basic package set installed.
Related Hash Entries:
compssListLevel, default_packages
This option is used to explicitly specify which packages are to be installed. It is simply a list of package names. For an example, see the file 'auto_inst.cfg.pl' that was placed in your /root after a graphic install. The general form is as follows:
|
'default_packages' => [ |
|
|
|
'<package-name>', |
|
'<package-name>' |
|
], |
Descriptions:
'<package-name>', - name of the package to be installed, not including the version, release, architecture and filename extension. eg. if the package file name is acon-1.0.4-5mdk.i586.rpm then use 'acon',.
If you are not sure of the name for the package you want installed, then use the following:
rpm -qp --queryformat %{NAME} <filename of package>
This will give you the name that the install is expecting.
After viewing the contents of the auto_inst.cfg or auto_inst.cfg.pl files, you may have noticed that not all packages that are installed in a system (rpm -qa | sort) are listed. This because a new approach is being used in an attempt to reduce the size of the files on the diskette. Basically, this means that packages 'required' by the listed ones are not included in the list.
NOTE: All packages must be in either the RPMS or RPMS2 directories. If you have added one, then see section Creating an Updated Installation CD Set.
Examples:
The following is a simple example to illustrate the use of this option. It is actually what DrakX generates when you deselect all groups during a graphic install.
|
'default_packages' => [ |
|
|
|
'fonts-ttf-west_european', |
|
'strace', |
|
'gurpmi', |
|
'reiserfsprogs', |
|
'kudzu', |
|
'linux_logo', |
|
'bc', |
|
'fonts-ttf-decoratives', |
|
'at', |
|
'MAKEDEV', |
|
'iputils', |
|
'imwheel', |
|
'rpmdrake', |
|
'locales-en', |
|
'sndconfig', |
|
'rxvt', |
|
'numlock', |
|
'nfs-utils-clients', |
|
'man-pages', |
|
'open', |
|
'ldetect', |
|
'XFree86-server', |
|
'hexedit', |
|
'ftp', |
|
'anacron', |
|
'DrakConf', |
|
'XFree86-75dpi-fonts', |
|
'icewm-light' |
|
], |
Related Hash Entries:
compssUsersChoice, compssListLevel
This option is used to preset the default Desktop (Window Manager) for users.
'desktop' => 'KDE',
Descriptions:
'desktop'- if this option is present, then it may be any one of the following, provided of course it was installed:
|
KDE |
|
Gnome |
|
WindowMaker |
|
Enlightenment |
|
Blackbox |
|
ICEWM |
|
Sawfish |
The DrakX installer places the specified value into the file /etc/sysconfig/desktop.
Default means that if you are at Run Level 3 and you type startx, then the window manager defined in the file is used. If you have a graphic Login Screen and you select default, rather than one of the indicated Window Managers, then the window manager defined in this file is used.
Related Hash Entries:
autologin
This option is used to define the various network (ethernet or wireless) capable devices in your system. The following is the general form for the structure:
|
'intf' => { |
|
|
|
'ethx' => {}, |
|
and / or |
|
'wireless_eth' => {}, |
|
}, |
'ethx' - used to indicate an ethernet card interface definition. The 'x' is a sequence number, beginning with 0, for each ethernet card installed. Up to 10 cards can be defined with this version of the installer.
'wireless_eth' - used to indicate that there is a wireless ethernet interface installed. Currently only a single interface is supported.
For an ethernet card, the following are valid:
|
'eth0' => { |
|
|
|
'isPtp' => 0, |
|
'isUp' => 1, |
|
'driver' => '3c59x', |
|
'DEVICE' => 'eth0', |
|
'BOOTPROTO' => 'static', |
|
'ONBOOT' => 'yes', |
|
'IPADDR' => '192.168.5.202', |
|
'NETMASK' => '255.255.255.0', |
|
'NETWORK' => '192.168.5.0', |
|
'BROADCAST' => '255.255.255.0' |
|
}, |
For a wireless interface, the following are valid:
|
'wireless_eth' => { |
|
|
|
'isPtp' => 0, |
|
'isUp' => 1, |
|
'driver' => '', |
|
'DEVICE' => 'wireless_eth', |
|
'BOOTPROTO' => 'static', |
|
'ONBOOT' => 'yes', |
|
'IPADDR' => '192.168.5.202', |
|
'NETMASK' => '255.255.255.0', |
|
'NETWORK' => '192.168.5.0', |
|
'BROADCAST' => '255.255.255.0', |
|
'WIRELESS_MODE' => 'Auto', |
|
'WIRELESS_ESSID' => 'any', |
|
'WIRELESS_NWID' => '', |
|
'WIRELESS_FREQ' => '', |
|
'WIRELESS_SENS' => '', |
|
'WIRELESS_RATE' => '', |
|
'WIRELESS_ENC_KEY' => '', |
|
'WIRELESS_RTS' => '', |
|
'WIRELESS_FRAG' => ',' |
|
'WIRELESS_IWCONFIG' => '', |
|
'WIRELESS_IWSPY' => '', |
|
'WIRELESS_IWPRIV' => '', |
|
}, |
Descriptions:
'isPtp' - if the interface has a 'NETMASK' of 255.255.255.255 (Point to point) then set to 1, else set to 0 or ''.
'isUp' - normally set to 1and indicates if the installer was able to detect and initialize the interface card. 0 does ????.
'driver' - normally not present, use only if the installer detects the wrong driver for your interface.
'DEVICE' - same as the 'ethx' you used to start this definition with.
'BOOTPROTO' - may be one of 'static', 'dhcp' or 'bootp'.
'ONBOOT' - normally set to 'yes', but can be set to 'no' if you do not want the interface automatically started at boot up.
'IPADDR' - IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp.
'NETMASK' - Network Mask ('x.x.x.x') to be used with this interface, not required if BOOTPROTO is dhcp or bootp.
'NETWORK' - base IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp.
'BROADCAST' - broadcast IP address ('x.x.x.x') for this interface, not required if BOOTPROTO is dhcp or bootp.
'WIRELESS_MODE' - may be one of Ad-hoc, Managed, Master, Repeater, Secondary or Auto.
'WIRELESS_ESSID' - may be 'any'
'WIRELESS_NWID' - ???
'WIRELESS_FREQ' - ???
'WIRELESS_SENS' - ???
'WIRELESS_RATE' - ???
'WIRELESS_ENC_KEY' - ???
'WIRELESS_RTS' - ???
'WIRELESS_FRAG' - ???
'WIRELESS_IWCONFIG' - ???
'WIRELESS_IWSPY' - ???
'WIRELESS_IWPRIV' - ???
The entries for each interface appear in a configuration file located in /etc/sysconfig/network-scripts/. The filename is formed by adding the DEVICE string to the end of 'ifcfg-'. In the example below, you would expect to find the file: /etc/sysconfig/network-scripts/ifcfg-eth0.
|
'intf' => { |
|
|
|
'eth0' => { |
|
|
|
'DEVICE' => 'eth0', |
|
... |
|
} |
|
}, |
Examples:
See the section Network and Connection Examples for detailed examples.
For a computer which does not have an ethernet or wireless interface, then use the following:
'intf' => {},
If the target computer has multiple interfaces, then use the following:
|
'intf' => { |
|
'eth0' => { |
|
|
|
... |
|
|
|
}, |
|
|
|
'eth1' => { |
|
|
|
... |
|
|
|
} |
|
} |
If the computer has access to the internet, then see sections 'netc' and 'netcnx'.
If the computer has more than one interface defined, make sure the 'netc' option identifies which one is the GATEWAYDEV.
If the computer has an interface with either BOOTPROTO set to 'dhcp' or 'bootp', then it requires either the dhcpcd, dhcpxd or pump packages installed.
Related Hash Entries:
netc, netcnx.
This option is used to tell DrakX to perform an upgrade instead of a full install.
'isUpgrade' => 0,
Descriptions:
'isUpgrade' - what you want to do
|
0 - perform a full install |
|
1 - perform an upgrade |
An upgrade will examine the currently installed packages on the computer and upgrade only those packages necessary. It will add additional new packages that are 'required' by the new packages which are replacing older one.
Related Hash Entries:
none.
This option allows you to specify the type of keyboard you are using by specifying one of the country codes. See file Mandrake/mdkinst/usr/bin/perl-install/keyboard.pm declaration for %keyboards which may contain a more up to date list.
'keyboard' => 'us',
Descriptions:
'keyboard' - specifies the keyboard type used, possible values are:
|
'am_old' |
Armenian (old) |
|
'am' |
Armenian (typewriter) |
|
'am_phonetic' |
Armenian (phonetic) |
|
'az' |
Azerbaidjani (latin) |
|
'a3' |
Azerbaidjani (cyrillic) |
|
'be' |
Belgian |
|
'bg' |
Bulgarian |
|
'br' |
Brazilian (ABNT-2) |
|
'by' |
Belarusian |
|
'ch_de' |
Swiss (German layout) |
|
'ch_fr' |
Swiss (French layout) |
|
'cz' |
Czech |
|
'cz_qwerty' |
Czech (QWERTY) |
|
'cz_prog' |
Czech (Programmers) |
|
'de' |
German |
|
'de_nodeadkeys' |
German (no dead keys) |
|
'dk' |
Danish |
|
'dvorak' |
Dvorak |
|
'ee' |
Estonian |
|
'es' |
Spanish |
|
'fi' |
Finnish |
|
'fr' |
French |
|
'ge_ru' |
Georgian (Russian layout) |
|
'ge_la' |
Georgian (Latin layout) |
|
'gr' |
Greek |
|
'hu' |
Hungarian |
|
'hr' |
Croatian |
|
'il' |
Israeli |
|
'il_phonetic' |
Israeli (Phonetic) |
|
'ir' |
Iranian |
|
'is' |
Icelandic |
|
'it' |
Italian |
|
'jp' |
Japanese |
|
'kr' |
Korean |
|
'la' |
Latin American |
|
'lt' |
Lithuanian AZERTY (old) |
|
'lt_new' |
Lithuanian AZERTY (new) |
|
'lt_b' |
Lithuanian number row QWERTY |
|
'lt_p' |
Lithuanian phonetic QWERTY |
|
'mk' |
Macedonian |
|
'nl' |
Dutch |
|
'no' |
Norwegian |
|
'pl' |
Polish (qwerty layout) |
|
'pl2' |
Polish (qwerty layout) |
|
'pt' |
Portuguese |
|
'qc' |
Canadian (Quebec) |
|
'ru' |
Russian |
|
'ru_yawerty' |
Russian (Yawerty) |
|
'se' |
Swedish |
|
'si' |
Slovenian |
|
'sk' |
Slovakian |
|
'sk_qwerty' |
Slovakian (QWERTY) |
|
'sk_prog' |
Slovakian (Programmers) |
|
'th' |
Thai keyboard |
|
'tr_f' |
Turkish (traditional F model) |
|
'tr_q' |
Turkish (modern Q model) |
|
'ua' |
Ukrainian |
|
'uk' |
UK |
|
'us' |
US |
|
'us_intl' |
US (international) |
|
'vn' |
Vietnamese |
|
'yu' |
Yugoslavian (latin layout) |
Related Hash Entries:
lang, bootloader
This option allows you to select the language used for text presentations. The default is English US ('en_US'). See file Mandrake/mdkinst/usr/bin/perl-install/lang.pm declaration for %languages which may contain a more up to date list.
'lang' => 'en_US',
Descriptions:
'lang' - used to specify the desired language, possible values are:
|
'en_US' |
English (US) |
iso-8859-1 |
|
'en_GB' |
English (UK) |
iso-8859-1 |
|
'af' |
Afrikaans |
iso-8859-1 |
|
'ar' |
Arabic |
iso-8859-6 |
|
'az' |
Azeri (latin) |
iso-8859-9e |
|
'be' |
Belarussian |
cp1251 |
|
'bg' |
Bulgarian |
cp1251 |
|
'br' |
Brezhoneg |
iso-8859-1 |
|
'bs' |
Bosnian |
iso-8859-2 |
|
'ca' |
Catalan |
iso-8859-1 |
|
'cs' |
Czech |
iso-8859-2 |
|
'cy' |
Cymraeg (Welsh) |
iso-8859-14 |
|
'da' |
Danish |
iso-8859-1 |
|
'de_AT' |
German (Austria) |
iso-8859-1 |
|
'de_BE' |
German (Belgian) |
iso-8859-1 |
|
'de_CH' |
German (Swiss) |
iso-8859-1 |
|
'de_DE' |
German (Germany) |
iso-8859-1 |
|
'el' |
Greek |
iso-8859-7 |
|
'eo' |
Esperanto |
iso-8859-3 |
|
'es_AR' |
Spanish (Argentina) |
iso-8859-1 |
|
'es_ES' |
Spanish (Spain, modern sorting) |
iso-8859-1 |
|
'es@tradicional' |
Spanish (Spain, traditional sorting) |
iso-8859-1 |
|
'es_MX' |
Spanish (Mexico) |
iso-8859-1 |
|
'et' |
Estonian |
iso-8859-15 |
|
'eu' |
Euskara (Basque) |
iso-8859-1 |
|
'fi' |
Suomi (Finnish) |
iso-8859-1 |
|
'fr_CA' |
French (Canada) |
iso-8859-1 |
|
'fr_BE' |
French (Begian) |
iso-8859-1 |
|
'fr_CH' |
French (Swiss) |
iso-8859-1 |
|
'fr_FR' |
French (France) |
iso-8859-1 |
|
'ga' |
Gaeilge (Irish) |
iso-8859-14 |
|
'gl' |
Galician |
iso-8859-1 |
|
'he' |
Hebrew |
iso-8859-8 |
|
'hr' |
Croatian |
iso-8859-2 |
|
'hu' |
Hungarian |
iso-8859-2 |
|
'hy' |
Armenian |
armscii-8 |
|
'id' |
Indonesian |
iso-8859-1 |
|
'is' |
Icelandic |
iso-8859-1 |
|
'it_CH' |
Italian (Swiss) |
iso-8859-1 |
|
'it_IT' |
Italian |
iso-8859-1 |
|
'ja' |
Japanese |
jisx0208 |
|
'ka' |
Georgian |
georgian-academy |
|
'kl' |
Greenlandic (inuit) |
iso-8859-1 |
|
'ko' |
Korean |
ksc5601 |
|
'lt' |
Lithuanian |
iso-8859-13 |
|
'lv' |
Latvian |
iso-8859-13 |
|
'mi' |
Maori |
iso-8859-13 |
|
'mk' |
Macedonian (Cryllic) |
iso-8859-5 |
|
'nl' |
Dutch (Netherlands) |
iso-8859-1 |
|
'nl_BE' |
Dutch (Swiss) |
iso-8859-1 |
|
'no' |
Norwegian (Bokmaal) |
iso-8859-1 |
|
'nn' |
Norwegian (Nynorsk) |
iso-8859-1 |
|
'pl' |
Polish |
iso-8859-2 |
|
'pt_BR' |
Portuguese (Brazil) |
iso-8859-1 |
|
'pt_PT' |
Portuguese (Portugal) |
iso-8859-1 |
|
'ro' |
Romanian |
iso-8859-2 |
|
'ru_RU.CP1251' |
Russian |
cp1251 |
|
'ru_RU.KOI8-R' |
Russian |
koi8-r |
|
'sk' |
Slovak |
iso-8859-2 |
|
'sl' |
Slovenian |
iso-8859-2 |
|
'sp' |
Serbian (Cyrillic) |
iso-8859-5 |
|
'sr' |
Serbian (Latin) |
iso-8859-2 |
|
'sv' |
Swedish |
iso-8859-1 |
|
'ta' |
Tamil |
tscii-0 |
|
'tg' |
Tajik |
koi8-c |
|
'th' |
Thai |
tis620 |
|
'tr' |
Turkish |
iso-8859-9 |
|
'tt' |
Tatar |
tatar-cyr |
|
'uk_UA' |
Ukrainian |
koi8-u |
|
'uz' |
Uzbek |
iso-8859-1 |
|
'vi' |
Vietnamese (TCVN) |
tcvn |
|
'vi_VN.VISCII' |
Vietnamese (VISCII) |
viscii |
|
'wa' |
Walon |
iso-8859-1 |
|
'zh_TW.Big5' |
Chinese (Big5) |
Big5 |
|
'zh_CN.GB2312' |
Chinese (GuoBiao) |
gb2312 |
NOTE: Not all languages are supported by all applications. The third column, above, is the character set for the language.
Related Hash Entries:
keyboard
This option allows you to configure Logical Volume Management.
Descriptions:
Related Hash Entries:
This option allows you to add additional entries to the /etc/fstab file on the target computer. The most notable include adding NFS mounts. Other possibilities include other devices which are not detected by the install program, partitions or device which already exist on the target computer and have not been specified in the 'partitioning' option.
|
'manualFstab' => [ |
|
{ |
|
'device' => 'linux1:/nfscd/cdrom71', |
|
'mntpoint' => '/mnt/linux1', |
|
'type' => 'nfs', |
|
'options' => 'noauto,ro,nosuid,rsize=8192,wsize=8192' |
|
} |
|
], |
The fields for this option are identical to those you would see in the /etc/fstab file.
Descriptions:
'device' - the physical device (eg. /dev/hdd1 or linux1:/nfscd/cdrom71)
'mntpoint' - the file system mount point for the device. It is a good idea NOT to use a mount point that is created for the use of rpmdrake (eg. /mnt/nfs).
'type' - type of file system on the device ( eg. ext2, reiserfs, nfs )
'options' - mount options for the device/file system being mounted.
Related Hash Entries:
partitions, partitioning
This is where stuff goes that does not fit anywhere else.
|
'miscellaneous' => { |
|
|
|
'numlock' => 1, |
|
'CLEAN_TMP' => 0, |
|
'HDPARM' => undef, |
|
'http_proxy' => undef, |
|
'ftp_proxy' => undef |
|
}, |
Descriptions:
'numlock' - set to 1 if NumLock on the keyboard is to be set after boot up, 0 if not.
'CLEAN_TMP' - set to 1 if the tmp directory ( is to be cleaned up at each boot up, 0 if not.
'HDPARM' - ????
'http_proxy' - if used, then it is set to the URL and port for the http proxy server.
'ftp_proxy' - if used, then it is set to the URL and port for the ftp proxy server.
Related Hash Entries:
none.
This option allows you to create a boot disk during the install process. Probably not something you want to do while doing an auto installation.
'mkbootdisk' => '',
Descriptions:
'mkbootdisk' - used to define what to do:
|
'0' or '' - no boot disk |
|
'1' - create boot disk on fd0 |
|
'fd1' - create boot disk on device fd1 |
Related Hash Entries:
none.
This option is used to define the Mouse that is attached to the target computer. Use this option ONLY if you know the required information. By using this option, the Install Program is inhibited from performing a 'Mouse Probe' in an attempt to automatically identify the type of mouse available.
|
'mouse' => { |
|
|
|
'type' => 'serial', |
|
'device' => 'ttyS1', |
|
'name' => 'Generic 2 Button Mouse', |
|
'nbuttons' => 2, |
|
'XEMU3' => 'yes', |
|
'MOUSETYPE' => 'Microsoft', |
|
'XMOUSETYPE' => 'Microsoft', |
|
'FULLNAME' => 'serial|Generic 2 Button Mouse', |
|
'WHEEL' => 'no' |
|
}, |
Descriptions:
'type' - one of 'PS/2', 'USB', 'serial', 'busmouse', or 'none'. See table for mice for each type.
'device' - device file to use:
|
- for PS/2, use 'psaux', |
|
- for serial use 'ttySx' where x is serial port number, |
|
- for busmouse use one of 'atibm', 'inportbm' or 'logibm' (depends on card installed) |
|
- for USB, use usbmouse |
|
- for none, use 'none' |
'name' - see table.
'nbuttons' - 2 or 3 for mice without a wheel, 5 for mice with a wheel (see table).
'XEMU3' - 'yes' if 2 button mouse and you want 3 button emulation, else should be set to 'no'.
'MOUSETYPE' - see table.
'XMOUSETYPE' - see table.
'FULLNAME' - is '<type> | <name>'. eg. 'PS/2|Standard'
'WHEEL' - 'yes' if mouse has a wheel, 'no' if the mouse does not.
|
'nbuttons' |
'MOUSETYPE' |
'XMOUSETYPE' |
'name' |
|
|
|
|
|
|
'PS/2' |
|
|
|
|
|
|
|
|
|
2 |
ps/2 |
PS/2 |
Standard |
|
5 |
ps/2 |
MouseManPlusPS/2 |
Logitech MouseMan+ |
|
5 |
imps2 |
IMPS/2 |
Generic PS2 Wheel Mouse |
|
5 |
ps/2 |
GlidePointPS/2 |
GlidePoint |
|
5 |
ps/2 |
ThinkingMousePS/2 |
Kensington Thinking Mouse |
|
5 |
netmouse |
NetMousePS/2 |
Genius NetMouse |
|
5 |
netmouse |
NetScrollPS/2 |
Genius NetScroll |
|
|
|
|
|
|
'USB' |
|
|
|
|
|
|
|
|
|
2 |
ps/2 |
PS/2 |
Generic |
|
5 |
ps/2 |
IMPS2 |
Wheel |
|
|
|
|
|
|
'serial' |
|
|
|
|
|
|
|
|
|
2 |
Microsoft |
Microsoft |
Generic 2 Button Mouse |
|
3 |
Microsoft |
Microsoft |
Generic 3 Button Mouse |
|
5 |
ms3 |
IntelliMouse |
Microsoft IntelliMouse |
|
3 |
MouseMan |
MouseMan |
Logitech MouseMan |
|
2 |
MouseSystems |
MouseSystems |
Mouse Systems |
|
3 |
logim |
MouseMan |
Logitech CC Series |
|
5 |
pnp |
IntelliMouse |
Logitech MouseMan+/FirstMouse+ |
|
5 |
ms3 |
IntelliMouse |
Genius NetMouse |
|
2 |
MMSeries |
MMSeries |
MM Series |
|
2 |
MMHitTab |
MMHittab |
MM HitTablet |
|
3 |
Logitech |
Logitech |
Logitech Mouse (serial, old C7 type) |
|
3 |
Microsoft |
ThinkingMouse |
Kensington Thinking Mouse |
|
|
|
|
|
|
'busmouse' |
|
|
|
|
|
|
|
|
|
2 |
Busmouse |
BusMouse |
2 buttons |
|
3 |
Busmouse |
BusMouse |
3 buttons |
|
|
|
|
|
|
'none' |
|
|
|
|
|
|
|
|
|
0 |
None |
Microsoft |
No mouse |
|
|
|
|
|
|
|
|
|
|
Examples:
NOTE: If you are using an old Microsoft Bus Mouse, you MUST use this option.
|
'mouse' => { |
|
|
|
'type' => 'busmouse', |
|
'device' => 'inportbm', |
|
'name' => '2 buttons', |
|
'nbuttons' => 2, |
|
'XEMU3' => 'yes', |
|
'MOUSETYPE' => 'Busmouse', |
|
'XMOUSETYPE' => 'BusMouse', |
|
'FULLNAME' => 'busmouse|2 buttons', |
|
'WHEEL' => 'no' |
|
}, |
The following is an example for a PS/2 non wheel mouse:
|
'mouse' => { |
|
|
|
'type' => 'PS/2', |
|
'device' => 'psaux', |
|
'name' => 'Standard', |
|
'nbuttons' => 2, |
|
'XEMU3' => 'yes', |
|
'MOUSETYPE' => 'ps/2', |
|
'XMOUSETYPE' => 'PS/2', |
|
'FULLNAME' => 'PS/2|Standard', |
|
'WHEEL' => 'no' |
|
}, |
The following is an example for a serial mouse:
|
'mouse' => { |
|
|
|
'type' => 'serial', |
|
'device' => 'ttyS1', |
|
'name' => 'Generic 2 Button Mouse', |
|
'nbuttons' => 2, |
|
'XEMU3' => 'yes', |
|
'MOUSETYPE' => 'Microsoft', |
|
'XMOUSETYPE' => 'Microsoft', |
|
'FULLNAME' => 'serial|Generic 2 Button Mouse', |
|
'WHEEL' => 'no' |
|
}, |
The following is an example for a Generic PS/2 Wheel mouse:
|
'mouse' => { |
|
|
|
'type' => 'PS/2', |
|
'device' => 'psaux', |
|
'name' => 'Generic PS2 Wheel Mouse', |
|
'nbuttons' => 5, |
|
'XEMU3' => 'no', |
|
'MOUSETYPE' => 'imps/2, |
|
'XMOUSETYPE' => 'IMPS/2', |
|
'FULLNAME' => 'PS/2|Generic PS2 Wheel Mouse', |
|
'WHEEL' => 'yes', |
|
}, |
NOTE: Information from here is used to update the files /etc/sysconfig/mouse and /etc/X11/XF86Config(-4) Mouse section.
Related Hash Entries:
nomouseprobe, wacom, X
This option contains values used to configure the network on the target computer. The majority of these values are placed in the file: /etc/sysconfig/network. The general form is as follows:
|
'netc' => { |
|
|
|
'NETWORKING' => 'yes', |
|
'autodetection' => 0, |
|
'minus_one' => 1, |
|
'nb_cards' => 2, |
|
'FORWARD_IPV4' => 'false', |
|
'HOSTNAME' => 'linux-dev.eastcott.net', |
|
'DOMAINNAME' => 'eastcott.net', |
|
'GATEWAY' => '192.168.5.254', |
|
'GATEWAYDEV' => 'eth0', |
|
'dnsServer' => '24.64.8.1', |
|
'dnsServer2' => '24.64.8.2', |
|
'dnsServer3' => undef, |
|
'DOMAINNAME2' => 'cgma1.ab.wave.home.com', |
|
'NISDOMAIN' => undef, |
|
'DHCP_HOSTNAME' => 'CS167266-B', |
|
'NET_DEVICE' => undef, |
|
'NET_INTERFACE' => undef, |
|
'autodetect' => { |
|
'modem' => 'ttyS0', |
|
'isdn' => { |
|
'driver' => undef, |
|
'card_type' => undef, |
|
'description' => undef, |
|
'id' => undef, |
|
'vendor' => undef, |
|
'type' => undef |
|
}, |
|
'lan' => { |
|
'eth0' => '3c59x' |
|
} |
|
}, |
|
}, |
Descriptions:
'NETWORKING' - 'yes' or 'no' if this machine is network connected.
'minus_one' - if an interface uses DHCP to obtain its IP information.
'nb_cards' - number of ethernet capable interface cards in the computer
'FORWARD_IPV4' - 'true' or 'false' if IP forwarding between interfaces is required
'HOSTNAME' - fully qualified host name for the target computer
'DOMAINNAME' - domain name for the target computer
'GATEWAY' - IP address for the machine that processes all non-local IP messages
'GATEWAYDEV' - device name for device that is used to access the gateway machine
'dnsServer' - IP addresses for DNS server, up to three may be specified.
'dnsServer2' - if available, then the second DNS server.
'dnsServer3' - if available, then the second DNS server.
'DOMAINNAME2' -
'NISDOMAIN' - if NIS authentication is used, then ...
The dnsServer and DOMAINNAME2 entries are placed in the file /etc/resolv.conf.
Examples:
See the section Network and Connection Examples for detailed examples.
Related Hash Entries:
intf, netcnx
This option is used to set up a connection to a network (internet) using a modem, ISDN, DSL/ADSL, CABLE or LAN. The three options 'intf', 'net' and 'netcnx' are inter-related and much care is necessary when setting these up, especially if you have a mixed environment. The general form is:
|
'netcnx' => { |
|
|
|
'type' => '', |
|
'NET_DEVICE' => '', |
|
'NET_INTERFACE' => '', |
|
'PROFILE' => undef, |
|
'dhcp_client' => '', |
|
|
|
... type specific parameters ... |
|
|
|
}, |
Descriptions:
'type' - one of: 'modem', 'isdn_external', 'isdn_internal', 'adsl_pppoe', 'adsl_pptp', 'adsl_dhcp', 'cable' or 'lan'.
NOTE: The types; 'adsl_pppoe', 'adsl_pptp', 'adsl_dhcp', 'cable' or 'lan' require that a network interface card be installed. The type, 'isdn_internal' requires that an internal ISDN interface card be installed.
'NET_DEVICE' - this is the device name used in the routing tables and the 'ifcfg-...' as well as other configuration files automatically generated by the installer. eg. 'ppp0' or 'ippp0'
'NET_INTERFACE' - see 'NET_DEVICE'.
'PROFILE' - ?????
'dhcp_client' - if DHCP is used to obtain IP information for the internet connection, then it may be one of: 'dhcpcd', 'dhcpxd' or 'dhcp-client'.
... type specific parameters ... - based on 'type', use one of the following:
|
'modem' => { |
|
|
|
'connection' => '', |
|
'device' => '', |
|
'phone' => '', |
|
'domain' => '', |
|
'dns1' => '', |
|
'dns2' => '', |
|
'auth' => 'PAP', |
|
'login' => '', |
|
'passwd' => '' |
|
}, |
'connection' - this is a name string for the connection.
'device' - device the modem is attached to. eg. 'ttyS0'
'phone' - telephone number to dial when making a connection.
'domain' - domame name assigned by your service provider. eg. 'agt.net'
'dns1' - IP address of the first DNS server at your service provider.
'dns2' - IP address of the second DNS server at your service provider, optional.
'auth' - method of authenticating with your service provider. Can be one of 'PAP', 'Terminal-based' or 'Script-based'.
'login' - account login assigned to you by your service provider.
'passwd' - account pass word you need as required by you service provider.
|
'isdn_internal' => { |
|
|
|
'driver' => '', |
|
'type' => '', |
|
'irq' => '', |
|
'mem' => '', |
|
'io' => '', |
|
'io0' => '', |
|
'io1' => '', |
|
'protocol' => '', |
|
'description' => '', |
|
'vendor' => '', |
|
'id' => '', |
|
'phone_out' => '', |
|
'dialing_mode' => '', |
|
'phone_in' => '', |
|
'login' => '', |
|
'passwd' => '', |
|
'passwd2' => '' |
|
}, |
|
'isdn_external' => { |
|
|
|
'connection' => '', |
|
'device' => '', |
|
'phone' => '', |
|
'domain' => '', |
|
'dns1' => '', |
|
'dns2' => '', |
|
'auth' => 'PAP', |
|
'login' => '', |
|
'passwd' => '', |
|
'special_command' => 'AT&F&O2B40' |
|
}, |
'connection' - this is a name string for the connection.
'device' - device the modem is attached to. eg. 'ttyS0'
'phone' - telephone number to dial when making a connection.
'domain' - domame name assigned by your service provider. eg. 'agt.net'
'dns1' - IP address of the first DNS server at your service provider.
'dns2' - IP address of the second DNS server at your service provider, optional.
'auth' - method of authenticating with your service provider. Can be one of 'PAP', 'Terminal-based' or 'Script-based'.
'login' - account login assigned to you by your service provider.
'passwd' - account pass word you need as required by you service provider.
'special_command' - command string sent to the modem to set its internal operation for use with an IDSN connection.
|
'adsl_pppoe' => { |
|
|
|
'login' => '', |
|
'passwd' => '', |
|
'passwd2' => '' |
|
}, |
|
'adsl_pptp' => { |
|
|
|
'login' => '', |
|
'passwd' => '', |
|
'passwd2' => '' |
|
}, |
|
'adsl_dhcp' => { |
|
|
|
'login' => '', |
|
'passwd' => '', |
|
'passwd2' => '' |
|
}, |
|
'cable' => { |
|
}, |
|
'lan' => { |
|
}, |
NOTE: If you do NOT have any other connection to the internet, then the above is not required. However, 'type' must still be set to 'lan'.
Examples:
See the section Network and Connection Examples for detailed examples.
Related Hash Entries:
intf, netc
This option is used to prevent the install program from doing a 'Mouse Probe' on serial ports, PS/2 mouse port, etc. You would ONLY use this when the target computer has no mouse attached.
OR, you have modems, UPS, etc. attached to your serial ports. If you don't use this option, then they may be adversely affected. You MUST then use the 'mouse' option to define your mouse. By the way, using the 'mouse' option also disables the probing.
'nomouseprobe' => 1,
Descriptions:
'nomouseprobe' - what to do
|
0 |
- enable probing for a mouse. |
|
1 |
- disable probing for a mouse. |
Normally if you want probing, then this statement is not included in the auto_inst.cfg file
Related Hash Entries:
mouse
This option instructs the installation how, if any, to partition the hard disk drive.
|
'partitioning' => { |
|
|
|
'clearall' => 0, |
|
'eraseBadPartitions' => '0', |
|
'auto_allocate' => 1 |
|
}, |
Descriptions:
'clearall' - set to 1 if the disk's existing partition is to be cleared and the new partition sizes internally defined by auto allocation routine or by externally defined 'partitions' is to be used.
'eraseBadPartitions' - set to '1' if any unidentified existing partitions are to be erased.
'auto_allocate' - set to 1 if disk partitions are to be defined by the option 'partitions'
Note:
If you are using a disk with partitions that you want to change their size, don't care about, are unknown or you want to force their creation, then set all three to their 1 values.
If you want to re-use the existing partitions, then set them all to their 0 value. AND add all the mounting information to the 'manualFstab'
If you want the install program to auto-allocate the partitions, then set the values all to 1, and remove the 'partitions' definitions.
Pixel said something about 'hda' instead of a boolean????
Related Hash Entries:
partitions, manualFstab
This option is used in conjunction with 'auto_allocate' => 1, to define the partitions that are to be created. If 'auto_allocate' => 0, then this definition is ignored.
|
'partitions' => [ |
|
{ |
|
'mntpoint' => '/boot', |
|
'type' => 131, |
|
'size' => 64449, |
|
'hd' => 'hda' |
|
}, |
|
{ |
|
'mntpoint' => 'swap', |
|
'type' => 130, |
|
'size' => 524097, |
|
'hd' => 'hda' |
|
}, |
|
{ |
|
'mntpoint' => '/', |
|
'type' => 387, |
|
'size' => 573344, |
|
'ratio' => 100, |
|
'maxsize' => 5750000 |
|
'hd' => 'hda' |
|
} |
|
], |
Descriptions:
'mntpoint' - the directory where the partition will be mounted.
'type' - file system type for the partition.
131 (0x83) is ext2, 130 (0x82) is swap', 387 (0x183) is reiserfs. See Mandrake/mdkinst/usr/bin/perl-install/partition_table.pm for a complete listing.
'size' - the number of sectors that the partition is to be created with. The partitioning of the disk is done to the nearest cylinder boundary less than or equal to the number you have specified. The number of sectors in a cylinder are found by (number of sectors per track) * (number of heads). Usually each sector is 512 bytes in size, so you can do the math...
A quick short way is: 'size' => 32 << 11 should give you something just short of 32 megabytes.
'ratio' - is the percentage (1 -> 100) of the disk that the partition can grow to.
'maxsize' - is the maximum number of sectors that the partition can be. A limit on the 'ratio'
'hd' - device label for the disk drive that this set of definitions applies to. eg. hda or sdb
NOTE: To make your life a bit simpler and be able to allocate all of the disk, change the last partitions 'size' to some small value and set the 'ratio' to 100. This has the effect of allocating all of the remainder of the disk to that partition.
Related Hash Entries:
manualFstab, partitioning
This option provides the installer two simple methods for performing post installation activities on the installed system. Placement of these options should / must occur as the very last entry prior to the closing brace ( }; ). You can use one or the other method, but NOT both.
postInstall:
The install script is executed as root on the target computer with the environment set to that of the target computer.
|
'postInstall' => <<'EOF' |
|
echo "This is a test string" > /root/test.log |
|
EOF |
postInstallNonRooted:
The install script is executed within the current environment of the DrakX install program. This could allow you to mount other NFS volumes and copy files to the target computer.
|
'postInstallNonRooted' => <<'EOF' |
|
echo "This is a test string" > /mnt/root/test.log |
|
EOF |
The above says: execute all commands, as though they were typed from the command line, beginning with the next line until the string 'EOF' is encountered on a line by itself.
These options are executed just prior to the computer re-booting at the end of the installation process. This option gives the Installer a VERY powerful installation adjustment capability. The following is a more elaborate example:
|
'postInstall' => <<'EOF' |
|
# only if the NTP package is installed |
|
if [ -f /etc/ntp.conf ]; then |
|
cat <<EOF1 > /etc/ntp/step-tickers |
|
time-server.eastcott.net |
|
EOF1 |
|
fi |
|
|
|
# clean up bug for Netscape |
|
cat <<EOF2 >> /etc/skel/.bash_profile |
|
|
|
# clean up old cache files, since Netscape doesn't |
|
[ -d ~/.netscape ] && rm -rf ~/.netscape/cache/* |
|
|
|
EOF2 |
|
EOF |
NOTE: the EOF (or what you used for <<'EOF') MUST begin in column 1.
During the installation process, you can access a simple command line which is running in the installer's environment (ALT-F2). From there you can enter test commands to simulate those that would be executed when using the postInstallNonRooted method. The root ('/') directory of the system being installed is located in the directory '/mnt':
eg. echo "Hi there./n" > /mnt/root/test.log
If you use the 'chroot' command, you can simulate the postInstall's execution:
eg. chroot /mnt 'echo "Hi there./n" > /root/test.log'
Related Hash Entries:
Depends on what all you installed.
This option provides you with the ability to install and configure none, one, or more printers. DrakX provides installation support for two basic printing systems: CUPS and LPD. The following is an attempt to distill the auto install stuff down to a simple presentation. See the section Problems and Issues.
If all else fails, use the following form to indicate that there is no printer to be installed and then after the install is done, use the printerdrake program to add your printing system and printers.
No Printing System to be installed:
'printer' => undef,
However, for the more adventurous:
CUPS provides support for accessing printers connected locally to parallel or serial ports and, somewhere on a network via LPD, SMB or URI connections. The following shows the allowed options for a CUPS printer. You can define multiple printers by adding a named definition for each (the first one listed is the system default). The name used should be representative of the printer its for, eg. HP_990C rather than lp2. However, most of the applications which can print are usually defaulted to 'lp', so use your judgment and adjust to your preferences.
|
'printer' => { |
|
|
|
'configured' => { |
|
|
|
'lp' => { |
|
'mode' => 'CUPS', |
|
'QUEUE' => 'lp', |
|
'State' => 'Idle', |
|
'Accepting' => 'Yes', |
|
'DeviceURI' => 'parallel:/dev/lp0', |
|
'Info' => 'My generic postscript printer', |
|
'Location' => 'stuck in my office', |
|
'cupsPPD' => 'postscript.ppd.gz' |
|
} |
|
} |
|
}, |
Descriptions:
'mode' - this defines the printing system to be used for the printer being defined. It must be set to 'CUPS'.
'QUEUE' - this must be set to the same value as the name used for this definition. NOTE: the CUPS tools only allow the use of letter, number and the underscore characters. Strange, because the KUPS administration tool lets you add printer names with a hyphen too.
'State' => 'Idle', - this must appear as shown.
'Accepting' - this is used to enable ('Yes') or disable ('No') the printing for the printer. If set to 'No', you can use the CUPS/KUPS administration tools to enable it later.
'DeviceURI' - the defines how and where the printer is accessed and is one of the following forms:
ipp - printer is accessed via the internet printing protocol. See NOTE following. General form is:
ipp://<IP or FQDN>/printers/<printer name>
eg. 'ipp://linux1.eastcott.net/printers/HP_820C',
lpd - printer is accessed via a remote lpd. See NOTE following. General form is:
lpd://<IP or FQDN>/<queue name>
eg. 'lpd://xerox.eastcott.net/PORT1',
parallel - printer is accessed via a local parallel port. General form is:
parallel:<parallel port device file name>
eg. 'parallel:/dev/lp0',
serial - printer is accessed via a local serial port. General form is:
|
serial:<serial port device file name>[?option[+option...]] |
|
baud=rate - Sets the baud rate for the device. |
|
bits=7 or 8 - Sets the number of data bits. |
|
parity=even - Sets even parity checking. |
|
parity=odd - Sets odd parity checking. |
|
parity=none - Turns parity checking off. |
|
flow=dtrdsr - Turns DTR/DSR (hardware) flow control on. |
|
flow=hard - Turns RTS/CTS (hardware) flow control on. |
|
flow=none - Turns flow control off. |
|
flow=rtscts - Turns RTS/CTS (hardware) flow control on. |
|
flow=xonxoff - Turns XON/XOFF (software) flow control on. |
eg. 'serial:/dev/ttyS0?baud=9600+bits=8+parity=none',
smb - printer is accessed via the Microsoft SMB protocol. You must have SAMBA installed. See NOTE following. General form is one of the following:
|
smb://workgroup/server/sharename |
|
smb://server/sharename |
|
smb://user:pass@workgroup/server/sharename |
|
smb://user:pass@server/sharename |
eg. 'smb://MY-COMPUTER/HP_990C',
socket - printer is accessed via the AppSocket protocol (a.k.a. JetDirect). See NOTE following. General form is:
socket://<IP or FQDN>[:<port number>]
eg. 'socket://hp.eastcott.net:9600',
If a port number is not specified, it defaults to 9100
usb - printer is accessed via a local usb port. General form is:
usb:<usb port device file name>
eg. 'usb:/dev/usb/lp0
NOTE: If you have a machine running with CUPS, then you can look at the CUPS documentation at http://localhost:631/sam.html which has a ton of information. In particular, look at the sections: Printing to Windows Servers, Common Network Interface Settings.
'Info' - this is optional, and is usually descriptive text about the associated printer.
'Location' - this optional, and is usually descriptive text indicating the printers physical location.
'cupsPPD' - this is the CUPS file name for the PPD file associated with the printer. You can determine the filename by using the command '/usr/bin/poll_ppd_base -a | less' to locate the PPD definition for your printer. Each line contains a number of fields separated by a vertical bar (|). The first field contains the filename required for this entry. An alternate approach is to look in the directory /usr/share/cups/model, locate your model and desired ppd file. The value for cupsPPD would be the sub-directory and filename you want. See Examples below.
DrakX creates a file /etc/cups/printers.conf which contains most of the above information. If you peek into the directory /etc/cups/ppd, you will see PPD files corresponding to your printers, and the contents should identify the filename (without the .gz or the directory).
At this time, DrakX does not provide an Auto Install capability to configure the various options for your printers. You may find it more convenient to use the program xpp and make adjustments on the 'fly' or use the various administration programs to setup the defaults for each.
One final note. You normally do not have to set definitions for printers which are already defined on other computers running CUPS, as CUPS checks all other machines to see what printers they are exporting and will make them available to you. However, if they are exporting a printer which is actually on another computer or network and you print to it, then your print job actually goes to that computer first, then it goes to the printer. The downside is that if that computer is off, then you will not be able to use the printers it has defined, so use your discretion when defining printers.
WARNING: Do not omit any of these parameters if you are defining multiple printers.
The LPD printing system has been around forever and is the standard used on most UNIX / LINUX systems, CUPS being the new one on the block. Consequently, the configuration requirements for printers used under this system can be very considerable.
Again, you can define multiple printers simply by adding named definitions. In addition, you can use the form 'Xerox|lp' to specify which is the system default printer 'lp' as well a more meaningful name (see following descriptions for details).
Before beginning the configuration, get your self a copy of the Printer Database record(s) from the file /usr/lib/rhs/rhs-printfilters/printerdb for the printers that you are going to install.
The following is the general format for defining printers. Note that for each printer TYPE you only have to enter the parameters for that type.
|
'printer' => { |
|
|
|
'configured' => { |
|
|
|
'lp' => { |
|
|
|
'mode' => 'lpr', |
|
'QUEUE' => 'lp', |
|
'SPOOLDIR' => '/var/spool/lpd/lp', |
|
'ASCII_TO_PS' => 1, |
|
'AUTOSENDEOF' => 1, |
|
'BITSPERPIXEL' => 'Default', |
|
'CRLF' => 1, |
|
'DBENTRY' => 'PostScript', |
|
'EXTRA_GS_OPTIONS' => undef, |
|
'PAPERSIZE' => 'letter', |
|
'NUP' => 1, |
|
'RESOLUTION' => '600x600', |
|
'REVERSE_ORDER' => 0, |
|
'RTLFTMAR' => 18, |
|
'TEXTONLYOPTIONS' => undef, |
|
'TOPBOTMAR' => 36, |
|
'TYPE' => 'LOCAL', or 'SMB', or 'NCP', or 'LPD', |
|
|
|
based on 'TYPE', use one of: |
|
|
|
for 'LOCAL' use: |
|
|
|
'DEVICE' => '/dev/lp0' |
|
|
|
or for 'SMB' use: |
|
|
|
'SMBHOST' => 'CHERRY', |
|
'SMBSHARE' => 'HP-820C', |
|
'SMBHOSTIP' => '192.168.5.3', |
|
'SMBUSER' => '', |
|
'SMBPASSWD' => '', |
|
'SMBWORKGROUP' => 'EASTCOTT' |
|
|
|
or for 'NCP' use: |
|
|
|
'NCPHOST' => '', |
|
'NCPQUEUE' => '', |
|
'NCPUSER' => '', |
|
'NCPPASSWD' => '' |
|
|
|
or for 'LPD' or use: |
|
|
|
'REMOTEHOST' => 'xerox.eastcott.net', |
|
'REMOTEQUEUE' => 'PORT1' |
|
|
|
} |
|
} |
|
}, |
Descriptions:
'mode' - this defines the printing system to be used for the printer being defined. It must be set to 'lpr'.
'QUEUE' - this must be set to the same value as the name used for this definition. NOTE: If you are setting this printer as the system default, the 'lp' must be last. eg. 'Xerox|lp'.
'SPOOLDIR' - this specifies the print spool directory to be used. The first part is always '/var/spool/lpd/' and the final part is the value from 'QUEUE'. NOTE: If you are setting this printer as the system default, the value before the vertical bar (|) must be used. eg. If 'QUEUE' => 'Xerox|lp' then make 'SPOOLDIR' => '/var/spool/lpd/Xerox'.
'ASCII_TO_PS' - this is used to indicate if ACSII text has to be converted to Postscript first, 1 is Yes or 0 is No.
'AUTOSENDEOF' - this is used to indicate if a final EOF has to be sent to the printer at the end of a print job, 1 is Yes or 0 is No.
'BITSPERPIXEL' - this is used to indicate the number of bits used to define a colored printer pixel. This is printer dependent, but if you are not sure then set it to 'Default'. See the BitsPerPixel: entries in the printerdb, usually the first field after the label, but without the {}. eg. for BitsPerPixel: {ppa820c5} {Color, normal quality} use: 'BITSPERPIXEL' => 'ppa820c5',
'CRLF' - this is used to indicate if text Carriage Returns need to be transformed to Carriage Return / Line Feed prior to printing, 1 is Yes or 0 is No.
'DBENTRY' - this contains the StartEntry value found in the file /usr/lib/rhs/rhs-printfilters/printerdb for the printer. Alternately, you can look in the file /etc/printcap and see the comment that printtool puts ahead of your printer definition, it should indicate the value to use. eg. for StartEntry: PostScript, you would have 'DBENTRY' => 'PostScript'.
'EXTRA_GS_OPTIONS' - this is optional, and would contain extra options to be passed to the ghostscript driver.
'PAPERSIZE' - this indicates the default paper size in the printer, 'letter', 'legal', 'ledger', 'a3', 'a4'.
'NUP' - this indicates the number of document pages per physical printer page. It may be '1', '2', '4', or '8'.
'RESOLUTION' - this defines the default printer resolution. It is printer dependent. eg. 'NUP' => '300x300' for 300 x 300 dpi resolution.
'REVERSE_ORDER' - this indicates if pages need to be printed Last page first to First page last, 1 is Yes or 0 is No.
'RTLFTMAR' - this defines the default Left and Right printing margins. It is the number 'picas' (a pica is 1/72 of an inch). eg. ¼ inch margin, 'RTLFTMAR' => '18',
'TEXTONLYOPTIONS' - this optional an may be used to specify additional options when printing text. Set it to 'undef' if not required.
'TOPBOTMAR' - this defines the default Top and Bottom printing margins. It is the number 'picas' (a pica is 1/72 of an inch). eg. ½ inch margin, 'TOPBOTMAR' => '36',
'TYPE' - this indicates how the printer is connected (accessed), 'LOCAL', or 'SMB', or 'NCP', or 'LPD'. In addition, it is used to identify which of the additional connection options are required to finish this printer's definition:
for 'LOCAL' use:
'DEVICE'- this identifies the device file to use for the printer. eg. '/dev/lp0' or '/dev/usb/lp0'.
for 'SMB' use:
'SMBHOST' - this is the NETBIOS Name for the Windows server where the printer is connected.
'SMBSHARE' - this is the name of the Shared Printer on the remote device.
'SMBHOSTIP' - this is the IP address of the Windows server.
'SMBUSER' - if required, this is the User Name to use when accessing the associated printer.
'SMBPASSWD' - if required, this is the password that should be used.
'SMBWORKGROUP' - if required, this is the Windows WorkGroup name that should be used.
or for 'NCP' use:
'NCPHOST' - this is the Fully Qualified Domain Name (FQDN) for the Netware server, or its IP address.
'NCPQUEUE' - this is the name of the QUEUE for the printer on the remote device.
'NCPUSER' - if required, this is the User Name to use when accessing the associated printer.
'NCPPASSWD' - if required, this is the password that should be used.
or for 'LPD' or use:
'REMOTEHOST' - this is the Fully Qualified Domain Name (FQDN) for the remote printer or LPD server, or its IP address.
'REMOTEQUEUE' - this is the name of the QUEUE for the printer on the remote device.
WARNING: Do not omit any of these parameters if you are defining multiple printers.
Examples:
NO Printers:
'printer' => undef
If you use this option, then you will probably have to install all the appropriate packages when you do set up your printers. However, you should confirm that the programs printtool or printerdrake will do this for you.
CUPS Printers:
|
'printer' => { |
|
|
|
'configured' => { |
|
|
|
'HP_820C' => { |
|
'mode' => 'CUPS', |
|
'QUEUE' => 'HP_820C', |
|
'State' => 'Idle', |
|
'Accepting' => 'Yes', |
|
'DeviceURI' => 'parallel:/dev/lp0', |
|
'Info' => 'HP-820C Color Desk Jet Printer', |
|
'Location' => 'Dave\'s Office', |
|
'cupsPPD' => 'HP/DeskJet_820C-pnm2ppa.ppd.gz' |
|
}, |
|
'Xerox' => { |
|
'mode' => 'CUPS', |
|
'QUEUE' => 'Xerox', |
|
'State' => 'Idle', |
|
'Accepting' => 'Yes', |
|
'DeviceURI' => 'lpd://xerox.eastcott.net/PORT1', |
|
'Info' => 'Xerox 4512N Network Printer', |
|
'Location' => 'Dave\'s Office', |
|
'cupsPPD' => 'postscript.ppd.gz' |
|
}, |
|
'HP_990C' => { |
|
'mode' => 'CUPS', |
|
'QUEUE' => 'HP_990C', |
|
'State' => 'Idle', |
|
'Accepting' => 'Yes', |
|
'DeviceURI' => 'smb://CHERRY/HP-990C', |
|
'Info' => 'HP-990C Color Desk Jet Printer', |
|
'Location' => 'Cherry\'s space', |
|
'cupsPPD' => 'hpijs/HP-DeskJet_990C-DJ9xxVIP.ppd.gz' |
|
} |
|
} |
|
}, |
LPD Printers:
|
'printer' => { |
|
'configured' => { |
|
'Xerox|lp' => { |
|
'mode' => 'lpr', |
|
'QUEUE' => 'Xerox|lp', |
|
'SPOOLDIR' => '/var/spool/lpd/Xerox', |
|
'ASCII_TO_PS' => 1, |
|
'AUTOSENDEOF' => 1, |
|
'BITSPERPIXEL' => 'Default', |
|
'CRLF' => 1, |
|
'DBENTRY' => 'PostScript', |
|
'EXTRA_GS_OPTIONS' => undef, |
|
'PAPERSIZE' => 'letter', |
|
'NUP' => 1, |
|
'RESOLUTION' => '300x300', |
|
'REVERSE_ORDER' => 0, |
|
'RTLFTMAR' => 18, |
|
'TEXTONLYOPTIONS' => undef, |
|
'TOPBOTMAR' => 36, |
|
'TYPE' => 'LPD', |
|
'REMOTEHOST' => 'xerox.eastcott.net', |
|
'REMOTEQUEUE' => 'PORT1' |
|
}, |
|
'HP-820C' => { |
|
'mode' => 'lpr', |
|
'QUEUE' => 'HP-820C', |
|
'SPOOLDIR' => '/var/spool/lpd/HP-820C', |
|
'ASCII_TO_PS' => 1, |
|
'AUTOSENDEOF' => 1, |
|
'BITSPERPIXEL' => 'ppa820c5', |
|
'CRLF' => 1, |
|
'DBENTRY' => 'HP DeskJet 820', |
|
'EXTRA_GS_OPTIONS' => undef, |
|
'PAPERSIZE' => 'letter', |
|
'NUP' => 1, |
|
'RESOLUTION' => '600x600', |
|
'REVERSE_ORDER' => 0, |
|
'RTLFTMAR' => 18, |
|
'TEXTONLYOPTIONS' => undef, |
|
'TOPBOTMAR' => 36, |
|
'TYPE' => 'SMB', |
|
'SMBHOST' => 'CHERRY', |
|
'SMBSHARE' => 'HP-820C', |
|
'SMBHOSTIP' => '192.168.5.3', |
|
'SMBUSER' => '', |
|
'SMBPASSWD' => '', |
|
'SMBWORKGROUP' => 'EASTCOTT' |
|
} |
|
} |
|
}, |
Related Hash Entries:
default_packages
(if accessing SMB printers via CUPS, then you need the package samba-client installed)
This option is used to configure your Raid capable drives.
Descriptions:
Related Hash Entries:
This option is used to set the Mandrake Security Level.
'security' => 2,
Descriptions:
'security' - security level desired, from 0 through 5
See the documentation on msec for more information regarding the meaning and effects of the various security level settings.
During the GUI installation, DrakX allows you to select one of three security levels, the following shows the security level associated with each:
|
low |
2 |
|
medium |
3 |
|
high |
4 |
Related Hash Entries:
This option is used to specify exactly which services are to be started at boot up. This is a tough one to describe since the services that are started at boot up are dependent on what you installed. However, the general form is as follows:
|
'services' => [ |
|
|
|
'<name of service>', |
|
'<name of service>' |
|
], |
Descriptions:
'<name of service>' - This is a list of service names (the ones in /etc/rc.d/init.d) which you want automatically started.
DrakX determines what services are present in the /etc/rc.d/init.d directory and it runs 'chkconfig --add ...' for the ones you list, and 'chkconfig --del ...' for those that are installed but you did not list.
NOTE: always include mandrake_firstime in your list, otherwise the system will not be initialized correctly.
Examples:
A simple example:
|
'services' => [ |
|
|
|
'syslog', |
|
'xfs', |
|
'network', |
|
'portmap', |
|
'mandrake_firstime' |
|
], |
Related Hash Entries:
compssListLevel, compssUsers, default_packages
This option is to set the Super User log in (usually referred to as root). These values are placed in the file /etc/passwd and the group id is placed in the file /etc/group.
|
'superuser' => { |
|
|
|
'name' => 'root', |
|
'uid' => '0', |
|
'gid' => '0', |
|
'realname' => 'root', |
|
'pw' => '$1$XHDtOdGw$kBibHl2otqOVEnBIumdgR/', |
|
'password' => 'psbcr!', |
|
'shell' => '/bin/bash', |
|
'home' => '/root', |
|
'icon' => 'root' |
|
}, |
Descriptions:
'name' - the log in user name, should be root, but can be any thing you want. If you set it to undef, then DrakX assumes you mean root.
'uid' - user id number (SHOULD ALWAYS be 0)
'gid' - group ID (SHOULD ALWAYS be 0)
'realname' - usually root, but can be anything you want.
NOTE: use either 'pw' or 'password' - but NOT both.
'pw' - this is the encrypted form of the passwd. Its contents are dependent on the authentication used. If using MD5 and Shadow, then copy it from /etc/shadow'.
'password' - this is the clear text form of the password. Just what ever you want.
'shell' - the path name and shell program to use when root logs in.
'home' - where root's home directory is.
'icon' - if present, is the filename (but no extension) containing the desired icon. These icons are located in: /usr/share/faces
NOTE: Setting 'pw' => undef will result in an installed system where you can log in as root without a password. Probably not something you really want to do.
Related Hash Entries:
users
This option is used to set the Timezone for the computer and to indicate if the computers hardware clock is set to UTC (GMT) or not.
|
'timezone' => { |
|
|
|
'UTC' => 1, |
|
'timezone' => 'Canada/Mountain' |
|
}, |
Descriptions:
'UTC' - how is the hardware clock set:
|
0 means it is set for the local timezone. |
|
1 means it is set to GMT. |
'timezone' - set to one of the time zone strings for the local time zone
The timezone string can be determined from the directories located in /usr/share/zoneinfo and combining the directory names and filenames.
Examples:
The directory Canada contains a file Mountain, so the timezone string would be 'Canada/Mountain'.
NOTE: The file /etc/sysconfig/clock is updated with information from this option.
Related Hash Entries:
none.
This option is used to add users to the system. It works OK if you do not want specific text names for the GID. The installer defaults the group name to the same as the user name. If you want specific names, then specify specific GID values and then modify the /etc/group file manually after the system is started. Alternately, you could use the 'postInstall' option to automate the fix up.
|
'users' => [ |
|
{ |
|
'name' => 'tom', |
|
'uid' => '5000', |
|
'gid' => '5000', |
|
'realname' => 'Tomas Wild', |
|
'pw' => '$1$XHDtOdGw$kBibHl2otqOVEnBIumdgR/', |
|
or |
|
'password' => 'psbcr!', |
|
'shell' => '/bin/bash', |
|
'home' => '/home/tom', |
|
'icon' => 'user-woman-blond-mdk' |
|
} |
|
], |
Descriptions:
'name' - the log in user name (REQUIRED)
'uid' - user id number (optional, if omitted then default begins at 501 and increments for each successive user)
'gid' - group ID number (optional, if omitted then default begins at 501 and increments for each successive user)
'realname' - usually the user's full name, but can be anything you want. (optional, can be omitted)
NOTE: use either 'pw' or 'password' - but NOT both.
'pw' - this is the encrypted form of the passwd. Its contents are dependent on the authentication used. If using MD5 and Shadow, then copy it from /etc/shadow.
'password' - this is the clear text form of the password. Just what ever you want.
'shell' - the path name and shell program to use when a user logs in. (Optional, defaults to /bin/bash)
'home' - where the users home directory is. (Optional, defaults to /home/<name> ).
'icon' - if present, is the filename (no extension) containing the desired icon. These icons are located in: /usr/share/faces
Examples:
'users' => [], means do not create any user accounts.
Related Hash Entries:
superuser
This option is used to enable or disable the use of Supermount.
'useSupermount' => '',
Descriptions:
'useSupermount' - to use it or not
|
0 - to disable. |
|
1 - to enable its use or, '' |
If the floppy device is not always using a FAT/VFAT file system, then you have to disable the use of Supermount. MDK 8.0 defaults to using Supermount for all removable media (cdrom , floppy, zip) that the installer detects in your system.
You can always modify the /etc/fstab file after installation as required.
Related Hash Entries:
manualFstab
This option is used to define none, one, or more graphical Tablet devices (WACOM)
|
'wacom' => [ |
|
|
|
'<device>' |
|
], |
Descriptions:
'<device>' - the device that the tablet is attached to, without the '/dev/' part. eg. ttyS0.
There may be up to 4 tablets defined.
An interesting feature, when XFree86-4 is used, is the ability to use both a regular mouse device and a Wacom graphics tablet. See the following references for more detatils:
http://www.linuxdoc.org/HOWTO/Wacom-Tablet-HOWTO.html
http://www.linuxdoc.org/HOWTO/mini/Wacom-USB-mini-HOWTO.html
Examples:
No tablets installed use:
|
'wacom' => [], |
A tablet attached to a serial port:
|
'wacom' => [ |
|
|
|
'ttyS1' |
|
], |
A tablet attached via USB:
|
'wacom' => [ |
|
|
|
'input/event0' |
|
], |
Related Hash Entries:
mouse, X.
Not updated yet ...
Welcome to HELL.
If you are installing on a relatively new computer using a newer and supported graphics card, then the install program will probably be able to identify what it needs with only a couple hints as follows:
|
'X' => { |
|
|
|
'resolution_wanted' => '1024x768', |
|
'default_depth' => '32' |
|
}, |
However, you may have to get a bit more elaborate as follows:
|
'X' => { |
|
|
|
'card' => { |
|
'type' => 'Trident 8900D (generic)' |
|
}, |
|
'resolution_wanted' => '1024x768', |
|
'default_depth' => '8', |
|
'monitor' => { |
|
'vsyncrange' => '50-90', |
|
'hsyncrange' => '31.5-57.0', |
|
'vendor' => 'Unknown', |
|
'manual' => 1, |
|
'modelines' => '', |
|
'size' => '', |
|
'type' => 'Generic|High Frequency SVGA, 1024x768 at 70Hz', |
|
'model' => 'Unknown' |
|
} |
|
}, |
The card type is the exact string obtained from the CD-ROM file:
Mandrake/mdkinst/usr/share/ldetect-lst/CardsNames.gz
use the string on the right side of the '=>'
The monitor information is obtained from the CD-ROM file:
Mandrake/mdkinst/usr/share/ldetect-lst/MonitorsDB.gz
Manufacturer -> 'vendor'
Monitor Name -> 'model'
Eisa ID -> 'type'
horiz sync in Khz -> 'hsyncrange'
verc sync in Khz -> 'vsyncrange'
'manual' ????
'modelines' ????
Or you can use the above example if your monitor is capable.
Or look in the file /etc/X11/XF86Config(-4) on a system with that monitor, in the Monitor section:
Section "Monitor"
Identifier "Generic|High Frequency SVGA, 1024x768 at 70 Hz"
VendorName "Unknown"
ModelName "Unknown"
NOTE: If you get all the way through the install, then the installer aborts on the X setup, you can always start the system and use the 'setuptool', select Xfdrake and do the configuration there.
Related Hash Entries:
mouse.
This section is for those of you who are in a hurry and don't want to read all the preceding pages. This project started out small and turned into a bit more than just a couple pages, hehehe.
Unfortunately, to use the Auto Install Features of DrakX, you DO need to know a few things. There are shorts cut, and you can mostly depend on DrakX auto detecting a lot of things for you, but you are going to get to a point or a situation where the rest of the document does come in handy.
The kinda Short Cut. Go back to the section Installation Methods and do the steps identified in the sub-section Getting Started, but stop after you complete step 5. While you are in the Manual Install, and you get the point where it is asking you what packages to install (you have a choice here) deselect all packages, make sure that Individual Packages is selected, then on the Flat Package display, deselect Aurora (or not) and finish the install. You will now have a diskette containing, for the most part, a basic auto install diskette. From this point on, you can let your repressed creative talents have at it.
By the way (you have to do some reading...), a faster short cut is locate a computer that has had Mandrake 8.0 installed on it, look in /root for a file called auto_inst.cfg.pl and copy it to a blank diskette as auto_inst.cfg. This is the file that the preceding paragraph was really trying to produce.
The general objective for creating an Auto Install diskette is to minimize the work that you will have to do when installing basically the same suite of programs on multiple computers. You have a choice at this point, create a 'Basic AutoInstall Diskette' which contains all stuff common to all computers and then use the Software Manager on each computer to customize for the user. Or, create a custom diskette for each computer, this is a lot of work and there are probably more optimal approaches that you could use.
Unless you are really a lucky individual and all the computers you are doing the installs for are identical, hardware wise, there is some customization that you will have to do for each. The following is a minimal list of things you need to know so that you can begin the 'customization'.
1. The amount of installed memory. (just in case the Auto Detection and your BIOS disagree).
2. The number of hard disk drives, their type (IDE and/or SCSI), their device ordering (hda, hdb, ... or sda, sdb, ...) and the size of each in terms of Cylinder/Heads/Sectors.
3. The number and type of CD or CD-RW or DVD drives and their device ordering (hda, hdb ... or sda, sdb ...).
4. The number of Floppy disk drives.
5. The number of types of other removable media devices (zip drives, Jazz drives, tape drives, ...) and their device ordering (hda, hdb ... or sda, sdb ...).
6. The type of pointer device, if any (typically a mouse) and how it is connected (serial, bus mouse, ps/2 ...).
7. The network card type, for non Plug and Pray types, you will also need to know its I/O address and the IRQ it uses.
8. The type of video card used (mostly the chipset that is used on it).
9. The type and capabilities of the monitor.
Next, you need to know how you plan to organize your devices (storage media) into a uniform file system hierarchy (/, /boot, ...). Which devices and partitions on each go where.
Finally, you need to determine what packages are going to be installed on the target computer.
So much for Quick, eh?
I almost forgot, you need to decide what Installation Method you plan on using (see the section Installation Methods). This document is going to use the NFS Server method and it also assumes that you have set up the NFS server with the required file set (see the section Setting Up a Simple NFS Server as an example).
There is a vast volume of information regarding the general subject of setting up and organizing your computer available in book stores and on the web. Everyone has an opinion, good and bad, but you will find that experience is the best so just use your best judgment. A good place to start is at http://linuxdoc.org, look at the HOW-TOs, Mini HOW-TOs and Guides. Just in case, the Mandrake Distribution contains most of these documents (albeit somewhat dated) and they may already be installed in a computer that you can access.
Remember, if what you do the first time is not right, do it again. The beauty of the Auto Install process is that you can make changes to the auto_inst.cfg file and repeat the installation until you get it the way you want. Although, lots of coffee or other suitable stimulant may be required.
The best way to start is to create a known 'good' boot diskette using the images that Mandrake has supplied on their CD-ROM, then remove what you do not want, modify what is left as desired, then add anything that is missing. Sounds simple, eh?
Build Base diskette:
Load and mount the Install CD-ROM, or cd to the directory containing the Mandrake file set, place a blank diskette in the floppy drive.
dd if=images/network.img of=/dev/fd0
Remove un-necessary files:
Mount the floppy diskette.
rm -f /mnt/floppy/help.msg
Customize the Loader's Configuration File:
Edit /mnt/floppy/syslinux.cfg and remove/change what you do not need; the following is my file's contents:
|
default linux |
|
display boot.msg |
|
label linux |
|
kernel vmlinuz |
|
append kickstart=floppy automatic=method:nfs, |
|
server:fileserver,directory:/mnt/mass/Mandrake/mandrake/8.0, |
|
network:static,ip:192.168.5.202,netmask:255.255.255.0, |
|
gateway:192.168.5.253,dns:192.168.5.253, |
|
ramdisk_size=32000 initrd=network.rdz vga=788 |
NOTE: All the text starting with 'append' through '788' are on ONE line.
Customize the Boot Message:
This one is up to you, but here is what is in mine (create or replace the file /mnt/floppy/boot.msg):
|
<blank line> |
|
Installing Mandrake Linux 8.0 |
|
<blank line> |
|
This will install a basic system. |
|
<blank line> |
<blank line> is just in indicator meaning that an empty line is actually in the file. Be as creative or simplistic as you want.
Adding your Customized Auto Install File:
Copy your customized auto_inst.cfg (or what ever name you used to distinguish it from other such files) file to the floppy diskette as auto_inst.cfg.
Un-mount the diskette and remove it. It is probably a good idea to put a label on the diskette with suitable markings so you can find it again and know what it contains. I have a bad habit of not putting labels on them and ending up with a table full of blank disks and not being able to find the one I want.
Test Drive:
This may be a good place to go get a good book, extra coffee etc.
Install your shiny new Auto Install disk in the target computer, turn it on an watch what happens. If everything went properly, the last message on the screen should be Please remove disk and re-boot...
If not, then use Ctrl-Alt-F3 to switch to the diagnostic screen and see what the error message was. Then fix what its complaining about, and re-boot and do it again. It might be a good idea to use Ctrl-Alt-F3 shortly after the kernel boots so you can see all the steps that DrakX is going through.
Repeat as required until you get what you want.
A common problem with customized auto_inst.cfg files is you didn't get the syntax correct. Your first hint will be that the install presents you with the Manual Install GUI screens. If you are not in a rush, you could follow Mandrake's advice in the generated auto_inst.cfg file:
# You should always check the syntax with 'perl -cw auto_inst.cfg.pl' before testing
A more difficult problem to resolve is if you forgot to add a field/line for one of the options you modified or added. There are two possible indications:
1. the install stops before completing, or
2. the hard one - you get the success - please re-boot message, but it doesn't boot or if it does boot, it does not seem to be working right.
Unfortunately, there is not easy answer here. Begin by reviewing the contents of the auto_inst.cfg file and comparing the entries to the descriptions in the section Anatomy of the 'auto_inst.cfg' File. Pay particular attention to those parts which relate to your hardware, maybe what you thought, is not what the computer knows.
Another approach may be to modify the contents of the auto_inst.cfg file down to an absolute minimum, get that working and then begin adding back the stuff you deleted.
The following are two example auto_inst.cfg files. The first is for a recent computer used as a workstation, the second is the same desired configuration except is uses older (dark ages) hardware. Your situation will obviously vary, but it they will give you an idea of what you could do.
By the way, these files were generated using the kinda Short Cut described at the beginning of this section with a few personal adjustments.
Example 1: Recent Computer
|
# You should always check the syntax with 'perl -cw auto_inst.cfg.pl' before testing |
|
$o = { |
|
'mkbootdisk' => 0, |
|
'partitions' => [ |
|
{ |
|
'mntpoint' => '/boot', |
|
'size' => 80262, |
|
'type' => 387 |
|
}, |
|
{ |
|
'mntpoint' => 'swap', |
|
'size' => 497952, |
|
'type' => 130 |
|
}, |
|
{ |
|
'mntpoint' => '/', |
|
'size' => 788785, |
|
'ratio' => 100, |
|
'type' => 387 |
|
} |
|
], |
|
'superuser' => { |
|
'shell' => '/bin/bash', |
|
'gid' => '0', |
|
'name' => 'root', |
|
'realname' => 'root', |
|
'home' => '/root', |
|
'password' => 'gotcha', |
|
'uid' => '0' |
|
}, |
|
'lang' => 'en_US', |
|
'default_packages' => [ |
|
'fonts-ttf-west_european', |
|
'strace', |
|
'gurpmi', |
|
'reiserfsprogs', |
|
'kudzu', |
|
'linux_logo', |
|
'bc', |
|
'fonts-ttf-decoratives', |
|
'at', |
|
'MAKEDEV', |
|
'iputils', |
|
'imwheel', |
|
'rpmdrake', |
|
'locales-en', |
|
'sndconfig', |
|
'rxvt', |
|
'numlock', |
|
'nfs-utils-clients', |
|
'man-pages', |
|
'open', |
|
'ldetect', |
|
'XFree86-server', |
|
'hexedit', |
|
'ftp', |
|
'anacron', |
|
'DrakConf', |
|
'XFree86-75dpi-fonts', |
|
'icewm-light' |
|
], |
|
'partitioning' => { |
|
'clearall' => 1, |
|
'eraseBadPartitions' => 1, |
|
'auto_allocate' => 1 |
|
}, |
|
'intf' => { |
|
'eth0' => { |
|
'isPtp' => 0, |
|
'BROADCAST' => '192.168.5.255', |
|
'isUp' => 1, |
|
'DEVICE' => 'eth0', |
|
'NETMASK' => '255.255.255.0', |
|
'ONBOOT' => 'yes', |
|
'BOOTPROTO' => 'static', |
|
'IPADDR' => '192.168.5.202', |
|
'NETWORK' => '192.168.5.0' |
|
} |
|
}, |
|
'users' => [], |
|
'useSupermount' => 0, |
|
'netcnx' => { |
|
'NET_DEVICE' => undef, |
|
'NET_INTERFACE' => undef |
|
}, |
|
'printer' => undef, |
|
'authentication' => { |
|
'shadow' => 1, |
|
'md5' => 1, |
|
'NIS' => '' |
|
}, |
|
'isUpgrade' => 0, |
|
'security' => 2, |
|
'timezone' => { |
|
'UTC' => 1, |
|
'timezone' => 'Canada/Mountain' |
|
}, |
|
'mouse' => { |
|
'MOUSETYPE' => 'imps2', |
|
'device' => 'psaux', |
|
'WHEEL' => undef, |
|
'XEMU3' => undef, |
|
'FULLNAME' => undef, |
|
'XMOUSETYPE' => 'IMPS/2', |
|
'type' => 'PS/2', |
|
'name' => 'Generic PS2 Wheel Mouse', |
|
'nbuttons' => 5 |
|
}, |
|
'X' => { |
|
'resolution_wanted' => '1024x768', |
|
'default_depth' => '32' |
|
}, |
|
'wacom' => [], |
|
'manualFstab' => [ |
|
{ |
|
'device' => 'fileserver:/mnt/mass/Mandrake/mandrake/8.0', |
|
'mntpoint' => '/mnt/fileserver', |
|
'options' => 'noauto,ro,nosuid,rsize=8192,wsize=8192', |
|
'type' => 'nfs' |
|
} |
|
], |
|
'keyboard' => 'us', |
|
'autoExitInstall' => 0, |
|
'netc' => { |
|
'NETWORKING' => 'yes', |
|
'minus_one' => 0, |
|
'nb_cards' => 1, |
|
'dnsServer' => '192.168.5.253', |
|
'FORWARD_IPV4' => 'false', |
|
'DOMAINNAME' => 'eastcott.net', |
|
'HOSTNAME' => 'linux2.eastcott.net', |
|
'GATEWAY' => '192.168.5.253' |
|
} |
|
}; |
Example 2: Older Computer
There are a couple of reasons for doing this
1. You are tired of installing everything, then having to run rpmdrake to install all updates.
2. You are tired of doing more than you really need to...
Creating updated CDs provides you with a some benefits, Nice new shiny up to date date CDs that you can for installing, up date your NFS Server file set (for network installs), learn something new.
The following is a simple manual approach to creating a set of updated CDs. I expect that you will adapt them to suit your environment and personal preferences.
The first step is to create a mirror image of the installation CDs in a working directory and make a couple adjustments. As a regular user:
1. Create Working directories
|
mkdir -p master_cd/cd |
|
cd master_cd |
2. Obtain an initial image of the CD-ROM's directory hierarchy and files.
Insert and Mount the first CD (Installation) then,
|
cp -a /mnt/cdrom/* cd |
|
chmod -R u+w cd |
Un-mount the first CD, then insert and mount the second CD (Extensions) then,
|
cp -a /mnt/cdrom/* cd |
|
chmod -R u+w cd |
3. Remove files that are re-generated when creating the ISO images or in later steps.
|
rm -rf cd/rr_moved |
|
rm -f cd/images/boot.cat |
|
rm -f cd/Mandrake/base/rpmslist |
4. Create a new Master 'rpmslist'.
|
echo "<CD num=1>" > rpmslist |
|
rpm -qp --queryformat %{NAME}"\n" cd/Mandrake/RPMS/* >> rpmslist |
|
echo "<\CD><CD num=2>" >> rpmslist |
|
rpm -qp --queryformat %{NAME}"\n" cd/Mandrake/RPMS2/* >> rpmslist |
|
echo "<\CD>" >> rpmslist |
5. Update the 'rpmsrate' file
This is optional, but if you added a new package and you want it to be installed using the alternate package selection methods then you have to. Simply edit the file Mandrake/base/rpmsrate, locate the appropriate Group tag, sub-group tag and add your package to the desired rate. If the rate you want to use is missing, then add it along with your package name. If you have to, add the necessary sub-group tag. Be smart and do not create a new tag.
6. Create a new Master RPMS set
|
mkdir RPMS |
|
mv cd/Mandrake/RPMS/* RPMS |
|
mv cd/Mandrake/RPMS2/* RPMS |
|
rm -rf cd/Mandrake/RPMS |
|
rm -rf cd/Mandrake/RPMS2 |
At this point your 'master_cd' directory should have the file 'rpmslist', the directories 'RPMS' and 'cd'.
Now the fun part. Locate your favorite ftp mirror site and get the 'updates/8.0/RPMS' directory contents and place them in the master_cd directory called updates.
When you are done, the updates directory should only contain '*.rpm' files
Now the tricky part. You have to delete the older rpms from your master_cd/RPMS directory and then copy the new ones from the master_cd/updates directory into the master_cd/RPMS directory.
I have found that if you run Midnight Commander (mc) from the console or an xterm, you can point it at both your RPMS and updates directories at the same time. This makes it a little easier to see what has to be removed and copied.
WARNING: Be careful and delete only the older files that correspond to the new update ones. See the Advanced section below.
1. Clean up from any previous ISO creation sessions
|
cd master_cd |
|
rm -rf /tmp/.build_hdlist |
|
rm -rf cd/Mandrake/RPMS |
2. Copy master files and directory contents back into
|
cp -f rpmslist cd/Mandrake/base |
|
cp -a RPMS cd/Mandrake |
3. Build the new ISO images
|
cd cd/misc |
|
./mkcd.pl .. ../.. |
When the build is done, you should have two ISO images in your master_cd directory called:
1-Cooker-i586.iso and 2-Cooker-i586.iso.
You can now use your favorite CD writing program to create new CDs.
Couple things you should watch out for:
1. If you get a warning at the end of the build which indicates that a file was not in the list and being added to the last CD, then the updates you downloaded contained a file which did not previously exist on the CDs. You will have to edit the rpmslist file and add it to appropriate CD num group. Then rebuild your ISOs.
2. Check the size of the resulting iso files using ls -lh, the resulting size should be 650MB or less. If it is larger, then you will not be able to use a standard 650MB CD. You can use the newer 700MB CDs or, you will have to remove something to get it all to fit. If you decide to remove something, then remove it from the RPMS directory and edit the rpmslist file and remove the reference too.
3. Almost forgot, the Mandrake/RPMS directory on the original CD is now Mandrake/RPMS1 on your new one. This is not a problem. The mkcd.pl made the necessary adjustments.
If you make any changes then repeat all the steps in Creating New ISO Images.
ISO via Loopback device
If you obtained your Mandrake Linux installation CD by downloading the ISO files from a ftp site and have kept them around just in case, then a more reliable way of creating the Mastering File Set is to mount the ISO images via a loop back device and simply copy their contents. The following is a simple set of steps to make an ISO image accessible as though it was just another disk.
The follow replaces Step 2, assuming that you are following the steps for Creating a Master Files Set and that you have completed Step 1. You need a temporary mount point and /mnt/disk is usually available so, as root:
|
mount <where your isos are>/Mandrake80-inst.iso /mnt/disk \ |
|
-t iso9660 -o loop=/dev/loop0 |
then,
|
cp -a /mnt/disk/* cd |
|
umount /mnt/disk |
|
chmod -R u+w cd |
|
mount <where your isos are>/Mandrake80-ext.iso /mnt/disk \ |
|
-t iso9660 -o loop=/dev/loop0 |
|
cp -a /mnt/disk/* cd |
|
umount /mnt/disk |
|
chmod -R u+w cd |
finally you have to change ownership from root to a regular user,
chown -R <user>.<group> cd
Now you can resume with Step 3 of Creating a Master Files Set.
The single most frustrating part of maintaining an Updated Installation CD Set, is deleting the correct 'old' rpms and replacing them with the new 'Updates' rpms. It is also the one most likely to result in an error; deleting the wrong file or not copying over the new update. So I created the following script to help me. It is not pretty and I am sure that an enterprising individual could come up with a better/safer one, but it works for me.
|
#!/bin/bash |
|
# |
|
# usage: checkupdates <Master RPMS directory> <updates directory> |
|
# |
|
# Examines each update file to see if it is newer than one in the master set. |
|
# If it is, then the older one is removed and the update copied to the master |
|
# set. |
|
# |
|
# If an update package is found that is not in the master set, its name is |
|
# placed in the file "new_rpms.list" for you to manually deal with. |
|
# |
|
|
|
# first some Constants |
|
MASTER_FILES="masterfiles.list" |
|
UPDATE_FILES="updatefiles.list" |
|
SELECT_FILES="selections.list" |
|
NEW_RPMS="new_rpms.list" |
|
|
|
# and variables |
|
masterfile="" |
|
mastername="" |
|
masterversion="" |
|
masterrelease="" |
|
|
|
updatefile="" |
|
updatename="" |
|
updateversion="" |
|
updaterelease="" |
|
|
|
master="" |
|
updates="" |
|
|
|
# then some functions |
|
|
|
decide_action () |
|
{ |
|
missing=0 |
|
|
|
for masterfile in `cat $SELECT_FILES` |
|
do |
|
if [ "$masterfile" = "$updatefile" ]; then |
|
return 2 |
|
fi |
|
|
|
get_master_info "$master/$masterfile" |
|
|
|
if [ "$mastername" = "$updatename" ]; then |
|
missing=1 |
|
|
|
# this is the right one |
|
if [ `expr $masterversion \< $updateversion` = "1" ]; then |
|
return 0 |
|
|
|
elif [ "$masterversion" = "$updateversion" ]; then |
|
if [ `expr $masterrelease \< $updaterelease` = "1" ]; then |
|
return 0 |
|
fi |
|
fi |