		   -------------------------------
			       PAO-FAQ
			 PAO3 for 3.x-RELEASE
		   -------------------------------
			   Tatsumi Hosokawa
			BSD-nomads Team, Japan	
			bsd-nomads@clave.gr.jp

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
	[100] What does PAO stand for?
	[101] What is the URL of PAO Homepage?
	[102] How can I get the latest PAO?

2. Supported Hardware
	[200] What cards does PAO support?
	[201] What laptops does PAO support?

3. APM BIOS
	[300] What does APM stand for?
	[301] This kernel hangs when I use APM BIOS.  Why?
	[302] I can't use apm(8) and zzz(8).  Why?
	[303] 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?
	[304] My laptop sometimes hangs when the system is resumed
	      from suspended mode.  Why?

4. PC Card Controller
	[400] Does not recognize my PC Card controller.  There was no
	      promblem until 2.2.6-RELEASE, but PAO installer for
	      2.2.7-RELEASE and later or PAO3 for 3.x-RELEASE.
	[401] Removing a card freezes the machine.  How can I ward off 
	      this trouble?
	[402] 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?
	[403] I installed PAO on my machine, but it does not report the
	      insertion/removal of cards.  Why?
	[404] When I insert cards, the system says only "CIS code
	      read: Cannot allocate memory".  Why?
	[405] My laptop says "Slot ?, unfielded interrupt (?)".  Why?

5. PC Card
	[500] A kernel boot message says that my card is not probed.  Why?
	[501] 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?
	[502] 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? 

  5.1.	Ethernet
	[510] How can I plug two network cards into a laptop and use
	      it as a gateway?
	[511] My system fails to use NE-2000 compatible Ethernet
	      cards, but the entries in /etc/pccard.conf seem to be
	      correct.  Why?
	[512] My WaveLAN card is probed correctly, but I can't use it.
*New*	[513] When I insert my ethernet card, I only get the message 
	      "ed0: device timeout" and the card does not work.
	      (The message varies depending on the driver used).

  5.2.	FAX/Modem
	[520] The kernel says that my modem is attached as "sio2", but
	      there is no /dev/sio2.  Why?
	[521] Failed to probe (or probed correctly, but the system is
	      unstable) PCMCIA FAX/Modem cards (or other serial
	      cards).  Why? 

  5.3.	Flash ATA/ATA HDD/ATAPI CD-ROM
	[530] Why does the kernel fail to assign the disk, although
	      the IDE interface is recognized?
	[531] How do I mount a Flash ATA card as a disk?
	[532] How do I mount an ATAPI CD-ROM, or CD-R/RW?

  5.4.	SCSI
	[540] Are SCSI PC Cards supported by PAO?

  5.5.	Video Capture
	[550] How/where can I get an IBM Smart Capture Card?
	[551] Are there any applications other than xscc for the IBM
	      Smart Capture Card?

  5.6.	Multifunction Card
	[560] Are multifunction cards supported by PAO?

  5.7.	CardBus
	[570] Are CardBus cards supported by PAO?

6. System Installation
	[600] I want to install FreeBSD with a PC Card supported by PAO.
	      How should I do?
	[601] How should I PAO'nize the ordinal FreeBSD system?
	[602] I have installed FreeBSD with PAO boot.flp and a PC NIC
	      card.  After finished installation, I have found that the
	      NIC card (and any other cards) does not work.  Why?
	[603] I would like to exchange the newest /stand/sysinstall
	      with the current old one.  How should I do?
	[604] How should I configure the variables in /etc/rc.conf?
*Upd*	[605] 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?
	[606] Some applications like named or httpd invoked from
	      system startup file fail to start at boot time, although
	      they work fine when started manually after system startup.
	[607] "Gated" does not work correctly on a system with PAO.  Why?
	[608] I tried to change the IRQ and I/O address of PCMCIA
	      cards by using UserConfig ("boot -c"), but it has no
	      effect.  Why?
	[609] 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
~~~~~~~~~~~~~~~~~~~~~~

[100] What does PAO stand for?

	PAO stands for nomads :-).

[101] What is the URL of PAO Homepage?

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

