How to Build a PC Terminal Server Client PC TSC 1.2.3 0. Prerequisites: At least 128M RAM At least 1G (one gig) IDE or SATA hard drive Video card Hard drive attached as Primary Master (check the BIOS messages!) Wired NIC USB or PS/2 mouse USB or PS/2 keyboard One terminal server capable of hosting RDP A working LAN Also see appendix IV, "Hardware Notes". Wireless is possible. Documentation is not here yet, but will be. 1. Required install media and connectivity: a) A CD burnt from this ISO, the standard Puppy Linux 4.3.1: http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.3.1/pup-431.iso b) A working connection to the Internet, or the following package on USB flash/drive or accessable network location: http://pctsc.truepath.com/downloads/pctsc-1.2.3.tar.gz 2. Run Puppy Linux 4.3.1 from the CD/DVD drive. a) Power up, insert CD. A boot menu will come; just press Enter. b) The system will boot from the CD, copying all to RAM. The copying process can take one to five minutes, depending on available horsepower. c) The system will detect your keyboard. It will ask you to verify its choice. Make sure the choice is right, change it if indicated (the up/down arrows and PageUp/PageDown work well), and press Enter. It may ask twice. d) The system will need you to set the time zone. Choose carefully, and press Enter. e) The system will begin video configuration. The options are "Xorg" and "Xvesa". Thus far all real hardware tested has worked best with "Xorg", but a VirtualBox VM has required "Xvesa". Choose, and press Enter. f) If you chose Xorg, the installer will next give options for video resolution. Almost everything which runs well with 128M RAM is compatible with 1024x768x24. Press the down arrow once to select, and hit Enter. g) Puppy 4.3.1 will come up, in full GUI. If it doesn't, and you chose Xorg, start over and try Xvesa, or try a lower graphics mode in step 2f. h) If you chose Xvesa, a different video mode chooser comes up immediately after the GUI shows. You may keep the default, although it may be a little low, or you may choose. Then click "OKAY" to keep your choice. If you changed the default, it will only show at next boot. 3. Make sure Puppy has not automatically mounted any partitions on the hard drive. a) Study the icons in a row on the very bottom of the screen. If there are partitions on the hard drive, there will be at least one icon named "sda1", and possibly others named "sda2", "sda3", and/or "sda4". These are NOT the same as "sr0" (the CD/DVD drive) and "fd0" (the floppy drive). b) If sda1 does exist, right-click on it and choose "Unmount sda1 (if currently mounted)". Repeat for any others you may find. 4. Delete any existing partitions on the hard drive, and create new. a) Right-click on the background, choose the System submenu, and click on "GParted Partition Manager". b) GParted will automatically detect a hard drive. If it doesn't, or it's not named "sda internal drive", something is wrong with the hardware. If it detects a proper configuration, click OKAY. c) Each partition on the drive is represented graphically at the top, as well as with one line below. Right click on each partition's line, and choose Delete. If there are no partitions, skip to step 4f. f) Right-click on the graphical representation of the whole hard drive, which is labelled "unallocated". Choose "New". If there is no partition table, it will give you the option to "Create"; if this happens, click it. Then right-click on it again, and click "New" again. g) Press the Tab key. Type the number "1024" in the field labelled "New Size (MB):". We're using a 1G partition to keep things fast and small. You can actually go lower than 512M with perfect safety, 1G is just a nice round number. h) Click on the chooser to the right of the word "Filesystem:". Choose "ext3". This is more durable than the default, "ext2". i) Click Add. Click Apply. "Apply" might be hidden behind a small arrow to the right of "Undo" if your screen resolution is too low. j) After the operation is complete, click Close. k) Right-click on the line representing the partition just made, and choose "Manage Flags". l) Click on the box to the left of the word "Boot". Wait until the mouse comes back from the clock symbol. m) Click "Close". n) Close GParted (X at upper-right corner of window). 5. Install Puppy Linux onto the box. a) Right-click on the background, choose Setup, and then choose "Puppy universal installer". b) Choose "Internal (IDE or SATA) hard drive". Click OK. c) Puppy should identify a hard drive it thinks it should use. If "sda" is not the leftmost part of the identifier, or if there is no identifier, there are hardware problems. If no problems, click OK. d) Click the button to the right of "Install Puppy to sda1". When the verifier comes up, click OK. e) When the verifier comes up asking if you are sure you want to do this, click OK. f) A source request may (does not always) come up, asking where to find the install files. If it does, click CD. g) Click "FULL". Files will be copied to the hard drive. The copy may take some time, depending on hardware speeds. An initialization script will run afterwards, and all windows will go away for just a bit. Wait until the next window comes. h) Click on "Install/update GRUB". Wait for the next window. i) Click on INSTALL. When the verifier comes up, click OK. Wait for the next window. j) This is the initial GRUB config chooser. Make sure the word "simple" is highlighted, and click OK. Wait for the next window. k) This is the kernel boot video mode selector. Make sure the word "standard" is highlighted, and click OK. Wait for the next window. l) This box asks where we want GRUB files to go. It has a default location which is correct. Click OK. m) Now we have a box entitled "SELECT GRUB DESTINATION". There are several destinations. Scroll down to the very last, named "MBR", and click on it. It is not unsafe; this is a very old legacy warning. Click OK. n) GRUB installation will run. If it is successful, it will say so. If not, there is a hardware problem. If it was successful, click OK. o) It will ask if you want to run GRUB installation again. Say No. p) Installation to hard drive is complete. Right-click on the background, choose Shutdown, and "Reboot computer". Be sure to remove the CD before reboot completes! q) A text-mode screen will come up asking if you want to save your session. We do NOT want to do this, this occurs because Puppy is often run from CD. Press the right-arrow twice so "DO NOT SAVE" is highlighted, and press Enter. Reboot will occur. r) The system will pause at a boot screen. Press Enter. s) The system will detect your keyboard. It will ask you to verify its choice. Press Enter to verify. It may ask twice. This time, since we are booting from hard drive, all choices will be saved. t) The system will begin video configuration. Choose the items which worked from the CD in step 2e, 2f, 2g, and 2h. u) Puppy 4.3.1 will come up, in full GUI. 6. After the system boots from the hard drive, set up networking. a) Right-click on the background, choose Setup, and then "Network Wizard". b) NICs are named "eth0", "eth1", etc. Wireless works, but has not been documented yet. Left-click on the button with the name of the wired NIC (usually eth0). c) Click "Test eth0" (or eth1/etc.). A test will be run. If the test passes, the top text of the window will report "Puppy was able to find a live network" when it comes back. If not, try the other NIC items if they exist. If a live network is not found, there is a hardware problem. d) Click "Auto DHCP". Wait for discovery. If it is successful, it will say so, and ask if you want to save the configuration. Click Yes. Then click Done. 7. The next step is to pull in the TSC configuration package, unpack it, and install it. a) Left-click on the "Console" icon in the middle at the top of the screen. b) To create and change into an install folder, enter: mkdir TSC cd TSC c) To retrieve the package, enter: wget http://pctsc.ponderworthy.org/downloads/pctsc-1.2.3.tar.gz d) To unpack the package, enter: tar xzf pctsc*.tar.gz e) To run the installer, enter: cd pctsc-1.2.3 ./install.sh ts.fqdn where ts.fqdn is the fully qualified domain name of the terminal server. If the local domain is "office.local", and the terminal server's hostname is "ots", ts.fqdn needs to be replaced with "ots.office.local" (no quotes). It is also possible to use an IP address instead. d) Study results. If everything is correct, you will see something like: The PC TSC team bids you welcome! The terminal server target is ts.fqdn Setting up folders... Done. Saving originals for console mode... Done. Copying PC TSC files into place... Done. Setting TSC mode... Done. Setting unique hostname... Done. Hostname is: tsc1237877496 All done! At next reboot, your TSC will go live. The hostnames are being set using a timestamp, the number of seconds since a certain date. Thus each installation will have its own unique hostname, automatically generated. 8. Set new local password, and reboot. a) To change the local admin password, enter: passwd The system will request that you enter a new password, twice. b) To reboot, enter: pctsc.reboot Reboot will occur. However, the PC will boot to either a command prompt or a blank GUI screen. At this point, enter 'pctsc.reboot' again or turn the power off and then on. Your TSC will come up directly with the login window of your terminal server, possibly after one more fully automatic reboot because of the new disk-checking code just added. Addenda I Testing, when the terminal server cannot be contacted. To test one of these boxes when the terminal server is not available, the following works: a) Hold down Control and Alt, and press F2. b) A text-mode login screen will appear. Login is root, password is either as set previously, or otherwise it is "woofwoof" (no quotes). c) 'ping' works. Many other Linux commands do too. II Restoring full console capability. Network configuration is semi-automatic only through the full GUI console; the console also has a Mozilla web browser and other tools. To restore full console capability, use the steps in addendum II to reach text-mode console, and enter: pctsc.2.console wmreboot The box will reboot to full console mode. After changes are made and TSC mode is desired again, use the "Console" icon on the GUI desktop, and enter: pctsc.2.tsc wmreboot and it's back as a TSC. III Initial VNC support Very basic VNC support exists. Install PC TSC normally, and then immediately after the install (or in a command shell as above) enter: pctsc.2.vnc At next reboot, the TSC will try to contact the server by VNC, rather than RDP. Authentication is the basic VNC password style, we are lacking input in production VNC terminal authentication standards and all helpful input is solicited! If it is desired to revert back to RDP, just enter: pctsc.2.rdp IV Hardware Notes There are really only two right now. First, if your box has 128M RAM, you should use 1024x768x16bpp max resolution, because if you don't, Puppy runs somewhat slowly and hard drive install can fail due to lack of CPU resources. And second, turn off legacy USB in the BIOS. Legacy USB can cause hardware detection to fail on older motherboards. Don't forget to have fun! This, as all things, is for the King of the Kingdom of God. We live at His mercy.