Archive-name: hp/hpux-faq
Comp-sys-hpux-archive-name: hp/hpux-faq
Version: 11.23.0611.00
Last-modified: 2006/11/07
Maintainer: Ian P. Springer
URL: ftp://rtfm.mit.edu/pub/faqs/hp/hpux-faq
HTML-URL: http://www.faqs.org/faqs/hp/hpux-faq/
Revision-Frequency: rarely
Posting-Frequency: every 10 days
Disclaimer: Approval for *.answers is based on form, not content.
Copyright: (c)2001-2006 Ian P. Springer
comp.sys.hp.hpux FAQ (Frequently Asked Questions)
Subject: 1. INTRODUCTION
This article contains the answers to Frequently Asked Questions (FAQ) seen in the Usenet newsgroup comp.sys.hp.hpux. Issues may also be discussed in comp.sys.hp.apps, comp.sys.hp.misc, and comp.sys.hp.hardware. Discussion in this document centers around Hewlett-Packard computer systems running the HP-UX[R] operating system; the focus is on HP-UX 10.20, and later, running on HP9000 Series 700 workstations and HP9000 Series 800 servers, though some of the information presented may also apply to earlier versions of HP-UX, including HP-UX for Series 300, 400, 500, and 600 HP9000 machines. Previous versions of this FAQ contained some information specific to HP-UX 9.x and earlier; such information has been removed, as of version 11.11.0105 of the FAQ. This decision was made because HP-UX versions 10.00 and earlier have been officially classified as obsolete by HP, as well as to permit greater focus on the more current versions of HP-UX. The FAQ will be updated every other month or as the maintainer sees fit, and it will be posted on Usenet once a month.
This FAQ is Copyright (c) 2001-2006, Ian P. Springer, all rights reserved. It may be freely redistributed in its entirety, provided that this copyright notice is not removed. It may not be sold for profit or incorporated in commercial documents without the written permission of the copyright holder. Permission is expressly granted for this document to be made available for file transfer from installations offering unrestricted anonymous file transfer on the Internet. This article is provided as is, without any express or implied warranty. While every effort has been made to ensure the accuracy of the information contained in this FAQ, the maintainer and contributors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The content of this FAQ does not represent the opinions of the maintainer's employer, contributors' employers, or the HewlettPackard Company.
This FAQ is written in "minimal digest format" as described at <http://www.faqs.org/faqs/faqs/minimal-digest-format/>. You can skip from one section to the next by pressing ^G in many newsreaders, such as rn, trn, and strn (but not nn or tin).
In the table of contents below, questions marked with a "+" were recently added, and questions marked with a "!" were recently updated.
For other questions and answers not included in this FAQ, please search for the answer in the newsgroup archives at <http://groups.google.com/> (formerly DejaNews). Many times, what you want to know has been asked and answered many times before, and you will get your answer quicker searching through <http://groups.google.com/>. When searching, include the expression "group:comp.sys.hp.hpux" along with your keywords to narrow the search to only comp.sys.hp.hpux.
If you are unable to find the answer to your question in the newsgroup archives, then go ahead and post your question to comp.sys.hp.hpux.
All feedback is appreciated. Submissions, corrections, comments, and complaints should be directed to Ian P. Springer <hpux DOT faq AT gmail DOT com>.
Subject: 2. TABLE OF CONTENTS
4.1.1 Where can I get a copy of this FAQ file? 4.1.2 What other HP-UX-related FAQs exist? 4.2 Web Sites
4.2.1 HP Sites
4.2.1.1 What is the URL of HP's main web site? 4.2.1.2 Where can I browse HP documentation on the Web? 4.2.1.3 Where can I get support from HP on the Web? 4.2.1.4 Other HP Sites 4.2.2 Non-HP Sites
4.2.2.1 EnterpriseUnix.org 4.2.2.2 EPFL Support HP / HPLine 4.3 Newsgroups
4.3.1 List of Usenet newsgroups 4.3.2 HP's newsgroup policy 4.3.3 The ITRC HP-UX Forum 4.4 Mailing Lists
4.4.1 HPUX-Admin Mailing List 4.4.2 HP 9000 series 500 Mailing List 4.4.3 HPMINI-L Mailing List 4.5 Periodicals
4.5.1 hp-ux/usr 4.5.2 The HP Chronicle 4.6 Books
4.6.1 HP-UX 11.x Books 4.6.2 HP-UX 10.x Books 4.6.3 HP-UX 10.x/11.x Books 4.6.4 CDE Books 4.6.5 Books from HP 4.6.6 HP Product Manuals 4.7 Local Files
4.7.1 The HP-UX Reference Manual 4.7.2 /usr/share/doc 4.8 Conferences and Workshops
4.8.1 HP World Conference & Expo 4.8.2 InterWorks Conference 4.8.3 HP/Works Technical Workshops 4.9 Courses and Certifications
4.9.1 Courses offered by HP 4.10 Organizations
4.10.1 Organizations within the U.S.
4.10.1.1 Interex, The International Association of
Hewlett-Packard Computing Professionals 4.10.1.2 InterWorks 4.10.2 Organizations outside the U.S.
4.10.2.1 Interex Netherlands HP User Group (AKA DutchWorks) 4.10.2.2 HP/Works 4.10.2.3 Japanese HP Computer Users Association 4.11 Third-Party Vendors
4.11.1 Hewlett-Packard Vendor Listing
5.1.1 How do group privileges work? 5.1.2 Why are mail files in /var/mail owned by 'daemon' instead
of the recipient? 5.1.3 How can I restrict regular users from logging in at the
console? 5.1.4 How can I disable non-root logins? 5.1.5 Where can I find a list of all patches corresponding to
security advisories? 5.1.6 How can I protect my systems against SATAN? 5.1.7 What are the major differences between trusted and
non-trusted systems? 5.1.8 How can I configure things like minimum password length,
password history, and maximum simultaneous logins? 5.1.9 What is the sticky bit's purpose? 5.1.10 Does HP-UX have a /dev/random, /dev/urandom, or similar device? 5.1.11 How can I protect my system from viruses? 5.1.12 What information is available on configuring HP-UX for maximum
security? 5.1.13 Does HP-UX support /etc/shadow like Solaris and Linux? 5.2 Backup and Recovery
5.2.1 Can I put more than one backup on DDS with fbackup? 5.2.2 How can I use dump with a DDS tape? 5.2.3 Why do cpio/tar/dump/pax all backup to tape painfully slowly? 5.2.4 What CD burning software is available? 5.3 Disks and File Systems
5.3.1 How can I enable long file names? 5.3.2 Is it possible to create a RAM disk? 5.3.3 What happened to DUX and context dependent files (CDFs)? 5.3.4 Why can't I use all of my swap space? 5.3.5 How can I determine which disk is the boot disk? 5.3.6 Why does pfs_mount fail with the message 'Not Owner' when I
try to use it? 5.3.7 What's new with remote mounts and the automounter? 5.3.8 Why are CDROM filenames all UPPERCASE with ;1 attached? 5.3.9 How can I start the PFS daemons automatically at system
startup? 5.3.10 Where can I get updated disktab entries for third-party
disks? 5.3.11 How can I determine whether a disk is bootable? 5.3.12 How do I defragment my filesystems? 5.4 Display
5.4.1 How do I define a new terminal type? 5.4.2 How can I change the video mode on my workstation? 5.5 Kernel Configuration
5.5.1 How can I tell if I have a 32-bit or 64-bit kernel? 5.5.2 How do I determine if a system supports a 32 and/or 64-bit
kernel? 5.5.3 Where can I find detailed documentation of the various kernel
parameters? 5.6 Monitors, Diagnostics, and Performance
5.6.1 How can I look at what my system is doing? 5.6.2 What happened to the sysdiag command? 5.6.3 How can I improve overall system performance? 5.7 Networking and Communications
5.7.1 How can I change the order of hostname resolution? 5.7.2 How can I track network packets? 5.7.3 How to get the MAC address for a particular network interface? 5.7.4 Is there a Transport Level Interface (TLI) interface to
TCP on HP-UX? 5.7.5 How do I disable IP Forwarding? 5.7.6 Why is ifconfig giving me errors when I try to configure
my LAN? 5.7.7 How do I change the hostname, IP address, DNS Server, etc? 5.7.8 How do I determine the speed and duplexity of my network
interface? 5.7.9 How do I display all active Internet (TCP and UDP)
connections? 5.7.10 Can multiple IP addresses be configured on one interface? 5.7.11 How can I enable the LAN interface on a 700? 5.7.12 Where can I get STREAMS for HP-UX? 5.7.13 What version of BIND (named) comes with HP-UX? 5.7.14 What version of sendmail comes with HP-UX? 5.7.15 What version of NFS comes with HPUX? 5.7.16 What is the difference between automount and AutoFS? 5.7.17 Can I configure multiple network interfaces on the same subnet? 5.7.18 Does HP-UX come with a DHCP server? 5.7.19 Is there a port management tool / firewall for HP-UX? 5.8 Peripheral Devices
5.8.1 How do I use the floppy drive on my HP-UX workstation? 5.8.2 How can I format a floppy under HP-UX? 5.8.3 How can I get an Exabyte to work on an HP? 5.8.4 How can I get a stuck DDS tape out of the drive? 5.8.5 Do I need to terminate the internal SCSI on a 700? 5.8.6 How can I play audio CDs on an HP workstation's CD-ROM drive? 5.8.7 How can I set up /dev/audio to point to the external jack on a
700? 5.8.8 How can I configure the parallel port handshake on a 700? 5.8.9 What are the specs of the audio hardware on the 700 series? 5.8.10 Is there a trackball for the 700? 5.8.11 What keyboards and mice are compatible with HP9000
workstations? 5.8.12 How do I change the keyboard type (e.g. from UK to German or
vice versa) after HP-UX is already installed? 5.8.13 How do I ascertain which device file corresponds to my CD-ROM
or DVD-ROM drive? 5.9 Printers and Plotters
5.9.1 What happened to lpr? 5.9.2 Why does lpstat report the printer down, even though it's not? 5.9.3 How can I turn off the LP banner page? 5.9.4 How can I print man pages without losing the formatting? 5.9.5 How can I view and print Postscript (.ps) files? 5.10 Process Management
5.10.1 How much memory can a process use? 5.10.2 Why do my processes keep dying at 64 MB memory usage? 5.10.3 How do I set per-process limits? 5.10.4 How can I tell what files, ports, etc.. a process has open? 5.10.5 How can I get the ps command to display more than 64
characters of process command lines? 5.11 Routine Tasks
5.11.1 How can I track log files and core files? 5.11.2 What's a good strategy for clearing /tmp and /var/tmp? 5.12 Software Management
5.12.1 General Software Management
5.12.1.1 Where can I find out more about Software Distributor
(SD-UX)? 5.12.1.2 How can I tell what products have been loaded on my
system? 5.12.1.3 How do I safely remove software from my system? 5.12.1.4 How is the unique node ID used for licensing determined? 5.12.1.5 What is Ignite-UX? 5.12.2 Patch Management
5.12.2.1 Where do I get HP-UX patches? 5.12.2.2 How can I list all installed patches? 5.12.2.3 How can I tell what patches are in the kernel? 5.12.2.4 How do I get rid of these old 10.x patches since I
upgraded to 11.x? 5.12.2.5 How can I install multiple patches, without having to
reboot more than once? 5.12.2.6 How do I configure swlist to not display superseded
patches? 5.12.2.7 What is the naming convention used for HP-UX patch
names? 5.12.2.8 Where can I get OpenView patches? 5.13 Time
5.13.1 How can I change the timezone? 5.13.2 How can I print yesterday's or tomorrow's date? 5.13.3 How can I convert a timestamp (seconds since the Epoch) to a
date/time string? 5.13.4 What is the purpose of the 'timezone' and 'dst' kernel
parameters? 5.14 Users and Groups
5.14.1 How can I tell if I need more than a 2-user license? 5.14.2 How can I set up group-based FTP access? 5.14.3 Has /etc/logingroup functionality changed in 11.x? 5.15 X-Windows and CDE
5.15.1 X Window System (X11)
5.15.1.1 Where can I get X11R6? 5.15.1.2 Where can I get the missing X11 header files? 5.15.1.3 How can I set up an HP-UX workstation as an X terminal? 5.15.1.4 How do I get a scroll bar on hpterms? 5.15.1.5 How can I change the title in my hpterm titlebar? 5.15.1.6 Why do my terminal windows keep going away by
themselves? 5.15.1.7 How can I get console messages to go to an hpterm? 5.15.1.8 What's a good termcap entry for hpterm? 5.15.1.9 My screen is wedged. What should I do? 5.15.1.10 How can I get an X app to come up in an alternate
workspace? 5.15.2 Common Desktop Environment (CDE)
5.15.2.1 What happened to VUE? 5.15.2.2 How do I start/stop/reset CDE (dtlogin)? 5.15.2.3 How can I enable/disable CDE (dtlogin)? 5.15.2.4 Why does id/groups not show secondary groups in
dtterm/CDE? 5.15.2.5 How can I improve CDE's performance? 5.15.2.6 Is there a CDE FAQ? 5.15.2.7 When I log on to CDE, I want certain applications to
automatically start. How can this be done ? 5.15.2.8 How do I get cut-n-paste to work correctly with CDE? 5.15.2.9 Why do NCD X-terminals hang when trying to connect via
XDMCP to an HP-UX 10.20 host running CDE?
6.1.1 What threads support is provided? 6.1.2 What's the deal with _INCLUDE_xxxx_SOURCE? 6.1.3 Where can I find a list of all available system calls? 6.1.4 How can I tell if something was built debuggable? 6.1.5 Why is syslog() call not doing what i want it to? 6.1.6 How can I get C programs to automatically generate stack
dumps? 6.1.7 HP C++ email discussion lists 6.1.8 HP-UX development email discussion lists 6.2 Compiling and Linking
6.2.1 Why is the default C compiler brain-dead? 6.2.2 How do I make Perl on HP-UX? 6.2.3 How do I deal with "too many defines"? 6.2.4 Why do I get "_builtin_va_start" undefined when I build with
gcc? 6.2.5 Is there some kind of problem with using FLT_MIN in ANSI mode? 6.2.6 Why do I get the error "Initialization:1: missing
token-sequence in `#assert'" when I compile with gcc? 6.2.7 How can I detect the HP-UX version at compile time? 6.3 Porting
6.3.1 Porting from an Earlier Release of HP-UX 6.3.2 Porting from Other Platforms (Solaris, AIX, etc..) 6.3.3 How do I know if binaries built on a one release of HP-UX are
compatible with a different release of HP-UX? 6.4 Tools
6.4.1 Where can I get Interviews for HP-UX? 6.4.2 Is there a disassembler included with HP-UX?
7.1.1 HP Freeware
7.1.1.1 Patches 7.1.1.2 Drivers 7.1.1.3 I heard there is a new ftpd available. Where do I get
it? 7.1.1.4 HPRC FTP Site 7.1.1.5 GNOME 7.1.2 Non-HP Freeware
7.1.2.1 The Software Porting And Archive Centre for HP-UX 7.1.2.2 InterWorks FTP site 7.1.2.3 Netperf 7.1.2.4 SLIP and CSLIP 7.1.2.5 PPP 7.1.2.6 SMTP 7.1.2.7 POP and IMAP 7.1.2.8 Sudo 7.1.2.9 Ntalk 7.1.2.10 TTCP 7.1.2.11 Free SCSI utilities for HP-UX workstations 7.1.2.12 PSCREEN/uX 7.1.2.13 GNU software 7.1.2.14 Web browsers 7.1.2.15 Miscellaneous freeware 7.1.2.16 RealAudio Player 7.1.2.17 CD Burning Software 7.2 Shareware 7.3 Commercial Software
7.3.1 HP Commercial Software
7.3.1.1 Where can I find release histories for various HP
software products? 7.3.1.2 Where can I find a list of all applications that are
available for HP-UX? 7.3.2 Non-HP Commercial Software
7.3.2.1 Interex FastStart Toolbox 7.3.2.2 Is there anything remotely like the Apollo DM editor
available?
Solaris/AIX/etc.. command? 8.2 What do I need to do to make my HP-UX system Year 2000
compliant? 8.3 How do I boot into single user mode? 8.4 How can I send mail to an MPE/iX HPDESK address? 8.5 How can I limit core files? 8.6 How do I disable the Caps Lock key? 8.7 Why does my Korn shell login hang? 8.8 How can I avoid those annoying copyright notices on login? 8.9 How can I turn off quota checking? 8.10 Why can't I start Aserver? 8.11 How can I get a daemon to successfully start from an rc script? 8.12 How do I convert the uname string to a model string? 8.13 Is Perl included with HP-UX? 8.14 Why can't I type an '@' character? 8.15 Why can't I get my machine into boot admin mode? 8.16 What happened to "less"? 8.17 What should go in my PATH and MANPATH environment variables? 8.18 Why does the 10.x/11.x cksum command produce a different
checksum than the 9.x cksum command? 8.19 Can I run Linux on an HP9000 system? 8.20 Can I run *BSD on an HP9000 system? 8.21 What happened to /usr/local? What are these /usr/contrib
and /opt directories? 8.22 Is it OK to change root's shell? 8.23 Why does HP-UX 10 generate copious "Sti_save" syslog messages? 8.24 How can I tell which kernel was booted? 8.25 What is the equivalent of ldd under HP-UX? 8.26 How do I configure a program to automatically start up or
shutdown when the system starts up or shuts down? 8.27 How can I do regular expression matching? 8.28 How can I play MP3s? 8.29 How can I use audio on HP-UX 10.x/11.x without a network? 8.30 Is there a tool to trace system calls? 8.31 What OS capacity limits exist? 8.32 How can I determine how much RAM my system has? 8.33 What are the various revisions of PA-RISC? 8.34 How do I find the clock speed of my system's CPU(s)? 8.35 How can I view/print PDF files? 8.36 How do I read an SGI-written tar format DDS tape? 8.37 Is the Euro supported? 8.38 How can I view various Windows-format files (Word docs,
Excel spreadsheets, etc..) on an HP-UX system? 8.39 How is the system load average, as reported by the uptime
and top commands, calculated? 8.40 Where can I get HP9000 firmware updates? 8.41 Where can I look up HP part numbers? 8.42 How can I create a /dev/zero special file? 8.43 Why is tail's output truncated for large amounts of input? 8.44 What commands or scripts exist for gathering and summarizing
system information? 8.45 How can I convert numbers from one base to another? 8.46 What are the machine ID and serial number used for? 8.47 How can I tell what commands SAM is executing under the hood? 8.48 How can I view a file in octal or hexadecimal? 8.49 How do I configure the kernel to write corefiles as core.<pid>? 8.50 How do I analyze a system crash dump? 8.51 Is HP-UX free for non-profit users (students, hobbyists, etc..)? 8.52 Where can I obtain a free HP-UX shell account? 8.53 How do I grep for an exact word as with "grep -w" in Linux?
Subject: 3. GENERAL INFORMATION
Subject: 3.1 What does HP-UX stand for? Added: 04/16/01
HP-UX is short for Hewlett-Packard UNIX[R].
Subject: 3.2 Where can I find a good overview of HP-UX? Updated: 08/23/01
For starters, there is the HP-UX homepage:
Also, check out the HP-UX page at OSdata.com:
If you have an HP-UX 11.x system, read the introduction(9) manpage. It contains a lot of good background information.
Subject: 3.3 What is the release history of HP-UX? Updated: 12/29/03
1.0 '83? 1.1 '83? 1.2 '83? 2.0 '83? 2.1 '84? 2.2 '84? 3.0 '84? 3.1 '85? 3.2 '85? 4.0 '85? 5.0 2H/85 5.05 '86? 5.1 '88 5.2 '89? 5.21 '89? 5.3 04/89 6.0 '89 6.0.1 '89 6.0.2 '89 6.1 '89 6.2 '89 6.3 '89 6.5 02/89 7.00 mid '90 Motif[R] 7.01 '89 7.02 '90 7.03 <08/89 7.04 '90 7.05 '90 7.06 '90 7.07 '90 7.08 '90 7.09 '90 8.00 01/91 8.01 '91 8.02 04/92 8.03 '91 8.04 '91 8.05 07/91 8.06 '92 8.07 '92 9.00 07/92 PA7100 support, POSIX[TM] shell, VUE 3.0, fastlinks, ioscan(1M), model(1) 9.01 '93 added hardware support 9.02 '93 added hardware support 9.03 '93 added hardware support, including support for floppy disks
9.04 11/93 added hardware support
9.05 11/93 added hardware support
9.06 '94 9.07 '94 Multi-Buffered-X, Single-Logical-Screen 9.08 '94 9.09 '94
9.10 03/95 10.x compatibility
10.00 03/95 SVR4 filesys layout, NFS, SD-UX, XNTP, traceroute(1M)
10.01 07/95 JFS(v2)
10.10 02/96 large filesys/physmem/dsize, NLS, SLVM, UNIX95, CDE(1.0),
DHCP, perl(4)
10.20 08/96 JFSv3, large files/uids, MPC, RARP
10.30 08/97 kernel (POSIX) threads, NFS PV3, streams TCP/IP, ASE, PPP,
Y2K compliance
11.00 11/97 64-bit OS, DLKM, iCOD, CDE 2.1
11.10 03/00 SCA, JFS 3.3, 128-CPU, AutoFS, new ftpd
11.11 11/00 OEs, SuperDome, IO board OLAR, dynamic tunables, TCP NFS,
Linux APIs & ABIs, perl5, JRE(1.2.2.04), X11R6.2 11.20 06/01 IPF, BTL DLKM, kernel logging, VxVM 11.22 06/02 Itanium 2, MxN threads, 64-CPU, kernel config GUI, system
inventory manager, IPv6, IPSec, CPU/RAM board OLAR (*) 11.23 '03? PA & IPF, select Tru64 components, 128-CPU (@), limited self-healing & self-tuning (@) 11.24? '04? TruCluster (@) 11.30 '05? complete self-healing & self-tuning (@)
Hardware Processor HP-UX Platform Architecture Releases
Series 200 Motorola 680x0 2.x, 5.1 Series 300 Motorola 680x0 6.x, 7.x, 8.0/01/05/07, 9.0/01/03/10 Series 400 Motorola 680x0 7.x, 8.0/01/05/07 Series 500 HP Focus 1.x, 5.x Series 600 HP PA-RISC 2.x, 3.x, 7.0, 8.0/02/06, 9.0/02/04 Series 700 HP PA-RISC 7.03/05/09, 8.0/01/05/07, 9.01/03/05/07/09, 10.x, 11.x Series 800 HP PA-RISC 1.x, 2.x, 3.x, 7.0, 8.0/02/06, 9.0/02/04, 10.x, 11.0/10/11/23 Itanium Intel IPF 11.2x
HP9000 Series 100 machines did not run HP-UX. They ran HPL, BASIC or Pascal. These languages were usually stored on disks and loaded from there, but you could also get the languages on plug-in ROM cards.
Series 400 machines were basically HP9000/Apollo hybrids. The boot PROM contained support for two different modes - one for DomainOS (the native Apollo operating system) and one for HP-UX.
Series 900 is the HP3000 family of business servers. These machines all run MPE/iX, not HP-UX. For more information on HP3000 and MPE/iX, see:
s300 6.5 and s800 3.1 were both replaced by a supposedly converged HP-UX 7.0, but, in fact, there were significant differences, and not just because of the IO architectues.
HP-UX releases <= 10.20 have been removed from the HP corporate price list (ie, they can no longer be purchased).
HP-UX releases <= 10.00 have been classified as obsolete (ie, no longer supported by HP). 10.01/10/20 will be supported through June 30, 2003.
HP-UX 10.30 was a limited release intended for early access for 32-bit kernel threads development and testing, prior to the release of HP-UX 11.00. For this reason, it was discontinued and obsoleted fairly soon after the release of 11.00.
HP-UX 11.10 was a limited release and is supported only on V2500 SCA and V2600 SCA servers. Prior to the release of 11.11, 11.10 came preinstalled on these systems. It was never available separately.
HP-UX 11.11 and later is marketed as "HP-UX 11i." The "i" stands for "Internet" and is meant to convey that the OS is Internet-ready. Here are the mappings from 11i versions to HP-UX versions as reported by uname:
1.0 11.11 PA OE Release 1.5 11.20 IPF Itanium Release 1.6 11.22 IPF Consolidation Release 2.0 11.23 PA+IPF Independence Release
Subject: 3.4 Where can I find definitions of various HP-UX terms? Added: 04/16/01
Refer to the glossary(9) manpage.
Subject: 3.5 What is HP's address and phone number? Updated: 10/09/01
The address of HP Corporate Offices is:
Hewlett-Packard Company
3000 Hanover Street
Palo Alto, CA 94304-1185
and the phone numbers are:
For general product information call:
For information on ordering HP manuals and supplies, call Parts Direct Ordering toll-free in the United States at:
or visit the HP Parts homepage at:
Subject: 3.6 How does HP-UX rank among other enterprise Unixes? Added: 06/17/02
The latest D.H. Brown report entitled "2002 UNIX Function Review" ranks HP-UX 11i #1, over Solaris 8, AIX 5.1, and Tru64 5.1, in all five categories - reliability, availability and serviceability; Internet and Web application services; directory and security services; systems management; and scalability.
The press release is at:
The report itself is available at:
Subject: 3.7 How does the Compaq merger affect the HP-UX roadmap? Added: 06/17/02
HP and Compaq both offered UNIX operating systems: HP-UX and Compaq Tru64 UNIX.
Decision: HP-UX will be the long-term UNIX for the new HP. Tru64 UNIX has some very advanced features -- including clustering and file systems -- and some of those will be integrated into HP-UX over time.
Rationale: HP-UX has a much larger market share and installed base of customers. It also has much broader ISV support than Tru64 UNIX.
Subject: 4. RESOURCES
Subject: 4.1 FAQs
Subject: 4.1.1 Where can I get a copy of this FAQ file? Updated: 05/18/04
An ASCII text version of this FAQ is available at:
An HTML version of this FAQ is available at:
There is also a legacy version of this FAQ, which contains information on HP-UX 9.x and earlier. This is available at:
Note, the legacy FAQ is no longer updated. It is archived for the benefit of those still running old versions of HP-UX.
Subject: 4.1.2 What other HP-UX-related FAQs exist? Updated: 11/10/03
There is a "Certified for HP-UX FAQ" that discusses the offical certification of 3rd part applications for HP-UX:
There is an HP3000 FAQ available at:
CERN's IT department has assembled an HP-UX 10.0 FAQ, comprised of documents from HP ITRC:
There is an Ignite-UX (IUX) FAQ available from HP:
There are a number of FAQs describing building and/or using various 3rd party products on HP-UX:
Subject: 4.2 Web Sites
Subject: 4.2.1 HP Sites
Subject: 4.2.1.1 What is the URL of HP's main web site? Added: 04/10/01
There are several mirrors, spread across various continents:
Russia and Germany also have their own translated mirrors:
Subject: 4.2.1.2 Where can I browse HP documentation on the Web? Updated: 04/06/01
The HP Technical Documentation website is at <http://docs.hp.com/>.
Here you can browse, search, and view the latest product documentation and technical information about HP 9000 hardware and software products, either by topic or release.
Included are installation guides, user guides, reference manuals, manual pages, tools, training, technical white papers, and FAQ's for both 10.x and 11.x releases.
Note, many of the documents on <http://docs.hp.com/> are also distributed as part of the HP-UX media set, on the CD entitled "HP-UX Instant Information."
There are several other HP sites that provide documentation:
Subject: 4.2.1.3 Where can I get support from HP on the Web? Updated: 10/09/01
Go to the HP IT Resource Center (ITRC) web site; there are several mirrors:
<http://us-support2.external.hp.com/> or <http://us-support3.external.hp.com/> or <http://itresourcecenter.hp.com/>
<http://europe-support2.external.hp.com/> or <http://www.itresourcecenter.hp.com/> or <http://www.itrc.hp.com/> or <http://itrc.hp.com/>
NOTE: The America/Asia-Pacific ITRC sites do not share user registration
data with the European ITRC sites. European support customers should register at and continue to use the European site, and Americas/Asia-Pacific support customers should register at and continue to use the Americas/Asia-Pacific site.
The HP ITRC allows you to:
HP's support offerings on the ITRC site are fairly extensive. Anyone can access the Patch Database, Support Information Digests, and certain portions of the Technical Knowledge Database.
HP does require (free) registration to access anything on the ITRC. When you click on any of the links, it will ask you to either Enter as a Registered User, or Register Now.
With a valid software agreement, you can also log non-urgent calls, and search more of the Technical Knowledge Database. You will also be able to access the Software Update Manager. With PSS or PAS level support, you are also able to access the Custom Patch Manager.
If you do not have a software agreement, or you don't have the information for it, after you have registered and the ITRC has given you your userid, go back until you get the "Enter as a Registered User" choice again. (The only link on the page that gives you your userid tries to link you to a software agreement)
The ITRC phone number for U.S. customers with support contracts is 800.633.3600. For a list of phone numbers for other countries see:
Subject: 4.2.1.4 Other HP Sites
Added: 04/17/01
HP Software Depot:
HP OpenView Homepage:
HP PartSurfer:
HP Itanium[TM] Homepage:
Search All of HP:
Subject: 4.2.2 Non-HP Sites
Subject: 4.2.2.1 EnterpriseUnix.org
Added: 01/22/03
EnterpriseUnix.org is a website for system administrators, developers, and enterprise managers, offering recent industry news, events, links, etc. related to the convergence of HP-UX and Tru64 UNIX running on the Itanium Processor Family.
Subject: 4.2.2.2 EPFL Support HP / HPLine Added: 04/16/01
EPFL Support HP is a Swiss HP-UX Support Site that provides some useful information and links. Most of the site is in French, though some parts are in English.
Subject: 4.3 Newsgroups
Subject: 4.3.1 List of HP-UX-related Usenet newsgroups Added: 04/19/01
Subject: 4.3.2 What is HP's involvement in the HP-related newsgroups?
HP does not, to my knowledge, have a formal policy regarding employee involvement in the HP-related newsgroups. There is significant activity from HP employees, typically Response Center engineers and lab engineers. Much of the information in this document originally came from internal HP sources.
Subject: 4.3.3 The ITRC HP-UX Forum
Updated: 01/23/03
The HP-UX Forum on the HP ITRC web site contains a wealth of useful information:
As with all ITRC pages, you must be registered on the ITRC in order to access it.
Subject: 4.4 Mailing Lists
Subject: 4.4.1 HPUX-Admin Mailing List Updated: 04/30/02
Bart Muyzer runs an HP-UX system administration mailing list. In short, the purpose of the mailing list is to discuss matters related to HP-UX System Administration.
Problems, questions, suggestions and the like should go to the address <mailto:owner-hpux-admin@dutchworks.nl>
Subject: 4.4.2 HP 9000 series 500 Mailing List
There is a mailing list dedicated to the HP 9000 series 500 (HP Focus) machine. The purpose of the list is:
To get on (or off) the list, send email to
<hp9000-500-request@nvc.cc.ca.us>
with the word
subscribe (or unsubscribe)
in the subject line.
Subject: 4.4.3 HPMINI-L Mailing List
Updated: 05/18/04
The HPMINI-L Mailing List is dedicated to topics directly relating to Hewlett-Packard workstations, primarily those running HP-UX. The list homepage is:
Subject: 4.5 Periodicals
Subject: 4.5.1 hp-ux/usr
Updated: 03/29/01
The archives can be viewed, by Interex members only, at:
Interex also publishes several other magazines related to HP-UX. For a complete list, see:
Subject: 4.5.2 The HP Chronicle
Updated: 01/23/03
The HP Chronicle was a tabloid-sized newspaper containing news from HP and other vendors of compatible hardware, software and peripherals - recently acquired and dissolved by ServerWorld Magazine. Archive issues can be viewed at:
Subject: 4.6 Books
Subject: 4.6.1 HP-UX 11.x Books
"HP-UX 11i System Administration Handbook and Toolkit", with CD (Audio)
by Marty Poniatowski, 03/01
ISBN: 0130600814
"HP-UX 11.x System Administration: How To Book", 2nd Edition
by Marty Poniatowski, 12/18/98
ISBN: 0130125156
"The HP-UX 11.x System Administration Handbook and Toolkit"
by Marty Poniatowski, 06/18/99
ISBN: 0130125148
Subject: 4.6.2 HP-UX 10.x Books
"Learning the HP-UX Operating System"
by Marty Poniatowski, 07/18/96
ISBN: 0132585340
"HP-UX 10.X System Administration: How To Book"
by Marty Poniatowski, 10/95
ISBN: 0131258737
Subject: 4.6.3 HP-UX 10.x/11.x Books
Updated: 04/01/01
"Disk and File Management Tasks on HP-UX"
by Tom Madell, 10/96
ISBN: 013518861X
HP-UX Tuning and Performance: Concept, Tools, and Methods By Robert F. Sauers and Peter S. Weygant, 06/99 ISBN: 0131027166
"Clusters for High Availability: A Primer of HP-UX Solutions", 2nd Edition
by Peter S. Weygant, 04/11/01
ISBN: 0130893552
"HP-UX System and Administration Guide"
by Jay Shah, 12/96
ISBN: 0070572771
Subject: 4.6.4 CDE Books
Updated: 04/02/01
"Configuring CDE: The Common Desktop Environment"
by Charles Fernandez, 06/14/96
ISBN: 0131027247
"Common Desktop Environment 1.0: Advanced User's and System
Administrator's Guide"
by CDE Documentation Group, 07/95
ISBN: 020148952X
"CDE and Motif: A Practical Primer"
by Antonino N. Mione, 12/97
ISBN: 0137608284
Subject: 4.6.5 Books from HP
Added: 04/10/01
Prentice Hall PTR publishes books for technical professionals with the imprint Hewlett-Packard Professional Books. These books are generally written by HP employees, often the engineers who helped devlop the product(s) being discussed.
For a list of all titles, go to:
All of the books are available for purchase from Amazon.com (<http://books.amazon.com/>).
Subject: 4.6.6 HP Product Manuals
Added: 04/10/01
On HP-UX 11.00 and earlier, refer to manuals(5) for a list of all HP-UXrelated manuals, and the corresponding HP part numbers.
Subject: 4.7 Local Files
Subject: 4.7.1 The HP-UX Reference Manual Updated: 09/12/03
An online version of the HP-UX Reference Manual is installed as part of HP-UX. The HP-UX Reference is divided into eight major sections:
Sections are further divided into many individual entried called manual pages, or simply manpages. Manpages can be viewed using the man command. For more information on manpages, see man(1) - ie:
$ man man
On 11.x, also see introduction(9).
Addtionally, hyperlinked HTML versions of the 10.x and 11.x reference manuals can be viewed online at:
Subject: 4.7.2 /usr/share/doc
Added: 04/17/01
On HP-UX 10.00 and later, the /usr/share/doc directory contains HP-UX release notes and technical whitepapers. Most of the documents are in ASCII text format. On 10.x, some of the documents are in PCL format. On 10.x and 11.00, several of the documents are in PostScript format. And on 11.11, a few of the documents are in PDF format.
The text (.txt) files can be readily viewed using a variety of viewers (more, pg, vi, etc..). The PCL, PostScript, and PDF files are meant to be printed out, not viewed online. In order to view them online, you would need to install third-party applications such as GhostScript and GhostView. You would also need to have a graphical display and have an X server running.
Hewlett Packard Printer Control Language (.pcl) files can be printed on any HP printer. If you have a non-HP printer, you can use GhostScript, or a number of other programs, to convert the PCL to PostScript.
PostScript (.ps) files can be printed on any printer that supports PostScript However, it is not necessary to have a PostScript-compatible printer. There are public domain programs, for example, GhostScript, that can convert PostScript to other printer languages, such as PCL.
To print Portable Document Format (.pdf) files, download and install Adobe[R] Acrobat[R] Reader (see question 8.35). Alternatively, you can use GhostScript to convert from PDF to PostScript or PCL.
Now that you know how to view and print the documents, here is a listing of the documents you'll find in /usr/share/doc on 11.00, 11.11, and 10.20:
11.00RelNotes Release Notes for HP-UX 11.0, 3rd Edition - '98 NTP_Primer.txt Network Time Protocol on HP-UX RelNotesNFS_TCP.txt Release Notes for NFS over TCP Enablement Functionality - 02/00 RelNotes_newftp.txt Release Notes for ftp - 06/98 bind496.txt BIND 4.9.6 Features : Summary Information - 10/97 boot.txt HP-UX 10.x (and 11.x) System Boot and Startup White Paper - 04/96 configure.txt(ps) HP-UX 10.X (and 11.x) CONFIGURATION/STARTUP FILES doc_map.txt(ps) HP-UX 10.x (and 11.x) Documentation Map (06/97) euro_howto.txt How to Setup Euro Enablement for the First Time euro_relnotes.txt Release Notes for Euro-Software Patch file_sys.txt(ps) HP-UX 10.x (and 11.x) File System Layout White Paper - 04/95 iconv.txt HP-UX 10.x (and 11.x) Iconv Customization lg_files.txt(ps) HP-UX Large Files White Paper, v1.4 - '97 libc_y2k.txt Programming For the Year 2000: HP-UX Standard C Libraries White Paper, v1.9 - 02/97 links.txt(ps) HP-UX 10.X (and 11.x) Start/Kill Sequence Numbers - 05/96 mem_mgt.txt(ps) HP-UX Memory Management White Paper, v1.3 - 04/97 mem_wndws.txt 11.0 Memory Windows White Paper mp.txt(ps) HP-UX MultiProcessing White Paper, v1.3 - 04/97 nls_locale.txt Locale Methods Customization pamized_rcom_readme.txt PAMized rexecd and remshd panics.txt HP-UX 11.0 System Panics White Paper, 3rd edition - 09/97 partner_info.txt HP-UX 10.X (and 11.x) Startup and Configuration Developer Check List patch_pgrm.txt [1] HP-UX 10.X Patch Program White Paper, 4th edition - 06/97 proc_mgt.txt(ps) HP-UX Process Management White Paper, v1.3 - 04/97
sendmail8-8_delta.txt What's New in HP-UX sendmail-8.8.6? sendmail8-9_delta.txt What's New In HP-UX Sendmail 8.9.3? sendmail8-9_release.txt HP-UX Sendmail 8.9.3 Release Notes - 09/99
sequence.txt(ps) HP-UX 10.X (and 11.x) Start/Kill Sequence Links - Order Paradigms start_up.txt(ps) HP-UX 10.X (and 11.x) Startup and Configuration sw_patches.txt HP-UX 11.0 Version B.11.00 Patch List - 09/97 sys_crash.txt HP-UX 11.x System Crash Dump 11dev.ps HP-UX 11.00 Software Developer's Guide - 10/16/97 64bit_driver_migration.ps How to Write a 64-bit Clean IO Driver for HP-UX: A 32-bit to 64-bit I/O Driver Migration Guide - 12/06/96 V.4version.ps Steps to Version Your Shared Library (using V.4 Versioning) dev_apps.ps File Sharing and Other Helpful Facts for HP-UX 10.0 Software Developers, v1.0 - 09/29/94 iop.ps Application Interoperability White Paper, v1.0 - 09/05/97 ux95.ps Programming for UNIX 95 and HP-UX Binary Compatibility - 05/22/96
04/98
In 11.11, HP has removed most of the whitepapers from /usr/share/doc/ and recommends viewing up-to-date versions of the documents on <http://docs.hp.com/> instead. Nonetheless, there are still a number of useful documents in /usr/share/doc/:
README HP-UX 11i /usr/share/doc/README - 11/00 11iRelNotes.txt(html) HP-UX 11i Release Notes, 1st Edition - 12/00
11.00RelNotes Release Notes for HP-UX 11.0, 6th Edition - 10/97 11iSRB.txt A pointer to the HP ITRC (<http://us.itrc.hp.com/>) Previously, the 11.00SRB.Z (Software Release Bulletin) listed all known defects. This list is always changing, and there is no equivalent 11i version of 11.00SRB.Z. ASX-JPN Japanese System Environment (JSE) A.02.60 Release Notes ASX-JPN-E(S) same as above (Japanese) ASX-KOR Korean System Environment (KSE) A.02.60 Release Notes ASX-SCH Simplified Chinese System Environment (SSE) A.02.60 Release Notes ASX-TCH Traditional Chinese System Environment (TSE) A.02.60 Release Notes ASX-UTF8 Asian System Environment (ASE) Unicode Release Notes PAMKerberosRelNotes.pdf PAM Kerberos Release Notes, Edition 2 - 12/00 PRINT-ASE-NOTE Obsolescence announcement of printing options of Asian System Environments (ASEs) PRINTER-JPN-E(S) Printers supported by JSE (Japanese)
SETNETLP_Guide-E(S) setnetlp(1M) Guide for JSE (Japanese) TechPrtServ/C/RelNotes Technical Print Service Release Notes TechPrtServ/C/tpsGuide.ps(pcl) Technical Print Service System
Administrator's Guide, 1st Edition - 03/97 planning_SuperDome_configs.pdf Planning SuperDome Configurations, Edition 1 - 10/00 sw_patches.txt HP-UX 11i Version 1 Patch List - 09/00
10.20RelNotes Release Notes for HP-UX 10.20, 4th Edition - 06/96 10.20SRB HP-UX 10.20 Software Release Bulletin (lists all known defects) RelNotesHWE.txt Release Notes for HP-UX 10.20 Hardware Extensions 2.0 (April 1998) 10.20HWE1.1_RelNotes HP-UX 10.20 Hardware Extensions 1.1 Release Notes - 02/98 Extension_Software/xx/XSW[78]00GR1020.readme HP-UX 10.20 Extension Software Release xx README NFS.ps Installing and Administering NFS Services, HP 9000 Networking - 02/98 NFSD_Concepts_Admin.ps NFS Diskless Concepts and Administration White Paper - '94 NFS_Client_Server.ps NFS Client/Server Configuration Topology and Performance Tuning Guide White Paper, Rev. 1.1 - 08/29/95 bog.txt(ps).Z Name Server Operations Guide for BIND Release 4.9.5 dev_apps.ps File Sharing & Other Helpful Facts for HP-UX 10.0 Software Developers, v1.0 - '94 patch_pgrm.txt HP-UX 10.0 Patch Program White Paper, 3rd Edition - 09/95 rfc1034.Z RFC 1034: DOMAIN NAMES - CONCEPTS & FACILITIES - 11/87 rfc1035.Z RFC 1035: DOMAIN NAMES - IMPLEMENTATION & SPECIFICATION - 11/87 rfc1535.Z RFC 1535: A Security Problem and Proposed Correction With Widely Deployed DNS Software - 10/93 sendmail8-7_manual.ps(pcl) Installing and Administering sendmail 8.7 sw_patches.txt HP-UX 10.20 Patch List - 06/96
Subject: 4.8 Conferences and Workshops
Subject: 4.8.1 HP World Conference & Expo Updated: 03/17/01
The next HP World conference is August 20-24, 2001 in Chicago, IL. You can find more details about the conference and register on the Web at <http://www.hpworld.com/>, or by contacting Interex (see subject 4.3).
Subject: 4.8.2 HP/Works Technical Workshops Updated: 04/02/01
HP/Works holds technical workshops throughout the year. For a schedule of past and upcoming events, visit:
Subject: 4.9 Courses on HP-UX
Subject: 4.9.1 Courses offered by HP
Updated: 04/02/01
HP offers many courses related to HP-UX. For details, visit the following web sites:
Subject: 4.10 Organizations
Subject: 4.10.1 Organizations within the U.S.
Subject: 4.10.1.1 Interex, The International Association of
Hewlett-Packard Computing Professionals Updated: 04/02/01
The Independent Association of Hewlett-Packard Computing Professionals, known as Interex, has a worldwide membership of more than 18,000. It is a not-for-profit, 20 year old organization. Interex has a monthly publication called "HP World", as well as a detailed technical publication called "hp-ux/usr". Interex sponsors the HP World and InterWorks conferences. For detailed information about Interex, including how to become a member, see the web site at:
Subject: 4.10.1.2 InterWorks
Updated: 04/03/01
InterWorks, formerly the Apollo Domain User's Society (ADUS), was originally formed to provide a users group specifically for HP workstation users. Over the course of the past few years the organization has been merged into Interex (see question 4.10.1.1 for more about Interex).
Despite InterWorks having been absorbed into Interex, the InterWorks anonymous FTP site is still up and running:
See Item 4.13 for a more detailed description of this site's content.
Subject: 4.10.2 Organizations outside the U.S.
Subject: 4.10.2.1 Interex Netherlands HP User Group (AKA DutchWorks) Updated: 03/26/01
The Interex Netherlands HP User Group, also known as DutchWorks, was formed to provide a users group for technical users. It represents technical HP users of HP9000 Workstations and Servers, Instrument Controllers (RTE, HP-RT, RM BASIC, etc.), and Vectra PC's. The group has a BBS which maintains a library of HP-UX, DOMAIN, RTE and BASIC software. The URL for the DutchWorks website is <http://www.interex.nl/>.
Membership details are available from:
Hans Hartwijk,
Weidezoom 11,
2742 EX Waddinxveen
The Netherlands
31 (0)1828 15086
or by e-mail to <mailto:jaap@klft.tn.tudelft.nl> (Jaap Kooman, chair DutchWorks)
DutchWorks also sponsors the HP-UX Administrators Mailing List (hpux-admin) mailing list. Subject 4.20 of this FAQ contains information on this mailing list.
Subject: 4.10.2.2 HP/Works
Updated: 04/02/01
HP/Works is the HP Technical Computing User Group, based in the UK. It is an independent group, supporting all users of HP and Apollo computer systems - running the HP-UX, DOMAIN, Linux or NT operating systems - throughout Europe. Also supported are those who use HP products, such as OpenView.
For further information, visit the HP/Works web site:
Subject: 4.10.2.3 Japanese HP Computer Users Association Updated: 05/18/04
As of March 31, 2002, the CUA is no longer operational.
Subject: 4.11 Third-Party Vendors
Subject: 4.11.1 Hewlett-Packard Vendor Listing Added: 03/24/01
There is an extensive listing of third-party HP vendors that is maintained by volunteers and updated on a regular basis:
Subject: 5. SYSTEM ADMINISTRATION
Subject: 5.1 Auditing and Security
Subject: 5.1.1 How do group privileges work? Updated: 07/11/01
HP-UX 9.0 and later allows special attributes to be associated with groups, which allows some superuser-like capabilities to be controlled by defining which groups they are accessible from. In this way it becomes possible to distribute superuser accessible commands to other users without allowing them full access to all other superuser capabilities. Implicitly, the super-user is a member of ALL groups.
This allows some (slight) relaxing of UNIX's 'all or nothing' approach to distributing privileged capabilities. Privileged groups are an HP-UXspecific feature.
Here is a list of group privileges available in various releases of HP-UX, along with a brief description of the system capabilities that they control:
rtprio(1) and rtprio(2))
memory, and the shmctl() SHM_LOCK function to lock shared memory segments (see plock(2) and shmctl(2))
and chown(2))
for reading only (see lockf(2))
the real user ID and real group ID of a process (see setuid(2) and setgid(2))
locality domain assignment, or launch policy of another process (see mpctl(2))
set POSIX.4 real-time priorities (see rtsched(1) and rtsched(2))
run serially with other processes that are also marked by this system call (see serialize(1), serialize(2))
allocation (see /usr/include/sys/spuctl.h)
scheduler (see /usr/include/sys/fss.h)
(see /usr/include/sys/pset.h)
Group privileges can be granted to individual groups, or globally (ie - to all groups, and hence, all users).
Although this doesn't appear to be covered by any HP documentation, it appears that users are assigned the group privileges associated with their primary group ID, and of all secondary groups defined within file /etc/logingroup.
By default, the setprivgrp command changes are no longer effective once you reboot your system. However, you can execute the command '/sbin/init.d/set_prvgrp start' to ensure that the privilege group changes are permanent. /sbin/init.d/set_prvgrp runs '/usr/sbin/setprivgrp -f /etc/privgroup'. The /etc/privgrp file should contain one or more lines in the following format:
groupname [privileges]
-g [privileges]
-n [privileges]
Each line in privgrp must end with a newline character. The syntax for 'groupname' and 'privileges' is described in the "Options and Arguments" section of setprivgrp(1M).
If the /etc/privgrp is not found when the system boots, the PRIV_CHOWN privilege is automatically enabled globally (as if '-g CHOWN' was specified). Furthermore, by default, /etc/privgrp does NOT exist.
The group privilege feature is often used to secure the chown command, which has the potential to be misused. The chown command may be used to change the owner ID of a file (or files) to another specified owner. As mentioned above, by default, PRIV_CHOWN is granted globally. Hence, the chown command may be used by any user to assign ownership of their own files to any other user, including root.
For example, HP-UX's disk-space accounting facility may be used to report the total disk usage of all users. It's possible for users to conceal their total disk usage by using the chown command to assign the ownership of their own files to other users.
On BSD-derived UNIX implementations, chown usage is limited to superusers only. By removing the global group privilege PRIV_CHOWN using the setprivgrp command, it's also possible to close this loophole on HP-UX, by limiting usage of the chown command to users who are members of specified groups only. This can be achieved as follows:
# echo "-n CHOWN" >>/etc/privgrp
# /sbin/init.d/set_prvgrp start
HP-UX documentation recommends that you not rely on the privileged group mechanism to restrict access to the setuid and setgid system calls. They do not guarantee that group privileges will be supported by future releases of HP-UX.
For more information, see getprivgrp(1), setprivgrp(1M), getprivgrp(2), setprivgrp(2), and privgrp(4).
Subject: 5.1.2 Why are mail files in /var/mail owned by 'daemon' instead
of the recipient?
The mail delivery agent /bin/rmail needs to be able to chown(2) these files. It can not do so if you have removed the privilege CHOWN (see setprivgrp(1m); removing CHOWN is recommended to prevent cheating on disk quotas). To get around this, noting that /bin/rmail runs setgid to group mail, you can grant privilege CHOWN to group mail only by inserting the line "mail CHOWN" in /etc/privgroup. The change takes effect on the next reboot, or immediately if you execute the command "setprivgrp -f /etc/privgroup".
Subject: 5.1.3 How can I restrict regular users from logging in at the
console?
Added: 04/02/01
If the /etc/securetty file is present, login security is in effect. User root is only allowed to log in successfully on the ttys listed in this file. Restricted ttys are listed by device name, one per line. Valid tty names are dependent on the installation. So to restrict root logins to only the console:
# echo console >/etc/securetty
The use of /etc/securetty is documented in login(1).
Create a file named 'nologin' in /etc/:
# >/etc/nologin
Then add something like this to your /etc/dt/config/Xstartup file:
if pwget -n "$USER" | awk -F: '{exit !($3 == 0)}'; then
if [ -f /etc/nologin ] || \ grep '^console$' /etc/securetty >/dev/null 2>&1; then echo "[$(date)] non-root login attempt from CDE console -" \ "access denied" >>/var/adm/console_login_attempts_log exit 1 fi
fi
See dtlogin(1) for a detailed description of the Xstartup file.
Subject: 5.1.4 How can I disable non-root logins?
Add the following to /etc/profile, then 'touch /etc/nologin'; this will disable all new logins, except by root:
uid=`id -u`
if [ -f /etc/nologin -a $uid -ne 0 ]; then
echo "Sorry, no logins allowed; try later!"
sleep 5
exit 0
fi
Subject: 5.1.5 Where can I find a list of all patches corresponding to
security advisories?
Updated: 11/13/01
If you are running 11.x, HP provides a free utility called security_patch_check that will report any security patches that are missing from your system. To download this utility, go to:
The security patch check tool requires that Perl 5.005 or higher, as well as several Perl modules, be installed on the system that is being checked. An HP-UX depot containing all of the required dependencies is available at:
security_patch_check is only able to analyze patches. Some HP Security Bulletins contain manual actions which cannot be analyzed in an automated fashion. An archive of all previously released HP security bulletins is available at:
Subject: 5.1.6 How can I protect my systems against SATAN? Added: 04/17/01
Read CIAC Information Bulletin F-19 ("Protecting HP-UX Systems Against SATAN") at:
NOTE: This whitepaper was written in '95, so some of the information
contained in it may no longer apply.
To find out more about SATAN, visit SATAN's homepage:
Also, for those less inclined toward evil, check out the SAINT homepage:
Subject: 5.1.7 What are the major differences between trusted and
non-trusted systems?
Added: 05/15/01
Below is a list of password management features:
non-trusted systems do not. Below are the features of trusted system login restrictions:
Note: These login restrictions are NOT available on
NON-TRUSTED systems.
4. A trusted system has shadowed passwords, while a non-trusted
system does not have shadowed passwords. Shadowed passwords are kept in locations other than /etc/passwd. This prevents users from viewing the /etc/passwd file and determining which accounts do not have passwords. This also prevents hackers from running "password cracker programs" against passwords in the /etc/passwd file.
For more information, please refer to the following document:
"Administering Your HP-UX Trusted System"
The document is located at the following web site:
Locate the "Description of the HP-UX Trusted System" section in the left menu. The following two pages contain more information:
Subject: 5.1.8 How can I configure things like minimum password length,
password history, and maximum simultaneous logins? Updated: 05/18/04
These settings, along with several others, can be configured via the security defaults configuration file /etc/default/security.
The 'security' file was introduced, undocumented, by patches to 11.00, the latest iterations being:
The functionality added by these patches is included in 11i. It is also fully documented via the security(4) manpage, available online at:
The following summarizes in which release each of the 'security' settings were introduced:
Subject: 5.1.9 What is the sticky bit's purpose? Added: 08/23/01
A 't' or 'T' as the last character of the "ls -l" mode characters indicates that the "sticky" (save text image) bit is set. See ls(1) for an explanation the distinction between 't' and 'T'.
The sticky bit has a different meaning, depending on the type of file it is set on...
[From chmod(2)]
If the mode bit S_ISVTX (sticky bit) is set on a directory, files
inside the directory may be renamed or removed only by the owner of
the file, the owner of the directory, or the superuser (even if the
modes of the directory would otherwise allow such an operation).
[Example]
drwxrwxrwt 104 bin bin 14336 Jun 7 00:59 /tmp
[From chmod(2)]
If an executable file is prepared for sharing, mode bit S_ISVTX prevents
the system from abandoning the swap-space image of the program-text
portion of the file when its last user terminates. Then, when the next
user of the file executes it, the text need not be read from the file
system but can simply be swapped in, thus saving time.
[From HP-UX Kernel Tuning and Performance Guide] Local paging. When applications are located remotely, set the "sticky bit" on the applications binaries, using the chmod +t command. This tells the system to page the text to the local disk. Otherwise, it is "retrieved" across the network. Of course, this would only apply when there is actual paging occurring. More recently, there is a kernel parameter, page_text_to_local, which when set to 1, will tell the kernel to page all NFS executable text pages to local swap space.
[Example]
-r-xr-xr-t 6 bin bin 2444444111111111664 Nov 14 2000 /usr/bin/vi
In HP-UX 10.0 and later, a symbolic link that has its sticky bit set is called a transition link (i.e. links to ease the transition to the new SVR4 filesystem layout). Transition links are a bit faster, because the linked-to filename is stored in the inode itself, instead of using an allocation unit to store the link. For more info on the purpose for transition links, see the tlinstall(update_aid) manpage.
In order to set the sticky bit on a symlink, one must use the undocumented lchmod system call (i.e. lchmod("/bin", 041777)).
[Example]
lr-xr-xr-t 1 root sys 8 Jun 7 01:00 /bin -> /usr/bin
5.1.10 Does HP-UX have a /dev/random, /dev/urandom, or similar device? Updated: 09/12/03
Yes, at least for 11.11.
The Strong Random Number Generator provides a secure, non-reproducible source of true random numbers for applications with strong security requirements, such as for generating encryption keys. The /dev/random and /dev/urandom files created by this product allow the read(2) system call to retrieve strong random binary sequences of up to 256 bytes. This interface is compatible with that provided by the Linux /dev/random and /dev/urandom special files. The Strong RNG can be downloaded for free from:
A technical white paper on the Strong RNG is available at:
There are a few alternatives for other versions of HP-UX...
For limited purposes, one can always use the POSIX shell's $RANDOM to receive a random integer between 0 and 32768.
Another option is a daemon from Lutz Jaenicke that can act as a replacement for a true random device:
Additionally, there is a hardware crypto accelerator card that also has it's own random device. At least through the bundled APIs, this device should be usable by applications. HP order numbers are as follows:
This card purchase is subject to U.S. munitions laws. The card is is available for shipment in the U.S. and Canada. Application for restricted worldwide shipment pending with the U.S. government.
The card is a Rainbow Swift, manufactured by Rainbow Technologies (<http://www.rainbow.com/products/cryptoswift/>), aka IVEA, which also has a UK subsidiary.
Subject: 5.1.11 How can I protect my system from viruses? Added: 09/20/01
There are several antivirus products available:
Subject: 5.1.12 What information is available on configuring HP-UX for
maximum security?
Updated: 07/17/03
Kevin Steves has written a couple excellent whitepapers on building HP-UX bastion hosts:
An 11.x version of the paper is available in both HTML and PDF formats:
There is also a 10.x version of the paper. However, it doesn't seem to be available on the Web anymore.
There is also a paper from HP titled "Network Security Features of HP-UX HP-UX 11i v1 and 11i v2":
Subject: 5.1.13 Does HP-UX support /etc/shadow like Solaris and Linux? Added: 01/22/03
The shadow functionality is available as of 11i v1.6 (11.22). For more information, see:
Subject: 5.2 Backup and Recovery
Subject: 5.2.1 Can I put more than one backup on DDS with fbackup?
No. fbackup always rewinds the tape. Possible alternatives:
(1) Stick with dump/cpio/tar/pax.
(2) Use a pipe: instead of telling fbackup where the DAT is,
let it send its output to stdout (-f -) and pipe it to the DAT, using Berkeley no-rewind device and dd with a suitable block size (e.g., 10K). You'll lose fast-search and resync-after-error functionality, though. Also, the complexities of managing multiple archives per tape make this a high-risk proposition. (3) Use NFS[R] and mount the disks of the machine without DAT to the other and back them both up there. You'll have to mount 'em with root permissions and restoring a completely destroyed root disk will be messy.
(4) Scream at HP until they fix fbackup. :-)
Subject: 5.2.2 How can I use dump with a DDS tape?
dump was written to assume 9-track tapes, so some fudging has to be done for DDS tapes. The following has the info you need along with several alternatives for dump parameters.
Approximate capacity of 60m DDS tape = 1.3G bytes Approximate DDS tape density = (1.3G bytes) / (60 m) = (550K bytes/in)
dump assumes an inter-record gap (IRG) of 0.3 in for density = 6250, 0.7 in otherwise.
dump uses a default blocking factor of 10 for density < 6250, 32 otherwise.
Block length = (32K bytes/block) / (550K bytes/in) + (0.7 in) = (0.76 in)
Effective tape length =
(1.3G bytes) / (32K bytes/block) * (0.76 in/block) = (2511 ft)
Block length = (32K bytes/block) / (6250 bytes/in) + (0.3 in) = (5.54 in)
Effective tape length =
(1.3G bytes) / (32K bytes/block) * (5.54 in/block) = (18325 ft)
Block length = (10K bytes/block) / (1600 bytes/in) + (0.7 in) = (7.10 in)
Effective tape length =
(1.3G bytes) / (10K bytes/block) * (7.10 in/block) = (75113 ft)
Block length = (32K bytes/block) / (1600 bytes/in) + (0.7 in) = (21.18 in)
Effective tape length =
(1.3G bytes) / (32K bytes/block) * (21.18 in/block) = (70022 ft)
Subject: 5.2.3 Why do cpio/tar/dump/pax all backup to tape painfully
slowly?
Added: 04/17/01
cpio/tar = VERY VERY OLD - never designed for DDS or DLT[TM]
fbackup/ftio = designed for Gb backups and modern tape drives
However, the default for fbackup is 1/2" magtapes, which almost no one uses anymore. ALWAYS use a config file for fbackup with at least these options:
blocksperrecord 256 records 32 checkpointfreq 1024 readerprocesses 6 maxretries 5 retrylimit 5000000 maxvoluses 200 filesperfsm 2000
Check the manpage for fbackup for other parameters, including what to do when you run out of tape (the chgvol parameter).
You need huge block sizes for modern tapes. Try ftio (block size limited only by hardware), pax (block sizes up to 32k), tar (which is 10k, by design) or cpio -B which changes from 512 to 5k (but still too small).
cpio, tar, dump, pax and similar utils can NEVER backup large files and are single processes whereas fbackup can read from 6 different files at the same time.
Note, the large record size (blocksperrecord), checkpointfreq, and filesperfsm also contribute to tape overhead.
Subject: 5.2.4 What CD burning software is available? Updated: 02/03/03
You can use Cdrecord (aka CdrTools), a freeware application, available at:
Additonally, Cdrecord-ProDVD can be used to burn DVDs; see:
There are numerous X GUI frontends for CDrecord. One of the most popular is X-CD-Roast, available at:
Subject: 5.3 Disks and Filesystems
Subject: 5.3.1 How can I enable long file names? Updated: 04/02/01
HP-UX 10.00 or later creates HFS filesystems with long file names (up to 255 characters) enabled by default, and all VxFS filesystems support long file names.
To change pre-10.0 HFS filesystems to support long filenames, run the /etc/convertfs program (see convertfs(1M)). Note that will NOT be able to switch back.
Here's how to check if an existing HFS filesystem has long filenames enabled:
# tunefs -v /dev/rdsk/XXX | grep magic
magic 95014 clean FS_OK time Tue Mar 23 14:13:01 1993
\__ if = 95014 then long filenames \__ if = 11954 then short filenames
You can also look at this on a per directory basis with the POSIX command getconf:
$ getconf NAME_MAX directory
where 'directory' is the path to the directory.
Subject: 5.3.2 Is it possible to create a RAM disk? Updated: 11/06/06
Yes, HP-UX 9.00 and later include a RAM disk driver. The driver is NOT officially supported by HP for customer use. Comments in the header file "/usr/conf/sio/ram.h" describe how to add RAM disk support to the kernel, as well as how to create a RAM disk.
Here are several reasons why using RAM disks is RISKY business:
Here are the basic steps make a 128 MB RAM disk on HP-UX 10.x/11.x:
# cd /stand/build
# /usr/lbin/sysadm/system_prep -v -s system
# kmsystem -c y -S system ram
# mk_kernel -s system
# mv ../system ../system.prev
# cp ../vmunix ../vmunix.prev
# mv system ..
# mv vmunix_test ../vmunix
# cd /
# shutdown -r
Note: "ramdisc" is an alias for "ram" that is also recognized.
2. Set up the device files and mount the RAM disk filesystem:
# mknod /dev/rram1 c 9 0x008001
# mknod /dev/ram1 b 9 0x008001
# newfs -F hfs /dev/rram1
# mkdir -p /ramdisk
# mount /dev/ram1 /ramdisk
There is a better, but not free, way to simulate a RAM disk under HP-UX 10.20 or later...
You must first purchase and install the optional OnlineJFS product, the advanced bundle for the VxFS file system. This enables a number of extra mount options for VxFS filesystems.
To configure a VxFS filesystem so that most buffer cache flushes are prevented, specify the following options when mounting the filesystem:
"tmplog,mincache=tmpcache,convosync=delay"
The first two options can be configured with sam, but the convosync option must be edited into /etc/fstab by hand.
A description and pricing info for the OnlineJFS product is available at <http://software.hp.com/> (just search for "onlinejfs").
AppMate Performance Software sells a software product for HP-UX called RamDisc Plus. For more information see their web site:
Subject: 5.3.3 What happened to DUX and context dependent files (CDFs)? Added: 03/29/01
As of HP-UX 10.01, DUX (HP Diskless Clusters) has been fully replaced by NFS.
These DUX-specific commands do not exist on HP-UX 10.01 and later:
cnodes(1) cps(1) getcontext(1) makecdf(1M) showcdf(1)
These DUX-specific options to commands do not exist on HP-UX 10.01 and later:
chmod -H find -hidden -type H ls -H find -nodevcid find -devcid cname last -c pwd -H users -c who -c bdf -L df -L sync -l ftio -H pax -H -m -o -p -t device tar -H
These DUX-specific library routines (including context dependent files) are obsolete as of HP-UX 10.01:
endccent getcccid getcdf nftwh fgetccent getccent gethcwd setccent ftwh getccnam hidecdf cnodeid cnodes getcontext
These additional DUX features were obsoleted in HP-UX 10.01:
Subject: 5.3.4 Why can't I use all of my swap space? Updated: 04/08/01
The default value of the kernel parameter "maxswapchunks" limits the swap accessible by the kernel to 537 MB. If you want to configure more swap space than that, you need to increase maxswapchunks. More information on maxswapchunks can be found online (see section 5.5.3).
Subject: 5.3.5 How can I determine which disk is the boot disk? Updated: 01/03/02
There are at least two ways to do this:
# lvlnboot -v `vgdisplay | grep "VG Name" | awk '{print $3}'`
... /dev/dsk/c0t5d0 (8/4.5.0) -- Boot Disk ...
$ setboot Primary bootpath : 8/4.5.0 Alternate bootpath : 8/4.10.0
Autoboot is ON (enabled) Autosearch is OFF (disabled)
To determine which disk the currently running kernel was booted from, use adb as follows (must be root):
# KERNEL=/stand/vmunix # set this var to the currently running kernel # echo 'boot_string/S' | adb $KERNEL /dev/mem | grep / boot_string: disc(8/4.5.0;0)/stand/vmunix
On 11.x, the path of the currently running kernel can be obtained using the kmpath command (see subject 8.2.4).
Subject: 5.3.6 Why does pfs_mount fail with the message 'Not Owner' when
I try to use it?
Updated: 03/28/01
This is a common problem. You (root) are probably in more than 8 groups. Run groups(1) to check.
There are two work-arounds to the problem:
+ Apply the latest PFS patch:
+ Temporarily remove root from enough groups to bring it under the limit:
Subject: 5.3.7 What's new with remote mounts and the automounter?
HP-UX 10.00 and later ships with an automounter running with a -hosts option, so it's easy to just say "/net/hostname/directory/...", and the automounter will do the rest.
If you like, you can put symbolic links in to make things easier, for example:
/x1 -> /net/x1/x1
/usr/valid -> /net/x1/valid
While this is convenient and easy to do, using explicit automount maps (ex: /home/username) is usually a better idea in terms of keeping things "tight" and maintaining server/disk independance.
Subject: 5.3.8 Why are CDROM filenames all UPPERCASE with ;1 attached? Updated: 11/20/02
CD-ROMs are generally formatted using a filesystem called ISO-9660 (aka ECMA-119), which is an update of an earlier specification called High Sierra. There are very minor differences between the two, and HP-UX supports them both. The user doesn't have to know which is which, although nobody's actually produced a High Sierra CD-ROM in many years.
ISO-9660 "file identifiers" consist of a filename, a dot, an extension, a semicolon, and a version number from 1 to 32767. The standard specifies three levels of "interchange", the strictest of which limits filenames to 8 characters, extensions to 3 characters, and the characters can be only upper-case letters, digits and underscores. The reason why the letters are all uppercase is because most CD-ROMs are encoded to the strictest interchange level.
To get rid of the semicolon and version number, and to force the filenames to lower case, mount the file system with the "cdcase" option (see mount_cdfs(1M)).
There is a widely used extension of ISO-9660 called "Rock Ridge" which adds enough file system metadata to support full POSIX file system semantics. Rock Ridge filenames are formatted similarly to ISO-9660 file identifiers -- all UPPERCASE with ;1 version numbers. Currently, 11.0 supports Rock Ridge via a patch. Other versions of HP-UX do not support Rock Ridge, except through PFS.
Rock Ridge support has recently been provided for 11.x via patches:
The Portable FileSystem (PFS) was originally developed by Young Minds, Inc. It was originally only available as a demo package, but it was eventually bundled with HP-UX, starting with release 10.10. PFS supports the following CD-ROM formats: ISO-9660, Rock Ridge, and High Sierra. As explained above, the HP-UX mount command currently only supports ISO-9660 and High Sierra.
You must have network loopback, and networking in general, configured before running PFS on HP-UX. The command 'netstat -rn' shows the network routing tables; the entry 'lo0' is for the loopback interface. To enable network loopback (if it is not already enabled), add the line:
LOOPBACK_ADDRESS=127.0.0.1
to the file /etc/rc.config.d/netconf.
PFS is RPC-based and offers the some features that NFS provides, which means that a CD-ROM can be exported over your network without going through NFS. However, PFS does require that the nfs.core and nfs.client subsystems are both running. To start these, make sure NFS_CLIENT=1 in /etc/rc.config.d/nfsconf then run:
# /sbin/init.d/nfs.core start
# /sbin/init.d/nfs.client start
Note, using these init scripts to start NFS will ensure that rpcbind, which PFS relies on, is also started.
NOTE: On 10.20 or 11.00, you must install a patch prior to running PFS, or
you might not be able to eject the CD-ROM after unmounting it. This problem is fixed in 11i. The patches are: o 10.20: PHCO_15453 o 11.00: PHCO_16438
All Oracle[R] installation CDROM's are RockRidge-formatted, and so must be mounted via PFS.
To use PFS to mount a RockRidge CDROM:
will be mounted (e.g. /rr_cdrom)
# nohup pfs_mountd & # nohup pfsd 4 &
Alternatively, these daemons can be started from an rc script; see question 5.3.9.
4) Mount the drive with the command:
pfs_mount <device> | <mount_dir> Or unmount it with:
pfs_umount <device> | <mount_dir> Where <device> and <mount_dir> are the same as in 2).
The CD-ROM should be now readable with long and mixed-case filenames.
For HP-UX 10.01 and earlier, you can install a patch:
These add a modification to the CDFS code which can translate all mounted CDROMs (not selectively) to accomplish the same task. This patch adds no additional filesystem support, such as POSIX or the RockRidge Extensions.
On 10.20 and later systems, for ISO-9660 CDs that contain all-uppercase 8.3 filenames (ie - MS-Windows CDs), it is not necessary to use PFS. Instead use the mount command's "-o cdcase" option. See mount_cdfs(1M) for more information.
HP-UX cannot read Joliet, video, or audio discs without the use of 3rd-party software.
Subject: 5.3.9 How can I start the PFS daemons automatically at system
startup?
Updated: 11/20/01
Create a pfs rc script, and associated config file, as follows:
===== CUT FROM HERE - PASTE TO /sbin/init.d/pfs =====
#!/usr/bin/sh
#
# pfs startup: Startup and kill script for the PFS file server
#
PATH=/sbin:/usr/sbin:/usr/bin
export PATH
if [ -r /etc/rc.config.d/pfs ] ; then
. /etc/rc.config.d/pfs
fi
# return pid of the named process(es)
findproc() {
pid=`ps -e |grep "$1" |sed -e 's/^ *//' -e 's/ .*//'`
echo $pid
}
stat_pfs_fc()
{
PFSD=`ps -ef|grep pfsd|grep -v grep|head -1|awk '{print $2}'` PFSM=`ps -ef|grep pfs_mount|grep -v grep|head -1|awk '{print $2}'` }
kill_pfsd_fc()
{
for PID in `ps -ef | grep pfsd | awk '{print $2}'` ; do
if [ -n $PID ] ; then kill $PID 1>>/dev/null 2>>/dev/null fi
done
}
kill_pfsmount_fc()
{
for PID in `ps -ef | grep pfs_mount | awk '{print $2}'` ; do
if [ -n $PID ] ; then kill $PID 1>>/dev/null 2>>/dev/null fi
done
}
case "$1" in
"start_msg")
echo "Starting PFS Daemons"
;;
"start")
if [ "$RUN_PFS_SERVER" -ne 0 ] ; then
stat_pfs_fc if [ "${PFSD}x" = "x" ] ; then echo "starting pfs_mountd" /usr/sbin/pfs_mountd -D$PFS_DAEMONS & else echo "pfsd is already running with PID $PFSD" echo "please stop and restart if necessary" fi if [ "${PFSM}x" = "x" ] ; then echo "starting pfsd" /usr/sbin/pfsd $PFS_DAEMONS & else echo "pfs_mount is already running with PID $PFSM" echo "please stop and restart if necessary" fi exit 0
fi
exit 2
;;
"stop_msg")
echo "Terminating PFS Daemons "
;;
"stop")
kill_pfsd_fc
kill_pfsmount_fc
kill_pfsd_fc
kill_pfsmount_fc
;;
stat*)
stat_pfs_fc
if [ "${PFSD}x" = "x" ] ; then
echo "pfsd is not running"
else
echo "pfsd is running"
fi
if [ "${PFSM}x" = "x" ] ; then
echo "pfs_mount is not running"
else
echo "pfs_mountd is running"
fi
;;
*)
echo "Bad or missing arguments..."
echo
echo "Usage: $0 stop|start|start_msg|stop_msg|status"
;;
esac
exit 0
===== END CUT =====
# chmod 555 /sbin/init.d/pfs
# chown bin:bin /sbin/init.d/pfs
# ln -s /sbin/init.d/pfs /sbin/rc2.d/S901pfs
# ln -s /sbin/init.d/pfs /sbin/rc1.d/K099pfs
===== CUT FROM HERE, PASTE TO /etc/rc.config.d/pfs =====
#
# pfs configuration: set to a non-zero value to
# initiate pfsd and pfs_mountd at run_level 2
#
# Installed at /etc/rc.config.d/pfs
#
RUN_PFS_SERVER=1
# Set the number of PFS daemons to run
PFS_DAEMONS=4
===== END CUT =====
# chmod 444 /etc/rc.config.d/pfs
# chown bin:bin /etc/rc.config.d/pfs
Subject: 5.3.10 Where can I get updated disktab entries for third-party
disks?
Updated: 04/20/01
Disktabs are obsolete for HP-UX 10.00 and later. For HP-UX 9.x and earlier, see:
Installing patches PHCO_5236, PHCO_6819, PHCO_7253, and PHCO_7461 will give you the latest and greatest HP-provided disktab entries for 9.x.
Subject: 5.3.11 How can I determine whether a disk is bootable? Added: 08/29/01
To display the different bootstrings for a disk:
# lifls <rawdevice>
For example:
# lifls /dev/rdsk/c0t6d0
A bootable disk reports something like:
ISL AUTO HPUX PAD LABEL
While a non bootable disk reports:
lifls: Can't list /dev/rdsk/c0t6d0; not a LIF volume
To show the content of the bootentries:
# lifcp <blockdevice>:<STRING> -
For example:
# lifcp /dev/dsk/c0t6d0:AUTO -
hpux
For further information on LIF, refer to lif(4).
Subject: 5.3.12 How do I defragment my filesystems? Added: 05/02/02
VxFS filesystems can be defragmented using the fsadm command. However, the online reorganization and online resize features of fsadm are enabled only with the HP OnLineJFS optional product.
Here are the relevant options:
-D Report on directory fragmentation. If specified in conjunction with the -d option, the fragmentation report is produced both before and after the directory reorganization. -d Reorganize directories. Directory entries are reordered to place subdirectory entries first, then all other entries in decreasing order of time of last access. The directory is also compacted to remove free space. -E Report on extent fragmentation. If specified in conjunction with the -e option, the fragmentation report is produced both before and after the extent reorganization. -e Reorganize extents. Minimize file system fragmentation. Files are reorganized to have the minimum number of extents.
An example:
# fsadm -dDeE /var
See fsadm_vxfs(1M) for further details.
No commands are available for defragmenting HFS filesystems.
Subject: 5.4 Display
Subject: 5.4.1 How do I define a new terminal type? Added: 04/26/01
In HP-UX 10.0 and later, the terminfo database (/usr/share/lib/terminfo/?/*) is designed to take the place of the termcap database (/usr/share/lib/termcap). However, because of the many programs that have been written with and for the termcap database, the termcap database is still included with HP-UX. All additions and modifications to either of these databases should be done with extreme caution. These files are critical to the proper operation of your terminal.
NOTE: The terminfo database contains printer definitions, in addition to
terminal definitions.
To convert one or more termcap entries to terminfo source format, use the captoinfo(1M) command:
$ captoinfo termcap_entry.txt >terminfo_entry.txt
To compile a terminfo source file, and add the compiled entry to the terminfo database, use the tic(1M) command:
# tic terminfo_entry.txt
If you must have both termcap and terminfo terminal descriptions, keep the terminfo description only, and use infocmp -C to get the termcap descriptions. This is recommended because the terminfo entry will be more complete, descriptive, and accurate than the termcap entry possibly could be.
If you have been using cursor optimization programs with the -ltermcap or -ltermlib option in the cc command-line,,,,,, those programs will still be functional. However, these options should be replaced with the -lcurses option.
Richard S. Shuford maintains an archive of video terminal information. The archive is a collection of information concerning character-cell video-display terminals, serial-line remote-graphics terminals, and software that emulates them. The URL is:
Subject: 5.4.2 How can I change the video mode on my workstation? Added: 06/17/02
Use the following command:
# /opt/graphics/common/bin/setmon
setmon is a program that allows you to change video formats. When you run setmon, it will print a table of available formats. The first number on each line is an index. Enter the index number for the entry you want to use and setmon will change the card to match. The change can be either temporary (until next boot) or permanent. Similar functionality is available in sam. The -h option gives limited help.
Subject: 5.5 Kernel Configuration
Subject: 5.5.1 How can I tell if I have a 32-bit or 64-bit kernel? Added: 04/19/01
First off, in all versions of HP-UX prior to 11.00, the kernel is always 32-bit. That being said, on 11.x systems, there are several ways to determine whether you're running a 32 or 64 bit kernel...
$ getconf KERNEL_BITS
$ file /stand/vmunix /stand/vmunix: PA-RISC1.1 executable ---> 32-bit /stand/vmunix: ELF-64 executable object file ---> 64-bit
Subject: 5.5.2 How do I determine if a system supports a 32 and/or a
64-bit kernel?
Added: 09/13/01
$ getconf HW_CPU_SUPP_BITS
32 ---> system supports only 32-bit 32/64 ---> system supports both 32 and 64-bit 64 ---> system supports only 64-bit
The following summarizes the 11.00 implementations supported on HP9000 Servers:
Dx20/x30/x50/x60
(Dx70/Dx80 supports 64-bit only w/ Firmware rev. 38.30+) (D390 supports 64-bit only w/ Firmware rev. 38.31+) (Dx70/x80/D390 require XSW 9808+ to run 64-bit) and provide NO support for any EISA cards!)
The following summarizes the 11.00 implementations supported on HP9000 Workstations:
Subject: 5.5.3 Where can I find detailed documentation of the various
kernel parameters?
Added: 01/22/03
The following URLs provide documentation for kernel parameters on 11.00 and 11i:
Additionally, in 11.22 and later, each kernel parameter has its own manpage in section 5. These generally contain greater detail than the above URLs and much of it is also applicable to 11.00, 11.11, and/or 11.20. These manpages can be viewed online at:
Subject: 5.6 Monitors, Diagnostics, and Performance
Subject: 5.6.1 How can I look at what my system is doing? Updated: 04/08/01
The best tool for monitoring your system is HP GlancePlus. In the U.S. call 800.237.3990 for a trial version. Outside the U.S. contact your HP sales representative. HP sells other performance tools as well including HP Performance Collection Software, HP PerfRX (for long-term performance analysis of a single system), and HP PerfView which runs under OpenView (for simultaneous monitoring of a network of systems including HP-UX, Solaris[TM], and AIX[R].
A couple cheaper, but less robust, options are the sar(1M) and top(1) commands.
On 9.x systems, you can use /usr/contrib/bin/monitor.
Subject: 5.6.2 What happened to the sysdiag command? Updated: 03/27/01
For HP-UX 10.01 and later, the HP-UX Online Diagnostic System, of which sysdiag(1M) was a part, has been replaced with the HP-UX Support Tools package (HP Part No. B6191AAE). sysdiag's replacement is called Support Tools Manager (STM). See stm(1M).
The Support Tools come preinstalled on HP9000 systems purchased on or after May 1999. Note, the SD bundle name for Support Tools is 'OnlineDiag'. For older systems, the latest release of Support Tools can be downloaded, free of charge, from the "network & system administration" section of <http://software.hp.com/>. For Support Tools documentation, see <http://docs.hp.com/en/diag.html>.
Subject: 5.6.3 How can I improve overall system performance? Updated: 05/03/02
There are, of course, many answers to this question. Many people have noticed that HP's conservative choices in some configuration areas affect performance, especially as compared to Solaris. A couple examples:
HP-UX by default makes all file systems I/O synchronous. Sun[R], by contrast, defaults to asynchronous I/O and depends on the syncer. Changing this parameter's value from 0 to 1 can significantly increase write speeds, BUT at the risk of losing data in a system crash. You can change this parameter using SAM.
Similar to local writes, NFS writes to a filesystem exported from an HP-UX system are synchronous by default. Add the async option to your /etc/exports if you want to change that, but be sure to carefully read the exports(4) manpage first.
An abundance of performance tuning tips are provided by HP in the following tuning guides:
Subject: 5.7 Networking and Communications
Subject: 5.7.1 How can I change the order of hostname resolution? Updated: 03/22/01
Edit /etc/nsswitch.conf. See nsswitch.conf(4).
Subject: 5.7.2 How can I track network packets?
TRACING - Trace all packets seen by the device driver on the HP nodes,
except diskless packets. Trace packets sent by the node, or addressed to the node.
Network tracing can be done with nettl(1M). nettl can only be used by the superuser, so su to root before proceeding.
nettl -tn all -e ns_ls_ip -size 1024 -tracemax 99999 -f /tmp/raw
This will trace packets in, packets out, and loopback packets at the IP
Layer (ns_ls_ip). If you need link-specific packet tracing you must specify the appropriate network driver or "-e all".
2. Stop trace as soon as an event occurs!
nettl -tf -e all
3. Format trace into a print file:
netfmt -N -n -l -f /tmp/raw.TRC0 [ -c /tmp/filter ] > /tmp/fmt0 netfmt -N -n -l -f /tmp/raw.TRC1 [ -c /tmp/filter ] > /tmp/fmt1
-N - print in "nice" format (e.g. interpret) -n - print IP addresses, not hostnames -l - do not highlight fields (for hpterm) -f - input file (nettl-generated trace data) -c - optional, use a filter file (see "filtering", below)
NOTE: netfmt takes a while to run! There will be plenty of info in
the trace file - interpretation may be necessary!
3a. Filtering. Create a filter file to tell netfmt what packets you
are interested in seeing.
E.g. only display packets to/from IP address 192.10.11.1:
filter ip_saddr 192.10.11.1
filter ip_daddr 192.10.11.1
Filter out all put NFS packets (to/from UDP port 2049)
filter udp_sport 2049
filter udp_dport 2049
Filter out all but TCP packets to/from port 25 (sendmail):
filter tcp_sport 25
filter tcp_dport 25
Filter on ethernet addresses:
filter dest 08-00-09-49-91-4a
filter source 08-00-09-49-91-4a
You can put these together (e.g. filter all NFS packets to/from IP
addr):
filter ip_saddr 192.10.11.1
filter ip_daddr 192.10.11.1
filter udp_sport 2049
filter udp_dport 2049
3b. To create timestamped 1-liner trace analysis file of all packets in
capture file:
# netfmt -N -n -l -1 -T -f /tmp/raw.TRC0 >/tmp/fmt0-1
...take note, that there is a -l (ell) and a -1 (number one) specified!
To create a timestamped 1-liner trace analysis file using a packet filter, first see information in Step #3a on creating a filter file,
# netfmt -N -n -l -1 -T -c /tmp/filterfile -f /tmp/raw.TRC0 \ >/tmp/fmt0-1f
...take note, that there is a -l (ell) and a -1 (number one) specified!
HP-UX 10.20 and 11.X can use tcpdump/libpcap as found at <ftp://ftp.ee.lbl.gov/> To select the interface to trace, one uses the -i option and gives the interface name as "/dev/dlpiN" where N is the PPA of the device. One uses lanscan to find PPAs. On 10.20, the PPA happens to be the same as the Network Management ID (NMID) and is not the same as the N in "lanN." On 11.X, the PPA happens to be the same as the Card Instance number and happens to be the same as the N in "lanN." The /dev/dlpiN specified to tcpdump/libpcap is not the same as the device file /dev/dlpiM. What actually happens is tcpdump/libcap opens /dev/dlpi and bind to PPA N. The /dev/dlpiM device files are for other uses.
Subject: 5.7.3 How to get the MAC address for a particular network
interface?
Added: 04/09/01
Run lanscan(1M).
The output will look similar to this:
Hardware Station Crd Hdw Net-Interface NM MAC HP-DLPI DLPI Path Address In State NamePPA ID Type Support Mjr 0/0/0/0 0x00306E06C47D 0 UP lan0 snap0 1 ETHER Yes 119 0/2/0/0 0x001083FB9956 1 UP lan1 snap1 2 ETHER Yes 119
The output will have one entry for each LAN card in the computer. The second field ("Station Address") is the MAC address.
To get the MAC addresses of another machine on the LAN, try the following:
$ ping {hostname} -n 1
$ arp -a | grep {hostname}
where {hostname} is the hostname or IP address of the remote machine.
The old (9.x) way to do this was by using the LLA (Link Level Access) API, which is obsolete in 10.x/11.x. The new way to do it is by using the DLPI (Data Link Provider Interface) API, LLA's replacement. For information on migrating your code from LLA to DLPI, refer to chapter one of the LLA Programming and Migration Guide (HP Part No. 98194-90053) at <http://docs.hp.com/en/98194-90053/>.
You might want to check for a "logical" MAC address, rather than the physical, if the software is going to be used in a switchover environment.
For more information on DLPI programming, refer to the DLPI Programmer's Guide (HP Part No. B2355-90139), available online at <http://docs.hp.com/en/B2355-90139/>.
To figure out what vendor made your Ethernet card based on the MAC address, check out <http://www.cavebear.com/CaveBear/Ethernet/vendor.html>.
Subject: 5.7.4 Is there a Transport Level Interface (TLI) interface to
TCP on HP-UX?
In HP-UX 10.00-10.20, a special module exists which provides XTI access over the BSD stack - TLI is not supported. TLI, for the most part after SVID 3 volume 5, has stopped evolving and is being replaced by XTI in most implementations. XTI is standardized by X/Open and the current versions from most vendors should be XPG4 compliant with some being branded as the branding test suites are made available by X/Open.
Note the reason one needs a streams-based TCP is that both TLI and XTI rely upon a streams-based module, timod, to provide specific functionality within the kernel and this module needs to be pushed upon the transport stack. Since HP-UX uses a BSD transport which is not streams-based and is therefore incapable of having a streams-based module pushed upon it, one can not run TLI/XTI directly upon it, and, hence, a special streams module was created to provide this functionality for HP-UX 10.0.
As of HP-UX 10.30, the BSD-based transport is replced by a Streams-based one. XTI no longer requires a special streams module. In the past, where one would open /dev/inet_cots to get TCP, one can open /dev/tcp and get TCP.
Subject: 5.7.5 How do I disable IP Forwarding?
For HP-UX 10.x, one uses nettune to set the variable ip_forwarding to 0. For HP-UX 11.x, one uses ndd to set the variable ip_forwarding to 0. For HP-UX 11.x, this tune can be placed in the file /etc/rc.config.d/nddconf and will then be applied automagically on every reboot.
Subject: 5.7.6 Why is ifconfig giving me errors when I try to configure
my LAN?
When I try to configure my lan device on my s700 I get the error ifconfig: no such interface - why is that?
This is because the interface's hardware state is down. The s700 machines need to be connected to a network before they can be configured with ifconfig. Add the s700 machine to the network and then reset the interface by running landiag (LAN->RESET). If no errors are reported, then you should be able to ifconfig that interface.
Subject: 5.7.7 How do I change the hostname, IP address, DNS Server, etc? Updated: 06/20/01
To change these system parameters, you should use the /sbin/set_parms sehll script. This script modifies the system configuration file /etc/rc.config.d/netconf. set_parms does not backup the netconf file, so it's a good idea to back it up yourself before running set_parms:
# cd /etc/rc.config.d
# cp -p netconf netconf.prev
To print the usage for set_parms, run the script with no arguments:
# /sbin/set_parms
After modifying netconf, set_parms will ask you whether you want to reboot the system; this is necessary in order to apply the configuration changes. You can answer "Yes, Reboot", or you can answer "No, Do Not Reboot" and reboot at a later time.
Subject: 5.7.8 How do I determine the speed and duplexity of my network
interface?
Updated: 04/19/01
Use the lanadmin(1M) tool as follows:
# echo "lan display quit" | lanadmin
The "Description" line shows the duplexity, if the network interface supports something other than half duplex. The "Speed" line shows the speed in bits per second (bps).
Subject: 5.7.9 How do I display all active Internet (TCP and UDP)
connections?
Added: 06/01/01
# netstat -anf inet
Subject: 5.7.10 How can multiple IP addresses be configured on one
interface?
Updated: 11/18/01
On 10.x, a patch can be installed that adds a new command called ifalias, allowing one to add multiple IP addresses on one interface without having to buy MC/ServiceGuard:
After installing the patch, see the ifalias(1M) manpage. The command's syntax is very straightforward:
# ifalias lanX add <address_list>
where X is the interface number, and <address_list> is the list of IP addresses you wish to alias.
It is also a good idea to install the latest ARPA Transport patch:
On 11.x, no additional patches are required, and one does not use the ifalias command. The functionality is part of the ifconfig(1M) command. For additional aliases on the same physical interface, one would do:
# ifconfig lanX:0 ...
# ifconfig lanX:1 ...
...
# ifconfig lanX:N ...
where X is the interface number. Note, 'lanX' is equivalent to 'lanX:0'.
To persist the configuration, modify /etc/rc.config.d/netconf. The format should resemble the following:
INTERFACE_NAME[0]="lan0"
IP_ADDRESS[0]=13.13.10.1
SUBNET_MASK[0]=255.255.255.0
BROADCAST_ADDRESS[0]=""
INTERFACE_STATE[0]=""
DHCP_ENABLE[0]=0
INTERFACE_NAME[1]="lan0:1"
IP_ADDRESS[1]=13.13.20.15
SUBNET_MASK[1]=255.255.255.0
BROADCAST_ADDRESS[1]=""
INTERFACE_STATE[1]=""
DHCP_ENABLE[1]=0
Again, it is a good idea to install the latest ARPA Transport patch:
HP's MC/ServiceGuard product also allows you to configure multiple IP addresses on one interface, using the cmmodnet command which adds IP addresses to existing interfaces. For example:
# cmmodnet -a -i 15.13.169.16 15.13.143
Where -a is add, -i 15.13.169.16 is the IP address to add, and 15.13.143 is the subnet on which to add it. The cmmodnet command (via the ioctl()s) then figures out which interface the subnet is currently on and adds the new IP address to that interface.
Similar functionality for HP-UX 9.x can be obtained using the VIF kernel driver by Steinar Haug <sthaug@nethelp.no>. For more info, see:
Subject: 5.7.11 How can I enable the LAN interface on a 700?
This can be problem when the LAN isn't connected at boot time. To resolve the problem, use the 'reset' command in 'landiag'.
Subject: 5.7.12 Where can I get STREAMS for HP-UX? Updated: 03/30/01
STREAMS/UX is included with and fully supported on HP-UX 10.00 and later.
For HP-UX 9.x, STREAMS/UX was a product that could be purchased separately. STREAMS/UX is based on the OSF/1[R] streams code, which in turn is based on streams code from Mentat.
The HP manual "STREAMS/UX for the HP 9000 Reference Manual" (Part No. J2237-90005) can be viewed online at:
Also, there are a number of kernel parameters for streams. An explanation of these parameters is provided online (see section 5.5.3 for more info).
Subject: 5.7.13 What version of BIND (named) comes with HP-UX? Updated: 12/11/02
HP-UX 11.20 comes with BIND version 9.2. HP-UX 11.11 comes with BIND version 8.1.2. HP-UX 11.00 comes with BIND version 4.9.6. HP-UX 10.20 comes with BIND version 4.9.3. HP-UX 10.00 comes with BIND version 4.8.3.
Use what(1) to determine what version of BIND is installed:
$ what /usr/sbin/named | grep named
/usr/sbin/named:
named 8.1.2 Tue Feb 15 06:58:53 GMT 2000
There are several patches available for BIND:
One can download a free copy of BIND 9.2.0 for 11i or BIND v8.1.2 for 11.00 from <http://software.hp.com/> ("enhancement releases" section). Note there are substantial differences between BIND 4.x and BIND 8.x/9.
Subject: 5.7.14 What version of sendmail comes with HP-UX? Updated: 12/11/02
HP-UX 11.20 comes with sendmail version 8.11.1. HP-UX 11.11 comes with sendmail version 8.9.3.1. HP-UX 11.00 and 10.20 come with sendmail version 8.7.1.1. HP-UX 10.00/01/10 come with sendmail version 5.65.
Use what(1) to determine what version of sendmail is installed:
$ what /usr/sbin/sendmail | grep version /usr/sbin/sendmail:
version.c 8.9.3.1 (Berkeley) 10/01/2000
There are several patches available for sendmail:
bunch of bug fixes
bunch of bug fixes
One can download a free copy of sendmail 8.11.1 for 11.x or sendmail v8.8.6 for HP-UX 9.x or 10.0x/10 from <http://software.hp.com/> ("enhancement releases" section). Note there are substantial differences between sendmail 5.x and sendmail 8.x.
Subject: 5.7.15 What version of NFS comes with HPUX? Updated: 01/03/02
Subject: 5.7.16 What is the difference between automount and AutoFS? Updated: 09/12/03
There are two versions of the Automounter available:
ported from SunOS 4.X. The legacy automounter supports NFS Version 2 over UDP ONLY (even on 11.x). When it runs, you see a process named "automount" running.
The AutoFS automounter supports NFS Version 2 and 3 over UDP and TCP. When it runs, you see a process named "automountd" running, and a kernel helper process called "autofs_proc". The "automount" command is used to re-read and update the AutoFS configuration. AutoFS is only available on 10.20 NFS patch versions since 1999. It is available on all 11.x NFS patch levels.
The /etc/rc.config.d/nfsconf variable AUTOFS controls if the legacy automounter is used (AUTOFS=0), or if the AutoFS is used (AUTOFS=1). You cannot run both versions simultaneously on the same host. You can change between the versions by stopping the nfs.client service, updating nfsconf, and then restarting the nfs.client service.
Subject: 5.7.17 Can I configure multiple network interfaces on the same
subnet?
Added: 05/14/01
You can configure it, but it may not do what you expect.
When two ore more interfaces are configured into the same subnet, all interfaces can recieve traffic. However, only one of them will be used for outbound traffic - either the first or last configured (ifconfig) - I can never remember which.
On 10.20, you are pretty much stuck unless you want to configure static routes pointing at each specific local interface IP to give you the outbound pattern you deisre.
On HP-UX 11.X, you can use ndd to set ip_strong_es_model to a value of 1. This will force route lookup to include the source IP address. In effect, you get per-interface routes. It also means that the system will only accept traffic to a given IP address on the interface with that same IP address configured.
Subject: 5.7.18 Does HP-UX come with a DHCP server? Added: 08/23/01
Yes, bootpd can act as a DHCP server, as well as a BOOTP server. To configure it you'll need to add client entries in /etc/dhcptab and uncomment the bootps line in /etc/inetd.conf. See bootpd(1M) for details.
5.7.19 Is there a port management tool / firewall for HP-UX? Updated: 01/23/03
Yes, for HP-UX 11.x there is HP IP Filter. It is a free add-on and is based on the public domain IP Filter package. You can find it on the HP-UX Applications CDs from March 2001 or later. Look for the following bundle:
B9901AA HP IPFilter 4.0alpha18 A.04.00
It is also available for download from:
It is recommended that you install the latest ARPA Transport patch before using IP Filter:
HP IP Filter is not available for 10.x.
You can find documentation, source code, and instructions for building IP Filter for HP-UX 11.x from source at the IP filter homepage:
Subject: 5.8 Peripheral Devices
Subject: 5.8.1 How do I use the floppy drive on my HP-UX workstation? Updated: 04/30/01
HP9000 workstations can be equipped with a 3.5" floppy drive, which enables the use of DOS-formatted 1.44 MB floppy disks. Older systems use SCSI floppy drives, newer systems use standard PC floppy drives. To use the floppy drive:
If you intend to write to the floppy disk, make sure that the write protect tab is set to WRITE (tab closed). Insert the disk into the floppy drive. To view the contents of the floppy disk enter the command:
$ dosls /dev/rfloppy/c0t1d0:
(The exact name device file depends on your machine type.) To copy files to or from the floppy disk, use the doscp command. For example:
$ doscp somefile /dev/rfloppy/c0t1d0: $ doscp /dev/rfloppy/c0t1d0:/somefile ~
For details of these commands and other related commands (dosmkdir, dosrm, etc.), consult dosif(4). To eject the floppy disk, press the button located below and to the right of the slot where you inserted the floppy disk.
The dosif commands are very slow; a faster alternative that can handle long filenames and also works with ZIP drives and similar devices is the free Mtools package, available from the HP-UX Porting and Archive Center (see 7.1.2.1) and <http://www.tux.org/pub/knaff/mtools/>.
Subject: 5.8.2 How can I format a floppy under HP-UX?
There is no HP-fully-supported way of getting an MS-DOS floppy formatted on HP-UX. (Once you have a PC-compatible floppy, the series of commands referenced in the dosif(4) manpage allow you to read and write the floppies).
However, there is a workaround. Perform the basic mediainit with the -f16 switch (this causes the floppy to bbbbbbeeeeeeeee formatted with the full 80 tracks, rather than HP's default safer-but-nonstandard 77+3spare tracks, 512-byte sectors, no sector skew: just like the most basic PC floppies). Then copy on the FAT, directory, label, and other such magic from an honest-to-goodness formatted-on-a-real-PC drive into the first N sectors. For sizes up to 1.44MB floppies, N=20 is more than enough; I don't have the values for the rarely used 2.88MB size (and I don't think the drives in the s700 handle that size anyway). This header magic should be copied off an honest-to-goodness PC floppy once with the command
# dd if=/dev/rfloppy of=/a/good/place/to/store/the/header bs=512 \ count=20
and then written back to each "cloned" floppy with the same command, reversing "if" and "of". (Slightly faster performance is possible using the variant:
# dd of=/dev/rfloppy if=/the/copied/header ibs=512 count=20 obs=9k \ conv=sync
This causes floppy I/O to be done in multiples of 9kB, i.e. one cylinder at a time.)
You should of course have two such headers, one for 720kB and one for 1.44MB floppies: lying to MS-DOS or the dos* utilities about the floppy capacity would be a bad idea. If you're writing a script to automate all this, you can determine the capacity of a floppy loaded in the drive using the following fragment of Korn shell:
kbsize=$( diskinfo -b /dev/rfloppy 2>/dev/null ) if (( $? != 0 || $kbsize == 0 )) ; then
print -u2 "$0: Wot, no media!?" rm -f core # 9.01s700 diskinfo coredumps exit 1
fi
Subject: 5.8.3 How can I get an Exabyte to work on an HP? Updated: 01/23/03
A number of Exabyte drives are supported by HP-UX, though, in some cases, the tape drive's firmware may need to be updated. Information on upgrading your tape drive to the latest firmware can be obtained here:
To determine the level of firmware installed in a tape drive, try:
# ioscan -funC tape
It is also not a bad idea to upgrade the system's SCSI tape drivers - stape (tape2 also, on 10.x). However, this will require a reboot...
Several third-party vendors of backup software (to be specific - BakBone, Computer Associates, Legato, SCH, SOPRA, and VERITAS) support certain Exabyte drives on HP-UX. For a complete listing of which vendors support which drives, see:
What about OmniBack, you may ask. Though <http://www.exabyte.com/support/online/documentation/software.cfm?id=31> indicates that HP's OpenView OmniBack II software supports Exabytes only on the Windows platform, HP does support the Exabyte 8505XL drive (internal and external) with OmniBack 2.1 and later for HP-UX systems.
Subject: 5.8.4 How can I get a stuck DDS tape out of the drive?
p.s. The dial has very little torque (ie. the tape comes out quite slowly, but you can see it move. It'll take about 2-3 minutes of spinning before the tape comes out.
Subject: 5.8.5 Do I need to terminate the internal SCSI on a 700?
According to some people, an unterminated internal SCSI on a 700 will cause interrupts which are ignored but slow down the machine. Terminate to be safe.
Subject: 5.8.6 How can I play audio CDs on an HP workstation's CD-ROM
drive?
Updated: 03/29/01
Use xmcd.
Xmcd is a full-featured CD Player utility package including xmcd, a CD Player for the X window system using the Motif graphical user interface, and cda, a command-line driven, text-mode CD Player which also features a curses-based, screen-oriented mode. Both utilities transform your CD-ROM, CD-R or CD-RW drive into a stereo CD player, allowing you to play music CDs on your computer.
A CD database feature is supported, maintaining the disc artist/title, track titles, and arbitrary text (such as band information and song lyrics). A large Xmcd database can be downloaded from the Liverpool archive; the name of the package is xmcd_cddb.
Moreover, xmcd supports CD recognition via CDDB[TM], and even supports using a proxy server to get to CDDB[TM] servers from behind a firewall.
Xmcd controls the CD-ROM drive only, and does not control the built-in audio hardware on SGI, Sun, HP and some other workstations. Thus, there is no way to make the CD-ROM play via the workstation's internal speakers, unless an external program is used to control the audio hardware.
Use headphones or high quality external amplified speakers, connected to the front jack on your CD-ROM drive. This setup should provide sound quality that is superior to the system's internal speakers.
If you are running HP-UX 10.x or later, you may need to install an "Audio Subsystem" patch from HP in order for the system to recognize the CD-ROM drive as an input source:
Xmcd is free, Open Source software, released under the GNU General Public License.
Precompiled binaries can be downloaded from the Xmcd homepage (<http://www.amb.org/xmcd/>) or the Liverpool HP-UX archive.
Subject: 5.8.7 How can I set up /dev/audio to point to the external jack
on a 700?
Alter the /dev/audio device file as follows:
crw-rw-rw- 1 root sys 57 0x208011 /dev/audio ; external jack crw-rw-rw- 1 root sys 57 0x208000 /dev/audio ; internal
speaker
The command is:
# mknod /dev/audio c 57 0x2080?? # replace ?? w/ 00 or 11
Subject: 5.8.8 How can I configure the parallel port handshake on a 700?
Check out cent(7).
Subject: 5.8.9 What are the specs of the audio hardware on the 700
series?
This is a summary of the audio features supported by the model 715, 725, 735, and 755 workstations. The 705 and 710 also have audio, but the specs are not available. The 720, 730, and 750 models DO NOT have audio.
Audio features Programmable sample rates (kHz): 8, 11.025, 16,
22.05,32, 44.1, 48 Programmable output attenuation: 0 to -96 dB in 1.5 dB steps Programmable input gain: 0 to 22.5 dB in 1.5 dB steps Input monitoring Coding formats: 16-bit linear, 8-bit mulaw, or A-law Audio inputs Line in
(not on all models) Mono microphone with 1.5V phantom power
(Editorial comment - a Sun microphone appears to work just fine.)
Audio outputs Line out (not on all models) Headphone Mono speaker jacks Built-in mono speaker Audio CODEC Crystal CS4215
Typical specifications measured on a stock 715. Values will differ only slightly on other models.
Frequency response 25 - 20,000 Hz
Input Sensitivity/Impedance
Line In 2.0 V(pk) / 47 kohms Microphone 22 mV(pk) / 1 kohm
Output Impedance (nominal)
Line out 619 ohms Headphone 118 ohms Speaker (ext) 11 ohms
Max Output Level/Impedance
Line Out 2.8 V (p-p) / 47 kohms Headphone 2.75 V (p-p) / 50 ohms Speaker (ext) 5.88 V (p-p) / 48 ohms
Signal to Noise
Line In 61 dB Line Out 65 dB Microphone 57 dB Headphone 61 dB Speaker (ext) 63 dB
THD (at nominal load)
Line In -75 dB Line Out -73 dB Microphone -73 dB Headphone -70 dB Speaker (ext) -68 dB
Subject: 5.8.10 Is there a trackball for the 700? Updated: 04/04/01
Yes, there are two options.
BKS manufactures and markets THE ORIGINAL HP M1309A HP-HIL Trackball, plug-compatible with HP's standard 3-button HP-HIL mouse (~$350):
Various MOUSE-TRAK trackballs are available for s700 HP workstations - no quad port adapter required (~$99-$325)
Subject: 5.8.11 What keyboards and mice are compatible with HP9000
workstations?
Added: 04/30/01
Michael Piotrowski has assembled a web page that lists PS/2 and USB keyboards and mice that have been reported to work on HP9000 workstations:
As for serial mice, most Logitech or Microsoft models should work. The following entry would need to be in /etc/X11/X0devices:
Begin_Device_Description
Name pcmouse.1
Use Pointer
Path /dev/tty0p0
End_Device_Description
Be sure to change the device file if needed, and chmod it to 666 (the Xserver runs as 'daemon', not 'root', and it must have read/write access to the device file).
Subject: 5.8.12 How do I change the keyboard type (e.g. from UK to German
or vice versa) after HP-UX is already installed? Updated: 12/30/03
To change the keyboard type only until the next system reboot, execute the following commands as root:
# /sbin/itemap -i -L
To persist the new keyboard type setting across system reboots, execute the following commands as root:
# rm /etc/kbdlang
# /sbin/itemap -i -L -w /etc/kbdlang
In either case, you will be prompted for the keyboard type, as you were during the OS installation.
Subject: 5.8.13 How do I ascertain which device file corresponds to my
CD-ROM or DVD-ROM drive? Added: 03/05/02
To get the path of your CD-ROM or DVD-ROM device file:
$ CDROM=`ioscan -fkn -C disk | awk '{if(match($0,"(CD|DVD)-"))\
{getline;print $1}}'`
$ echo $CDROM
To verify that this device file path is correct:
$ ioscan -k $CDROM
or, as root:
# diskinfo `echo $CDROM | sed 's:^/dev/:/dev/r:'`
Subject: 5.9 Printers and Plotters
Subject: 5.9.1 What happened to lpr?
Updated: 04/05/01
lpr is part of the BSD-style print queue system, which is being phased out over the next few years in favor of the System-V-style system. As of HP-UX 10.00, the SYSV system is bundled. Here's a quick cheatsheet:
lpr -Pvaxps -> lp -dvaxps lpq -Pvaxps -> lpstat vaxps lprm -Pvaxps ID -> cancel vaxps ID
Why would I want to switch over to the System-V-style HP-UX LP spooler?
Because you can do neat things like:
$ lp -dvaxps -odouble FILENAME
which will print double-sided, that is, on both sides of the paper, if your printer supports it.
How do I send output from nroff to HP LaserJet printers?
Try this:
$ nroff -Tlj ... | lp -onroff
Subject: 5.9.2 Why does lpstat report the printer down, even though it's
not?
You may be missing the following line in your /etc/passwd, required for the LP system to function properly:
lp:*:9:7::/var/spool/lp:/sbin/sh
Subject: 5.9.3 How can I turn off the LP banner page? Updated: 04/04/01
Depending on the type of spooler script, do either:
BSDh="-h"
The model script would now look something like:
... shift; shift; shift; shift; shift # Added the no banner option here BSDh="-h" /usr/sbin/rlp -I$requestid $BSDC $BSDJ $BSDT $BSDi $BSD1 $BSD2 ...
Subject: 5.9.4 How can I print man pages without losing the formatting? Updated: 04/07/01
To get the italic and bold fonts from the man file on a LaserJet:
$ zcat manfile.1 | nroff -man -Tlj | lp ...
On a PostScript printer (you'll need GNU groff):
$ zcat manfile.1 | groff -man -Tps | lp ...
If your man file is a complex one including tables, pipe it through 'tbl' before piping it through 'nroff'.
Some man pages like ioctl(2) may need the HP macros:
$ zcat manfile.1 | groff -t -e -C -M/usr/lib/tmac -man -Tps | lp ...
Note, on man files that are not compressed, use cat in place of zcat.
5.9.5 How can I view and print Postscript (.ps) files? Added: 07/08/02
To view PostScript files, install the GhostScript package as well as the GhostView (gv) package. Then you can use gv (an X app) to display .ps files.
To print PostScript (.ps) files, it is necessary to have a PostScript-compatible printer.
If you do have a PostScript printer, simply use the 'lp' command as follows:
$ lp foo.ps
If you do not, there are public domain programs, for example, ghostscript, that can convert PostScript to other printer languages such as PCL.
Subject: 5.10 Process Management
Subject: 5.10.1 How much memory can a process use? Updated: 04/07/01
There are three kernel parameters that control this.
The maximum user-stack segment size for a process is specified via the 'maxssiz' kernel parameter. The user-stack segment is where dynamically allocated (ie - malloc'ed) data is stored.
The maximum shared-text segment size for a process is specified via the 'maxtsiz' kernel parameter. The shared-text segment is where executable code is stored.
The maximum data segment size for a process is specified via the 'maxdsiz' kernel parameter. The data segment is where statically allocated data (ie - arrays) is stored.
The max[std]siz parameters are fences, not consumable resources. Therefore, you can set them to large values with no impact on the kernel. Their sole purpose is to prevent poorly written programs from using massive amounts of memory.
For the values of both maxssiz maxdsiz, use integers that are multiples of 4096 bytes, the system pagesize.
More information on maxdsiz, maxssiz, and other process-related kernel parameters is provided online (see section 5.5.3 for more info).
Another potential limiter is swap space. The combined virtual data space of all running processes can't exceed swap size. Run /etc/swapinfo -t and look at the "total" line. That's what you have left.
Subject: 5.10.2 Why do my processes keep dying at 64 MB memory usage? Updated: 04/08/01
You need to increase the kernel parameter "maxdsiz". By default, the per-process data space is limited to 64 MB. More information on maxdsiz can be found online (see section 5.5.3).
Subject: 5.10.3 How do I set per-process limits? Added: 09/13/01
Many system-wide per-process limits can be set by root by modifying kernel parameters. Regular users can also set some per-process limits via shell builtins. Of course, system-wide limits cannot be exceeded.
In the POSIX and Korn shells, the 'ulimit' builtin command can be used to set pre-process limits. Though both builtins have the name ulimit, their capabilities and syntax are different.
For the Korn shell (ksh), ulimit only affects the filesize limit, which defaults to 4194303, which ksh interprets to mean unlimited. See ksh(1).
For the POSIX shell (sh), there are several variables that can be set with ulimit. The 'ulimit -a' command lists all the variables that can be set. There are soft and hard limits for these variables, and some ulimit maximum values are based on certain kernel parameters:
$ ulimit -aS time(seconds) unlimited file(blocks) unlimited data(kbytes) 65536 max determined by maxdsiz stack(kbytes) 8192 max determined by maxssiz memory(kbytes) unlimited coredump(blocks) 4194303 nofiles(descriptors) 60 max determined by maxfilesHard Limit Relevant Kernel Params
$ ulimit -aH time(seconds) unlimited file(blocks) unlimited data(kbytes) 65536 stack(kbytes) 8192 memory(kbytes) unlimited coredump(blocks) unlimited nofiles(descriptors) 1024 max determined by maxfiles_lim
See also sh-posix(1).
The C shell (csh) has similar variables. These variables can be set using the csh 'limit' builtin command. See csh(1).
Subject: 5.10.4 How can I tell what files, ports, etc.. a process has
open?
Added: 11/10/01
You need to download and install lsof (LiSt Open Files), an indispensable freeware utility. The lsof homepage is:
HP-UX binaries can be downloaded from one of the below sites:
However, the author discourages using precompiled binaries, and instead recommends compiling lsof yourself on the same system on which you'll be running it.
Subject: 5.10.5 How can I get the ps command to display more than 64
characters of process command lines? Added: 01/22/03
It is finally possible on any 11.x system!
11i adds a new option -x to ps that will display up to 1K of the command line. On 11.00, this functionality can be added by installing the following patches:
Subject: 5.11 Routine Tasks
Subject: 5.11.1 How can I track log files and core files?
SAM allows you to track all standard log files and trim them if desired. It will also find all core files on a file system and allow you to get rid of them.
Subject: 5.11.2 What's a good strategy for clearing /tmp and /var/tmp? Updated: 03/29/01
Run the below shell script from root's crontab:
#!/bin/sh
DAYS=7
DIRS="/tmp /var/tmp"
find $DIRS -depth -fsonly vxfs -fsonly hfs -atime +$DAYS \
-exec rm -rf {} \;
The -depth option ensures no directory is removed before its contents, -fsonly options are to avoid attempting ttttttttto remove files beneath NFS or CDFS mountpoints that might exist.
Subject: 5.12 Software Management
Subject: 5.12.1 General Software Management
Subject: 5.12.1.1 Where can I find out more about Software Distributor
(SD-UX)?
Updated: 03/30/01
HP Software Distributor, also known as SD-UX, is used to install, update, remove, and package software on HP-UX 10.0 and later. SD-UX is often informally shortened to just SD (even though there is also an unbundled HP OpenView product called SD-OV that offers enhancements over SD-UX). All HP-UX 10.x and 11.x software is shipped on media compatible with SD.
SD offers three user interfaces:
The SD-UX manual ("Managing HP-UX Software With SD-UX") is available online:
There are also several excellent whitepapers available on SD-UX's patch-related features:
For 11.x:
For 10.x:
For additional information on SD commands and features, see the SD manual pages (start with sd(5)) and the SD GUI's online help.
Subject: 5.12.1.2 How can I tell what products have been loaded on my
system?
Use the swlist command. See swlist(1M).
Subject: 5.12.1.3 How do I safely remove software from my system?
Use the swremove command. See swremove(1M).
Subject: 5.12.1.4 How is the unique node ID used for licensing
determined?
Added: 04/16/01
Most licensing systems (LicensePower/iFOR, FLEX/lm, SentinelLM, NetLS, etc..) uniquely identify a system by the MAC address of the system's primary network interface (the interface with the lowest ID number - usually lan0). The MAC address (aka - Station Address or Physical Address) can be obtained by running lanscan, like so:
$ lanscan
HP-UX 10.x/11.x comes with the LicensePower/iFOR product, which uses only the rightmost eight bytes of the MAC address as the "target ID." This number can be obtained using the following iFOR command:
$ /opt/ifor/ls/bin/i4target -v
There is also the hardware identification number which is stored on the SPU board. This is the number that is used by HP Software Distributor to uniquely identify a system. The SPU ID can also be used on systems that have no network interface. SPU IDs can only be reset by certified HP technicians.
Subject: 5.12.1.5 What is Ignite-UX?
Added: 04/16/01
Ignite-UX is an HP-UX administration toolset to help you:
Ignite can be downloaded free of charge from:
This page also contains links to Ignite documentation, release notes, FAQ, specifications, mailing lists, and training.
Subject: 5.12.2 Patch Management
Subject: 5.12.2.1 Where do I get HP-UX patches? Added: 04/06/01
All customers with a valid software agreement are sent quarterly releases titled "Support Plus" (previously called "Extension Software"). On each CD are the latest patch bundles for ALL supported OS/platform combinations. If you are not receiving "Support Plus" CDs and would like to start receiving them, contact HP.
Note that you can get "Support Plus" on tape, but HP is encouraging folks to use CD-ROM. If you have a support contract you can call the Response Center (800-633-3600) and have the patches sent to you on tape.
For information on how to download "Support Plus" patch bundles, or individual patches, from the Internet, see question 7.1.1.1.
Subject: 5.12.2.2 How can I list all installed patches? Updated: 04/16/01
On 10.00 and later, use:
$ swlist -l product 'PH??_*'
Subject: 5.12.2.3 How can I tell what patches are in the kernel? Updated: 03/23/01
Kernel patches are required to register their presence when they are installed into the system's kernel (/stand/vmunix). The what(1) utility will list this information:
$ what /stand/vmunix | grep PH.._
You can compare the output of the above with the output of the command "swlist -l product 'PH??_*'" command.
A typical kernel patch string is in HP-UX 10.x or 11.0 looks like:
PATCH_11.00: pty.o 1.6.118.4 00/03/29 PHNE_21433
And in 11.x, patch strings look like:
mem.c $Date: 2001/01/29 17:53:59 $Revision: r11.11/1 PATCH_11.11... ...(PHKL_23250)
All patches named PHKL*, and some patches named PHNE*, are kernel patches. See question x.x.x for a description of the patch naming scheme used by HP.
Subject: 5.12.2.4 How do I get rid of old 10.x patches or superseded
patches?
Updated: 05/06/03
DO NOT USE SWREMOVE! swremove will check the scripts for the patch you ask it to remove, and happily remove whatever file you tell it to, and replace it with an earlier version of the patch from /var/adm/sw/patch/ (if one exists).
NOTE: If you have already removed previous OS version patches with swremove, you will either 1) need to restore from backup, or 2) reload the OS.
First download and install one of the following patches, which contain the HP-UX patch tools:
The patch tools come with 11.00, but you should still install patch PHCO_24347 to fix several bugs that exist in it.
The 'cleanup' tool is used to commit patches while preserving a set level of rollback, remove HP-UX 10.x patch information from the IPD, and prune superseded patches from a depot. The 'check_patches' utility checks for partially installed (split) patches, incorrect patch_state, patch attribute corruption, and objects within an archive library. The 'show_patches' tool can display the set of active or superseded patches on a system.
To remove old 10.x patches from /var/adm/sw/patch/, use the command:
# cleanup -i
Committing a patch causes rollback files associated with that patch to be deleted from /var/adm/sw/save/.
To commit all patches that have been superseded at least twice, use the command:
# cleanup -c 2
On 11.x, to commit a patch that has not been superseded, use the command:
# swmodify -x patch_commit=true <patch-name(s)>
In case you were wondering, 'cleanup -c 0' does not work.
WARNING: Once the above swmodify command has been executed, you CANNOT
roll back (remove) the patch unless you remove the associated base software that the patch modified. For this reason, I do not recommend doing it unless you desperately need to free up space under /var, and you have exhausted all other means of doing so.
Subject: 5.12.2.5 How can I install multiple patches, without having to
reboot more than once? Updated: 04/10/01
Use swcopy(1M) on each patch to copy the patch into a local depot, then use swinstall(1M) to install all patches contained in the local depot.
# swcopy -s /tmp/PHCO_12345.depot -x enforce_dependencies=false \* \
@ /tmp/my_patch_depot
# swcopy -s /tmp/PHCO_67890.depot -x enforce_dependencies=false \* \
@ /tmp/my_patch_depot
etc..
# swinstall -s /tmp/my_patch_depot -x autoreboot=true \*
The following script automates the process of creating the depot:
#!/sbin/sh
# cd to the directory where the patches are (PHxx_xxxx) and start
# this script. it will extract the patches one by one and create
# a patch-depot in $PDEPOT.
PATH=/usr/bin:/usr/sbin
PDEPOT=/tmp/my_patch_depot
for PFILE in PH*[0-9]; do
sh $PFILE
rm $PFILE
done
# It's a good habit first reading the PHxx_xxxx.text files before deleting
# them.
# rm *.text
for PFILE in PHdepot; do
swcopy -s -x enforce_dependencies=false $PWD/$PFILE \ @ $PDEPOT
done
clear
echo
"*********************************************************************"
echo " PLEASE NOTE: The Patch depot $PDEPOT has been created."
echo
"*********************************************************************"
echo "Please start swinstall with $PDEPOT as the source, and don't"
echo "forget to unregister the depot (e.g. swreg -u -l depot $PDEPOT)."
Subject: 5.12.2.6 How do I configure swlist to not display superseded
patches?
Added: 04/10/01
A new option to swlist, "show_superseded_patches", was introduced in HP-UX 11.00 via the SD-UX cumulative patch PHCO_20078. In 11.00, by default, swlist displays all installed patches, including superseded ones. In 11.10+, by default, swlist does not display superseded patches.
Assuming you have PHCO_20078, or any more recent SD-UX cumulative patch installed, you may change the default behavior of swlist in 11.00. To do so, add the following line to the file /var/adm/sw/defaults:
swlist.show_superseded_patches = false
Subject: 5.12.2.7 What is the naming convention used for HP-UX patch
names?
Added: 04/05/01
A patch name consists of the characters "PH" (Patch HP-UX), followed by a two-character type-identifier, followed by an underscore, followed by a four or five-digit number.
The currently defined patch types are:
CO - COmmands & libraries
KL - KerneL
NE - NEtworking
SS - SubSystems
An example name of a Kernel patch name would be "PHKL_23507."
Kernel patches always require a system reboot, so that the newly updated kernel can be loaded. Many Networking patches (PHNE*) also make modifications to the kernel, and hence require a reboot.
Note that the numerical portion of any given patch name is unique, among ALL patches. So there would never be a patch named "PHCO_23507", in addition to a patch named "PHKL_23507." This lends itself nicely to grepping for a particular patch (ie - to see if "PHKL_23507" is installed, one could use "swlist -l product | grep 23507"
Subject: 5.12.2.8 Where can I get OpenView patches? Added: 04/17/01
Patches for the various HP OpenView products, can be obtained at:
(registration required)
Subject: 5.13 Time
Subject: 5.13.1 How can I change the timezone? Updated: 05/03/02
The timezone is dtermined by reading the 'TZ' environment variable.
This variable is set when you execute 'set_parms timezone'. Set_parms edits the file '/etc/TIMEZONE,' which exports the 'TZ' environment variable. When you reboot after executing set_parms, the file /etc/TIMEZONE will be read and your TZ variable set to the value you specified. The value is in the format:
[:]STDoffset[DST[offset][,rule]]
For example: PST8PDT for the U.S. Pacific Time Zone
See the environ(5) manpage for a detailed description of the format.
Note, the offset for daylight savings time is supplied by the '/usr/lib/tztab' configuration file.
libc functions like ctime use the 'TZ' variable to determine the timezone.
Subject: 5.13.2 How can I print yesterday's or tomorrow's date? Updated: 07/31/01
[Using Perl]
To print yesterday's date:
$ perl -e '@T=localtime(time-86400);printf("%02d/%02d/%02d",$T[4]+1,$T[3],($T[5]+1900)%100)'
To print tomorrow's date:
$ perl -e '@T=localtime(time+86400);printf("%02d/%02d/%02d",$T[4]+1,$T[3],($T[5]+1900)%100)'
[the TZ trick]
If the system is located WEST of the Greenwich Meridian (ie - in the
Americas), you can determine tomorrow's date by temporarily subtracting
24 hours from the timezone offset, like so:
$ offset=`echo $TZ | tr -d '[A-Z+]'`
$ new_offset=`echo $offset - 24 | bc`
$ TZ=`echo $TZ | sed "s/[+-]\{0,1\}[1-9][0-9]\{0,1\}/$new_offset/` \
date +%D
Unfortunately, in this part of the world, a similar method method cannot be used to obtain yesterday's date, because, under HP-UX, the timezone offset can not be greater than +24.
If the system is located EAST of the Greenwich Meridian (ie - in Europe), you can determine yesterday's date by temporarily adding 24 hours to the timezone offset, like so:
$ offset=`echo $TZ | tr -d '[A-Z+]'`
$ new_offset=`echo $offset + 24 | bc`
$ TZ=`echo $TZ | sed "s/[+-]\{0,1\}[1-9][0-9]\{0,1\}/$new_offset/` \
date +%D
Unfortunately, in this part of the world, a similar method method cannot be used to obtain tomorrow's date, because, under HP-UX, the timezone offset cannot be less than -24.
[GNU date]
The GNU date command has a powerful -d option that the HP-UX date command
does not have. You can do things like:
$ date -d yesterday
$ date -d '2 days ago'
$ date -d '1 week ago'
$ date -d tomorrow
$ date -d '2 days'
$ date -d '1 week'
GNU date is part of the GNU sh_utils package. You can grab precompiled HP-UX binaries from the Liverpool archive.
You can write a simple (and portable) C program that does the job using the good ol' time() function:
#include <time.h>
time_t today = time(null);
time_t yesterday = today - (time_t)(24 * 60 * 60);
time_t tomorrow = today + (time_t)(24 * 60 * 60);
char date_yesterday = ctime(&yesterday);
char date_tomorrow = ctime(&tomorrow);
NOTE: Daylight Savings Time causes problems with the above code, since
there are two days in the year when this program would fail due to the fact that some days don't have 24 hours. Calling this program early in the morning, the day after a 23-hour day, will give you the day before yesterday. Calling this program late at night, on a 25-hour day would give you the same day.
Subject: 5.13.3 How can I convert a timestamp (seconds since the Epoch)
to a date/time string? Added: 04/06/01
This can be accomplished using 'adb' as follows:
echo "0d$timer=Y" | adb | tr -d '\011'
where $timer is the timestamp you wish to convert.
Subject: 5.13.4 What is the purpose of the 'timezone' and 'dst' kernel
parameters?
Added: 05/03/02
The 'TZ' environment variable and the 'timezone' and 'dst' kernel parameters are two independent features to handle timezones and daylight savings time. The former is meant to replace the latter. Unless your application programs use out-of-date system calls, you do not have to configure the 'timezone' or 'dst' kernel parameters.
According to the SAM help menu, the 'timezone' and 'dst' kernel parameters should be kept in sync with the 'TZ' variable. This was true in the past, when older system calls were used which referenced the kernel parameters. These two system calls are gettimeofday(2) and ftime(2). HP-UX applications and most third party applications do not use these system calls any more. The manpage for gettimeofday(2) states: "Programs should use this time zone information only in the absence of the 'TZ' environment variable."
As long as your application programs use standard libc functions to obtain timezone information, you do not have to set the 'timezone' or 'dst' kernel parameters.
If you still need to set these parameters, here is how to do so:
TZ_offset = 5, so timezone = 5 * 60 = 300 (Valid values range from -720 to 720)
value (valid dst values are listed in the SAM help menu for 'dst' kernel parameter)
Subject: 5.14 Users and Groups
Subject: 5.14.1 How can I tell if I need more than a 2-user license? Updated: 04/10/01
For Series 700/800 machines running HP-UX 10.20 or 11.00, this is no longer an issue, since HP is giving away unlimited user licenses! Simply go to <http://software.hp.com/> and search for "unlimited license". Then, download the UnlimUserLic bundle, and install it. No more 2-user limit!
An unlimited license is included with 11.11 and later.
For earlier HP-UX releases, there are several fundamental things to remember about HP-UX licensing:
The simple rule to remember is any ASCII terminal that is logged in counts as a user.
ASCII terminal connections can come in several different forms:
When a customer buys an X-terminal or workstation from HP or from another vendor, HP acknowledges that the customer has also bought a single UNIX license-to-use.
Therefore, the customer has the right to an unlimited number of logins and terminal windows _over_the_LAN_ to a Series 700 or Series 800 from either X-terminals or workstations. These logins can be via X terminal windows (_hpterm_ and _xterm_), telnet, rlogin, or other means.
PC's that use X-terminal emulation software such as XView each count the same as an X terminal. This is because the PC essentially becomes an X-terminal when it is running the X server software. Therefore, when a PC is running an X-terminal emulator, the PC has the right to an unlimited number of logins to an HP-UX system.
To purchase license upgrades for HP-UX 10.10 and earlier, go to <http://software.hp.com/> and search for "operating license upgrade". You'll be provided with a link to a reseller from which you can purchase upgrades.
Subject: 5.14.2 How can I set up group-based FTP access?
Updated: 04/20/01
See-Also: item 7.1.1.3
Here is how to set up ftp so that a group of users only have ftp access, they all have their own individual passwd, but they all access the same set of files (i.e., the system thinks they are all really the same ftp user). With only a slight change, you can have a group of users that only have ftp access, each with their own individual passwd, and access only to their own set of files (this is left as an exercise for the reader).
For example, in /etc/passwd:
ftpuser:*:1000:1000:FTP User:/users/ftp/ftpusers:/bin/false
and in /etc/group:
ftpgroup:*:1000:ftpuser
Note that ftpuser login is disabled (a "*" in the password field). This allows various utilities (such as "ls") to recognize files that belong to an ftp user (particularly important for backups).
3) In /users/ftp/etc, you must have a group and passwd file, of the same
format as their related system files. For example, in /users/ftp/etc/group add:
ftpgroup:*:1000:
and in /users/ftp/etc/passwd add:
ftpuser:*:1000:1000:FTP User:/ftpusers:/bin/false
Also, for each individual that you want to give access, add an additional entry. Note that these have passwords (see passwd(1) for instructions on setting passwords in this file).
george:3RgfBzfnipJPQ:1000:1000:George Smith \
(FTP User):/ftpusers:/bin/false
A few things to notice. "ftpuser" is disabled. The home directory for ftpuser is simply "/ftpusers", since anonymous ftp performs a chroot to the home directory specified for ftp in /etc/passwd (see chroot(2) and chroot(1M) for details). "george" has the same uid, gid, and home directory that ftpuser has. "george" will login as george with his own password.
4) Under /users/ftp, create a directory "ftpusers". Make this
directory with owner "ftpuser" and group "ftpgroup", with 770 permissions. This effectively prevents anonymous ftp access to this directory, since it is not world readable/writable.
That's it.
Users access the system via anonymous:
$ ftp sysname
Connected to sysname.whatever.
220 sysname FTP server
Name (something:someuser): ftp
331 Guest login ok, send ident as password.
Then, they use a sublogin to access their files:
ftp> user george
331 Password required for george.
Users are placed in whatever directory is specified as their home directory in /users/ftp/etc/passwd (relative to the chroot at /users/ftp).
To remove access, remove their passwd entry from /users/ftp/etc/passwd.
This is all documented (though poorly) in the various ftp-related manpages.
Subject: 5.14.3 Has /etc/logingroup functionality changed in 11.x? Added: 05/03/02
HP has confirmed the change from 10.x to 11.x in the setting of the group id at login time vis-a-vis /etc/logingroup.
It's not documented, but now the behavior is sort of the reverse of 10.x behavior:
10.x:
The user must execute 'newgrp' to change GID.
group in which he is listed in /etc/logingroup, without having to do a 'newgrp'.
A common trick is simply 'ln -s /etc/group /etc/logingroup' if you want membership in all groups listed in /etc/group.
11.x:
group in which he is listed in /etc/group
the groups in which he is listed in /etc/logingroup.
So, the "workaround" to get 11.x to behave as 10.x did, is simply:
# >/etc/logingroup
Now the user is now not listed in any groups in /etc/logingroup and so is only a member of the group listed /etc/passwd. I'm not sure why you'd ever want to fall back to the 10.X behavior except, maybe, legacy situations of some sort.
Subject: 5.15 X-Windows and CDE
Subject: 5.15.1 X Window System (X11)
Subject: 5.15.1.1 Where can I get X11R6? Updated: 04/09/01
Despite the fact that the top of the X(1) manpage says "X Version 11 Release 5", HP-UX 10.20 and later actually come with Release 6. If you want proof, just do a "what /usr/bin/X11/X". 10.20 comes with X11R6.1, and 11.x comes with X11R6.3. If you want to run the very latest release, you'll have to download the source from <http://www.x.org/Downloads_XWinSys.htm> and build it yourself - probably not worth the hassle.
The basic core distribution of X11R6.1.1 can also be obtained from the Liverpool archive. The package names are:
Subject: 5.15.1.2 Where can I get the missing X11 header files? Updated: 02/27/02
As you may have noticed, HP does not ship a "full" set of X11 header (.h) files. You can obtain the missing files from one of three places:
Subject: 5.15.1.3 How can I set up an HP-UX workstation as an X terminal? Updated: 01/08/01
Add the following lines to /etc/inittab:
# X server:
X0:3:respawn:env PATH=/usr/bin/X11:/usr/bin X -query <hostname>
Replace <hostname> with the hostname or IP address of the host running xdm, vuelogin, dtlogin, etc..
See Xserver(1) for additional X server options.
To prevent the login process from rapidly restarting at the console, disable getty (login) at runlevel "3".
Edit /etc/inittab, and change the line:
cons:123456:respawn:/usr/sbin/getty console console # system console to:
cons:12456:respawn:/usr/sbin/getty console console # system console
Subject: 5.15.1.4 How do I get a scroll bar on hpterms? Updated: 04/01/01
There are two ways to do this...
At the command-line, enter:
$ hpterm -sb -sl 1000 &
The second way is to execute the following series of commands, prior to running hpterm:
$ xrdb -m
HPtermscrollBar: True
HPtermsaveLines: 1000
(Ctrl-D)
You can set saveLines to 1000 or some other arbitrarily large number. Alternatively, you can set saveLines to something like "4s", which indicates four screens. You can also set the above resources in an app-default file (/usr/lib/X11/app-defaults/HPterm).
Subject: 5.15.1.5 How can I change the title in my hpterm titlebar? Updated: 03/25/01
LEN=`echo "$1\c" | wc -c`
echo "\033&f0k${LEN}D${1}\c" # set title bar name
echo "\033&f-1k${LEN}D${1}\c" # set icon name
You can stick the following lines in your .profile or .kshrc to display the system name and current directory in your hpterm title bar & icon:
if [ "$TERM" = hpterm ]; then
alias cd=Hcd
Hcd ()
{
if [ $# -ne 0 ]; then 'cd' "$@" else 'cd' fi NAME="$(uname -n):${PWD}" LEN=`echo "$NAME\c" | wc -c` # reset name of hpterm title bar & icon to $NAME echo "\033&f0k${LEN}D${NAME}\c" # set title bar name echo "\033&f-1k${LEN}D${NAME}\c" # set icon name
}
Hcd .
fi
/* Quick and dirty program to put argv[1] in the title bar of an hpterm
Tom Arons, March 1992
*/
#include <string.h>
main(argc,argv)
int argc; char **argv;
{
printf("\033&f0k%dD%s", strlen(argv[1]), argv[1]); printf("\033&f-1k%dD%s", strlen(argv[1]), argv[1]); }
Subject: 5.15.1.6 Why do my terminal windows keep going away by
themselves?
Updated: 03/31/01
You are probably using C Shell (/bin/csh) and have the autologout variable set (it is set to 60 minutes by default). Put an "unset autologout" in your .cshrc.
If you are using the Korn (/bin/ksh) or POSIX shell (/bin/sh) it is probably due to the value set for the shell variable TMOUT. Set it to 0 (infinite timeout) in your .kshrc or .profile.
Subject: 5.15.1.7 How can I get console messages to go to an hpterm? Updated: 04/01/01
You can avoid console messages writing to your graphics planes and trashing your CDE session by starting an hpterm and designating it to receive console messages, and to de-iconify, when console messages are received. Put something like this in your ~/.dt/sessions/sessionetc:
# Start up the Terminal Console as iconic, and raise it if any output hpterm -C -iconic -ls -sb -sl 256 -name Console -T Console -map \ -xrm mapOnOutputDelay:\ 30 -xrm Consoleeeeee********clientFunctions:\ -close \ -xrm *workspaceList:\ all &
Subject: 5.15.1.8 What's a good termcap entry for hpterm? Updated: 04/07/01
Although it is not supported for hpterm use, the 262x entry in /usr/newconfig/usr/share/lib/termcap will do the trick.
Subject: 5.15.1.9 My screen is wedged. What should I do?
One thing you can try is to unplug the keyboard for about 5 seconds. Note that you will have to rerun "xset -r" to get autorepeat to work after doing this.
Subject: 5.15.1.10 How can I get an X app to come up in an alternate
workspace?
$ client -xrm "*workspaceList: <name>"
Subject: 5.15.2 Common Desktop Environment (CDE)
Subject: 5.15.2.1 What happened to VUE?
VUE has been replaced with CDE, which debuted with HP-UX 10.10. Starting with 10.20, CDE became the default windowing environment, though VUE was still provided as an option. As of 11.00, VUE is no longer part of HP-UX.
The design of the CDE desktop incorporates and enhances many HP VUE features. Although the CDE desktop has a similar appearance to HP VUE, there are important differences. The differences include:
Subject: 5.15.2.2 How do I start/stop/reset CDE (dtlogin)? Added: 04/03/01
First off, to start/stop/reset CDE, you must first su to root.
To start CDE (/usr/dt/bin/dtlogin):
# /sbin/init.d/dtlogin.rc start
To stop CDE (kill the dtlogin process):
# /sbin/init.d/dtlogin.rc stop
To Reset CDE (tell the dtlogin process to reread CDE config files to incorporate any changes):
# /sbin/init.d/dtlogin.rc reset
Subject: 5.15.2.3 How can I enable/disable CDE (dtlogin)? Added: 04/03/01
To disable CDE:
To enable CDE:
Under the covers, what "dtconfig -d" and "dtconfig -e" actually do is modify the file /etc/rc.config.d/desktop, which is the config file that is read by the CDE rc script, /sbin/init.d/dtlogin.rc.
Subject: 5.15.2.4 Why does id/groups not show secondary groups in
dtterm/CDE?
Updated: 04/22/03
Under HP-UX 10.20 with CDE, if your account (at least with NIS[TM]) has multiple groups associated with it, the id/groups commands will not show the secondary groups inside a dtterm window ... and they in fact do not work. What is confusing is that they do work when you fire up an xterm. Note that /etc/logingroup is correctly symlinked to /etc/group.
Installing the latest CDE Runtime patch will correct this problem, along with numerous other defects:
Subject: 5.15.2.5 How can I improve CDE's performance? Added: 04/03/01
Performace can be substantially by disabling the 'enableMultiKeyBindings' resource as follows:
Subject: 5.15.2.6 Is there a CDE FAQ?
Added: 04/11/01
Yes, it lives at:
Subject: 5.15.2.7 When I log on to CDE, I want certain applications to
automatically start. How can this be done ? Added: 04/11/01
Create a script in ~/.dt/sessions named 'sessionetc' containing any commands you want CDE to execute at startup.
If necessary, you can also use ~/.dt/sessions/sessionexit to execute commands at CDE exit time.
Subject: 5.15.2.8 How do I get cut-n-paste to work correctly with CDE? Updated: 04/22/03
Text cut-n-paste (with the mouse buttons) does not work correctly between applications under HP-UX 10.x CDE, as delivered by HP. To fix this, set the 'enableBtn1Transfer' resource to 'False' as follows:
For 10.20, installing the latest CDE Runtime patch will fix the problem:
Subject: 5.15.2.9 Why do NCD X-terminals hang when trying to connect via
XDMCP to an HP-UX 10.20 host running CDE? Updated: 04/09/01
This is probably a language negotiation problem. Copy the file /usr/dt/config/Xconfig into /etc/dt/config, then edit it. Find the bit that reads:
##########################################################################
# To specify a default language for the display.
#
# Dtlogin*language: <lang>
and modify it so it looks something like:
##########################################################################
# To specify a default language for the display.
#
# Dtloginlanguage: <lang>
Dtloginlanguage: en_GB.iso88591
i.e. - Specify a language/locale rather than letting dtlogin use the
default value of "C", which may not be acceptable to the client.
6. DEVELOPMENT
Subject: 6.1 General
Subject: 6.1.1 What threads support is provided? Added: 04/13/01
The HP DCE package (version 1.5) shipped with HP-UX 10.x provides support for a threads package derived from The Open Group[TM]'s DCE 1.2.1 version which is based on the POSIX.4a draft 4 API and several extensions. In addition, it provides an exception support not specified in the POSIX.4a. HP-UX 10.x DCE threads are user-space threads.
For more information on DCE threads, see thr_intro(3).
HP-UX 11.x ships with DCE v1.7. In addition, 11.x provides a POSIX threads package based on the POSIX.1c-1996 standard. 11.x POSIX threads are kernel-space threads.
For more information on POSIX.1c threads, see pthread(3T).
For an in-depth look at threads, pick up a copy of the book:
"ThreadTime" by Scott J. Norton and Mark D. DiPasquale, Prentice-Hall, ISBN 0131900676, 1996.
Another valuable resource is the comp.programming.threads FAQ:
Subject: 6.1.2 What's the deal with _INCLUDE_xxxx_SOURCE?
The ANSI standard clearly states what identifiers it reserves, and says the rest are available to you, the programmer. Many "important things" like "ulong" are not specified by ANSI, so ANSI header files are not allowed by the standard to define them. Each standard supported by HP-UX (POSIX1, POSIX2, XPG2, XPG3, XPG4, AES, etc) has its own set of reserved identifiers and header files, and the convention is to require "-D_POSIX_SOURCE" (et al) to enabled their respective namespaces. Since HP could not predict what future standards would come along and claim more header files and identifiers, it proved much simpler to make the namespace as restrictive as possible unless "-D_HP-UX_SOURCE" is specified. While this has turned into one the most frequently asked of FAQs about HP-UX, at least once you learn this, you don't have to deal with inconsistencies again. Whereas, had we allowed all non-standard headers to define all non-standard symbols, you'd find identifiers randomly "disappearing" from headers over time as they were claimed by various standards.
Also check the man page for "cc -Ae"; it enables the HP-UX_SOURCE namespace.
Subject: 6.1.3 Where can I find a list of all available system calls? Added: 04/19/01
Subject: 6.1.4 How can I tell if something was built debuggable?
If the output of "/usr/contrib/bin/odump -spaces file.o" shows a space named $DEBUG$, then it was compiled with -g.
Subject: 6.1.5 Why is syslog() call not doing what i want it to?
My program looks like:
#include <syslog.h>
void main(int argc,char *argv[])
{
syslog(LOG_EMERG,"This is an emergency message\n"));
syslog(LOG_ALERT,"This is an alert message\n");
syslog(LOG_CRIT,"This is a critical message\n");
syslog(LOG_ERR,"This is an error message\n");
syslog(LOG_WARNING,"This is a warning\n");
syslog(LOG_NOTICE,"This is a notice\n");
syslog(LOG_INFO,"This is an informal message\n");
syslog(LOG_DEBUG,"This is a debug message\n");
}
It doesn't log all the messages to /var/adm/syslog - why not?
First of all, the LOG_EMERG can not be used with user processes and should return -1 (if you check the return status). This is not documented in the man page! All the other messages should appear, but your /etc/syslog.conf file might not be configured correctly. To test it, replace the /etc/syslog.conf with the following line:
*.debug /var/adm/syslog
Then do: kill -HUP `cat /etc/syslog.pid` Then run the test program and then tail the /var/adm/syslog file and you should see all the messages, ie:
Nov 23 09:02:54 orca syslogd: restart Nov 23 09:02:58 orca syslog: This is an alert message Nov 23 09:02:58 orca syslog: This is a critical message Nov 23 09:02:58 orca syslog: This is an error message Nov 23 09:02:58 orca syslog: This is a warning Nov 23 09:02:58 orca syslog: This is a notice Nov 23 09:02:58 orca syslog: This is an informal message Nov 23 09:02:58 orca syslog: This is a debug message
Subject: 6.1.6 How can I get C programs to automatically generate stack
dumps?
Here is how you get a C program automatically generate a stack dump when they abend:
U_STACK_TRACE() is an undocumented function that resides in libcl. Set up the signal handling like this:
#include <signal.h>
extern void U_STACK_TRACE();
signal(SIGSEGV, U_STACK_TRACE);
Subject: 6.1.7 HP C++ email discussion lists
Rich Rauenzahn <mailto:rrauenza@cup.hp.com> has set up majordomo based Email lists for the discussion of HP C++ compilers (both ANSI C++/aCC and Cfront/CC).
The available lists are as follows:
cxx-dev-announce is also broadcast to cxx-dev, so there is only a need to subscribe to one of the lists. The digest also includes both cxx-dev and cxx-dev-announce.
To subscribe to the list, send a message to <majordomo@cxx.cup.hp.com> with the following command in the body of the message:
subscribe list-name
For additional help/information, send a message to <majordomo@cxx.cup.hp.com> with the word "help" in the body of the message.
Subject: 6.1.8 HP-UX development email discussion lists
Rich Rauenzahn <mailto:rrauenza@cup.hp.com> has set up majordomo based Email lists for the discussion of the HP toolchain, from compilers to linkers, libraries to debuggers.
The available lists are as follows:
hpux-devtools-announce is also broadcast to hpux-devtools, so there is only a need to subscribe to one of the lists. The digest also includes both hpux-devtools and hpux-devtools-announce.
To subscribe to the list, send a message to <majordomo@cxx.cup.hp.com> with the following command in the body of the message:
subscribe list-name
For additional help/information, send a message to <majordomo@cxx.cup.hp.com> with the word "help" in the body of the message.
Subject: 6.2 Compiling and Linking
Subject: 6.2.1 Why is the default C compiler brain-dead? Updated: 04/13/01
The C compiler shipped with HP-UX is intended only to rebuild the kernel with, not for program development. To get a "real" C compiler, you have two options:
Subject: 6.2.2 How do I make Perl on HP-UX? Updated: 04/02/01
Reply like this to the Configure script's prompts:
-O
-DJMPCLOBBER
-lndbm -lm (ignore the other libraries Configure finds). You can also safely add -lBSD if you want BSD signal semantics.
n
8
NOTE: Precompiled versions of Perl 5.6.0 for 10.20 and 11.x can be
found on the Liverpool archive.
Subject: 6.2.3 How do I deal with "too many defines"?
Use the "-Wp,-Hxxxxxxx" where xxxxxxxx is the number of bytes to add to cpp's table size.
There is no equivalent in lint or cflow to the cc driver's -W flag to pass options to subprocesses like cpp. However, both lint and cflow invoke cpp via the cc driver, so you can achieve the same effect by setting the CCOPTS environment variable. For example,
CCOPTS="-Wp,-H500000"
export CCOPTS
lint large_file.c
Subject: 6.2.4 Why do I get "_builtin_va_start" undefined when I build
with gcc?
The <varargs.h> and <stdarg.h> include files define va_start in terms of this function, which is built-in on the HP C compiler.
If you're using GCC you should be picking up include files from the gcc library directory. These include files do the right thing for both GCC and HP C.
More often than not these files were never installed, or someone has placed a copy of varargs.h/stdarg.h into /usr/local/include (gcc searches there first).
When all else fails, you can replace the definition of va_start as follows, depending on whether you are using varargs or stdarg (K&R or ANSI, respectively).
#include <varargs.h>
#ifdef __hppa
#undef va_start
#define va_start(a) ((a)=(char *)&va_alist+4)
#endif
#include <stdarg.h>
#ifdef __hppa
#undef va_start
#define va_start(a,b) ((a)=(va_list)&(b))
#endif
For <varargs.h>, this replacement should always work.
For <stdarg.h>, this replacement will work unless the last fixed parameter ("b" in the call to va_start) is a structure larger than 8 bytes. Large structures are passed by reference, with the callee responsible for copying the structure to a temporary area if it will be modified. In this case, "&b" will take the address of that temporary area instead of the position in the argument list, and va_next won't work. That's why HP uses a compiler built-in.
Subject: 6.2.5 Is there some kind of problem with using FLT_MIN in ANSI
mode?
The C compiler dislikes this construct in ANSI mode:
x = FLT_MIN; /* <---- warning here */
The problem is that the ANSI mode (_PROTOTYPES) version of FLT_MIN/FLT_MAX in <float.h> end their constants with an F, which seems to upset the compiler.
The workaround is to temporarily undef _PROTOTYPES around the <float.h> inclusion:
#ifdef _PROTOTYPES
#undef _PROTOTYPES
#include <float.h>
#define _PROTOTYPES
#else
#include <float.h>
#endif
Subject: 6.2.6 Why do I get the error "Initialization:1: missing
token-sequence in `#assert'" when I compile with gcc? Updated: 04/18/01
This error is caused by the HP and GNU compilers using the -A command line option for different things.
The HP compiler uses -A to set which dialect of C the compiler expects to see in the input files, K&R (-Ac), ANSI (-Aa) or Extended ANSI (-Ae). In recent versions, Extended ANSI mode is the default. In earlier versions, K&R mode is the default.
The GNU compiler has a conditional compilation mechanism that allows questions to be asked during the compilation using the construct '#if question(answer)' and a mechanism of telling the compiler in advance the answers to questions with the construct 'assert question(answer)'. For the GNU compiler the -A optoion is equivalent to a #assert directive.
The error message above occurs when the GNU compiler gets the option -Aa intended for the HP compiler and reads it as an attempt to provide the answer to the question 'a' but the answer itself (which would appear in brackets) is missing.
The problem can be resolved by removing the -Aa option from the command line used for the compiler (check Makefiles for CC and CFLAGS settings) as the GNU compiler defaults to understanding ANSI C anyway.
Subject: 6.2.7 How can I detect the HP-UX version at compile time? Added: 05/02/02
The below macro sequence allows you to figure out the HP-UX major version number:
#include <sys/privgrp.h>
#if defined(PRIV_PSET)
#define _hpux_11i
#elif defined(PRIV_SPUCTL)
#define __hpux_11x
#elif defined(PRIV_SERIALIZE)
#define __hpux_10x
#elif defined(PRIV_SETRUGID)
#define __hpux_9x
#endif
Subject: 6.3 Porting
Subject: 6.3.1 Porting from an Earlier Release of HP-UX Updated: 01/10/03
See the HP-UX 11.x STK: Source Code Transitions page at:
Also refer to the release notes for the release of HP-UX that you are porting TO (release notes are in /usr/share/doc).
Subject: 6.3.2 Porting from Other Platforms (Solaris, AIX, etc..) Updated: 06/12/02
Subject: 6.3.3 How do I know if binaries built on a one release of HP-UX
are compatible with a different release of HP-UX? Added: 12/03/01
The general rule is binaries built on a given release of HP-UX will always run on that release and all later releases, but will never run on earlier releases. Of course, if you will be limited to the APIs provided by the release of HP-UX running on the build machine. So a binary compiled on a 10.20 system will run on 10.20, 11.00, and 11i.
Subject: 6.4 Tools
Subject: 6.4.1 Where can I get Interviews for HP-UX? Updated: 03/28/01
HP released a product called Interviews Plus in 1992, which is now officially obsolete. However, the public-domain version of Interviews can still be obtained from:
Subject: 6.4.2 Is there a disassembler included with HP-UX? Added: 01/23/03
First off, if you have the source code for the program, the best way to produce assembly code is to use cc's -S option, which writes out the assembly language code into a file with a .s extension.
Now, as for disassembling a binary...
The dis command is possibly the only XPG4 command that is not included with HP-UX.
If you simply wish to disassemble a function in a program, gdb can do this. If you don't have it in /opt/langtools/bin already, get it from <http://www.hp.com/go/wdb>. For a given executable, if you know the name of a function:
$ gdb <name of executable>
(gdb) disassem <name of function>
... disassembly produced ...
If you wish to decode machine codes yourself, I asked this question a little earlier in the week: the solution I opted for was to fork off an "adb" process and use that to disassemble. I only wanted to decode a single instruction so that is what my code does. It should be reasonably easy to send more than one command before closing the adb session if that's what you need, although I'm not sure how practical this is for large scale disassembly; Dave's suggestion of investigating the gdb source may be better in this instance. It also lacks any support for helpful annotations and symbolic names some disassemblers can add to aid understanding.
I've included my function for your information; I make no guarantees about its correctness or that it makes sufficient checks for errors:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
const char *ProcInfo::disassemble(long long unsigned int mc) {
static char result[200];
// First create a couple of pipes for the new I and O, and fork the
// process.
int fildes_in[2], fildes_out[2];
pid_t pid;
fildes_in[0] = fildes_in[1] = fildes_out[0] = fildes_out[1] = -1;
bool fail = true;
if (pipe(fildes_in) == 0 && pipe(fildes_out) == 0) {
switch (pid = fork()) { case 0: { // I'm the child, I have to setup the pipes to be stdin, // and stdout and then start adb. close(0); dup(fildes_in[0]); close(fildes_in[1]); close(1); dup(fildes_out[1]); close(fildes_out[0]); execlp("adb", NULL); // If the exec returns, we've failed. Just report the // error to the parent and exit. perror("adb"); exit(1); } default: { // I'm the parent, I'll just close the appropriate sides // of the pipe and send the request and expect an answer. // I'd rather not block on the write, but if it does I'm // not going to check. close(fildes_in[0]); close(fildes_out[1]); char command[20]; sprintf(command, "0x%X=i\n", mc); write(fildes_in[1], command, strlen(command)); int readlen = read(fildes_out[0], result, sizeof(result) - 1); result[readlen] = '\0'; if (readlen == 0) { strcpy(result, "No translation"); } // We've got an answer, let's bin the pipes and let 'adb' // tidy up for itself. close(fildes_in[1]); close(fildes_out[0]); fail = false; } case -1: { // Just drop out since the fork() call failed. break; } }
}
if (fail) {
// We've failed... let's return an error and clean up. strcpy(result, strerror(errno)); close(fildes_in[0]); close(fildes_in[1]); close(fildes_out[0]); close(fildes_out[1]);
}
// Now reformat the result to get rid of any excess space.
int len = strlen(result);
bool need_space = false;
for (int s = 0, d = 0; s != len && result[s] != '\n'; s++) {
if (isspace(result[s])) { need_space = true; } else { if (need_space && d != 0) { result[d++] = ' '; } result[d++] = result[s]; need_space = false; }
}
result[d] = '\0';
return result;
}
There are a couple 3rd-party PA-RISC disassemblers available:
A disassembler/patcher/code-explorer for PA-RISC based HP-UX systems, by Allegro Consultants, Inc. See:
+ <http://www.allegro.com/products/hp9000/avatar.hpux.info.html>
IDA Pro is a Multi-Processor Interactive DisAssembler that combines a powerful automatic analysis engine with your interactivity to achieve outstanding reverse engineering results. See:
If you are looking to decompile PA-RISC assembly code to C or some other high-level language, it can not easily be done, especially via an automated process. The problem is that with optimizing compilers, a given output of the compiler has an infinite (or thereabouts ;) number of possible source programs. The fact is, that a decompiler can produce perfectly valid C code, that makes barely any sense to normal humans.
Source Recovery has recently released a HP-UX C/C++ SOM decompiler called DOC C/C++! SOM is the file format of 32-bit PA-RISC executables. For more information, see:
Or if you want to take a shot at doing it manually, you should look over the following web sites:
7. APPS AND UTILS
Subject: 7.1.1 HP Freeware
Subject: 7.1.1.1 Patches
Updated: 04/22/03
Individual patches for HP-UX, MPE/iX, and HP firmware can be downloaded from the HP IT Resource Center (ITRC):
URL: <http://us.itrc.hp.com/>
Alt URL 1: <http://www1.itrc.hp.com/>
Alt URL 2: <http://www2.itrc.hp.com/>
Note: Go to "maintenance / support" -> "patching" -> "individual patches"
URL: <ftp://ftp.itrc.hp.com/> - or - <ftp://us-ffs.external.hp.com/>
URL: <http://europe.itrc.hp.com/>
Alt URL 1: <http://itrc.hp.com/>
Alt URL 2: <http://www4.itrc.hp.com/>
Note: Go to "maintenance / support" -> "patching" -> "individual patches"
URL: <ftp://europe-ffs.external.hp.com/>
HP-UX Support Plus patch bundles can be downloaded from the HP Software Depot web site:
There are three varieties of patch bundles available:
Subject: 7.1.1.2 Drivers
Added: 04/19/01
Drivers are normally found on the HP-UX Applications CDs.
Subject: 7.1.1.3 I heard there is a new ftpd available. Where do I get
it?
Added: 04/11/01
The "new ftpd" is WU-FTPD 2.4 ported to HPUX, with added bug and security fixes. It was released by HP in June '98, as a patch for 11.00.
WU-FTPD contains a slew of enhancements over the "legacy ftpd."
To get the new ftpd for 11.00, download and install PHNE_21936. After installing the patch, you can get information on the new features introduced by this new version of ftpd from the file:
This version of FTP has some new configuration files that can be used to take advantage of new functionality. Sample of the new configuration files are provided in /usr/newconfig/etc/ftpd. You can edit these files as per your need and copy them to the location /etc/ftpd.
NOTE: WU-FTPD has a problem with passwords starting with a '-': if a
password starts with a '-', you need to prepend another '-' to the password.
The new ftpd is not available for 10.x, and it is included with 11.10 and later.
Note, WU-FTPD 2.6.1 binaries for 10.20 and 11.00 can be downloaded from the Liverpool archive (the package name is 'wu_ftpd'). Of course, this version is not supported by HP.
Subject: 7.1.1.4 HPRC FTP Site
Added: 04/20/01
The HP Response Center (HPRC) maintains an FTP site containing a collection of unsupported tools, FAQs and white papers. The tools are NOT supported, although the author may allow email communication for bug reports. You can email bugs about the FAQs, config guides, & white papers to <hprc@hprc.external.hp.com>. General help or support is NOT available from this site.
The URL of the HPRC FTP site is:
Here are some of the more useful bits available from the HPRC site:
XVG is an LVM display program for Xwindows. It will show disk layouts, volume groups, unused space, device files, non-contiguous volumes, etc. Can be run on workstations or servers with any version of HP-UX from 9.xx and higher, and displayed on any Xwindow device including PCs with Xwindow emulators. The latest version can be downloaded at:
The pdcinfo programs allow you to retrieve PDC (PIM) information from HP computer systems. On some systems (such as the T-Class), this program can retrieve HPMC tombstone data. The latest version can be downloaded at:
The memwin_stats command is intended for usage with the new memory windows functionality. For 11.00, memory windows functionality is installed via two patches:
For future releases, memory windows is part of the core release. Download memwin_stats from:
Subject: 7.1.1.5 GNOME
Added: 12/30/03
Ximian GNOME for HP-UX is a modern, highly customizable desktop environment that runs on top of the X Window System, as an alternative to CDE. It runs on all 11.x releases of HP-UX. Binaries, source, and documentation are available at:
Note, HP does not provide support for GNOME for HP-UX.
Subject: 7.1.2 Non-HP Freeware
Subject: 7.1.2.1 The Software Porting And Archive Centre for HP-UX Updated: 01/22/03
The Software Porting And Archive Centre for HP-UX, commonly referred to as the Liverpool Archive contains over 2,100 packages ported to HP-UX 10.20, 11.00 and/or 11.20, conveniently packaged in SD-UX format.
As of June 2002, HP-UX 10.20 binaries are no longer produced by the Porting Centre for new package releases.
Send comments and porting requests to <hpux@connect.org.uk>.
URL: <http://hpux.connect.org.uk/> United Kingdom Mirrors: <http://hpux.cs.utah.edu/> Unites States <http://hpux.asknet.de/> Germany <http://hpux.cict.fr/> France <http://hpux.tn.tudelft.nl/> Netherlands <http://hpux.ee.ualberta.ca/> Canada
URL: <ftp://hpux.connect.org.uk/> United Kingdom Mirrors: <ftp://hpux.cs.utah.edu/> United States <ftp://hpux.asknet.de/> Germany <ftp://hpux.cict.fr/> France <ftp://hpux.tn.tudelft.nl/> Netherlands <ftp://hpux.ee.ualberta.ca/> Canada
Subject: 7.1.2.2 InterWorks FTP site
Updated: 04/18/01
The anonymous FTP server for what used to be InterWorks (see question 4.10.1.2). It contains lots of HP-UX utilities and information, most of which are outdated. The site also keeps the last 4-6 months of comp.sys.hp.hpux online (via an Interex member logon. An archive going back to June 1990 is available -- contact the InterWorks librarian for details. Additionally, a large (~1300 line) "HP-UX Troubleshooting Guide" is available under the Interex member logon.
Subject: 7.1.2.3 Netperf
Added: 04/04/01
Netperf is a benchmark that can be used to measure the performance of many different types of networking. It provides tests for both unidirectional throughput, and end-to-end latency. The environments currently measureable by netperf include:
Note that, though it is written and maintained by an HP employee (Rick Jones), Netperf is not an official HP product, and its use is in no way supported by HP.
Subject: 7.1.2.4 SLIP and CSLIP
Both SLIP and CSLIP come with HP-UX 10.00 and later. As of HP-UX 10.30, the PPP daemon (pppd) also handles incoming SLIP and CSLIP connections. In HP-UX 10.x, SLIP and CSLIP were handled by a program called ppl. See slip(1).
For more information on CSLIP and SLIP refer to the manual:
Subject: 7.1.2.5 PPP
Updated: 11/24/01
PPP comes with HP-UX 10.30 and later.
The PPP manual "Installing and Adminsistering PPP" (Part No. B2355-90137) can be viewed online at:
Or purchased in hardcopy form from:
Follow these steps to configure PPP on your 11.x system:
Note: It is not necessary to run this command if the modem is on
the MUX (mulitplexer) port.
19200 #B19200 HUPCL CS8 SANE ISTRIP IXANY TAB3 #B19200 SANE CS8 ISTRIP IXANY TAB3 HUPCL #login: #19200 3. Create a device file for calling into a remote console port: mksf -C tty -H 0/0/4/0 -m 0x000202 /dev/ttyd0p2 Note: For MUX cards, use SAM (System Administration Manager) or use the following command: mksf -d <mux_driver> -H <hw_path> -I <instance> \ -p <port_number> -a 2 4. Add the following line in /etc/inittab: a1:3:respawn:/usr/bin/pppd <hostname>:<remote_host_IP> netmask <netmask> idle 150 requireauth <port_device_file> 19200 Note: See the pppd(1) man page for more information. 5. Re-initialize the /etc/inittab file so that the changes will take effect: init q 6. Edit /etc/ppp/Auth against authentication of dial-up networking users: <username> <password_in_cleartext> ... ... <optional_address_restrictions> Note: Please see the ppp.Auth(4) man page for more information. 7. Next, test the ppp connection from a PC. Launch: Start --> Programs --> Accessories --> Dial-up Networking Use the same username/passwd pair that was entered into the /etc/ppp/Auth file.
As for HP-UX 9.x and 10.x, there are a couple options:
HP-UX
Unfortunately, the homepage for the HP-UX port of iij-ppp appears to no longer exist.
It is a good idea to install the latest Mux/Pty patch before using PPP:
For additional general information on PPP and SLIP, check out:
Subject: 7.1.2.6 SMTP
Added: 08/02/04
Sendmail comes with HP-UX. See item 5.7.14 for information on upgrading to a more recent version of Sendmail.
Postfix is a popular alternative to Sendmail. The Postfix homepage is:
Ralf Hildebrandt provides Postfix binaries for HP-UX at:
There are a number of other alternatives:
Subject: 7.1.2.7 POP and IMAP
Updated: 08/02/04
QUALCOMM[R], makers of the Eudora[R] email client for Macs and PCs, is currently maintaining Qpopper[TM], a modified version of Berkeley's 1.831beta popper. It can be downloaded for free (in source form) from:
The Qpopper homepage is:
When building, use the 'sysv' target for HP/UX (i.e. "make sysv").
Do NOT install popper 1.831beta (or any version of Berkeley POP). It is vulnerable to buffer overflow attacks. Use qpopper instead.
A second alternative is the free IMAP developer's kit from The University of Washington, Computing & Communications department. The kit includes sources for an imapd server, an `ms' demo client, pop2 and pop3 servers, and a C-client library. Download from:
If you are running Qmail, Exim, or Postfix as your mail server and you have maildirs configured, the best way to go is Courier IMAP, available at:
Subject: 7.1.2.8 Sudo
Added: 03/26/01
Sudo binaries can be downloaded from the Sudo FTP site (<ftp://ftp.courtesan.com/pub/sudo/binaries/>) or the Liverpool archive. The binaries on the Sudo site may be a more recent version of Sudo.
Subject: 7.1.2.9 Ntalk
Updated: 03/26/01
There are several problems with the version of Ntalk that comes with HP-UX 9.x. A patched version of the Ntalk source, ported to run on HP-UX, can be downloaded from:
Subject: 7.1.2.10 TTCP
Added: 04/19/01
TTCP (Test TCP Program) can be used to test network TCP and UDP throughput. A separate use of this tool is to create network pipes for transferring user data. Cisco routers now incorporate a version of this tool, enabling you to easily evaluate network performance. Source code and manpages are provided here for this useful tool:
NOTE: Do not confuse this with "ttcp - copy files and inform the ToolTalk
service"!!
Subject: 7.1.2.11 Free SCSI utilities for HP-UX workstations Added: 03/25/01
MDL Corporation provides several free SCSI uitlities for HP-UX and DomainOS.
Subject: 7.1.2.12 PSCREEN/uX
Added: 04/25/01
PSCREEN/uX is a screen-capture utility for HP-UX. pscreen runs on HP-UX 9.x and later, on both S800s and S700s, and assumes that you have either an HP-compatible terminal (or emulator) or hpterm.
PSCREEN can be downloaded from Allegro Consultants, Inc., at:
Subject: 7.1.2.13 GNU software
Added: 04/19/01
Check the Liverpool archive (see question 7.1.2.1) for the latest GNU packages compiled for HP-UX 10.x and 11.x.
Also, for 11.x, you can order a free Linux Porting Kit CD, which contains the HP Open Source Developer's Toolkit, from <http://software.hp.com/> (search for "linux porting").
The toolkit includes the following popular open source tools:
autoconf, automake, bash, bison, bzip2, ddd, dejagnu, diffutils, emacs, enscript, expect, fileutils, flex, gawk, gcc, gdb, gdbm, gettext, ghostscript, glib, gmake, grep, gtk+, gv, gzip, imake, inc, jpeg, lclint, less,libgd, libpng, m4, ncurses, patch, perl, python, readline, sed, tar, tcl, tcp_wrappers, tcsh, texinfo, textutils, tiff, tk, unzip, vim, xalan, xaw3d, xemacs, xerces, xpm, zip, zlib
For descriptions of each of the tools, or to download tools on an individual basis, go to:
Subject: 7.1.2.14 Web browsers
Updated: 09/12/03
HP-UX 10.20 and 11.00 come with Netscape Navigator Gold 3.01 (installed under /opt/navgold/). HP-UX 11.11 includes Netscape Communicator 4.75 (installed under /opt/netscape/).
The open source Mozilla browser will be the supported browser on HP-UX going forward. Packaged Mozilla binaries for HP-UX 11.x can be obtained from HP at:
Packaged binaries of Netscape 7.0 for 11.x, Netscape Communicator 4.8 for 11.x, and Netscape Communicator 4.75 for 10.20 can be obtained from HP at:
Microsoft no longer officially provides Internet Explorer and Outlook Express 5 for HP-UX or any other UNIX platform. For more information, see:
However, it can still be downloaded from:
Lynx binaries can be downloaded from the Liverpool archive, or the source is available at:
Subject: 7.1.2.15 Miscellaneous freeware Added: 04/16/01
URL: <ftp://ftp.lut.fi/pub/hpux/> Contents: Various HP-UX binaries (has not been updated since '94)
Subject: 7.1.2.16 RealAudio Player
Added: 05/02/02
A Helix Universal Server (aka RealServer) evaluation version can be downloaded from:
It runs on 11.x only.
Subject: 7.1.2.17 CD Burning Software
Updated: 02/04/03
Please see section 5.2.4.
Subject: 7.2 Shareware
Subject: 7.3.1 HP Commercial Software
Subject: 7.3.1.1 Where can I find release histories for various HP
software products?
Added: 11/14/01
Up-to-date release histories for the following products are available:
Subject: 7.3.1.2 Where can I find a list of all applications that are
available for HP-UX?
Added: 01/08/02
The HP-UX Application Availability Matrix shows what HP-UX Application Software is available on particular HP-UX Operating System releases. This matrix will be continuously updated at least once monthly to reflect changes in software availability:
Subject: 7.3.2 Non-HP Commercial Software
Subject: 7.3.2.1 Interex FastStart Toolbox Updated: 03/24/01
Interex is now packaging HP-UX freely available software, ported to HP-UX 11.00 in depot format, on a CD called the FastStart 11.0 Toolbox. See <http://www.interex.org/index/fstart.html> for more information.
Subject: 7.3.2.2 Is there anything remotely like the Apollo DM editor
available?
Updated: 06/27/03
HP had a product called DMX, which ran on both Domain & HP-UX, and enabled a standard "Domain-like" interface for both platforms. Unfortunately, this product is no longer available. It was replaced by VUE/vuepad, which has since been replaced by CDE/dtpad.
Nevertheless, for all you hardcore DM-junkies, there is still hope...
The ARPUS[TM]/ce[TM] editor is a full-screen, X-Windows-based editor that provides easy-to-use text editing across a variety of UNIX platforms. Developed originally for users migrating from Apollo's Domain environment, ce was modeled after the Display Manager (DM) editor. ETG has incorporated the features of the DM editor that Apollo users liked best, as well as adding new features. Some features of ce include: ceterm, multiple edit sessions, rectangular cut & paste, global bounded search and replace, coordinated mouse and text cursor control, command macros, unlimited UNDO & REDO, customized keyboard mapping, vertical and horizontal scrolling, and automatic file backup and save.
To download an evaluation copy of ce for HP-UX, go to:
A university in France also maintains a copy of the web pages at:
See the "README" file for detailed instructions.
The eval files normally expire 30-60 days from the date you downloaded them. See the "README.Pricing" file for pricing information.
For more information, contact:
Robert E. Styma
Principal Engineer
AG Communication Systems, Phoenix - A subsidiary of Lucent
Email: stymar@agcs.com
Phone: 623-582-7323
FAX: 623-581-4884
Company: http://www.agcs.com/
Personal: http://www.swlink.net/~styma
Subject: 8. MISCELLANEOUS
Subject: 8.1 How can I find the HP-UX equivalent for a given
Solaris/AIX/etc.. command? Added: 03/31/01
Rosetta Stone for UNIX (A Sysadmin's Universal Translator; or "What do they call that in this world?") provides a very nice AIX/DG-UX/FreeBSD/HP-UX/IRIX/Linux/NetBSD/OpenBSD/Solaris/SunOS/Tru64/... ...Ultrix equivalency table at:
UNIXguide.net also provides a
AIX/FreeBSD/HP-UX/Linux(RedHat)/Solaris/Tru64 equivalency table, at:
Subject: 8.2 What do I need to do to make my HP-UX system Year 2000
compliant?
Updated: 03/16/01
This isn't exactly a question burning on people's minds anymore, but the answer is to install the latest HP-UX hardware/critical patch bundle (previously known as the Indepedent Product Release (IPR) bundle). The bundle is freely available from the HP Software Depot (<http://software.hp.com/>), in the "Enhancement Releases" section.
Subject: 8.3 How do I boot into single user mode?
Press ESC to stop the auto-boot.
When the list of boot devices is presented:
b PX ISL (where X is your root disc)
And at the ISL> prompt:
HP-UX9.x: ISL> hpux -iS disc(;0)/hp-ux HP-UX-10.x: ISL> hpux -iS disc(;0)/stand/vmunix
The '-iS' are the flags to init which says come up single user. The rest of the command is what the bootprocess does automatically.
Subject: 8.4 How can I send mail to an MPE/iX HPDESK address?
For a person whose DESK address is:
JANE DOE /HP1234/XY
Ignore the subentity (XY) and use the form: jane_doe@hp1234.desk.hp.com
Send them a test message and tell them to make a note of the return address, as forming internet addresses on DESK is a little more complicated. If there is an X.400 system between you and the DESK person, what you get back may look like a very strange internet address, but it generally works.
Notice the underscore between names. Names can be first_last or last_first, but first_last is easier to remember and get correct, especially if they have initials in their name as in fred_l_doe@hpatc1.desk.hp.com. Be sure that the DESK address they give you is exactly what is reported by DESK when they send a message to themselves or look at the distribution list on a piece of mail the recipient already has to verify the address.
Subject: 8.5 How can I limit core files? Updated: 04/03/01
In the POSIX shell (/usr/bin/sh):
$ ulimit -c 0
To disable core dump generation for all POSIX shell users on the system, add the following line to your /etc/profile:
ulimit -c 0 2>/dev/null # swallow ksh error msg
In the C shell (/usr/bin/csh):
% limit coredumpsize 0
To disable core dump generation for all C shell users on the system, add the following line to your /etc/csh.login:
limit coredumpsize 0
There is no coredump limit facility available in the Korn shell (/usr/bin/ksh) or the Bourne shell (/usr/old/bin/sh).
As originally shipped, HP-UX 10.01/10/20 create a 0-byte core file if the core dump limit has been set to 0. The following patches will change the behavior to not creating a core file at all if the limit is 0 (the commonly expected behavior):
Prior to 10.01, HP-UX had no built in function to limit core file generation from the standard shells.
One way to limit core file generation is to create a directory called "core" with 000 permissions in the directory in which you expect a core dump to occur. Additionally, two programs are available (nocore and corelimit) that can be used as wrappers around other programs that you may expect to dump. And, many publicly available shells (tcsh, bash, etc..) allow core file limits. Or, you can place a link called "core" to /dev/null in the directory you expect the core dump to occur.
Here is the source for corelimit. It is completely unsupported; the Response Center will disavow all knowledge of you and your mission should you call them with a problem relating to this. Build it in the usual way (cc -o corelimit corelimit.c) and use it like so: "corelimit hpterm 0". This example will limit the core file size of all children of the hpterm process to 0.
#include <stdio.h>
#include <sys/resource.h>
#define RLIMIT_CORE 4 /* core file size */
main(argc, argv)
int argc;
char **argv;
{
int res;
struct rlimit rlp;
if (argc != 3) {
fprintf(stderr, "%s: wrong number of parameters\n", argv[0]); fprintf(stderr, "\tformat: %s command core_size\n", argv[0]); exit(-1);
}
rlp.rlim_cur = atoi(argv[2]);
res = setrlimit(RLIMIT_CORE, &rlp);
if (res < 0) {
perror("setrlimit: RLIMIT_CORE");
exit(-2);
}
system(argv[1]);
}
To start all of CDE with core dumps disabled:
Subject: 8.6 How do I disable the Caps Lock key? Updated: 04/07/01
To disable the "placement challenged" Caps Lock key on the ITF keyboard, use an xmodmap script:
Add the below lines to your ~/.dt/sessions/sessionetc:
/usr/bin/X11/xmodmap - <<'EoF'
clear lock
keycode 55 = Control_L
keycode 86 = Caps_Lock
keycode 39 = grave asciitilde guillemotleft guillemotright
keycode 71 = Escape
add Lock = Caps_Lock
add Control = Control_L
EoF
This works until logout/login, when Caps Lock toggles the control feature, even though 'xmodmap -pm' shows that Lock has no assignments. You have to restart the X server to reset completely, which can be automated by uncommenting the line:
Dtlogin*terminateServer: True
in the file {/usr,/etc}/dt/config/Xconfig.
Subject: 8.7 Why does my Korn shell login hang?
This can happen if your home directory is across an NFS mount point; you can workaround the problem by completely unprotecting (chmod 777) ~/.sh_history, or by pointing HISTFILE to somewhere local.
Subject: 8.8 How can I avoid those annoying copyright notices on login?
The following code in /etc/profile prints the copyright notice only the very first time a user logs in:
NUMLOGINS=`/etc/last -2 $LOGNAME | wc -l` [ $NUMLOGINS -lt 2 ] && cat /etc/copyright
And, for /etc/csh.login:
set NUMLOGINS=`/etc/last -2 $LOGNAME | wc -l` if ( $NUMLOGINS<2 ) cat /etc/copyright
Technically, each user will get the copyright on their first login after each time the /etc/wtmp file is pruned, but that needn't be often.
Subject: 8.9 How can I turn off quota checking?
There are a few ways to go about this:
Subject: 8.10 Why can't I start Aserver?
Often this is because "localhost" isn't configured in DNS. Try:
$ nslookup localhost
If that command fails, you will want to have an entry added to your name server(s) or /etc/hosts file for "localhost.your.particular.domain" pointing at 127.0.0.1.
Subject: 8.11 How can I get a daemon to successfully start from an rc
script?
Updated: 03/08/01
When /sbin/rc exits, all child processes, including daemons that have not yet daemonized themselves (called setsid()), will be killed.
To ensure that a process is not killed, invoke it via nohup(1). This will work for all programs, not just daemons.
Another trick is to start the command via at(1), as follows:
/usr/bin/at now <<EoF
mydaemon
EoF
Subject: 8.12 How do I convert the uname string to a model string? Updated: 04/09/01
BTW, if you're running 9.00 or later, on hardware that was released in '92 or later, you can use the model(1) command to get an expanded model string. For example:
$ uname -m
9000/829
$ model
9000/829/K400
Here are the mappings for older HP9000 Series 800 machines:
Model number on the String returned outside of the box by uname -m ============================================= default ----------> 9000/800 E25 --------------> 9000/806 E35 --------------> 9000/816 E45 --------------> 9000/826 E55 --------------> 9000/856 F10 --------------> 9000/807 F20 --------------> 9000/817 H20 --------------> 9000/827 K400 -------------> 9000/829 F30 --------------> 9000/837 G30/H30 ----------> 9000/847 I30 --------------> 9000/857 G40/H40 ----------> 9000/867 I40 --------------> 9000/877 G50/H50 ----------> 9000/887 I50 --------------> 9000/897 G70/H70 ----------> 9000/887 I70 --------------> 9000/897 G60/H60 ----------> 9000/887 I60 --------------> 9000/897 T500 -------------> 9000/891
On earlier machines, "9000/800" was returned by "uname -m" when HP-UX could not determine the model number of the machine. This generally indicated that the machine was not properly configured.
On more recent machines (As, Rs, Ls, Ns, etcx..), "uname -m" ALWAYS returns "9000/800." To ascertain the machine's model string you MUST use the model command.
Subject: 8.13 Is Perl included with HP-UX? Added: 04/09/01
Yes, HP-UX releases 10.10 through 11.10 are shipped with Perl v4.0.1.8. 11.11 comes with Perl 5.005_02. The perl executable is /usr/contrib/bin/perl. A little known gem of knowledge is that the Perl 4 exectuable that is included with 10.10 through 11.10 is statically linked! Since the binary is only 532k, you should consider the option of placing a copy in /sbin. That way, if you ever need to boot into single-user mode to do system maintenance or emergency recovery, you'll have all the power of Perl at your disposal! :-)
Perl 5.6.0 binaries for 10.20 and 11.x can be obtained from on the Liverpool archive.
Subject: 8.14 Why can't I type an '@' character?
If you do a 'stty -a' and you will see that your 'kill' character is set to '@'. You need to set your 'kill' character to be something other than the '@' character by doing something like 'stty kill '^U''. You should add this to your .profile or .cshrc file.
Subject: 8.15 Why can't I get my machine into boot admin mode?
When i reboot my workstation I do not get the "..push and hold the ESCAPE key to ..." - why?
The machine is configured in secure boot mode. To get into boot admin mode you will need to remove all bootable media (i.e. disconnect disks, LAN, etc.) and then power on - the boot will fail and you can then get to boot admin and switch off secure boot mode.
Subject: 8.16 What happened to "less"? Updated: 04/05/01
Use "more" or "pg" instead. Under HP-UX 10.00 and later, "more" is just as robust as "less". If you really want "less", you can grab it from the Liverpool archive.
Subject: 8.17 What should go in my PATH and MANPATH environment
variables?
Updated: 03/05/01
At least:
/usr/bin /usr/contrib/bin /usr/bin/X11 /usr/contrib/X11/bin /usr/contrib/bin/X11 /usr/local/bin
If you have the HP ANSI C compiler installed:
/opt/ansic/bin /opt/langtools/bin /usr/ccs/bin
And, for system management stuff:
/usr/sbin /sbin
Alternately, you can simply add the following to your .profile:
PATH=`cat /etc/PATH` # for sh or ksh setenv PATH `cat /etc/PATH` # for csh
The "/etc/PATH" file is supposed to be updated every time new software is installed under /opt/. /etc/PATH will contain everything mentioned above, except for "/usr/sbin" and "/sbin".
Simply add any additonal command directories you need. For example:
PATH="$HOME/bin:$PATH"
First pull in /etc/MANPATH (works the same way as /etc/PATH):
MANPATH=`cat /etc/MANPATH` # for sh or ksh setenv MANPATH `cat /etc/MANPATH` # for csh
Then add any additonal manual directories you need. For example:
MANPATH="$HOME/man:$MANPATH"
Subject: 8.18 Why does the 10.x/11.x cksum command produce a different
checksum than the 9.x cksum command? Updated: 04/05/01
The 9.x cksum was defective - it did not correctly implement the POSIX spec. That is understandable, because the POSIX cksum spec does not supply a test suite to easily verify an implementation is correct.
The 10.x/11.x cksum is correct. Unfortunately that means it can not match 9.x cksum.
Another implementation that did not match POSIX spec was in AIX 3.*; I haven't checked AIX 4.* or Solaris.
Other good implementations (they give the same answer as 10.x/11.x cksum):
Subject: 8.19 Can I run Linux on an HP9000 system? Updated: 04/22/02
Yes!
PA-RISC Linux is an activevly developed (and working) native port of Linux to the PA-RISC architecture, which will eventually be merged into the mainstream kernel tree and into commercial distributions. HP officially supports and endorses the project. Currently, PA-RISC Linux supports practically any HP workstation, as well as the A180 server. Support for Ls and Ns is in the works. See:
MkLinux was successfully ported to PA-RISC 1.1. This project has not been active since '97:
There is also an HP9000/300 Linux port that has been merged with the Linux/m68k kernel tree as of about Linux 2.1.119. The homepage for this effort is:
Subject: 8.20 Can I run *BSD on an HP9000 system? Added: 04/18/01
Yes!
There are HP9000 ports of both OpenBSD and NetBSD. Check out the following links:
Subject: 8.21 What happened to /usr/local? What are these /usr/contrib
and /opt directories?
Updated: 04/04/01
As of HP-UX 10.00, things have been moved around some -- probably for the better:
/opt
optional HP software packages like the ANSI C & C++ compilers and
debuggers, and the Java[TM] SDK; larger 3rd-party apps (ie - emacs,
Perl 5)
/usr/contrib
Unsupported, 3rd-party or public-domain software compiled and
maintained by the local IT group on their software depot
(ie - nn, gzip & other GNU utils)
/usr/local
workstation-unique software packages that users have installed themselves, or are local to a specific machine. This directory is world-writable (ack!).
For more information on the SVR4 filesystem layout, see hier(5).
Subject: 8.22 Is it OK to change root's shell? Updated: 04/05/01
No! root's shell has to be /sbin/sh, the default setting, or another shell that resides on the root filesystem (ie - /sbin/csh). The /usr filesystem isn't mounted in single-user mode, so changing root's shell to /usr/bin/ksh, or any other shell not on the root filesystem, can potentially cause you serious grief.
A nice compromise is to add something like the following at the very end of /.profile:
# if /usr/ is mounted, change our shell to ksh... /usr/bin/true 2>/dev/null && exec /usr/bin/ksh
Subject: 8.23 Why does HP-UX 10 generate copious "Sti_save" syslog
messages?
Updated: 04/05/01
HP-UX 10 generates a FLOOD of syslog messages that look like this:
vmunix: Warning! [82194698 ticks since boot] Sti_save:IteLock not... ...available for 60 seconds
From what I can gather, these are spurious messages than can be ignored.
One way to turn them off (any suggestions for others?) is to uncomment the "Dtlogin@grabServer: False" line in {/usr,/etc}/dt/config/Xconfig.
After this, reset CDE (see question 4.15.2), and you won't see 'em again!
Subject: 8.24 How can I tell which kernel was booted? Updated: 01/02/02
In 11.x, this can be done using the kmpath command (must be root):
# /usr/sbin/kmpath
/stand/vmunix
Prior to 11.20, the kmpath command was undocumented. The 11.20 manpage can be viewed online at:
I don't know how to do ascertain the running kernel in 10.x. If you know of a way to do it, please let me know, and I'll update this item.
Subject: 8.25 What is the equivalent of ldd under HP-UX? Updated: 04/05/01
In 10.x, you can use one of the below methods:
ldd is actually shipped with HP-UX 11.x, though, in many cases, chatr is still a good alternative.
Subject: 8.26 How do I configure a program to automatically start up or
shutdown when the system starts up or shuts down?
In 10.x and 11.00, this is documented in the following files in the /usr/share/doc directory:
As of 11i, these white papers are no longer available in the /usr/share/doc directory. However, the "10.0 File System Layout" white paper can be viewed online at:
Also refer to rc(1M), init(1M), and inittab(4).
Subject: 8.27 How can I do regular expression matching? Added: 04/13/01
First of all, refer to regexp(5) for the definitions of basic and extended regular expressions.
The following commands support basic regular expression matching:
The following commands support extended regular expression matching:
Perl supports Perl regular expressions, a superset of extended regular expressions.
Use regcomp(3C). Do not use regcmp(3X) or re_comp(3X); these are obsolescent and may be removed in a future HP-UX release.
Subject: 8.28 How can I play MP3s?
Added: 03/29/01
Use mpg123.
mpg123 is a real time MPEG Audio Player for Layers 1, 2, and 3. It can play MP3s in stereo on reasonably fast machines. mpg123 is only for non-commercial use. Precompiled binaries for 10.20 or 11.00 can be obtained from the Liverpool archive.
Subject: 8.29 How can I use audio on HP-UX 10.x/11.x without a network? Updated: 04/24/01
The problem is that audio relies on the DCE rpcd, which doesn't start if there's no network. Consequently, the audio server (Aserver) fails to start either.
You can always access /dev/audio directly, but you won't be able to use HP's audio software, such as the Audio Control Panel or the Audio Editor. Furthermore, this method is not documented by HP.
To get Aserver to work, you basically have to make the machine believe it's on a network. You have to get the lan interface up; loopback is not enough. Plugging a transceiver into the AUI port is reported to work on 715s and 712s.
Another solution is to restore /usr/audio/*, llbd and libAt.* from a 9.x backup tape and replace rpcd with a symbolic link to llbd. Then, you can use audio in much the same way as on HP-UX 9.x. The only problem is that the buttons in the audio_editor don't have any text in them, so one has to guess which one does what.
Unfortunately, SD-UX doesn't work with this configuration, which makes it
impossible to install or remove SD packages. To fix this, you have to
recreate the standard RPC symlinks - link /usr/bin/rpcd to
/opt/dce/sbin/rpcd,
and /opt/dce/sbin/rpcd to dced.
Michael Piotrowski created a page to collect solutions for this problem:
Subject: 8.30 Is there a tool to trace system calls?
Yes, for HP-UX 11.x, the tusc command provides system call tracing functionality. It is available from:
Tusc is made available by the good graces of Chris Bertin of HP.
For earlier HP-UX releases, the situation is murkier. A system call tracing program called trace is available from Interworks, as well as the Liverpool archive. However, this program only works on some systems (mostly 700s). The author, Kartik Subbarao. has declared trace obsolete in favor of tusc, and has discontinued further development and bug fixes.
Subject: 8.31 What OS capacity limits exist? Updated: 12/11/02
Physical RAM: 2 GB 3.75 GB Shared Memory: 1.75 GB 1.75 GB Process Data Space: 0.9 GB 1.9 GB # File Descriptors: 60,000 60,000 # User Ids: 60,000 60,000 CPUs: ? ? 10.20, Attribute 32-bit 11.0/11i 64-bit 11.0/11i v1.x =============================================================== Physical RAM: 3.75 GB 256 GB Shared Memory: 2.75 GB 512 GB? Process Data Space: 1.9 GB 256 GB? # File Descriptors: 60,000 60,000 # User Ids: 2,147,483,647 2,147,483,647 CPUs: 16? 32/64 Attribute 11i v2.x ====================================== Physical RAM: 1 TB Shared Memory: 2 TB? Process Data Space: 1 TB? # File Descriptors: 60,000 # User Ids: 2,147,483,647 CPUs: 128
Beginning with Release 10.10, the supported sizes for files and file systems on HP-UX have gradually increased. Below is a summary of the supported sizes for Releases 10.01 through 11i.
NOTE: Although it may be possible to create files or file systems larger than these documented limits, such files and file systems are not supported, and the results of using them may be unpredictable.
The maximum file and filesystem sizes supported by HFS are listed in the table below.
HP-UX File Filesystem Release Size Size ==================================== 10.01 2 GB 4 GB 10.10 2 GB 128 GB *10.20,11.x 128 GB 128 GB
The maximum file and file system sizes supported by the Journaled File System (JFS), also known as the VERITAS File System (VxFS), are listed in the table below.
HP-UX JFS Disk Layout File Filesystem Release Version Version Size Size ============================================================== 10.01 - Version 2** 2 GB 4 GB 10.10 - Version 2** 2 GB 128 GB 10.20 Version 3.0 Version 2 2 GB 128 GB 10.20 Version 3.0 Version 3** 128 GB 128 GB 11.00 Version 3.1 Version 2 2 GB 128 GB 11.00 Version 3.1 Version 3* 1 TB 1 TB 11.00 Version 3.3 Version 2 2 GB 128 GB 11.00 Version 3.3 Version 3** 1 TB 1 TB 11.00 Version 3.3 Version 4 1 TB 1 TB 11i Version 3.3 Version 2 2 GB 128 GB 11i Version 3.3 Version 3 2 TB 2 TB 11i Version 3.3 Version 4** 2 TB 2 TB 11i v2.x Version ? Version ? 4 TB 4 TB
** default disk layouts for particular HP-UX Releases.
On HP-UX 10.20, several patches have been introduced to prevent the creation or extension of JFS filesystems beyond the supported maximum size of 128 GB:
Corresponding patches for HP-UX 11.00 and 11i are being prepared. The patch numbers were not known when this document was written. For the latest information about available patches, see the IT Resource Center:
If you have a support contract, select Browse Support Info By Product. If you do not have a support contract, select Individual Patches to search the Patch Database. Then select HP-UX Patches, select 11.00 or 11i or 11.11 as the OS version, and search for the keyword JFS to get a list of JFS patches.
NOTE: You must register with the IT Resource Center to search the
patch database
Subject: 8.32 How can I determine how much RAM my system has? Updated: 06/14/02
If you are root, you can use adb to query the kernel:
# echo "memory_installed_in_machine/D" | adb -k /stand/vmunix /dev/mem | \ tail -1 | awk '$2 > 0 { print $2 / 256 }'
Or if /etc/dmesg is still current, you can grep it:
$ /etc/dmesg | grep "real mem" | tail -1 | \ awk '$4 > 0 { print $4 / 1048576 }'
A few more methods that can be used (as root only):
Here is a short program that will print the system's RAM size (can be run by any user):
/* mem.c - To compile: cc +DAportable -o mem mem.c */
#include <errno.h>
#include <stdio.h>
#include <sys/param.h>
#include <sys/pstat.h>
#define BYTES_PER_MB 1048576
main()
{
struct pst_static pst;
union pstun pu;
pu.pst_static = &pst;
if ( pstat( PSTAT_STATIC, pu, (size_t)sizeof(pst), (size_t)0, 0 ) != -1 ) {
printf( "Physical RAM = %ld MB\n",
(long)( (double)pst.physical_memory * pst.page_size / BYTES_PER_MB ) );
exit( 0 );
} else {
perror("pstat_getstatic");
exit( errno );
}
}
Subject: 8.33 What are the various revisions of PA-RISC? Updated: 01/23/03
1.0 32-bit '86 TS1, NS, NS1, CS1, NS2, PCx 1.1 32-bit '89 PA7000 (PCx-S), PA7100 (PCx-T), PA7150 (PCx-T+),
PA7100LC (PCx-L), PA7200 (PCx-T'), PA7300LC (PCx-L2) 2.0 64-bit '94 PA8000 (PCx-U), PA8200 (PCx-U+), PA8500 (PCx-W),
PA8600 (PCx-W+),PA8700 (PCx-W2), PA8800, PA8900
When the original PA-RISC 1.0 Architecture was designed in the early eighties, its goal was to be a single architecture that efficiently spans Hewlett-Packard's three computer lines: the HP3000 commercial minicomputers, the HP9000 technical workstations and servers, and the HP1000 realtime controllers. Before introduction, the program was codenamed SPECTRUM. At introduction in 1986, it was known as HP's Precision Architecture, HP-PA, or just PA. Subsequently, the architecture was called PA-RISC, with the first version of the architecture known as PA-RISC 1.0.
Since its introduction, the PA-RISC architecture has remained remarkably stable. Only minor changes were made over the next decade, to facilitate higher performance in floating-point and system processing. When PA-RISC 1.0 was designed, floating-point performance was not essential for the majority of the HP computer systems targeted at that time. Hence, the architecture defined floating-point support as optional coprocessor instructions, without emphasizing high performance. In 1989, driven by the performance needs of the HP9000 technical workstation line, PA-RISC 1.1 was introduced. This included additional floating-point capabilities, such as more floating-point registers, doubling the amount of register space for single-precision floating-point numbers, and introducing combined operation floating-point instructions[3]. These floating-point features enabled higher performance in technical computations, including graphics, where single-precision floating-point numbers are extensively used.
In the system area, PA-RISC 1.1 architectural extensions were made to speed up the processing of performance-sensitive abnormal events, such as misses in the address translation cache (also called the TLB). Such architectural changes are only visible to the operating system, and do not affect any applications programs. Minor system changes have been added to the three editions of the PA-RISC 1.1 architecture, known as editions 1, 2 and 3, respectively, of the architecture manual.
PA-RISC 1.1 also added bi-endian support. Previously, PA-RISC 1.0 was a consistently big endian machine, but in PA-RISC 1.1, support for little endian was also provided by means of a mode bit.
The PA-RISC 2.0 architecture represents the first time that user-visible changes have been made to the core integer architecture. In addition to support for 64-bit integer data and 64-bit flat addresses, other user-visible changes have also been added to enhance the performance of new user workloads. For example, Multimedia Acceleration eXtensions (MAX) have been added to speedup multimedia processing by software running on the main processor, rather than on separate optional hardware. Some additional floating-point and system-level changes have also been added.
(Excerpt from "64-bit and Multimedia Extensions in the PA-RISC 2.0 Architecture" by Ruby Lee <rblee@ee.princeton.edu> and Jerry Huck <huck@cup.hp.com>, (c)Hewlett-Packard, 01/15/97)
You can expect programs compiled on a particular release of HP-UX to run on that release, or on any later release, but NOT on an earlier release. Hence, a program compiled on 11.00 can not be expected to run on 10.20.
The HP compilers' scheduling option, +DS xxx, does not affect the compatibility of the generated object code. It affects only how the optimizer schedules instructions that have long latencies, so it is usually to your advantage to schedule the code for the fastest machine currently shipping, even if you are generating code for an earlier architecture.
HP will gradually transition its servers from PA-RISC to the new Itanium[TM] processor family (IPF), also known as IA-64, starting in mid 2001. The IA-64 architecture was co-developed by Intel and HP, and so it inherits many features (and instructions) from PA-RISC. PA-RISC binaries will run on IA-64 systems.
Intel's Itanium roadmap can be viewed at:
For more information on Itanium[TM], visit:
Information on transitioning to IA-64 is available as part of the HP-UX 11.x Software Transition Kit:
Subject: 8.34 How do I find the clock speed of my system's CPU(s)? Updated: 04/03/01
# echo "itick_per_usec/D" | adb /stand/vmunix /dev/mem | tail -1 itick_per_usec: 552
Subject: 8.35 How can I view/print PDF files? Added: 04/16/01
You must install the HP-UX version of Adobe Acrobat Reader, which can be downloaded for free from:
Subject: 8.36 How do I read an SGI-written tar format DDS tape?
The secret (at least in this case) is to byte-swap the tape before passing it to tar:
# dd if=/dev/rmt/0m conv=swab | tar -xvf -
Byte swapping is believed to only be necessary if the device which created the tape was a swapping one (swapping tape devices are the default on IRIX 4, but not in IRIX 5). One can use /dev/nrtapens on either system to produce tapes which are not byte-swapped. If the SGI is running Irix 5.0x and above, a large (512k) block size is used:
# dd if=/dev/rmt/0m ibs=512k obs=10k| tar -xvf -
Subject: 8.37 Is the Euro supported?
Added: 04/17/01
11i, as well as later 11.00 refresh releases, includes Euro support.
Euro support can be added to 10.20 or 11.00 by installing a set of patches. These patches are listed at:
Subject: 8.38 How can I view various Windows-format files (Word docs,
Excel spreadsheets, etc..) on an HP-UX system? Added: 04/17/01
There is an excellent product called Quick View Plus[R] that is made by IntraNet Solutions (INSo). You can purchase a single copy of Quick View Plus for HP-UX from IntraNet Solutions. The cost is $59.00 and annual support can be purchased for an additional $8.85. Support provides technical assistance and any product enhancements for a 12-month period. Call INSo if you are interested in purchasing; they accept credit cards or purchase orders:
Laura Pierce
Corporate Sales
IntraNet Solutions
800.989.9774 x2090
952.903.2090
952.829.5424 fax
<mailto:laura.pierce@intranetsolutions.com>
<http://www.intranetsolutions.com/>
Subject: 8.39 How is the system load average, as reported by the uptime
and top commands, calculated? Added: 04/17/01
The load average is the average number of processes in the queue waiting for CPU time, over the last 1, 5, and 15 minutes.
Subject: 8.40 Where can I get HP9000 firmware updates? Added: 04/19/01
Firmware updates can be downloaded from the HP ITRC (see question 4.2.1.3 for info on the ITRC). Go to:
maintenance and support ---> patching: individual patches ---> firmware
Check the "CPU patches" checkbox, before clicking the "SEARCH" button.
Subject: 8.41 Where can I look up HP part numbers? Added: 12/18/01
Go to the HP PartSurfer web site:
or purachase the HP Service Parts Information (HP-SPI) CD-ROM:
Once you know the part numbers, you can order parts from the HP Parts Direct web site:
Subject: 8.42 How can I create a /dev/zero special file? Updated: 10/14/02
Prior to 11.11, HP-UX did not come with the special device file /dev/zero. However, it is possible to create one in 11.0 using the following command:
# mknod /dev/zero c 3 4
Of course, use of the device file on an 11.0 system is unsupported by HP.
In conjunction with the dd command, /dev/zero can be used to fill a file with a given number of the '\0' (nul) character. For example, to create a 1 MB file named "foo" full of nul characters, use the command:
$ dd bs=1024k count=1 if=/dev/zero of=foo
Note the same thing can be accomplished in 10.x using the prealloc(1) command as follows:
$ prealloc foo 1048576
Note, filling a file with zeroes is not a secure way to wipe file data from disk. For this, you must use a utility such as 'shred', which is part of the GNU fileutils package.
A device file with slightly similar behavior to /dev/zero can be created on 10.x as follows:
# mknod /dev/full c 3 3
Reading from this device will always succeed and report that the requested number of bytes were read. However, no data will actually be copied to the read buffer.
Subject: 8.43 Why is tail's output truncated for large amounts of input? Added: 05/02/02
From the tail(1) manpage:
WARNINGS: Tails relative to end-of-file are stored in a 20-Kbyte buffer,
and thus are limited in length. Therefore, be wary of the results when piping output from other commands into tail.
For HP-UX 11.11, the 20K limitation is corrected by PHCO_24707. For HP-UX 11.0 and earlier, GNU tail, part of the GNU textutils package, can be used instead.
Subject: 8.44 What commands or scripts exist for gathering and summarizing
system information?
Updated: 08/14/02
If Ignite-UX is installed, the print_manifest command provides a good amount of information, including model, serial number, device info, swap & LVM info, IP and kernel parameters, and installed filesets.
# /opt/ignite/bin/print_manifest
Ignite-UX comes preinstalled on newer boxes, or the latest version can be obtained for free from:
If you're running 11.20 or later, the new machinfo command provides similar information:
# /usr/contrib/bin/machinfo
Subject: 8.45 How can I convert numbers from one base to another? Added: 05/03/02
You can use adb(1) to convert decimal to hexadecimal and hexadecimal to decimal as follows:
To convert decimal 127 to hex:
$ echo '0d127=X' | adb
You should receive the following output:
7F
To convert hex 7F to decimal:
$ echo '0x7f=D' | adb
You should receive the following output:
127
Alternatively, the 'typeset' and 'set' shell builtins can be used to do base conversions. See sh-posix(1) or ksh(1).
Subject: 8.46 What are the machine ID and serial number used for? Added: 05/03/02
The machine (or software) ID # is not the same as the system serial #. Here is my attempt at summarizing what the two #'s mean and how they can be obtained:
This number uniquely identifies a machine. It is usually 10 digits. It is used by HP and some 3rd party vendors for associating a software license with a particular machine. The number is stored on the system board and can only be changed by an HP support technician. It can be obtained using one of the following methods:
$ uname -i # standard method
$ getconf CS_MACHINE_IDENT # 11.11 and later only
# print_manifest | grep "Software ID:" # if Ignite-UX is installed # (must be root)
According to Dave Peter <dave.peter@eu.citrix.com>, some older workstations (735s for example) do not have unique machine ID #s.
I don't think this number is unique among all HP systems. I'm guessing that it's at least unique only among systems with the same model #. Unlike the machine ID #, it is not stored on the system board. In fact, on older machines and non-factory-installed machines, it is not stored anywhere on the system, even on disk.
On more recent factory-Ignited machines (As, Ls, Ns, etc..), the serial number is stored in the file '/var/opt/ignite/local/manifest/manifest.seed' You can check if the serial number is stored in this file by executing the following command as root:
# print_manifest | grep "Serial number:"
If the above command doesn't produce any output, you'll have to find the serial number the old-fashioned way. Look for it in the documents that shipped with the machine or on a sticker somewhere on the machine itself. Once you've found the serial number, use the following undocumented method to store it, along with your company's name, in the 'manifest.seed' file:
# echo 'SERIAL xxxxxxxxxx' >>/var/opt/ignite/local/manifest/manifest.seed # echo 'CUSTOMER "My Company, Inc."' \ >>/var/opt/ignite/local/manifest/manifest.seed
Now give 'print_manifest' another try. You should see the serial # and your company's name in the output.
Another command that is supposed to print the serial # on 11.11 and later is:
# getconf CS_MACHINE_SERIAL
However, I have not been able to get this command to print anything other than a blank line. It apparently does not read from the 'manifest.seed' file is used by Ignite-UX.
---
If you have a system which does not support FRU IDs (currently every system except the N- and L-Class) take a look into the predictive configuration. The serial no. should be entered there. On a V2500/V2600 you can execute the command 'jf-ccmd_info' on the TestStation.
Subject: 8.47 How can I tell what commands SAM is executing under the
hood?
Added: 07/08/02
From within SAM, select the 'View SAM Log' option to view part or all of the SAM log file at varying levels of detail. The log viewer can also be accessed by executing '/usr/sam/bin/samlog_viewer'.
Subject: 8.48 How can I view a file in octal or hexadecimal? Added: 07/08/02
For octal, use:
$ od -b file
For hexadecimal, use:
$ xd -b file
Subject: 8.49 How do I configure the kernel to write corefiles as
core.<pid>?
Added: 07/24/02
If you are using 11.00 or later, set the 'core_addpid' kernel parameter to a non-zero value. The kernel will now create corefiles as core.<pid>. SAM can be used to easily modify kernel paramters. Note, a reboot will be necessary.
Subject: 8.50 How do I analyze a system crash dump? Added: 07/24/02
The tool to read them is called q4, although you can also get some info from adb by going into the the directory and running:
# echo "msgbuf+8/s" | adb -m vmunix .
Don't forget the dot on the end :-)
If you really want to learn as much as possible for a customer about the HP-UX kernel, and so gain some insight as to what's going on inside a dump, then the best thing is to take the "Inside HP-UX" course from HP; it's course number is H5081S.
The normal way to deal with crash dumps is to have an HP support contract, and then get their Responce Center to have a look at the dump, ascertain if it's a known problem, and if so tell you which patch(es) you need to apply.
Analyzing a crash dump takes a great deal of experience, knowledge and access to the source code for HP-UX and a large data mine full of similar crash dumps. The msgbuf will say something like:
data segmentation violation
which means: the kernel made a mistake and a pointer to an integer has an odd address (must be an even address). However, this is of no use until you try to unwind why the kernel made this mistake, look at the source code to see if a fix has been made, and finally recommend a patch.
Here are a few reasons that you'll see in msgbuf (and also /etc/shutdownlog):
freeing free frag
freeing free inode
This means severe filesystem corruption exists on the disk (not to be confused with I/O errors unless the error is undetected).
HPMC
This is a hardware failure and a board will have to be replaced. Determining which board is actually easier than finding a patch for a software problem.
The vast majority of crash mistakes have been corrected through patches, so you can save your self a lot of time by applying the complete set of patch bundles from your SupportPlus CDROM. Any CD from the past year is a good choice. Or you can download the latest SupportPlus patch bundles from:
Subject: 8.51 Is HP-UX free for non-profit users (students, hobbyists,
etc..)?
Updated: 01/10/03
In the past, if you owned an HP-UX workstation (series 700) system, HP-UX 11.0 media could be obtained for free as part of HP's Easy Setup initiative. Unfortunately, since Easy Setup functionality is now built into the standard HP-UX 11.0 and 11i distributions, free media is no longer provided.
If you own a server (series 800) system, you must either purchase an HP-UX media kit from HP, or make a copy of someone else's OS media.
As for HP-UX licenses, they basically come with the hardware, though for used servers, a license transfer request form, signed by the buyer and the seller, has to be submitted to HP. For 10.20 and later, unlimited-user license upgrades can be obtained for free from HP; see 5.14.1 for details.
Subject: 8.52 Where can I obtain a free HP-UX shell account? Added: 08/14/02
The HP test drive program allows you to test drive some of the latest HP hardware running HP-UX or other HP-supported operating systems:
Subject: 8.53 How do I grep for an exact word as with "grep -w" in Linux? Added: 09/12/03
From 11.11 onwards, the -w option is supported. Otherwise, use:
$ grep -E "(^|[^[:alnum:]_])(<word_to_be_searched>)([^[:alnum:]_]|$)"
or install GNU grep and use its -w option.
Subject: 9. ACKNOWLEDGEMENTS
Subject: 9.1 Contributors
Thanks to all those who have contributed to this FAQ over the years!
And special thanks to all former maintainers of this FAQ:
Subject: 9.2 Trademarks
Adobe[R] and Adobe Acrobat[R] are trademarks of Adobe Systems, Inc.
AIX[R] is a registered trademark of IBM Corp.
ARPUS and Ce are trademarks of Enabling Technologies Group, Inc.
DLT is a trademark of Quantum Corp.
Eudora[R] is a registered trademark of the University of Illinois Board of Trustees, licensed to QUALCOMM, Inc.
HP-UX[R] and PA-RISC[R] are registered trademarks of Hewlett Packard Company.
Intel[R] is a U.S. registered trademark of Intel Corp.
Itanium[TM] is a trademark or registered trademark of Intel Corp. in the U.S. and other countries.
Java[TM], NIS[TM], and Solaris[TM] are trademarks of Sun Microsystems, Inc., in the U.S. and other countries.
Linux[R] is a registered trademark of Linus Torvalds.
Oracle[R] is a registered U.S. trademark of Oracle Corp., Redwood City, CA.
The Open Group[TM] and X Window System[TM] are trademarks of the Open Software Foundation in the U.S. and other countries.
OSF/1[R], Motif[R], and UNIX[R] are registered trademarks of the Open Software Foundation in the U.S. and other countries.
POSIX[TM] is a trademark of the The Institute of Electrical and Electronics Engineers, Inc.
QUALCOMM[R] is a registered trademark and Qpopper[TM] is a trademark of QUALCOMM, Inc.
Quick View Plus[R] is a registered trademark of IntraNet Solutions, Inc.
SecurID is a registered trademark of RSA Security Inc.
Sun[R] and NFS[R] are registered trademarks of Sun Microsystems, Inc., in the U.S. and other countries.
Windows[R] and Windows NT[R] are U.S. registered trademarks of Microsoft Corp.
All other trademarked brand or product names mentioned in this FAQ are the properties of their respective owners.