[102] 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/cvsup.html
	for the detail of installation of cvsup.
	Configuration file should be written as follows

	----
	# PAO3 for 3.x-RELEASE
	*default host=cvsup.jp.FreeBSD.org
	*default base=/somewhere/you/want/to/put
	*default prefix=/somewhere/you/want/to/put
	*default release=cvs tag=.
	*default delete use-rel-suffix
	*default compress

	# collections
	jp-pao3
	----

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

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

	PAO3 version of boot floppy boot.flp, kern.flp, mfsroot.flp
	and PAO binary/source distribution (paobin, paosrc) can be
	found under
	ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/

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


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

[200] What cards does PAO support?

	Please read the file "SUPPORTED.CARDS" in the package.
	The latest version can be found at
	http://home.jp.FreeBSD.org/~toshi/PAO3/SUPPORTED.CARDS

	The latest version of card database /etc/pccard.conf
	is available from
	http://home.jp.FreeBSD.org/~toshi/PAO3/pccard.conf.sample

[201] 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
~~~~~~~~~~~

[300] What does APM stand for?

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

[301] 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 ("boot -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.

[302] 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.

[303] 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. :-).

[304] 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 Controller
~~~~~~~~~~~~~~~~~~~~~

[400] Does not recognize my PC Card controller.  There was no promblem 
      until 2.2.6-RELEASE, but PAO installer for 2.2.7-RELEASE and
      later or PAO3 for 3.x-RELEASE.

	The code of PC Card controller (PCIC) initialization was
	changed in PAO for 2.2.7-RELEASE.  The PCIC may fail to be
	recognized if the specified I/O port address of the PCIC was
	incorrect.

	Some workarounds are shown here in brief.  There are several
	solution depending on the note PC's BIOS. If it does not work 
	well with your PC, please send questions to the FreeBSD-mobile
	mailing list, which the PAO developers subscribe.

	This will also be automatically processed some day.

	A1. If you can set PCIC's I/O port in the BIOS setup, set
	    0x3e0 which is PAO's default.

	A2. If you cannot select PCIC's I/O port in the BIOS setup,
	    and can only specify "Plug & Play OS = [Yes or No]", set
	    "PnP OS=[NO]".  Then the BIOS will automatically set the
	    PCIC's I/O port. 

	  In this case, you must tell the kernel the PCIC's I/O port
	address set by the BIOS.  You boot with the install floppy to
	obtain the value of the I/O address, then reboot and set the
	I/O port address, the kernel will recognize PCIC and PC Card
	so you can continue installation.

	  First, to obtain the PCIC's I/O port address, boot with
	install floppy and type "boot -v" at third stage boot prompt.
	You will get messages like this:

--------------------------------------------------------------------------
pcic0 <Cirrus Logic PD6729/6730 PC-card Bridge> rev 254 class 60500 int a irq ?? on pci0:19:0
        mapreg[10] type=5 addr=0000fcfc size=0004.
                               ~~~~~~~~
bus = 0, slot = 19, func = 0
--------------------------------------------------------------------------

	  Here, 0000fcfc is PCIC's I/O port address set by the BIOS.
	Once you obtained this value, reboot the PC (because the
	kernel should have failed to recognize the PCIC).  If the I/O
	address printed on the screen scrolls out, set ScreenLock key
	on and scroll back using cursor key.  You may have to use the
	English mode if you are installing with I18N installer.

	  Second, tell the PCIC's I/O port address to the kernel. For
	example, if you have chosen [Start kernel configuration in CLI
	mode] in [Kernel Configuration Menu], type instructions below
	at config> prompt.

	config> port pcic0 0x0000fcfc
	config> q

	  Now, the kernel should correctly recognize the PC Card, and
	you can install FreeBSD as you did with 2.2.6-RELEASE and
	former.

[401] 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' or the 'power' subcommand of 'pccardc' (i.e
	pccardc power 0 0), and hibernate the card first; you could
	remove these cards safely.

[402] 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
	irq option of device pcic0 in config file, like,

	device	pcic0   at isa? port 0x3e0 irq 11

	In changes, boot the kernel with UserConfig ("boot -c") and
	type "irq pcic0 7" or reconfigure and rebuildig kernel as
	following:

	device	pcic0   at isa? port 0x3e0 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.

