-------------------------------
			       PAO-FAQ
		   -------------------------------
			   Tatsumi Hosokawa
			BSD-nomads Team, Japan
		       hosokawa@jp.FreeBSD.org

PAO is a comprehensive package for mobile-computing users of FreeBSD.
PAO contains FreeBSD PC-card drivers, enhancements to the FreeBSD APM
driver, and other miscellaneous utilities and daemons.  PAO is based
on Andrew McRae's early work on the FreeBSD PCMCIA driver, and Tatsumi
Hosokawa's FreeBSD APM driver, and it is now developed and managed by
the BSD-nomads team (bsd-nomads@clave.gr.jp), and Nate Williams reflects
it to the original FreeBSD.

TABLE OF CONTENTS --------------------------------------------------------

*New*	New Q&A
*Upd*	Updated information

1.	General Information
	* What does PAO stand for?
*New*	* What is the URL of PAO Homepage?
*New*	* How can I get the latest PAO?
2.	Supported Hardware
	* What cards does PAO support?
*Upd*	* What laptops does PAO support?
3.	APM BIOS
	* What does APM stand for?
	* This kernel hangs when I use APM BIOS.  Why?
	* I can't use apm(8) and zzz(8).  Why?
	* I can't use xbatt(1).  Why?
	* The system clock loses time when the machine is sleeping,
	  and never catches up to the current time when the machine 
	  comes back from suspended mode.  Why?
	* My laptop sometimes hangs when the system is resumed from
	  suspended mode.  Why?
4.	PC-card
	* A kernel boot message says that my card is not probed.  Why?
  4.1.	PC-card Controller
	* Removing a card freezes the machine.  How can I ward off
	  this trouble?
	* I installed PAO on my machine, but the machine frequently
	  reports that card is inserted or removed, even though no
	  cards are installed in the machine.  Why?
	* I installed PAO on my machine, but it does not report the
	  insertion/removal of cards.  Why?
	* When I insert cards, the system says only "CIS code read: Cannot
	  allocate memory".  Why?
	* My laptop says "Slot ?, unfielded interrupt (?)".  Why?
*Upd*	* My laptop uses I/O address 0x240 for another device, but I
	  can't change I/O address even though I modified
	  corresponding device declarations in the config file.  How can I
	  change I/O ports?
	* My laptop uses IRQ 10 for another device, but I can't change the
	  IRQ even though I modified the corresponding "device" declaration
	  in the config file.  How can I change the IRQ?
  4.2.	Ethernet
*Upd*	* How can I plug two network cards into a laptop and use it as
	  a gateway?
	* My system fails to use NE-2000 compatible Ethernet cards, but the
	  entries in /etc/pccard.conf seem to be correct.  Why?
	* I can't use WaveLAN at all.  Why?
	* My WaveLAN card is probed correctly, but I can't use it.
  4.3.	FAX/Modem
	* The kernel says that my modem is attached as "sio2", but there
	  is no /dev/sio2.  Why?
	* Failed to probe (or probed correctly, but the system is unstable)
	  PCMCIA FAX/Modem cards (or other serial cards).  Why?
  4.4.	Flash ATA/ATA HDD/ATAPI CD-ROM
*New*	* Why does the kernel fail to assign the disk, although the IDE 
	  interface is recognized?
	* How do I mount a Flash ATA card as a disk?
*Upd*	* How do I mount an ATAPI CD-ROM, or CD-R/RW?
  4.5.	SCSI
*Upd*	* How do I mount SCSI CD-ROM, HDD, or MO?
	* I want to use a portable CD-ROM drive, but it doesn't work.
	  Why?
  4.6.	Video Capture
	* How/where can I get an IBM Smart Capture Card?
	* Are there any applications other than xscc for the IBM Smart
	  Capture Card?
  4.7.	Multifunction Card
	* Are multifunction cards supported by PAO?
5.	System Installation
*Upd*	* How can I install FreeBSD via one of the PC-cards PAO supports.
*Upd*	* How should I configure the variables in /etc/rc.conf?
	* I'm using an IBM ThinkPad 3xx series, and I want to install
	  FreeBSD, but the FreeBSD keyboard driver can't handle the keyboard
	  correctly, making it impossible to install FreeBSD.  Why?
	* "Gated" does not work correctly on a system with PAO.  Why?
	* I tried to change the IRQ and I/O address of PCMCIA cards by
	  using UserConfig ("kernel -c"), but it has no effect.  Why?
*New*	* Why does the designation of io port conflict between one in the
	  kernel configuration and one in the config index in /etc/pccard.conf?
--------------------------------------------------------------------------

