------------------------------- PAO-FAQ PAO3 for 3.x-RELEASE ------------------------------- 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 Mitsuru IWASAKI, Warner Losh reflects it to the original FreeBSD. The contents of this FAQ may often be out of date. If you find something incorrect, please ask to bsd-nomads mailing list (bsd-nomads@clave.or.jp). Any correction and tips are welcome. FreeBSD QandA (in Japanese) (http://www.jp.FreeBSD.org/QandA/) may also help you (if you understand Japanese). 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? *New* [102] What is PAO3? *New* [103] Is there PAO for 4.0-RELEASE? *New* [104] Where does PAO go? *New* [105] Which mailing lists deal with topics about PAO? *New* [106] How can I get the latest PAO? *New* [107] PAO CVS Repository 2. Supported Hardware [200] What kind of PC Cards does PAO support? *Upd* [201] What laptops does PAO support? *New* [202] What kind of PC Card Controllers does PAO support? *New* [203] My PC Card works but it is not in the SUPPORTED.CARDS list. Where and what should I report? 3. APM BIOS *Upd* [300] What does APM stand for? *Upd* [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? *Upd* [304] My laptop sometimes hangs when the system is resumed from suspended mode. Why? *New* [305] What can be done with apmd(8)? *New* [306] My PC Card does not work after resuming from suspended mode. What shall I do? 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? *New* [406] How do I re-read the /etc/pccard.conf file? 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. [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? [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] What is PAO3? It is the PAO for 3.x-RELEASE. The word "PAO3" is used when we want to distinguish it from PAO for 2.2.x-RELEASE. [103] Is there PAO for 4.0-RELEASE? No, there is not, and there is no plan to develop. The work to commit PAO features into -current is now under way. However, we think that current status is much better than before. Please wait with patience for better PC Card support. [104] Where does PAO go? All that I know is that the PAO3 will be maintained for a while. [105] Which mailing lists deal with topics about PAO? PAO release is announced to announce-jp@jp.FreeBSD.org and bsd-nomads@clave.gr.jp . Topics such as questions, bug reports and patches should be sent to mailing lists below: FreeBSD-mobile Mailing List (in English) mailto: freebsd-mobile@FreeBSD.ORG to subscribe, see http://www.FreeBSD.org/handbook/eresources.html BSD-nomads Mailing List (in Japanese) mailto: bsd-nomads@clave.gr.jp to subscribe, see http://www.jp.FreeBSD.org/ml.html#bsd-nomads [106] How can I get the latest PAO? See the PAO webpage http://www.jp.FreeBSD.org/PAO/ to get the latest PAO for each -release. Source kit file name is PAO3-2000xxxx.tar.gz and placed at ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/ Snapshot files are named PAO3-freebsd3x-xxxxxx-snap.tar.gz and placed at ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/snap/ You can find PAO install floppies (boot.flp, kern.flp, mfsroot.flp), PAO binaries (paobin), PAO sources (paosrc) at ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/ [107] PAO CVS Repository PAO is maintained in the CVS repository on home.jp.FreeBSD.org. If you have an account of the host, you can access the repository using cvs with the CVSROOT environment variable set appropriately. More generally CVSup can be used. See http://www.FreeBSD.org/en/handbook/cvsup.html for cvsup installation. The cvsup configuration file should be as below: ---- # 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 ---- You can check the difference between PAO and each revisions with cvsweb: http://www.jp.FreeBSD.org/cgi/cvsweb.cgi/PAO3/?cvsroot=freebsd-jp 2. Supported Hardware ~~~~~~~~~~~~~~~~~~~~~ [200] What kind of PC 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 PC Card database /etc/pccard.conf is available from http://home.jp.FreeBSD.org/~toshi/PAO3/pccard.conf.sample [201] What laptops does PAO support? See Laptop Survey / FreeBSD. http://www.jp.FreeBSD.org/PAO/LAPTOP_SURVEY/index.html Please send us the description of your laptop which runs FreeBSD with or without PAO. [202] What kind of PC Card Controllers does PAO support? 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). [203] My PC Card works but it is not in the SUPPORTED.CARDS list. Where and what should I report? Please report to PAO Report in the following case: o your PC Card which is not in the list works. o your PC Card does not work even though it is in the list. The report format should be: o The manufacturer, the name of the PC Card and whether it works or not. o the driver which works with the card. o the FreeBSD version. o the date of the PAO release (e.g. PAO3-YYYYMMDD, see README.install). o the result of `pccardc dumpcis' In addition, add a description if you needed some special settings or the pccard.conf entry if you card did not work with PAO's pccard.conf.sample. 3. APM BIOS ~~~~~~~~~~~ [300] What does APM stand for? Microsoft and Intel's "Advanced Power Management". It seems that the spreading ACPI (Advanced Configuration and Power Interface) standard obsoleted it, and perhaps the APM is not "advanced" anymore. It may be difficult to get the APM specification, apart from http://www.microsoft.com/HWDEV/busbios/apm_12.htm . If you really want to read the APM standard, it is possible that you get some responces if you asked to bsd-nomads mailing list. [301] The kernel hangs when it uses APM BIOS. Why? Some implementations of protected mode APM BIOS have serious bugs. Furthermore, some of recent BIOSes which support ACPI have poor APM implementation, and it is not easy to make them work correctly. Not long ago, updating the BIOS sometimes solved the problem. We cannot expect it anymore, for Microsoft Windows98 and later versions no more use APM. We had no choise but to modify the kernel source code to "cope with" this problem. If you find a solution, please report us the solution (and of cource your environment). If you are not a hacker (in the true meaning!), simply type "disable apm0" at UserConfig (invoked by "boot -c") :-) PAO's APM BIOS driver can be configured to cope with some imcompatibilities of APM BIOSes from UserConfig. The apm0 device has a "flags" mask for this purpose. Equivalent kernel options exists, however, due to historical reasons, there are incompatibilities between PAO and plain FreeBSD, so please do not rely on the LINT descriptions for the APM driver. o flags 0x02 or options "FORCE_APM10" Some APM BIOS implementations that calls themselves compatible with APM 1.1 specification are incomplete implementation of it. This flag (or option) forces the APM driver to drive the APM BIOS in the 1.0 specification compatibility mode, regardless of the version the APM BIOS reports. o flags 0x08 or options "APM_FORCE_64K_SEG" This flag (or option) deals with the APM BIOS implementation that returns the wrong segment limit. In fact, the kernel panics if you do not specify this flag (or option) with IBM ThikPad 530Cs. [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 Some devices (such as sound card, USB, internal modem, etc.) cause interrupts when the system is resuming. The current PAO implementation associate a IRQ to a PC Card from the free IRQ pool, if not explicitly specified. Therefore, these unsupported devices can have the same IRQ which has already been allocated to the PC Cards. If you have such a machine, you can avoid the problem in one of the following ways: - Try to use the device from FreeBSD once more. For example, PAO_ALL configuration does not include USB, but you can use it if you add the options and reconfigure the kernel. - Disable unsupported device from the BIOS setup. Please note that if you do this, you will not be able to use the device even from Microsoft Windows. - Remove the IRQ from the free IRQ pool in /etc/pccard.conf. Refer to the keyword "ignirq" of the pccard.conf. o For the same reason, even if the device that causes the problem is supported by FreeBSD, you have to either configure the device in FreeBSD or disable it from the BIOS setup. You should not leave the device unused. [305] What can be done with apmd(8)? It can do many things convenient for you. It can hook SUSPEND and RESUME events from userland. For example, in the case that the mouse do not work when resumed but can be restarted by sending HUP signal to moused, you can automate it with apmd(8), by customizing /etc/apmd.conf file. Another possible example is to disable suspending while using PC Card. (Of course, whether you can do such things or not depends on your machine). [306] My PC Card does not work after resuming from suspended mode. What shall I do? It seems that you need to re-setup the PC Card controller after resuming, and it is difficult to describe that here. Please report your problem to freebsd-mobile mailing list (or bsd-nomads mailing list) and you might get solutions. 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 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 :-). [406] How do I re-read the /etc/pccard.conf file? When you changed the /etc/pccard.conf file, you have to reboot or send SIGHUP signal to pccardd as following: # killall -HUP pccardd or # kill -HUP `cat /var/run/pccardd.pid` The pccardd does not recognizes the changes you made if you forget doing this. 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' 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.21 2000/05/19 13:33:29 toshi Exp $