Part III System Administrator Information

This part includes system administration information.

Chapter 8 Configuring a Korean Solaris System

You can use the procedures this chapter to set a system-wide default locale
or to add a new locale from the Solaris DVD and CD media. You also change
the font path set by the Xsession script included in
the Korean Solaris Operating System. The following sections are included in this
chapter.

Setting the Default Locale

You can use the procedure in this section to make a system-wide
change to the default locale.

How to Set the Default Locale

Become superuser.

Edit the /etc/default/init file.

Add or update the LANG variable with the appropriate
locale.

LANG=locale

locale

C, ko, or the ko.UTF-8

Instruct all users to exit CDE.

Kill the dtconfig process.

# /usr/dt/bin/dtconfig -kill

Reboot the system.

# reboot

Using Aliases to Set the Locale

You can use aliases to change a terminal-emulation window between the Korean
locales and ASCII/English locale without typing long command lines or editing
your .dtlogin file and running source
every time.

Input Method Server Basic Properties

The Korean Solaris Operating System
starts the IM Server automatically when you log in to a locale that requires
an input method.

The Korean
Solaris applications that use the IM Server for Korean character input
typically find the IM Server running when the applications starts. To connect
to the IM Server for language input, the IM Server should be running before
the application starts. If the IM Server is not running before the application
starts, the application might not be able to connect to the input service.
Even if the IM Server starts later, the application might not be able to connect
to the input service.

Three htt Processes

The input method server comprises three related programs. The htt, htt_server, and htt_xbe,
processes are run together. One process controls the properties of the input
method server. A watch dog process controls the population of the input method
server and a third process handles the input methods of clients.

Usually, you don't need to know the details of these three processes.
When htt starts, the htt_props and htt_server start also.

htt Application Display

The following figure shows a typical application display when the htt input method is in use.

How and When htt is Started

Any application that uses
the IM server to receive Korean characters must find htt running before the server can receive Korean character
input. If the default locale is C, which does not require htt, and you change from C to another locale
in a single Terminal, for example, you must start htt with
a command line like the following:

system%/user/openwin/bin/htt -if kole -xim htt_xbe &

With the locale set to ko_KR.EUC, htt
starts automatically when the Korean windowing environment is started.
In CDE, htt is started from a script, /usr/dt/config/Xsession.d/0020.dtims. The script is executed by Xsession, which
runs at every initialization stage when you log in from dtlogin. The script ensures that htt is started before
other applications in CDE.

Using the iiim Server in the ko_KR.UTF-8 Locales

The Internet Intranet Input Method Server (iiim) supports the European Local Input Methods that use the Compose
key. The iiim server also supports the Asian Remote Input Methods that use
IIIM Protocol. The default Language Engine is English/European which supports
ASCII and some European Languages such as German and French.

To switch to Korean Input Methods, press Control-spacebar.

To switch to other language engines, click the left mouse button in
the Status Area.

The following language engine list appears.

Cyrillic

Greek

Thai

Arabic

Hebrew

Hindi

Unicode Hex

Unicode Octal

Lookup

Korean

The following language engines appear if the corresponding locales are
installed:

Chapter 10 Fonts

This chapter also describes how to convert BDF font files to Portable
Compiled Format (PCF) format and how to make the fonts usable on your system.

Display PostScript System (DPS)

The Korean Solaris Operating System provides PostScript fonts
in the Display PostScript System (DPS). This section describes what you need
to use DPS in Korean Solaris software. For further details, see Programming the Display PostScript System with X, published by
Adobe Systems.

Using Korean PostScript Fonts and DPS Facilities

The Korean Solaris Operating System DPS provides the fonts listed in the
following table.

You can use the following Korean fonts just as you would use
Roman fonts.

Kodig-Medium-EUC-H

Kodig-Medium-EUC-V

Kodig-Medium

Myeongjo-Medium-EUC-H

Myeongjo-Medium-EUC-V

Myeongjo-Medium

The following figure shows a sample of Kodig-Medium and Myeongjo-Medium
text.

You can also use the following Korean fonts for pure Hangul
between the SO and SI characters with no intermediate ASCII (0x20) characters.

Kodig-Medium-H

Kodig-Medium-V

Creating Composite Korean Fonts

You can create
composite fonts using one Roman font and one of the following Korean
fonts.

Kodig-Medium-COMB-H

Kodig-Medium-COMB-V

Myeongjo-Medium-COMB-H

Myeongjo-Medium-COMB-V