[403] 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.  

[404] 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.

[405] My laptop says "Slot ?, unfielded interrupt (?)".  Why?

	No problem.  Never mind :-).


5. PC Card
~~~~~~~~~~

[500] 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.

[501] 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 #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.  To handle such
	card automatically, add the keyword "auto" in /etc/pccard.conf.
	When this keyword is specified, config index that match the
	I/O pool above will be selected.

[502] 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


5.1. Ethernet
~~~~~~~~~~~~~

[510] 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	logger -s IBM PCMCIA Ethernet inserted
		insert	/etc/pccard_ether $device
		remove	logger -s 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
	keyword "auto", "default" or "any"), 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	logger -s IBM PCMCIA Ethernet inserted
		insert	/etc/pccard_ether $device
		remove	logger -s IBM PCMCIA Ethernet removed
		remove	/etc/pccard_ether_remove $device

	card "ACCTON" "EN2212"
		config	default "ed1" any 0x30
		ether	0xff0 00:00:e8
		insert	logger -s Accton EN2212 inserted
		insert	/etc/pccard_ether $device
		remove	logger -s 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.

[511] 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

[512] 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.

[513] When I insert my ethernet card, I only get the message 
      "ed0: device timeout" and the card does not work.
      (The message varies depending on the driver used).

      In case that the IRQ assigned to the card has already used with
      another device, it cannot handle interrupts occured on the device.

      When a card is newly inserted into a machine, the pccardd daemon
      try to assign one of the unused IRQ to it.  In case that some
      unsupported devices, e.g. unsupported sound cards, has already
      occupied one or more irq's, the system may badly assign the irq's
      to the newly inserted card without knowing its occupation.

      So as to recognize such an misassignment, it is necessary for you
      to know all of the devices in your machine and how each of them
      uses the resources.  There are several way to get it:

	a) Examine the specification of your machine consulting the
	   documents, e.g. manuals.
	b) Examine 'Control Panel' -> 'System' -> the "Property of the
	   Computer" on Windows9X.
	c) PCI devices can be recognised in the BIOS message, or by
	   using the 'scanpci' or 'pciconf' commands.

      There are three ways to handle the situation:

	1. Try to make the system recognise the unsupported devices.
	2. Change some of the BIOS settings so as to deactivate the
	   device.
	3. Tell the pccardd daemon not to use the occupied IRQ's.

      In detail;

      1. Try to make the system recognise the unsupported devices.

	At first, examine whether the FreeBSD in which version you have
	installed supports the device and how to make it to support.  For
	example, the stock PAO_ALL kernel does not usually include the USB
	controller driver.  You may as well see the LINT file to see how
	to include the driverin the kernel.  You can really make the
	unrecognized sound card be recognized by the kernel after some
	work.  Because it is too tired to write every possible ways to 
	configure, please do your best.

	In case that you find the device is not supported in your version,
	or decide to remove the drivers corresponding to the unused
	devices, you would try to the following approach.

      2. Change some of the BIOS settings so as to deactiveate the
	 device itself.

	Examine the BIOS settings corresponding to the unwanted device
	configuration so as to cut the device off, although not all of the
	machines support the setting.  There are quite a lot of laptop
	PC's that do not support such settings.  If you unfortunately have
	to live with such the machine, you would take the final weapon.

      3. Tell the pccardd daemon not to use the occupied IRQ's.

	Note that the way of configuration depends on whether you uses PAO
	or not, and depends on whether the PAO's version you uses the
	equal to or newer than 3.3-R, or else.

      A) PAO or PAO3

	In the pccardd daemon of PAO, you specify the ``unused'' irqs in
	either the pccard.conf file or in the options.  Please consult the
	manpages in the PAO package so as to see in detail.  Note that the
	Japanese manpages are changed in the PAO package.

      i) how to configure 'ignirq' in the /etc/pccard.conf file.

        In the following definition clauses, you can append the IRQ
	numbers you want not to use.  The IRQ number five is, in
	default inactivated because in many cases the SoundBlaster's
	use it.  Note that you cannot specify the irq keyword in PAO.

	# Unavailable IRQs
	#ignirq 9
	# refrain from using SoundBlaster's IRQ, by default.
	ignirq 5
	# it may be helful for most of notebook PCs
	#ignirq 15
	
      ii) how to configure 'pccardd_flags' in the /etc/rc.conf file.

	You can specify one or more irq numbers you want not to use in
	the pccardd options.  Although you can directly modify the
	/etc/rc.pccard startup file because the pccardd is invoked in
	the /etc/rc.pccard, you can pass the numbers by specifying them
	on the pccardd_flags in the /etc/rc.conf file.

	pccardd_flags="-i 5 -i 9"

      B) 3.3-RELEASE without PAO

	It is described briefly in this version of non-PAO system.  In
	this system without PAO, you should specify all of ``using''
	IRQ's in either the pccard.conf or the pccard options.

	In any of the previous releases you cannot specify it by means
	of the options.

      i) how to specify irqs in the /etc/pccardd.conf file.

	Edit /etc/pccard.conf as such the following list.  Most of the
	recent laptops might not have so many unoccupied IRQ's.

	# Generally available IRQs (Built-in sound-card owners remove 5)
	irq     3 5 10 11 13 15

      ii) how to specify irq on the pccardd_flags in the /etc/rc.conf
	  file.

	Confusingly to say, (I have just found that:-) the '-i' <irq>
	option is integrated into the pccardd daemon with quite the
	opposite meaning.  So all of you have to do is to specify '-i'
	option.  This integration is for the installing floppy disk.

	You might as well specify as follow: 

	pccardd_flags="-i 3 -i 10 -i 11"

      There are some other cases, for example, a conflict between
      the IRQ for the PC Card Controller (PCIC).  But in case of it
      you will see the sympton in [402], or in [403].  If there are
      one or more conflicts, reconfigure the kernel by modifying
      your kernel configuration file or adjust the IRQ for PCIC in
      UserConfig ("boot -c").


