IBM NetVista thin client & Linux RedHat 6.1
Setup Instructions
These instructions enable Linux RedHat 6.1 on IBM NetVista thin client models 2800 and 2200, booting from a Linux server. The instructions will outline the process of creating a Linux boot image on the server, modifying the boot image specifically for the client, and booting the client.
Prerequisites:
- PC installed with some Linux distribution - this will also be your boot server for the thin clients. Please note we have tested the instructions using RedHat PC Linux servers only.
- Approximately 300 MB of available disk space - based on RPMs installed and possible future client applications (like Netscape) that may need to be installed.
- NetVista thin client boot monitor that supports booting Linux (dated 4/19/00 or later) - downloadable via Web site.
- nstation_from_rpm_v2.0.4.tar - downloadable package containing the necessary files and scripts to create the Linux RedHat 6.1 client boot image.
- RedHat 6.1 CD
nstation_from_rpm package contents:
Help Files:
- rh61_setup_from_rpm.html: this document
- tips.html: provides tips and hints
- kernel_build.html: instructions to build the kernel
Kernel Binaries:
- kernel.2200_2.2.14_usb-2.3.99-pre7-1_IBMpatch: kernel for model 2200
- kernel.2800_2.2.14_IBMpatch: kernel for model 2800
Configuration Files:
- rc.sysinit.IBM_NS.sboot: new configuration file added in /etc/rc.d directory
- rc.sysinit.IBM_NS.dev: new configuration file added in /etc/rc.d directory
- rc.sysinit.IBM_NS.net: new configuration file added in /etc/rc.d directory
- rc.sysinit.IBM_NS.tmp: new configuration file added in /etc/rc.d directory
- kernel.2.2.14_config_S2800: NS2800 kernel 2.2.14 configuration file to build the kernel
- kernel.2.2.14_config_S2200: NS2200 kernel 2.2.14 configuration file to build the kernel
- XF86Config.FBDev.2800: Frame Buffer X Server configuration file for model 2800
- XF86Config.FBDev.2200: Frame Buffer X Server configuration file for model 2200
- IBM_Patch_2.2.14_S2200: NS2200 kernel level 2.2.14 patch file
- IBM_Patch_2.2.14_S2800: NS2800 kernel level 2.2.14 patch file
- Source file modified: /usr/src/linux/init/main.c
Installation Programs:
- cmdline_awk: awk program to parse command line file (/proc/commandline) to get network address information
- gethostname_awk: awk program to parse host command to get hostname
- inittab_awk: awk script to modify /etc/inittab
- rh61_create_bootdir_from_rpm.sh: script to create the Linux client boot directory
- rh61_rpm.list: List of RPMs to be installed for the client boot image
- dhcpd.conf.SAMPLE - sample Linux dhcpd.conf (dhcp daemon configuration) file
IBM Setup Utility Files (located in the COMMON_BASE_CHANGES/IBM directory):
- TCL/wish/shell script files: IBMSetup, Shutdown, RunIBM, RunIBMInit
- volume source code and executable to control sound volume
- GIF files: IBMIMAGE.GIF, IBMWIZARD.GIF, SYSTEM.GIF
- NetworkAddresses.sample: Sample of the NetworkAddresses file created/modified by the IBM Setup Utility
Modified Base RedHat 6.1 Files:
- /etc/inittab: Modified to use rc.sysinit.IBM_NS, instead of rc.sysinit.
- /etc/fstab: Modified to remove entries for hard drive, and add an entry for the root NFS mount point.
- /etc/X11/XF86Config: X-server configuration file, replaced by one supplied with this package. This configuration file uses frame buffer.
- Disable some services in the /etc/rc.d/init.d directory by renaming them with a ".sav" suffix:
- apmd, atd, crond, kudzu, network, sendmail
New Installation
At this point you should have a Linux server installed with appropriate software (see Prerequisites above). You should have downloaded the nstation_from_rpm.tar.gz file to the /tmp directory on your Linux server.
Server Setup of Client Code
Create client boot directory:
- Mount the RedHat 6.1 CD over /mnt/cdrom on the Linux server.
- cd /tmp
- Untar nstation_from_rpm.tar (if package is in .gz format, use the tar -xvzf command)
- tar -xvf nstation_from_rpm.tar   OR
- tar -xvzf nstation_from_rpm.tar.gz
- cd nstation_from_rpm/RH61_INSTALL
- Execute rh61_create_bootdir_from_rpm.sh script. This will create a
directory <BOOT_DIR> (default is "/nstation/linux") that will be used as the
client boot directory. The command will also create the install log
file, as install.log. After executing the script, check the log file, to ensure all RPMs
are installed (Note: Ignore error associated with MAKEDEV* rpm)
- ./rh61_create_bootdir_from_rpm.sh <server-ip address> <BOOT_DIR> 2>&1 | tee install.log
<server-ip address> |
(Required) client boot server IP address |
<BOOT_DIR> |
(Optional) client Linux boot directory |
If for some reason, logging does not work in the above command, simply use:
./rh61_create_bootdir_from_rpm.sh <server-ip address> <BOOT_DIR>
Export the client boot directory:
- On your server, you will now need to export the directory <BOOT_DIR> using linuxconf or by adding it to your /etc/exports file.
If using linuxconf to export the directory, turn ON the following options:
- May write
- Root privileges
- Request access from secure port
If modifying /etc/exports, here's an example of what the entry looks like:
/nstation/linux *(rw,no_root_squash)
You may want to restrict access to your server by replacing "*" in the above entry line, to appropriate domain name (example: *.austin.ibm.com). In fact, some Linux distribution do not like unresticted access and has problems running NFS with unrestricted access.
- Restart NFS to export the new file system:
/etc/rc.d/init.d/nfs stop
/etc/rc.d/init.d/nfs start
- Verify the file system is exported by issuing the following command:
Linux kernels:
The Linux kernels for models 2800 and 2200 are supplied with this package and installed for you.
If you care for some adventure, here's where you can build your own kernel for the thin clients. We used the same process to build the kernels included in this package.
Booting the thin client from the Server:
Update the client boot monitor to a level that supports booting Linux (see Prerequisites). Boot the client in NSBoot mode and modify the settings as follows:
- For Linux Boot, the following parameters in the boot menus should be modified:
- Display settings
- Network settings
- Set "Network priority" to use NVRAM or DHCP, disabling all other options.
- Set "Boot file source" to Network
- If NVRAM,
- Set client IP address, Domain name server IP address, Gateway IP address, Subnet mask
- If DHCP, make sure a server responds to DHCP requests
- A sample Linux DHCP config file (/etc/dhcpd.conf) is included in this package in SAMPLE/dhcpd.conf.SAMPLE
- Boot file server settings
- Boot file server IP address
- Boot file server directory and file name (<BOOT_DIR>/kernel.2800 for model 2800 or <BOOT_DIR>/kernel.2200 for model 2200 - replace <BOOT_DIR> by the real boot directory)
- Boot file server protocol
- TFTP - Disabled
- NFS - First choice
Once Linux is running on the client:
Now that you have the client boot image created, and the client boot parameters all set, its time to run Linux on the thin client.
Initial login user id:
Login as "root" on your client. The pre-set password is "ibmncd". Please change the password immediately, using the passwd command.
Start GUI login:
The default set-up is for command line login, rather than xdm or GUI login. If you want to change to GUI login, edit the file <BOOT_DIR>/etc/inittab on the boot server as follows:
Change line id:3:initdefault: to id:5:initdefault:
This will call xdm (GUI login) as part of the initial start routines.
Start X from command line login:
If you are logging in via command line prompt, you can start Xwindows, using the startx command. This will start your default window manager (GNOME or KDE) based on your setup. Note: GUI login will give you the option to select your window manager.
Adding users:
Use "useradd" or the linuxconf tool to add more users for the client. All users added will be saved in the client image on the server. The server has no knowledge about the new users, except for the additional home directories, and files created.
Installing and updating applications:
All the changes done while running on the client will ONLY change the settings on the client boot image. The server settings will not be disturbed. Management of all client code can now be done while on the client. If an application is added to the client image, all other clients booting from that server will have access to the new application.
From the client:
Login as "root" on the client and use one of the following methods to access the installation files:
- Use internet or ftp to get the application package. Once the package is downloaded, proceed with the installation steps for the applications (tar, rpm, etc.).
- Use the server cdrom, to access applications available on CDs. You will need to export the cdrom mount point on the server and mount the exported directory on the client.
- On the server, add an entry to /etc/exports, as follows: /mnt/cdrom (ro)
- On the client, mount the cdrom directory from the server: mount <Server IP-address>:/mnt/cdrom
/mnt/cdrom
-
Use RPMs to install packages (on the server, place the RPM file in <BOOT_DIR> so that the client has access to the file), login as "root" on the client and execute "rpm -i <RPM-file-name>". The client boot directory maintains the RPM list of the installed packages (in the /rpm directory, as seen from the client).
Limitations:
- X server: We are currently using X Frame buffers, which are slower than other commercial X servers. We are working to fix this limitation.
Future Enhancements:
- Options to install different packages during creation of the client boot image. Currently, it installs GNOME and KDE.
- Add instructions (or pointers) to assist in the installation of FVWM95 (window manager with look and feel of Windows95). FVWM95 has a smaller foot print than GNOME or KDE, however, it contains less utilities.
- Provide XF86_SVGA for models 2800 and 2200 for improved Xserver performance, compared to XF86_FBDev (frame buffer).
- Enhance instructions to enable booting from NT server. Current instructions are limited to booting from a Linux server, for simplicity and limiting the scope during the first phase.
Hints:
Go to hints for additional hints and tips. This section will be expanded with additional information, based on input from users.
Feedback:
Note: Before submitting anything to IBM via this Web site, please read the terms and conditions regarding information and material you give us.
Send comments and suggestions regarding these instructions to the NetVista thin client Linux Team (nclinux@us.ibm.com). IBM may not respond to all correspondence received.
History:
- 07/14/00 - version 2.0.4
- Fix printer problems related to lpd process - the culprit was the lack of space in RAM /dev directory, as a result, lpd could not create the /dev/printer file, as required.
- Updated /etc/rc.d/rc.sysinit.IBM_NS.tmp file to create some of the /var sub-directories in RAM disk /tmp, rather than on the server. This way, those sub-directories will be unique across multiple NCs, as needed.
- 06/27/00 - version 2.0.3
- Generically set the date to 01/01/2000 to make sure the JVM and Netscape JVM can start. Also added support for using rdate to set the time using a timeserver. See the "Once Linux is running on the client" section of this document for rdate instructions.
- Updated /etc/rc.d/rc.sysinit.IBM_NS.eboot to take advantage of 6/19/00 updates.
- 06/19/00
- Placed common rc.sysinit.IBM_NS.sboot and rc.sysinit.IBM_NS.eboot functionality into seperate scripts. At this time, rc.sysinit.IBM_NS.eboot has not been updated for this new method.
- Added information/instructions concerning SNMP enablement to the "Once Linux is running on the client" section of this document.
- 06/05/00
- Updated /etc/rc.d/rc.sysinit.IBM_NS.eboot with latest USB mouse driver numbers.
- Included the text-based IBMSetup utility (IBMTextSetup) for use in flash boot environments - the Compact Flash Utility will be updated to allow use of either utility.
- 05/24/00
- Added pre-built kernels for models 2800 and 2200.
- Changed the way var directory works. Created a new var.nc_shared to share some of the var sub-directories. From the client, look at the /var and you will see the links.
- Made package more generic to allow adding other distribution easily in the future, if neeed.
- Fixed few odds and ends, based on customer input.
- 04/20/00
- Updated IBMSetup to do error checking
- Made rpm install list more general and less version specific
- Added localhost entry in /etc/hosts file
- Modifed instructions indicating availability of pre-built kernels for 2800 and 2200
- 03/15/00
Disclaimer:
The information provided within these instructions, web site and related communications are provided on an "AS-IS" basis.
Back to the Top
(Last update: 07/14/00)