For example, the following PostScript code defines a sample composite
font. The ASCII characters of the Times-Italic+Kodig-Medium font are combined
with the Korean characters of the Kodig-Medium horizontal font.

Changing Font Directories

The Xsession script in /usr/dt/bin directory of
the Korean Solaris Operating System includes the following font path: /usr/openwin/lib/locale/locale/X11/fonts, where locale is either ko or ko.UTF-8. To dynamically add a different
font directory path, type the following commands:

system% xset +fpfont_directory-path
system% xset fp rehash

Bitmap and TrueType Fonts

The tables in this section list the bitmap and TrueType fonts that are
supported for the ko, the ko.UTF-8,
and the ko/ko.UTF-8 locales.

The following table shows the Korean bitmap fonts for the ko locale.

Table 10–2 Korean Bitmap Fonts for the ko Locale

Full
Family Name

Subfamily

Format

Encoding

Gothic

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Graphic

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Haeso

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Kodig

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Myeongijo

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Pilki

R/B

PCF (12,14,16,18,20,24)

KS X 1001

Round gothic

R/B

PCF (12,14,16,18,20,24)

KS X 1001

The following table shows the Korean bitmap fonts for the ko.UTF-8 locale.

Table 10–3 Korean Bitmap Fonts for the ko.UTF-8 Locale

Full
Family Name

Subfamily

Format

Encoding

Gothic

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

Graphic

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

Haeso

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

Kodig

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

Myeongijo

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

Pilki

R/B

PCF (12,14,16,18,20,24)

KS X 1001 (Johap)

The following table shows the Korean TrueType Fonts for the ko/ko.UTF-8 locales.

The printed output includes only the characters that are defined
in the Johap code set.

Using the mp Utility

The enhanced mp print utility
is available in the current Korean Solaris release. You can use mp to print ko files in ko
locale or UTF-8 files in ko.UTF-8 locales.

The output from the utility is standard PostScript that you can send
to any PostScript printer.

Use the following command to print a file with the mp
utility.

system% mpfilename| lp

You can also use the utility as a filter because mp
accepts stdin stream.

system% catfilename| mp | lp

You can set the utility as a print filter for a line printer. For example,
the following command sequence signals the print service that the printer lp1 accepts only mp format files. The command
also installs the printer lp1 on port /dev/ttya. See the lpadmin(1M) man page for more details.

Using mp as an Xprt (X Print Server) Client

Using mp as
an Xprt client enables mp to print the output of any printer
connected to a network supported by an Xprt print service. As an Xprt client, mp supports PostScript and many versions of PCL.

The Xprt client attempts a connection to an Xprt server based on the
following rules:

When the -Dprinter_name@machine[:dispNum] or -Pprinter_name@machine[:dispNum] options are used with the mp command, mp attempts to connect to an Xprt print service on machine[:dispNum] with printer_name.

If the above attempted connection to machine[:dispNum] fails or if the argument given to -D or -P is just printer_name, then the mp command checks the XPSERVERLIST for Xprt
servers that support the printer_name argument.
For example:

If no server is found using above rules, mp
checks for an XPDISPLAY environment variable set to machine[:dispNum]. For example:

system% setenv XPDISPLAY "machine[:dispNum]"

If the XPDISPLAY variable is not set or
if the variable is invalid, mp tries to connect to the
default display :2100. If the default display value is also invalid, mp exits with an error message.

The /usr/lib/lp/locale/C/mp directory contains .xpr print page sample layout files for Xprt client. The sample
files are for 300 dpi printers. If the target printer has a different dpi
value, the dpi value of the sample files is automatically converted to the
resolution of the target printer.

Chapter 12 TTY Environment and Support

This chapter assumes that you are familiar with the following
information.

The Solaris Operating System communicates with external devices using STREAMS
and ioctl.

Refer to the termio(7I)
man page for background information on STREAMS and TTY drivers.

TTY STREAMS

The data path between a user's shell and the
terminal is called a stream. The data on a stream contain
characters and control information that affect data handling, such as the
control sequences that precede a change in code set or communication protocols.
Data that enters the stream from the terminal is raw or unprocessed. Data
is sequentially processed by STREAMS modules for appropriate use by the shell
or an application.

STREAMS provides a way to modularize the processing on a line, allowing
processing instructions to be grouped in functional modules. These modules
can be added or removed from the line so that different environments can be
provided to a terminal according to the user's needs.

Traditional STREAMS

