About This Guide

Basic Installation

    Installing QNX onto a hard disk

     System requirements

     Distribution media

     CD-ROM distribution

     Floppy diskette distribution

    Installing additional software

     If from CD-ROM...

     If from floppies...

     Installation procedure

     If from QUICS...

    The system initialization file

     What happens when the system boots

     Customizing the system initialization file

     sysinit.node

       Customizing a node's setup

     sysinit

     altsysinit

    Using the system initialization file

     Base-level services

      Establishing the time zone
      Starting device drivers
      Starting the floating-point emulator
      Loading node mappings
      Starting a name server
      Starting a terminal daemon

     Optional services

      Setting environment variables
      Starting a floppy driver
      Starting a CD-ROM filesystem
      Starting a DOS filesystem
      Starting TCP/IP
      Starting a cron server
      Starting a mouse driver (for console-based apps)
      Starting the Photon microGUI

     International keyboard support

    Time zones and the realtime clock

     Establishing the time zone

     Getting the date and time from the realtime clock

      If you're booting over the network...

Building an OS Image

    Introduction

    Constructing a build file

     Build file format

     Setting heap sizes

     Setting priorities

    Where executables are stored

    Selecting executables for an image

     Mandatory processes

     Disk images

      The Makefile for disk booting
      Copying an image to /.boot

     Network images

      The build file for network booting

     Embedded images

      Embedded PCs
      Custom hardware
      Selecting processes for an embedded image

Setting up Filesystems

    Introduction

    Partitioning the pathname space

     A hard disk and a floppy

     Two hard disks (same node)

     Multiple QNX partitions

     Local and remote hard disks

      Independent
      Primary/secondary
      Linked independent
      Removing and reinstalling drivers

    Setting up a DOS filesystem

     Invocation modes

     Starting Dosfsys

     Dosfsys name adoption

     DOS devices

     DOS version support

      DOS partition types

     DOS text files

     DOS binary files

     QNX-to-DOS character and name mapping

      Translating QNX filenames

     DOS volume labels

     DOS-QNX permission mapping

      Attribute-bit translations
      Permission-bit translations

     File ownership

     Terminating Dosfsys

     Error codes returned by Dosfsys

Connecting Character Devices

    Starting device drivers

    Parallel devices

     Single parallel port

     Multiple parallel ports

     Output buffers

     Testing parallel drivers

    Serial devices

     Hardware adapters

      I/O addresses
      Hardware interrupt
      Multiport serial adapters
      Typical hardware installation

     The RS-232 serial protocol

      Electrical interface
      Serial protocol
      Session control
      Flow control

     Configuring serial ports

      Data bits
      Stop bits
      Parity
      Baud rate

     Connecting serial devices

      High-speed ECC modems
      Serial printers
      Terminals

     Configuring serial lines for terminals and users

      Logging in
       Automating logins
      Launching custom applications
      Modem access

     Exclusive access to serial devices

     Testing serial drivers

     Troubleshooting serial device problems

    Pseudo terminal devices

    Console Devices

Licensing

    Operating system licensing

     Old- and new-style licenses

      Old-style
      New-style

     The /.licenses file

     The etc/licenses directory

    Verifying your licenses

    Adding licenses

     New-style licenses

     Old-style licenses

     Activating licenses

     Transferring a license to another node

Networking

    Introduction

     Logical node IDs

     Logical network IDs

     Physical node IDs

     Boot servers and booting nodes

      How network booting works

     Network bridging between QNX LANs

    Planning your network

     One network or more?

     Multiple network links

      Communicating across networks

     Setup considerations

      Network cards and drivers
      Determining physical node IDs
       Ethernet & Token Ring
       Arcnet
      Assigning logical node and network IDs

    Configuring a boot server

     Step 1 - Install the network card(s)

      Installing multiple cards

     Step 2 - Install your network licenses

     Step 3 - Start the Network Manager & network driver(s)

      Starting the Network Manager & one network driver
      Starting two or more network drivers

     Step 4 - Start nameloc

     Step 5 - Start netboot

     Step 6 - Modify the sysinit.node file

     Step 7 - Modify the netmap file

      Mapping multiple networks

     Step 8 - Modify the netboot file

      Setting up for broadcast booting

    Booting a node from a QNX network

     Step 1 - Insert the boot ROM

     Step 2 - Install the network card

     Step 3 - Construct the build file

     Step 4 - Modify sysinit.node

     Step 5 - Boot the node

    Booting a node using a BOOTP server

    Booting a node from its own hard disk

     Editing the node's build file

     Copying the netmap file to the node

     Installing or transferring a license

    Multiple boot servers

    Network examples

     Adding several Ethernet nodes to an Arcnet network

     Setting up a fault-tolerant Ethernet network

     Setting up a private network link

    Network diagnostics