1. General Information
~~~~~~~~~~~~~~~~~~~~~~

* What does PAO stand for?

	PAO stands for nomads :-).

* What is the URL of PAO Homepage?

	http://www.jp.freebsd.org/PAO/

* How can I get the latest PAO?

	PAO is maintained in the CVS repository on home.jp.FreeBSD.org.
	You can access using cvs with CVSROOT set appropriately if 
	you have an account on home.

	More generally CVSup can be used. See 
	http://www.FreeBSD.org/handbook/handbook273.html#cvsup
	for the detail of installation of cvsup.
	Configuration file should be written as follows

	*default host=cvsup.jp.FreeBSD.org
	*default base=/somewhere/you/want/to/put
	*default prefix=/somewhere/you/want/to/put
	*default release=cvs tag=pao228
	*default delete use-rel-suffix
	*default compress

	# collections
	jp-pao-sys
	jp-pao-kit

	Release version as PAO-199xxxxx.tar.gz can be found at
	ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/PAO/

	Snapshot as PAO-freebsd22x-xxxxxx-snap.tar.gz
	ftp://daemon.jp.freebsd.org/pub/FreeBSD-jp/PAO/snap/

	PAO version of boot floppy boot-pao.flp can be found under
	ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/
	according to the version of FreeBSD and supported language as
	ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/2.2.8-RELEASE/ja/

	You can also get diffs between each revision by cvsweb.
	http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/?cvsroot=freebsd-jp

2. Supported Hardware
~~~~~~~~~~~~~~~~~~~~~

* What cards does PAO support?

	Please read the file "SUPPORTED.CARDS" in the package.
	The latest version can be found at
	http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/kit/
		SUPPORTED.CARDS?cvsroot=freebsd-jp	

	The latest version of card database /etc/pccard.conf
	is available from
	http://www.jp.freebsd.org/cgi/cvsweb.cgi/PAO/kit/release/etc/
		pccard.conf.sample?cvsroot=freebsd-jp

* What laptops does PAO support?

	PAO's APM driver supports APM BIOS 1.0, 1.1, and 1.2.  APM
	BIOS implementations sometimes have many serious bugs.  We're 
	trying to cope with these bugs, but we gave up on supporting 
	some broken APM BIOS'es.  Some laptop vendors announced that 
	they have updated their BIOS'es 'for Windows 95'.  It probably 
	means that 'they fixed bugs in the APM protected mode interface.'  
	So, if the vendor of your laptop has announced newer BIOS'es, 
	please update to the latest one before installing PAO.

	The PC-card driver of PAO supports following PC-card controllers:

		Intel i82365SL (and compatibles)
		Cirrus Logic PD-6710
		Cirrus Logic PD-6720
		Cirrus Logic PD-6722
		Cirrus Logic PD-6729 (PCI-PCMCIA bridge)
		Cirrus Logic PD-6730 (PCI-PCMCIA bridge)
		IBM PCIC (on some ThinkPads)
		IBM KING
		O2micro OZ6729 (PCI-PCMCIA bridge)
		O2micro OZ6730 (PCI-PCMCIA bridge)
		Ricoh RF5C296 (i82365 compatible)
		Ricoh RF5C396
		Vadem 468
		Vadem 469
		VLSI 82C146

	PAO does not support following PC-card controllers.  (If you
	have laptops with these controller, please write drivers for
	these controllers for PAO :-).

		Databook TCIC (on some ancient laptops)

	Some PCI-CardBus bridges can be used in i82365-compatible
	mode.  Currently it is being tested on following chipsets:

		Cirrus Logic PD-6832
		Texas Instruments PCI-1130
		Texas Instruments PCI-1131
		Texas Instruments PCI-1220
		Texas Instruments PCI-1221
		Texas Instruments PCI-1250
		Toshiba ToPIC95
		Toshiba ToPIC97
		Ricoh RL5C465
		Ricoh RL5C475
		Ricoh RL5C476
		Ricoh RL5C478

	If your PC-card controller is not supported, please contact me
	(hosokawa@jp.FreeBSD.org) or BSD-nomads team (bsd-nomads@clave.gr.jp).
	I need following information to hack the chip:

		o The name of the PC-card controller of your
		  machine. (e.g. Cirrus Logic 6832).

		o PCI device ID of PC-card controller (If your PC-card
		  controller is PCI - PC-card bridge or PCI - CardBus
		  bridge).

3. APM BIOS
~~~~~~~~~~~

* What does APM stand for?

	Microsoft and Intel's "Advanced Power Management".  Please
	read http://www.intel.com/IAL/powermgm/powermgm.htm for
	details.