The traditional STREAMS TTY environment contains
a raw device driver, a line discipline module, and a stream head. The raw
device driver provides an I/O interface between the kernel and the hardware.
Because it is closest to the physical hardware, it provides basic communication
protocols, baud rate switching, and other low level services. The line discipline
module is a set of instructions or disciplines that transforms the raw data
to processed data. This includes handling the delete character, line kill
character, and others. The stream head provides an interface between the user's
process and the stream.

Korean Solaris STREAMS

The Korean Solaris Operating System uses the modular nature of
STREAMS to support Korean. In addition to the traditional TTY modules,
this product implements code conversion in STREAMS. Hangul-Hanja conversion
is typically supplied by many existing Korean TTYs and is not available
in the Korean Solaris TTY environment.

The Korean Solaris Operating System enhances the traditional modules. The
line discipline of the operating system handles proper cursor movement for
wide characters as well as normal protocols. The Korean Solaris code
conversion modules convert between two different character code formats. For
example, Packed format, combination code of KS C 5601-1987, can be converted
to EUC format, completion code.

Code conversion depends on the appropriate flags or parameters being
set. For example, if a Packed code terminal is being used, the input from
the terminal is converted to EUC and the output to the terminal is converted
to Packed code.

The major modules that can be pushed onto the stream are ldterm, kpack and kjohap.

ldterm is a generic EUC line discipline
module. It processes all normal line discipline functions and also handles
proper cursor movement and backspacing for wide characters (EUC). See ldterm(7M)
for more information.

TTY Utilities

The termcap and terminfo databases
are used by applications to configure their terminal display appropriately.

EUC ioctl Features

The Korean Solaris Operating System uses ioctl STREAMS commands for general EUC handling. The table describes
the ioctl requests.

Table 12–1 ioctl Requests and Descriptions

ioctl Request

Description

EUC_WGET

Get cswidth values from TTY stream

EUC_WSET

Set cswidth values for TTY stream

EUC_OXLOFF

Set code conversion to OFF

EUC_OXLON

Set code conversion to ON

Character code conversion to and from the terminal is controlled by EUC_OXLON and EUC_OXLOFF.

The termcap database

The termcap and terminfo databases
used to tailor the terminal characteristics for an application. The following
table describes the variables of the termcap database.

Table 12–2 termcap Variables and Descriptions

Variable

Description

dv

Device type: language and code set

ci

Init sequence for multiple code sets

s0

Shift into code set 0

s1

Shift into code set 1

s2

Shift into code set 2

s3

Shift into code set 3

The terminfo database

The following are extensions to terminfo. The s0-s3 string values are used as data announcement mechanisms for
the respective code sets during terminal I/O.

Table 12–3 terminfo Variables and Definitions

Variable

Capname

Tc

Definition

device_type

devt

dv

Device type: language and code set

code_set_init

csin

ci

Init sequence for multiple code sets

set0_des_set

s0ds

s0

Shift into code set 0

set1_des_set

s1ds

s1

Shift into code set 1

set2_des_set

s2ds

s2

Shift into code set 2

set3_des_set

s3ds

s3

Shift into code set 3

TTY Commands

The two commands for configuring
and using the TTY environment are setterm and /bin/stty. setterm is used primarily to build
the TTY stream for a particular terminal type, pushing the necessary modules
onto the stream. stty changes the behavior of the modules
in the stream.

setterm Command

setterm is used to configure the TTY STREAMS environment.
It can inquire about and manipulate STREAMS modules for a particular TTY port. setterm allows users to tailor their TTY STREAMS environment using
system-provided or user-provided STREAMS modules.

setterm uses a terminal device name that reflects
the devt (device type) field in the terminfo
database for configuring STREAMS modules for a TTY port. This device name
is matched with an entry of the same name in the setterm configuration file, /usr/share/lib/setterm/ko/conf.file or /usr/share/lib/setterm/ko.UTF-8/conf.file. This entry contains detailed instructions on which modules to
pop and push in order to properly configure the STREAMS environment.

setterm can also take the device type as a direct
argument. This device type is similarly matched with an entry in /usr/share/lib/setterm/ko/conf.file or /usr/share/lib/setterm/ko.UTF-8/conf.file.

The setterm configuration file uses a special language
for instructions on what actions to take. This language allows users to determine
the names of modules on the STREAMS stack, to push or pop modules on the stack,
and to do other operations. setterm manipulates the STREAMS
stack by making ioctl calls.

/bin/stty Command