5.2. FAX/Modem
~~~~~~~~~~~~~~

[520] 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).

[521] 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.


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

[530] 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" bio irq ?
	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.

[531] 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.

[532] How do I mount an ATAPI CD-ROM, or CD-R/RW??

	It's the same as for desktops:

		# mount -t cd9660 /dev/acd0c /cdrom

	If you add this line

	    /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.


5.4. SCSI
~~~~~~~~~


5.5. Video Capture
~~~~~~~~~~~~~~~~~~

[550] 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.

[551] 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".


5.6. Multifunction Card
~~~~~~~~~~~~~~~~~~~~~~~

[560] Are multifunction cards supported by PAO?

	No.


5.7. CardBus
~~~~~~~~~~~~

[570] Are CardBus cards supported by PAO?

	No.


6. System Installation
~~~~~~~~~~~~~~~~~~~~~~

[600] I want to install FreeBSD with a PC Card supported by PAO.
      How should I do?

	You should prepare two floppies so as to write the two images,
	kern.flp and mfsroot.flp for installing PAO3 for 3.x-RELEASE.
	Because the patch files has now been separated from the floppy
	images, you should prepare two set of files, paobin and paosrc
	as well as these two floppy images.  The format of paobin and
	paosrc are quite the same as the ordinal distributions, such
	as bin, manpages, games, and so on.

	The following are the files of PAO install kit.

	- boot.flp : PAO boot floppy (2.88MB), which is for larger
		     media than ordinal 1.44MB floppies, such as
		     CD-ROM, LS120, and	ZIP.

	- kern.flp : PAO kernel floppy, the first 1.44MB half of boot image.
	- mfsroot.flp : PAO MFS root floppy, the second 1.44MB half of
		     the boot image.  If you would like to install
		     with ordinal 1.44MB floppy, you should prepare
		     these two images.

	- paobin : PAO binary distribution files (install.sh,
		     paobin.aa, paobin.ab, ...), which contain PAO
		     kernel, userland programs, manpages and so on.
	- paosrc : PAO source distribution files (install.sh,
		     paosrc.aa, paosrc.ab, ...), which contain kernel
		     source files that modified for PAO support, some
		     document files such as SUPPORTED.CARDS.  During
		     installation of 3.x-RELEASE, you should select
		     the category of the kernel source, ssys, if you
		     would like to customized kernel.

	- paodist.tar : the tarball file containing paobin and paosrc.

	You can get these files from the PAO Web page
	(http://www.jp.FreeBSD.org/PAO/).  Please refer the following
	file for more information
	(ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/3.3-RELEASE/README)

[601] How should I PAO'nize the ordinal FreeBSD system?

	You should extract both the PAO binary distribution files
	(paobin) and the PAO source distribution files (paosrc), or
	extract paodist.tar, which contains both paobin and paosrc.
	And execute ./install.sh in each of the both directories.
	Although it is not necessary to install paosrc, you had better
	install it so as to read the important document files, such as
	PAO-FAQ and SUPPORTED.CARDS.

[602] I have installed FreeBSD with PAO boot.flp and a PC NIC card.
      After finished installation, I have found that the NIC card
      (and any other cards) does not work.  Why?

	In case you might forget to install paobin, PAO binary
	distribution files or to replace the /kernel with a PAO one,
	you would see such a case.

	If it fails to replace the /kernel, you have to do the followings;
          # chflags noschg /kernel
          # mv /kernel /kernel.old
          # install -c -m 555 -o root -g wheel -fschg /kernel.PAO /kernel

	Otherwise, you have to perform additional installation of PAO
	binary files(paobin), and PAO source distribution
	files(paosrc).  You can prepare these distribution files in
	your DOS partitions or on some FTP site.  In order to
	installation, you can choose the 'paobin' and 'paosrc'
	submenus in the 'distribution' menu.  Although the
	distribution files, paosrc is not required to use PAO, you had
	better install it so as to take a glance over such the
	documents as PAO-FAQ or SUPPORTED.CARDS.  As well as these
	document files, the file, pccard.hlp will help you.

[603] I would like to exchange the newest /stand/sysinstall with the
      current old one.  How should I do?

	In 3.x-RELEASE, it is convenient to extract /stand/sysinstall
	from mfsroot.ftp.

	After copying the MFS root image file as /var/tmp/mfsroot.flp,
        # vnconfig /dev/vn0 /var/tmp/mfsroot.flp
        # mount -o ro /dev/vn0c /mnt

	Or if you have already prepared the floppy,
        # mount -o ro /dev/fd0c /mnt,

	You should execute the following commands;

        # zcat /mnt/mfsroot.gz > /var/tmp/mfsroot
        # umount /mnt
        # vnconfig -u /dev/vn0
        # vnconfig /dev/vn0 /var/tmp/mfsroot
        # mount -o ro /dev/vn0c /mnt
        # rm -rf /stand
        # tar cf - -C /mnt stand | tar xvfp - -C /
        # umount /mnt
        # vnconfig -u /dev/vn0

	Note that in order to use vnconfig command, you should specify
	the kernel configuration:
        pseudo-device   vn      1

[604] 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"_aliasN

		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.

[605] 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.
      Please refer to
      ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/3.3-RELEASE/TROUBLE.TXT

[606] Some applications like named or httpd invoked from system
      startup file fail to start at boot time, although they work fine
      when started manually after system startup.

	  The may be several reasons, but if it comes from that the
	daemon is invoked before PC Card have been recognized, then
	these workarounds will solve the problem:

	A1. 'sleep' and wait until PC Card has been recognized.
	  Avoid invoking these daemons from rc.conf (and /etc/rc.*)
	  and put a script like this to /usr/local/etc/rc.d directory: 

	#!/bin/sh
	( sleep 30
	  named -u bind -g bind && echo -n 'named' ) &

	A2. Avoid using apache.sh and add these lines to
	  /etc/pccard.conf entry.
		insert  /etc/pccard_ether $device
		insert  logger -s Accton EN2216 inserted
		insert  /usr/local/sbin/httpd
	    It will not work if you use more than one card of the same
	  type.

	A3. If the application fail to lookup the hostname,
	  edit /etc/host.conf so that the hosts comes first. Have
	  /etc/hosts proper entry, the application will not complain
	  any more.

[607] "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.

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

	UserConfig ("boot -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, 

[609] 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
	device	sio1	at isa? port "IO_COM2" tty irq 3
	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.19 2000/01/22 17:08:44 toshi Exp $