* The kernel hangs when it uses APM BIOS.  Why?

	Some implementations of protected mode APM BIOS have serious
	bugs.  First, confirm that your laptop has the latest BIOS.
	These days, BIOS'es of many laptops have been updated to fix
	bugs in APM BIOS behavior in protected mode, now that Windows 95 
	uses it.  If your machine's BIOS is not the latest one, please
	update it as soon as possible.  If you're running the latest copy
	and are still having problems, you can "cope with" them by modifying 
	the kernel source.  If your problem is solved, please send us a 
	report about your solution (and of course your environment).  If 
	you're not hacker, boot the kernel with UserConfig ("kernel -c") 
	and type simply "disable apm0" :-).

	PAO's APM driver can be configured to cope with some
	incompatibilities of APM BIOSes from UserConfig.  The apm0
	device has a "flags" mask for this purpose (the problem
	corresponded to 0x01 -- APM data segment value -- has been
	fundamentally solved in the current version).

	0x02: Some APM BIOS implementations that call themselves
	APM 1.1 have incomplete implementations of the APM 1.1 
	specification.  This flags forces the APM driver to drive 
	the APM BIOS in 1.0-compatibility mode, regardless of the 
	version number the APM BIOS reports.

* I can't use apm(8) and zzz(8).  Why?

	apm(8) (zzz(8) is hard-linked shortcut of `apm -z') is a utility
	that controls your machine's power management features by making
	calls to its APM BIOS.  The program uses the APM BIOS device file 
	/dev/apm to control the APM functions.  The permissions of /dev/apm 
	are set to:

	crw-rw----  1 root  operator   39,   0 Jun 15 15:58 /dev/apm

	This means that /dev/apm is only accessible by users who are
	either in the `operator' group or are running as super user.  

	If you want to use apm(8) (and zzz(8)) and you don't want to 
	use su(1) for this purpose, put yourself in the `operator' group 
	by editing /etc/group.

* I can't use xbatt(1).  Why?

	xbatt(1) is an X client that displays battery and AC line 
	status under X-Windows.  The xbatt(1) program found in the 
	2.1.5-RELEASE ports/packages collection does not work on current 
	PAO systems, as it refers to the APM device file as /dev/apm0, 
	while in later versions of FreeBSD the device is simply called 
	/dev/apm.

	The Ad-hoc solution is:

		 # cd /dev
		 # ln -s apm apm0 

* The system clock loses time when the machine is sleeping, and it never
  catches up to the current time when the machine comes back from suspended
  mode.  Why?

	Perhaps you have forgotten to set the apm_enable variable in
	/etc/rc.conf to YES. :-).

* My laptop sometimes hangs when the system is resumed from suspended
  mode.  Why?

	Of course there several possible reasons.  For example, I 
	experienced the following problems:

	o The APM BIOS itself is instable :-).

	o Certain unsupported internal sound cards cause interrupts on 
	  the PC-card controller when the system is resumed.  PAO
	  determines the IRQ of PC-card controllers based on the IRQ 
	  allocation table in FreeBSD kernel.  Therefore, unsupported 
	  sound cards can have the same IRQ which has been allocated for 
	  the PC-card controller.  If you have such a machine, you can 
	  avoid this problem in one of the following ways:

		- Don't give up and try again to get FreeBSD to use
		  the sound card :-).

		- Disable the sound card in the BIOS setup.  Please note 
		  that if you do this, you won't be able to use the sound 
		  card from Windows, either.

		- Use the PCIC_IRQ option in config file.  See the PAO 
		  config file for details.

	o Even if your sound card is supported by FreeBSD, you need to
	  either configure sound driver in FreeBSD, or disable the sound 
	  card from BIOS setup, for of the same reasons.  You shouldn't
	  leave the sound card unused.

4. PC-card
~~~~~~~~~~

* A kernel boot message says that my card is not probed.  Why?

	No problem.  The kernel can't find your card without the
	pccardd daemon, and the card database stored in /etc/pccard.conf.
	PC-cards are not probed at boot time.  PC-cards are found and
	registered by pccardd once the system is up.

4.1.PC-card Controller
~~~~~~~~~~~~~~~~~~~~~~

* Removing a card freezes the machine.  How can I ward off this
  trouble?

	In the current release of PAO, hot removal of some particular 
	serial cards (or on particular machines?) is still unstable.  
	Use 'xpccard' (in utils/ subdirectory of this package) or 
	the 'power' subcommand of 'pccardc', and hibernate the card 
	first; you could remove these cards safely.

* I installed PAO on my machine, but the machine frequently
  reports that a card has been inserted or removed, even though no
  cards are installed in the machine.  Why?

	Your machine probably has built-in devices which were not probed
	and attached by FreeBSD (for example, an unsupported built-in
	sound card).  If you can disable such devices from your BIOS 
	setup screen, please disable them and try it again.

	If the problem does not happen again, it's an IRQ conflict
	between the PC-card controller and built-in unsupported devices
	that caused the trouble.

	We can explicitly specify the PC-card controller's IRQ with
	PCIC_IRQ option of config file, like,

	options "PCIC_IRQ=7"

	Please note that:

	1. If you need to, you can disable printer parallel port 
	   from BIOS setup.  This frees up IRQ 7 for use by another
	   device.

	2. If you can disable COM2 from your BIOS setup screen, you 
	   can free up IRQ 3.  Generally, you can't use an external
	   serial mouse if you disable COM2.

	3. If you can disable COM1 from your BIOS setup screen, you 
	   can free up IRQ 4.

	4. If your machine has no PS/2 mouse or PS/2-compatible
	   trackball/trackpad, then IRQ 12 should be available for
	   use as well.

* I installed PAO on my machine, but it does not report the
  insertion/removal of cards.  Why?

	Perhaps for the same reason as last question.  
	Try using the PCIC_IRQ option.

* When I insert cards, the system says only "CIS code read: Cannot
  allocate memory".  Why?

	Perhaps you forgot to enable the "pccard_enable" parameter in
	/etc/rc.conf.

* My laptop says "Slot ?, unfielded interrupt (?)".  Why?

	No problem.  Never mind :-).

* My laptop uses I/O address 0x240 for another device, but I can't
  change the I/O address, even though I modified the corresponding 
  device declarations in config file.  How can I change I/O ports?

	The value of the I/O address in config file is a dummy value
	for PCMCIA cards.  If the card is allocated I/O ports from 
	the I/O pool, please modify the following line (corresponding 
	to I/O pool definition) of /etc/pccard.conf:

		io	0x240-0x2e0 0x300-0x360

	For example, modify it as

		io	0x300-0x360

	...and it won't use 0x240-0x2e0.  If the card is allocated 
	I/O ports according to its CIS tuples, change the config 
	index number (see "config" declaration in /etc/pccard.conf) 
	to different indices.  For example, Ratoc REX-5588 Ethernet 
	card has following tuples (dumped by "pccardc dumpcis"):

--------------------------------------------------------------------------
Tuple #16, code = 0x1b (Configuration entry), length = 8
    000:  08 08 ea 60 00 01 1f ff
	Config index = 0x8
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x100 block length = 0x20
Tuple #17, code = 0x1b (Configuration entry), length = 8
    000:  09 08 ea 60 20 01 1f ff
	Config index = 0x9
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x120 block length = 0x20
Tuple #18, code = 0x1b (Configuration entry), length = 8
    000:  0a 08 ea 60 40 01 1f ff
	Config index = 0xa
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x140 block length = 0x20
Tuple #19, code = 0x1b (Configuration entry), length = 8
    000:  0b 08 ea 60 60 01 1f ff
	Config index = 0xb
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x160 block length = 0x20
Tuple #20, code = 0x1b (Configuration entry), length = 8
    000:  0c 08 ea 60 80 01 1f ff
	Config index = 0xc
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x180 block length = 0x20

		    ..........repeats............

Tuple #39, code = 0x1b (Configuration entry), length = 8
    000:  1f 08 ea 60 e0 03 1f ff
	Config index = 0x1f
	Card decodes 10 address lines, full 8/16 Bit I/O
		I/O address # 1: block start = 0x3e0 block length = 0x20
--------------------------------------------------------------------------

	This card entry specifies the I/O address explicitly.  For 
	example, if you use a config index of 0xc, I/O address 
	0x180 is used.  If you want to use 0x3e0 as I/O address, 
	you must specify 0x1f as the config index.  I'm planning 
	to extend pccardd to handle such cards automatically, but for
	now you must specify the config index manually.

* My laptop uses IRQ 10 for another device, but I can't change the
  IRQ even though I modified corresponding "device" declaration in config
  file.  How can I change IRQ?

	If the corresponding entries in /etc/pccard.conf specify the
	IRQ explicitly, you should modify that value.  For example,

	card "PCMCIA LAN MBH10304  ES" "  01"
		config	0x1a "fe0" 5
		ether	0x32c 00:c0:d0

	uses IRQ 5 explicitly.  If you want to use IRQ 7 for this 
	card, modify the config declaration as

		config	0x1a "fe0" 7

	If the entry uses dynamic IRQ allocation ("any" for IRQ), the
	IRQ is allocated from the free IRQ pool.  Although the free 
	IRQ pool is obtained from the kernel as unused IRQ, those irq
	used by devices that the kernel does not know, such as irq 5
	for a sound card are recognized as unused. In that case
	the unrecognized irq should be excluded from the IRQ pool 
	using "ignirq" directive. If you want to exclude irq 5

	ignirq 5

	Although it is not recommended, the old style can also be used.
	Give -I flag to pccardd (add pccardd_flags="-I" in /etc/rc.conf),
	and enable the following line in /etc/pccard.conf

	irq	10 11

4.2. Ethernet
~~~~~~~~~~~~~

* How can I plug two network cards into a laptop and use it as a
  gateway?

	If you want to use two network cards corresponding to different
	drivers (for example, an Ethernet card and a Modem card, or an
	IBM Ethernet card and 3Com Ethernet card), no special
	configuration is needed.

	If you want to use two cards of the same type (for example, two 
	IBM Ethernet cards), or two different cards types corresponding 
	that use the same drivers (for example, an IBM Ethernet card 
	and an Accton Ethernet card), you need to modify /etc/pccard.conf.

	(example 1) two IBM PCMCIA Ethernet cards:

	First, you need to configure both "ed0" and "ed1".  By
	default, PAO configuration file defines "ed1" as being in
	the "disabled" state.  It does not matter if it is disabled.

	Next, you must define the "config" line in /etc/pccard.conf
	for the second IBM card.  A "card" definition can have
	more than two "config" lines.  For example, if you configure
	your IBM card as:

	card "IBM Corp\." "Ethernet"
		config	default "ed0" any
		config	default "ed1" any
		ether	0xff0 08:00:5a 00:04:ac
		insert	echo IBM PCMCIA Ethernet inserted
		insert	/etc/pccard_ether $device
		remove	echo IBM PCMCIA Ethernet removed
		remove	/etc/pccard_ether_remove $device

	...you can use two IBM cards.  Resources are allocated without
	conflicts automatically.  If you want to use a card that
	specifies a config index and IRQ explicitly (i.e. not by
	"default" or "any" keyword), you must manually choose another
	index or IRQ that does not conflict with the other one.

	(example 2) IBM Ethernet card and Accton Ethernet card

	You must configure one card as "ed0" and the other as "ed1".
	Following example uses IBM card as "ed0" and Accton card as
	"ed1".

	card "IBM Corp\." "Ethernet"
		config	default "ed0" any
		ether	0xff0 08:00:5a 00:04:ac
		insert	echo IBM PCMCIA Ethernet inserted
		insert	/etc/pccard_ether $device
		remove	echo IBM PCMCIA Ethernet removed
		remove	/etc/pccard_ether_remove $device

	card "ACCTON" "EN2212"
		config	default "ed1" any 0x30
		ether	0xff0 00:00:e8
		insert	echo Accton EN2212 inserted
		insert	/etc/pccard_ether $device
		remove	echo Accton EN2212 removed
		remove	/etc/pccard_ether_remove $device

	If the card uses an explicit config index specification, the
	same problem as "example 1" may occur.

	We're trying to solve the problems related to explicit config
	index specification.  Please watch for future releases of PAO,
	which will have improved config specification handling.

* My system fails to use NE-2000 compatible Ethernet cards, but the
  entries in /etc/pccard.conf seem to be correct.  Why?

	Some NE-2000 compatible Ethernet card have weird CIS tuples
	regarding the description of the shared memory address (Accton
	EN-2212, etc.). Please add flags 0x10 to the corresponding entry
	of /etc/pccard.conf.  It disables the use of shared memory, and
	forces the driver to work in programmed I/O mode.

	     card "PCMCIA" "UE2212"
		     config  default "ed0" any 0x10
		     ether   0xff0 00:00:e8

* I can't use WaveLAN at all.  Why?

	The WaveLAN driver is provided for 2.2 only.  If you're using
	2.1.5-RELEASE, you can't use WaveLAN.  Even if you're using
	2.2, you must specify -DWAVELAN as the argument of cc when 
	you compile pccardd.  Please read the Makefile for pccardd 
	for details.

* My WaveLAN card is probed correctly, but I can't use it.

	You need to initialize the WaveLAN card from the DOS configuration
	utility before using it.  Particularly, you need to set the same 
	NetID on all WaveLAN cards (and of course WavePoint) that you 
	want to communicate with.  And, please note that the roaming 
	protocol is not supported yet.

	The PAO package before PAO-960911 had a problem with the 
	Japanese version of WaveLAN.  The Japanese version uses 
	the 2.4GHz band instead of the 915MHz band that the US version 
	uses.  This bug is fixed on the current version.

4.3. FAX/Modem
~~~~~~~~~~~~~~

* The kernel says that my modem is attached as "sio2", but there is no
  /dev/sio2.  Why?

	Use /dev/ttyd2 or /dev/cuaa2 instead (the same as for desktops).

* Failed to probe (or probed correctly, but the system is unstable)
  PCMCIA FAX/Modem cards (or other serial cards).  Why?

	Please read the "function serial" definition in 
	/etc/pccard.conf and try alternative definitions.


4.4. Flash ATA/ATA HDD/ATAPI CD-ROM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Why does the kernel fail to assign the disk, although the IDE 
  interface is recognized?

	The io port designated by the config index of the card and the
	kernel configuration must be the same.
	If the CIS tuple reads as follows
----
Tuple #7, code = 0x1b (Configuration entry), length = 7
    000:  01 08 ca 60 00 03 1f
        Config index = 0x1
        Card decodes 10 address lines, limited 8/16 Bit I/O
                I/O address # 1: block start = 0x240 block length = 0x10
----
	in the entry of /etc/pccard.conf you state

		config 0x1 "wdc2" any

	In this case, the kernel should be recompiled with the
	configuration for the wdc2 as follows 

	controller wdc2 at isa? disable port "0x240" vector wdintr
	disk       wd2  at wdc2 drive 0

	In case there is no appropriate io address in the CIS tuple
	or not clearly designated, some card will work if specified
	with cardio.

* How do I mount a Flash ATA card as a disk?

	I think that most popular purpose of Flash ATA disk for
	FreeBSD laptop user is to share files between FreeBSD machine
	and MS-DOS palmtops like the HP-200LX.  For example, MS-DOS
	filesystem of HP-200LX are usually placed at the first fdisk
	partition of the Flash ATA disk. So, if you mount this partition
	(this example assumes the Flash ATA disk controller was attached
	as "wdc1", and the Flash ATA disk is attached as "wd1", as 
	defined in the PAO config file and pccard.conf.sample), type

		# mount -t msdos /dev/wd1s1 /mnt

	If you want to do it more easily, make the directory /flash for
	this purpose, and add a line like

	/dev/wd1s1         /flash        msdos   rw,noauto 0 0

	to your /etc/fstab (don't forget to add "noauto" option).
	You can mount this partition by simply typing

		# mount /flash

	Don't forget to umount filesystem before removing the cards.

	If you have a digital still camera that support Flash ATA
	cards, you can read image data captured by these cameras.
	Particularly if the camera supports MS-DOS formatted Flash ATA
	disks or ATA HDDs, you can view captured images, as long as
	the image file format is supported by the graphic viewer on
	FreeBSD.  For example the Ricoh DC-2 writes *.j6i and *.j6s files
	in the MS-DOS root directory in the first fdisk slice of Flash ATA
	cards.  The manual says that *.j6i format is "based on JPEG
	compression", but, in fact, if you truncate the first 172
	bytes from *.j6i format, the remainder is standard JPEG
	format.  For example, when the name of j6i file is
	"/flash/r010001.j6i", you can view this image with xv by,

		% dd if=/flash/r010001.j6i of=foo.jpg skip=1 bs=172
		% xv foo.jpg

	Please note that you need to adjust the aspect ratio.  You can 
	do that with the cjpeg/djpeg and netpbm package, among others.

* How do I mount an ATAPI CD-ROM?

	It's the same as for desktops:

		# mount -t cd9660 /dev/wcd0c /cdrom

	CD-ROM changer is supported by acd devices, in FreeBSD 2.2.8R.
	Enable acd instead of wcd in the kernel configuration as 
	following, and MAKEDEV /dev/acd?.

	# Use either the acd or the wcd device, not both!
	#device		wcd0		#IDE CD-ROM
	device		acd0		#IDE CD-ROM & CD-R/RW

	If you are using this kernel, mount CD-ROM as following

		# mount -t cd9660 /dev/acd0c /cd0
		# mount -t cd9660 /dev/acd1c /cd1
		# ...

	If you add this line

	    /dev/wcd0c         /cdrom          cd9660  rw,noauto 0 0
	or
	    /dev/acd0c         /cdrom          cd9660  rw,noauto 0 0

	to /etc/fstab, you can mount your ATAPI CD-ROM by simply typing

		# mount /cdrom

	Please don't forget to umount the filesystem before removing 
	the card.

4.5. SCSI
~~~~~~~~~

* How do I mount a SCSI CD-ROM, HDD, or MO?

	Again, it's the same as desktops:

		# mount -t cd9660 /dev/cd0a /cdrom	; CD-ROM
		# mount -t ufs /dev/sd0s1e /u2		; HDD ufs
		# mount -t msdos /dev/sd0s2 /dos	; HDD msdos
		# mount -t ufs /dev/od0c /u3		; MO ufs
		# mount -t msdos /dev/od0 /mo		; MO msdos

	If you add this line

	    /dev/cd0a         /cdrom          cd9660  rw,noauto 0 0

	to /etc/fstab, you can mount your SCSI CD-ROM by simply typing

		# mount /cdrom

	Please don't forget to umount filesystem before removing the cards.

* I want to use a portable CD-ROM drive, but it doesn't work.  Why?

	Some portable CD-ROM drives uses non-standard device drivers 
	under Windows.  I think these non-standard drivers control the
	power for the drives.  Some of these drives can't be probed
	when the SCSI PC-card is plugged into the host.  I heard that
	this problem doesn't happen if you turn on the power of the
	CD-ROM drive manually right after you plug the card into the host.

4.6. Video Capture
~~~~~~~~~~~~~~~~~~

* How/where can I get an IBM Smart Capture Card?

	I heard that this card is available in Japan (and Europe?) 
	only.   Ask IBM in your country for details.

* Are there any other applications than xscc for the IBM Smart Capture
  Card?

	xfscc	- SCC client with xforms interface
	sccat	- snapshot capturing tool
	NV	- video conference application
	VIC	- video conference application

	Please read "SCC on FreeBSD/Linux" page for details.  The URL
	of this page is
	"http://www.mickey.ai.kyutech.ac.jp/~ohashi/scc/index.html".

4.7. Multifunction Card
~~~~~~~~~~~~~~~~~~~~~~~

* Are multifunction cards supported by PAO?

	No.  But I'm modifying pccardd and the kernel to use
	multifunction cards (I'm using Megahertz XJEM1144 
	Ethernet/Modem card as a testbed).

5. System Installation
~~~~~~~~~~~~~~~~~~~~~~

* How can I install FreeBSD via PC-cards that PAO supports.

	I'm also involved in the multilingual boot.flp project
	(it currently supports English, Japanese, and Chinese).  This
	boot.flp also supports PAO, and you can install PAO
	via an PC card.

	Once the PC card is recognized appropriately, you can thereafter
	ordinarily install using CD-ROM, networks and so on.
	Take care to select at least the kernel source code (ssys)

	After the installation, reboot, login as root, and type
		# /stand/sysinstall
	select Configuration -> PC CARD

	This procedure will install PAO kernel, which is necessary
	to use a PC card, as the kernel is GENERIC one just after
	the installation.

	if you've installed FreeBSD with this floppy.  This floppy is
	available at,

		ftp://ryukyu.mt.cs.keio.ac.jp/pub/FreeBSD/bootasia-PAO/
		ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/I18N-flp/

* How do I configure the variables in /etc/rc.conf?

	There are new functions in PAO for FreeBSD 2.2.8R, which is
	described after 9., and /etc/pccard_ether was changed at the
	same time.

	1. apm_enable

		If this variable set to YES, you can use /dev/apm
		application interface, and kernel can handle APM
		events (default: NO).

	2. pccard_enable

		If this variable set to YES, PC-card manager daemon
		starts at bootstrap (default: NO).

	3. pccard_mem

		If you want to use scratch memory for the PCIC other 
		than DEFAULT (0xd0000), set this variable explicitly
		(default: DEFAULT).

	4. pccard_beep

		If pccard_beep is set to 0, insertion and removal of
		PC-cards is set to silent mode.  If it is set to 1 or
		2, the machine beeps when the card is inserted or
		removed.  1 and 2 correspond to a simple beep mode and
		melody mode respectively (default: 2).

	5. pccard_ether

		List all ethernet interfaces configured in your
		kernel.  For example, if you use PAO as the config
		file, appropriate value of this variable is
			    pccard_ether="ed0 ep0 fe0 sn0"
		(default: NO).

	6. ifconfig_"interface name"

		Set arguments for ifconfig corresponding to all
		interfaces listed in "pccard_ether".  If this variable
		is set to "DHCP", DHCP (Dynamic Host Configuration
		Protocol) clients are automatically executed for
		corresponding interface.  If you want to use "DHCP",
		you must install WIDE-DHCP package in ports/packages
		collection and configure BPF (Berkeley Packet Filter)
		in your kernel (PAO config file has this definition).
		And, don't forget to MAKEDEV bpf? devices.

		(example 1)
			pccard_ether="ed0 ep0 fe0 sn0"
			ifconfig_common="10.0.0.1 netmask 0xffffff00"
			ifconfig_ed0=$ifconfig_common
			ifconfig_ep0=$ifconfig_common
			ifconfig_fe0=$ifconfig_common
			ifconfig_sn0=$ifconfig_common

		(example 2)
			pccard_ether="ed0 nep0 fe0 sn0"
			ifconfig_common="DHCP"
			ifconfig_ed0=$ifconfig_common
			ifconfig_ep0=$ifconfig_common
			ifconfig_fe0=$ifconfig_common
			ifconfig_sn0=$ifconfig_common

	7. defaultrouter

		If you set this variable, the default router is
		automatically registered into the routing table when
		you insert the card, and automatically deleted from
		the routing table when you removed the card.  This
		variable is ignored when the ifconfig parameter of
		corresponding interface is set to "DHCP". (default:
		NO)

	8. dhcp_flags

		Set "-r" option if you are to use WIDE-DHCP and wants
		to change /etc/resolv.conf automatically.
		Set "-n" option if you want to change the hostname
		automatically.

	9. ifconfig_"interface name"_alias<N>

		Define argument to the alias corresponding to the interface name.
		You may specify more than one alias.
		If ifconfig_"interface name" is set to "DHCP"
		this variable is ignored.

		    ifconfig_common_alias0="10.0.0.101 netmask 0xffffffff"
		    ifconfig_ed0_alias0=$ifconfig_common_alias0
		    ifconfig_ep0_alias0=$ifconfig_common_alias0
		    ifconfig_fe0_alias0=$ifconfig_common_alias0
		    ifconfig_sn0_alias0=$ifconfig_common_alias0

	10. static_routes_"interface name"

		Define the list of static routes per interface.
		The argument to the route command should be
		written in route_<name>
		If the ifconfig_"interface name" is set to "DHCP"
		this variable is ignored.

		    static_routes_common="name0 ..."
		    static_routes_ed0=$static_routes_common
		    static_routes_ep0=$static_routes_common
		    static_routes_fe0=$static_routes_common
		    static_routes_sn0=$static_routes_common
		    route_name0="-net 192.168.0 10.0.0.2"
		    route_name1=...

	11. route_flush

		Set "NO" if you want to use the machine as gateway using
		two or more PCMCIA Ethernet cards. In that case set
		static_routes and defaultrouter as empty. If
		static routing is required use 
		static_routes_"interface name" instead of static 
		routes or defaultrouter. If route_flush is set
		to "YES", all the route will be deleted when a 
		card is removed.

* I'm using an IBM ThinkPad 3xx series and I want to install FreeBSD, but
  the FreeBSD keyboard driver can't handle keyboard correctly, so I can't
  install FreeBSD.  Why?

	That's because these machines use XT-compatible keyboards.
	The old version of PAO has a patch to configure this feature
	from UserConfig, but this patch has been incorporated to
	FreeBSD since 2.2-ALPHA. Boot from the installation floppy with
	the UserConfig ("kernel -c") option and type

		flags sc0 0x10

	at the UserConfig prompt.  This enables the XT-compatible 
	keyboard mode of syscons driver.

* "Gated" does not work on PAO system.  Why?

	That's because gated does not support "dynamic interface
	emergence" that PAO provides.  In other words, gated cannot
	handle it when new devices "appear" after it has started.

* I tried to change the IRQ and I/O address of my PCMCIA cards by 
  using UserConfig ("kernel -c"), but it has no effect.  Why?

	UserConfig ("kernel -c") and arguments of "device" and
	"controller" definitions in the config file (except the
	definitions of "xxxintr") have no effect on PCMCIA cards.
	Edit /etc/pccard.conf to modify these parameters, 

* Why does the designation of io port conflict between one in the
  kernel configuration and one in the config index in /etc/pccard.conf?

	There is no relation between the address of config index specified
	in pccard.conf and the io port such as IO_COM3 you specify 
	when you make the kernel.

	PAO will override the address specified in the kernel configuration.
	Therefore you do not have to write after "at" as following,

	device	sio0	at isa? port "IO_COM1" tty irq 4 vector siointr
	device	sio1	at isa? port "IO_COM2" tty irq 3 vector siointr
	device	sio2
	device	sio3

	Actually I am using a kernel made that way. (Only the space in
	the kernel is required.)
	There is no difference between sio2 and 3 except for the
	number of the unit. The config index solely determines the
	address.	


$Id: PAO-FAQ,v 1.1.1.1.10.2 1999/03/31 15:07:44 toshi Exp $