The defeucw option to the /bin/stty
command is for modifying STREAMS modules to reflect changes in the user's
environment. It does not work with the /usr/ucb version
of stty, which has not been internationalized.

The following command queries the user's environment for information
on EUC code set width and sets.

system% /bin/stty defeucw

For example, if the user has the environment variable LC_CTYPE set to locale, this option gets information
on the number of bytes per character and the screen width per character for
the code sets in the ko and ko.UTF-8
environments and then sends this information to relevant modules in the stream.

TTY Setup Examples

The system administrator can add setterm
in the startup script in /etc/rcn.d directory (where n is the run level),
to run at the system boot time. Also, users can run the setterm
command at login to configure the stream for their terminal, including the
appropriate modules for Korean input code conversion. The following
examples using setterm work as commands typed at a system
prompt or included in system files such as .cshrc, .login, and the startup script. Such commands can either explicitly
set the device type or use the terminfo database.

Configuring STREAMS for Korean Solaris Software

You can use the commands in this section to configure STREAMS modules.

Use the following command to explicitly configure the STREAMS module
for the EUC, completion code, terminal type.

system% setterm -x EUC

Use the following command to explicitly initialize the Packed STREAMS
module that supports the combination code of KS C 5601-1987.

system% setterm -x PACK

Use the following command to explicitly initialize the Johap STREAMS
module that supports a combination code of KS C 5601-1992.

system% setterm -x JOHAP

Use this procedure to run a configuration
command that references an entry in the terminfo database.

Add the following entry for a FAST-15 Packed code terminal to the terminfo database.

Use the following configuration command to reference the entry for the
FAST-15 Packed code terminal.

system% setterm -t fast-15

For setterm to work properly, the /usr/share/lib/setterm/ko/conf.file must contain an entry that corresponds to the device type. This
entry gives setterm instructions for placing the appropriate
conversion modules in the TTY stream.

Add the following entry that corresponds to the device type to the /usr/share/lib/setterm/ko/conf.file.

Use the following configuration command to reference the entry for the
FAST-15 Packed code terminal.

system% setterm -t fast-15

For setterm to work properly, the /usr/share/lib/setterm/ko.UTF-8/conf.file must contain an entry that corresponds to the device type. This
entry gives setterm instructions for placing the appropriate
conversion modules in the TTY stream.

Add the following entry that corresponds to the device type to the /usr/share/lib/setterm/ko.UTF-8/conf.file.

These values show that the operating system is set to communicate
with the terminal in 8-bit no-parity mode. Make sure the terminal is set up
in 8-bit no-parity mode. Refer to the terminal's setup manual for the proper
way to set terminal options.

How to Verify TTY Set Up

Use the following procedure
to verify that the TTY is properly set up.

Type the /bin/stty command with the -a
option.

system%/bin/stty -a

If the cs8, -istrip values set
in the previous procedure are not listed, use the following command to set
them.

system% /bin/stty cs8 -istrip defeucw

This is the last step in setting up a terminal. The default setting
of a Korean terminal is the completion-code mode. Continue to the
next section to install a Packed-code TTY.

How to Use Packed Code and Johap TTY in the ko Locale

If you use a Packed code (KS C 5601-1987) terminal , you must load the kpack STREAMS module into the kernel.

Become superuser.

system% su
Password: (Type superuser password here if required.)

Load the kpack module.

#modload /kernel/strmod/kpack

Type the following command to enable the module.

system% setterm -x PACK

How to Use Combination Code and Johap TTY in the ko
Locale

If you use a combination code (KS C 5601-1992) terminal , you must load
the kjohap STREAMS module into the kernel.

Become superuser.

system% su
Password: (Type superuser password here if required.)

Load the kjohap module.

# modload /usr/kernel/strmod/kjohap

Type the following command to enable the module.

system%setterm -x JOHAP

How to Use the EUC TTY in the ko.UTF-8 Locale

If you use an EUC (KS C 5601-1987-0) terminal , you must load the ku8euc STREAMS module into the kernel.

Become superuser.

system% su
Password: (Type superuser password here if required.)

Load the ku8euc module.

#modload /kernel/strmod/ku8euc

Type the following command to enable the stream module.

system% setterm -xKU8EUC

Type the following command to enable 8-bit I/O.

system%stty defeucw cs8 -istrip

If you want to use dtterm, type the following command.

system% setterm -x u8

How to Use the Johap TTY in the ko.UTF-8 Locale

If you use a Johap (KS C 5601-1992-3) code terminal , load the ku8johap STREAMS module into the kernel.