Setting up User Accounts

    Starting a user session

     Shell initialization

     Setting environment variables

    Security

     Access control utilities

      The login utility
      The su utility
      The passwd utility
       User ID number
       Group ID membership
       Home directory, initial command, and initial password

     Deleting a user account

     More about user and group IDs

      Effective user and group IDs
      The newgrp utility

     File permissions

      Viewing permissions
      How mode bits are assigned
      Changing permissions
      setuid and setgid

     The password database

      /etc/passwd
      /etc/group
      /etc/shadow
      /etc/.pwlock

     Default password files

    Accounting file

     Enabling accounting

     Record format

     Clearing the logfile

     Compressing the log file

    Other log files

Setting up Terminals

    Terminal capabilities

    Setting the terminal type

     A word about dial-up access

    The termcap database

    The terminfo database

     Creating a terminfo file

    Extended capabilities for mouse events

     For more information

Print Spooling

    Introduction

     Sharing resources on a network

     Spoolers

    Using the spool utilities

     Starting the spooler

     Submitting spool jobs

     Querying spool jobs

     Canceling spool jobs

     Controlling the spool queues

    Spooler architecture

      One queue feeding a single target
      Multiple queues feeding a single target
      One queue feeding multiple targets
      Multiple queues feeding multiple targets
      Chaining queues

    The spool setup file

     Syntax definitions

     Global keywords

      Registering names - sp
      Specifying a temporary directory for spool files - cd

     Variables

     Default behavior

    Using setup files

     Queues and targets

     Filters

      Using copy-in
      Using copy-out

     Chaining queues

     Accounting information

     Input errors

     Output errors

    Example setup files

     Multiple queues feeding a single target

     Multiple queues feeding three targets

    Accessing spoolers and queues

     LPSRVR and LPDEST

      LPSRVR
      LPDEST

     Examples

      Naming neither a spooler nor a queue
      Naming only the spooler
      Naming only the queue
      Naming both the spooler and the queue

     Initialization files

Making Backups

    Introduction

    When to back up

    Backup formats

     Archive backups

      Naming volumes

     Filesystem backups

    Backup media

     Floppy

      Archiving data to floppy
      Copying files to floppy

     Tape

     Removable disk

     Fixed disk

    Compression

    Archive examples

     Compressed floppy archive

     UNIX-compatible floppy archive

     Tape archive

     Cartridge/optical

Disk & File Recovery

    Introduction

    Making a recovery floppy

    Overview of QNX disk structure

     Partition components

      Loader block
      Root block
      Bitmap blocks
      Root directory

     Directories

     Links

     Extent blocks

     Files

    File maintenance utilities

     fdisk

     dinit

     chkfsys

     dcheck

     zap

      Recovering a zapped file

     spatch

    Disk recovery procedures

     Using chkfsys

      When to run chkfsys
      Using chkfsys on a live system

     Recovering from a bad block in the middle of a file

    What to do if your system will no longer boot

     If the mount fails...

     If the disk is unrecoverable

     If the filesystem is intact

    Recovering lost files and directories

How to Contact Us

    Introduction

    Reporting bugs

    Free software and technotes

     Searching on QUICS

    Electronic mail

    QUICS newsgroups

    About our hardware

    How to connect via modem

     Dial-in procedure

    How to connect via the Internet

    Logging in

     Registering your service plan and software

    Using QUICS

    Training

QNX Console & Keyboard Conventions

    Entering line-oriented input

     Line-editing keys

     Max length of an input line

     Entering long input lines

    Recalling commands

    Switching virtual consoles

    Using multiple consoles

    Changing the console fonts

    Suspending and resuming output

    Killing a process

    Invoking the system debugger

    Rebooting

    International keyboards

    The keyboard at a glance

Where QNX Files Are Found

    A typical directory structure

    Summary of file locations