FreeBSD 3.4-RELEASE PC Card Installer Tatsumi Hosokawa Toshihiko ARAI http://www.jp.FreeBSD.org/PAO/ BSD-nomads team, Japan Contents -------- 1. What's this floppy? 2. PC Card Basics 3. Structure of PAO install floppies 3.1 PAO enabled kernel (PAO_ALL kernel) 3.2 Installer (/stand/syninstall) 3.3 PAO binary distribution file (paobin) 3.4 PAO source distribution file (paosrc) 4. Install method of FreeBSD 4.1 Case: Install from a DOS partition 4.2 Installing from FTP or NFS server 4.3 Installing FreeBSD from CD-ROM and PAO from DOS or FTP 4.4 Configuring WIDE-DHCP client 5. After finishing install -------- 1. What's this floppy? == =================== The kernel and sysinstall of this floppy includes PAO PC Card package for FreeBSD. You can install FreeBSD with this floppy from various PC Cards (Ethernet, ATAPI CDROM, etc.). This floppy is based on FreeBSD 3.4-RELEASE and PAO-20000130. Therefore, supported cards are same as the cards supported by PAO-20000130. Please read http://home.jp.FreeBSD.org/~toshi/PAO3/SUPPORTED.CARDS for details. PAO is a package that supports mobile computing on FreeBSD. Part of old PAO packages have been incorporated into original FreeBSD source tree, and now also the code in this package is waiting for integration. Part of codes in PAO has been less reviewed and it includes some experimental (pre-alpha level) codes that is not suited to be incorported into the original source tree at current status, but PAO is more useful and support more card compared to current FreeBSD PC Card support. 2. PC Card Basics == ============== To use this floppy, you have to know at least some basic ideas of PC Card architecture. PC Card uses I/O port, IRQ, and shared memory like many ISA devices, but the address and IRQ level are dynamically allocated by a special hardware called PC Card controller (or PC Card bridge). Each PC Card slot has eight memory windows, two I/O windows and a unnumbered IRQ line. PC Card controller maps these resources onto ISA or PCI space. PC Card can be controlled by CPU like ordinarily ISA devices because this mapping function works transparently. (All memory windows and I/O Window 1 are unused) +---------+ +------------+ / | |--------------------| |-----------/ ISA BUS | Modem | I/O Window 0 | PC Card | 3f8 - 3ff / | PC Card |--------------------| Controller |-----------/ | |<==================>| |<=========>/ +---------+ unnumbered IRQ +------------+ IRQ 3 / fig.1 Modem card is mapped as a serial chip on ISA bus To determine the value of these parameters, operating system uses "CIS (Card Information Structure) tupples" described in EEPROM memory in the cards. Operating system gets this information also via PC Card controller. PC Card controller requires 16 kilobytes of memory address for this purpose (it maps EEPROM memory onto this area). You can read these data by typing "/stand/pccardc dumpcis" from command prompt after the installation. A sample output of "/stand/pccardc dumpcis" follows. ----------------------------------------------------------------------- Tuple #6, code = 0x1b (Configuration entry), length = 16 000: e0 41 99 49 55 26 25 aa 60 f8 03 07 30 ff ff 28 Config index = 0x20(default) Interface byte = 0x41 (I/O) +RDY/-BSY active Vcc pwr: Nominal operating supply voltage: 5 x 1V Continuous supply current: 2 x 100mA Power down supply current: 2 x 10mA Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x3f8 block length = 0x8 IRQ modes: Level IRQs: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Max twin cards = 0 Misc attr: (Audio-BVD2) (Power down supported) Tuple #7, code = 0x1b (Configuration entry), length = 7 000: 21 08 aa 60 f8 02 07 Config index = 0x21 Card decodes 10 address lines, 8 Bit I/O only I/O address # 1: block start = 0x2f8 block length = 0x8 ----------------------------------------------------------------------- fig.2 Sample CIS tupples (part of CIS in Megahertz XJ3288) This floppy uses 0xd0000-0xd3ffff for this scratch area by default, but if your hardware uses this area for other purposes, you can select another addresses (0xd4000, 0xd8000, and 0xdc000) from the first menu of this floppy. If you're uncertain of the detailed spec of your hardware, proceed without selecting optional values, and test other options after it causes any problems :-). 0xd0000 is an appropriate value on most laptop hardware. There's another additional menu about PC Card in this floppy. The second menu is used to choose the free IRQ pool for PC Cards. PC Card requires a free IRQ that is not used by other devices. Operating system must manages free IRQ pool for this purpose. You can choose this free IRQ pool from the menu. The default is IRQ 10 and 11. Please note that there are some machines that have sound card which occupies IRQ 10 (and too bad that can't be probed by installation floppy, of course). If you have such machines, you can't use IRQ 10 for this purpose. IRQ 5 and 11 would be good alternative, but use IRQ 11 only if you have another devices which occupies IRQ 5. 3. Structure of PAO install floppies == ================================= In PAO3 for 3.x-RELEASE, install floppy are divided into 2 pieces of floppies same as FreeBSD 3.x-RELEASE. In addition, PAO boot.flp does not contain kernel patch any more, it contains paobin and paosrc with format same as normal distribution file of FreeBSD. - boot.flp : PAO boot floppy (2.88MB), If you have any bootable CD-ROM, LS120 or ZIP, use this. - kern.flp : PAO kernel floppy (1st disk of 1.44MB) - mfsroot.flp : PAO MFS root floppy (2nd disk of 1.44MB), If you use normal FDD, use these two. - paobin : PAO binary distribution file, containing PAO enabled kernel, userland, man pages and etc. (install.sh, paobin.aa, paobin.ab, ...) - paosrc : PAO source distribution file, containing kernel source modified in PAO, PAO-FAQ and documents such as SUPPORTED.CARDS. If you are willing to build custom kernel, select the kernel source `ssys' too. (install.sh, paosrc.aa, paosrc.ab, ...) - paodist.tar : paobin and paosrc archived by tar. The master site of these files is: ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/3.4-RELEASE/ You can download from PAO home page (http://www.jp.FreeBSD.org/PAO/) If you want to know about mirror sites in Japan, consult with http://www.jp.FreeBSD.org/mirror.html#ftp-jp 3.1 PAO enabled kernel (PAO_ALL kernel) --- ----------------------------------- PAO enabled kernel is build from PAO_ALL configuration and included in paobin as kernel.PAO. After successful installation, it will be saved in root directory and copy to /kernel by installer automatically. But if you add paobin after installation, this process will not be done and /kernel remains as GENERIC kernel. In this case, please input following command: # chflags noschg /kernel # mv /kernel /kernel.old # install -c -m 555 -o root -g wheel -fschg /kernel.PAO /kernel PAO_ALL kernel has driver to support PC Card in addition to device supported by the GENERIC kernel, and device supporting with installer is fundamentally the same because install floppy includes the kernel that compressed this. fdc1 Toshiba Libretto PCMCIA Floppy Disk Drive. wdc2, wdc3 GENERIC Flash ATA, ATA HDD, External IDE HDD Adapter. acd0 ATAPI CD-ROM and DVD-ROM drive. wfd0 ATAPI LS-120 Super Floppy Disk, ATAPI ZIP Drive. sio2 - sio5 GENERIC FAX/Modem, ISDN, Digital Cellular, PHS Data Commuincation Card, GPS Receiverl, FM-Radio Card, RS-232C etc. ed0, ed1 National Semiconductor DS8390/WD83C690 based ethernet adapters. DL10019C Fast Ethernet controller support. ep0, ep1 3Com Etherlink III 3C589 series and 3Com Fast Etherlink 3C574TX series. fe0, fe1 Fujitsu MB86960A/MB86965A based Ethernet cards. sn0, sn1 SMC's 9000 series Ethernet adapters. xe0 Xircom CreditCard PCMCIA Ethernet adapters. wlp0, wlp1 Old type NCR WaveLAN PCMCIA driver. cnw0, cnw1 Netwave AirSurfer Wireless LAN. ux0 Am79C930 IEEE802.11 network card driver. awi0 BayStack 650 IEEE802.11 Frequency Hopping. wi0 Lucent WaveLAN/IEEE 802.11 PCMCIA driver. aic0 Adaptec SlimSCSI APA-1460 series. scc0, scc1 IBM Smart Capture Card. hss0, hss1 Hitachi microcomputer speech synthesizer card. joy0 PCMCIA Joystick. gp0 National Instruments PCMCIA-GPIB cards. 3.2 Installer (/stand/syninstall) --- ----------------------------- The installer which PAO install floppy includes is integrating multilingual FreeBSD install floppy (http://www.jp.FreeBSD.org/BootAsia/) and functionality enhancement of PAO. In addition, some items are added to configuration menu. Functionality enhancement of PAO o Support installation via PC Card (Ethernet, CD-ROM, Modem etc.) - Embed pccardd and pccardc, and launch pccardd automatically. - Embed configuration tool uxctl and wicontrol. o Add PAO distribution into Distributions Menu - paobin PAO binary distribution file - paosrc PAO source distribution file o Improve Configuration Menu related to PC Card - pccard Enable PC Card (PCMCIA) (mainly laptop) - pccard mem Memory address of PC Card (if enabled) - pccard beep Sound mode configuration at eject/insert PC Card - pccard ether List of PC Card ethernet devices to configure - pccard ifconfig Configuration of PC Card network interface o Add configuration of apmd(8) into Startup Menu - apmd Launch APM event monitor daemon - apmd flags Set flag to apmd (If enabled) Added files to FreeBSD Standard installer /stand: I18N/ Multilingual installer messages and fonts dhcpc WIDE-DHCP client help.ja_JP/ Japanese document files help.ko_KR/ Korean document files help.zh_TW/ Chinese document files pccardc PC Card management and monitoring tool pccardd PC Card management daemon uxctl Am79C930 IEEE802.11 PC Card configuration tool wicontrol Lucent WaveLAN/IEEE 802.11 PC Card configuration tool /stand/help: i18n.hlp.gz Guide to FreeBSD Multilingual install floppy pccard.hlp.gz This document /etc: pccard.conf PC Card database /dev: card[0-3] PC Card slot bpf[0-3] Berkeley packet filter (for dhcpc) 3.3 PAO binary distribution file (paobin) --- --------------------------------- PAO enabled kernel, userland, man pages and /etc configuration files are included. These are minimum requirements at runtime. -rw-r--r-- 1 root wheel 464 Jan 31 21:03 paobin/CHECKSUM.MD5 -rwxr-xr-x 1 toshi wheel 519 Oct 3 03:07 paobin/install.sh* -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paobin/paobin.aa -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paobin/paobin.ab -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paobin/paobin.ac -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paobin/paobin.ad -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paobin/paobin.ae -rw-r--r-- 1 root wheel 51008 Jan 31 21:03 paobin/paobin.af -rw-r--r-- 1 root wheel 183 Jan 31 21:03 paobin/paobin.inf -rw-r--r-- 1 root wheel 3713 Jan 31 21:03 paobin/paobin.mtree Installer will expand these files into / (root directory), and replace /kernel with kernel.PAO PAO enabled kernel. In addition, previous kernel would rename to /kernel.old if you install by hand with using install.sh. kernel.PAO PAO enabled kernel (PAO_ALL kernel) etc: /etc configuration files defaults/rc.conf Default system configuration rc.pccard PC Card startup script rc.i386 i386 specific startup script pccard_ether script when PCMCIA Ethernet card was inserted pccard_ether_remove script when PCMCIA Ethernet card was removed rc.suspend command file to APM Suspend event rc.resume command file to APM Resume event pccard.conf PC Card database usr/sbin: userland cnwctl display statistics and control Netwave AirSurfer PC Card pccardc PC Card management and monitoring tool pccardd PC Card management daemon wicontrol Lucent WaveLAN/IEEE 802.11 PC Card configuration tool wlpconfig NCR WaveLAN PC Card parameter display/configure tool uxctl Am79C930 IEEE802.11 PC Card configuration tool uxdump Am79C930 IEEE802.11 PC Card dump display tool usr/share/man: man pages 3.4 PAO source distribution file (paosrc) --- ------------------------------------- Kernel source modified to PAO (/usr/src/sys) and same as PAO source kit are included. -rw-r--r-- 1 root wheel 464 Jan 31 21:03 paosrc/CHECKSUM.MD5 -rwxr-xr-x 1 toshi wheel 357 Oct 3 03:07 paosrc/install.sh* -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paosrc/paosrc.aa -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paosrc/paosrc.ab -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paosrc/paosrc.ac -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paosrc/paosrc.ad -rw-r--r-- 1 root wheel 240640 Jan 31 21:03 paosrc/paosrc.ae -rw-r--r-- 1 root wheel 59461 Jan 31 21:03 paosrc/paosrc.af -rw-r--r-- 1 root wheel 183 Jan 31 21:03 paosrc/paosrc.inf -rw-r--r-- 1 root wheel 30926 Jan 31 21:03 paosrc/paosrc.mtree These distribution files will be expanded into /usr/src. In /usr/src/sys, kernel source modified in PAO will be overwritten, and in /usr/src/PAO3, PAO source kit will be expanded. These kernel source includes only modified, so before expand these, src/ssys distribution are needed to be expanded. Major components of PAO source kit are as follows: PAO3: COPYRIGHT Copyright History History of PAO Makefile Makefile for install from PAO source kit Makefile.kit Makefile for creating PAO source kit PAO-FAQ{,.jp} Question and Answers of PAO README{,.jp} README README.install{,.jp} Instructions to install from PAO source kit README.apmd{,.jp} apmd release note SUPPORTED.CARDS{,.jp} PC Card status to work PAO3/sys: sys-pao.diff PAO patch to kernel source based on cvs tag=RELENG_3_4_0_RELEASE PAO3/etc: /etc configuration files PAO3/ja-man: Japanese man pages PAO3/usr.sbin: source file of userland 4. Install method of FreeBSD == ========================= At first, please refer INSTALL.TXT and others for basic matter. Only the main points about PAO are written here. In installation of PAO, it can be think as consist of two parts, main FreeBSD distribution files and PAO distribution files. If you install system newly, PAO install floppy will arrange it well. Or if you will install PAO additionally into already running system, using install.sh contained by distribution file may more quick than using PAO install floppy. If all of the distribution files are exist in install media, there is no problem about install, but normal CD-ROM or FTP site don't have PAO distribution files. Because of this, you need to prepare PAO distribution file with another media. Fortunately, in these days, PAO distribution files are included together in appendix CD-ROM of magazines etc. If your can get a CD-ROM like this, no extra anticipation is needed. In not such a blessed case, a little bit art and care are required. o If you can prepare all distribution files into one media, configure DOS partition or FTP server so before install. o If you could not place those on single media, start install with selecting PAO distribution files. A short time later, error message "Couldn't extract the following distributions." will appear, but hold the installation and continue after changing the media which includes PAO distribution files. - In the previous this document, it is described that "At first, cancel selection of PAO distribution files to avoid from displaying error messages", but this method had the problem /kernel would not to be replaced by PAO enabled kernel. In this case, please refer the solutions at "3.1 PAO enabled kernel (PAO_ALL kernel)" After this, I explain some typical cases, but at first make an installation floppy in the front. 4.1 Case: Install from a DOS partition --- ---------------------------------- If your target machine already has a DOS partition or you have willing to create it, install from a DOS partition is recommended. In this method, machines which any CD-ROM drives or Ethernet cards are not built-in such as sub note or having only not supported devices by FreeBSD can be used. At first, to prepare, it requires copy coping necessary distribution files to C:\FREEBSD. At least, basic binary (bin) and PAO binary (paobin) distribution files are required, and PAO source (paosrc) and FreeBSD kernel source (ssys) is a set by two. C:\FREEBSD\BIN\ basic binary C:\FREEBSD\SRC\SSYS.* FreeBSD kernel source ... C:\FREEBSD\PAOBIN\ PAO binary C:\FREEBSD\PAOSRC\ PAO source PAO distribution files may expand paodist.tar with tar. C:\FREEBSD\> tar xvf paodist.tar Remained operation is only launching installer and select install media with DOS. 4.2 Installing from FTP or NFS server --- --------------------------------- Enhanced functions by PAO will be most shown at installing from network. Especially PC Card type modem, enhanced support to Ethernet cards, dynamic IP address assignment by DHCP client and hot plug of PC Cards are also supported. If your can freely use another machine connected by LAN, following operations will be easy by tailoring it to the server. The point of configuration is coping PAO distribution files into the same directly of other distribution files. For example, assuming that the home directory of Anonymous FTP is /var/spool/ftp and FreeBSD distribution CD-ROM is mounted at /cdrom, # cp -pr /cdrom/3.4-RELEASE /var/spool/ftp # tar xvf paodist.tar -C /var/spool/ftp/3.4-RELEASE After that, add the following line to the password file, the FTP server is ready to serve. ftp:*:99:99::0:0:FTP:/var/spool/ftp:/sbin/nologin And, If you configure this machine to NFS server, assuming that hostname of a client is leaf.foo.bar and /var/spool/ftp/3.4-RELEASE is included in /var partition, add the following line to /etc/exports: /var -ro -alldirs leaf.foo.bar As you know, only this would not complete NFS server setup. If you can't understand well, don't overdo it and be satisfied with install with a FTP server. By the way, if preparations were set, at last start installation. If you setup your own server as above, select FTP or NFS like following in selecting install media: Media -> FTP or FTP Passive -> URL -> ftp:/// Media -> NFS -> :/var/spool/ftp Instead, if you install from FTP site on the Internet, at first, installation will be done as main FreeBSD from mirror sites around the world, and remained PAO distribution files from ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/. In this case, a short time later from starting install, the following message will be appear to expand PAO distribution files (paobin and paosrc): "Couldn't extract the following distributions. This may be because they were not available on the installation media you've chosen:" In this situation, hold the installation and continue with changing media as following: FTP or FTP Passive -> PAO Site (daemon.jp.freebsd.org) or FTP or FTP Passive -> URL -> ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/ Otherwise, specify the mirror site of PAO by URL: FTP or FTP Passive -> URL -> ftp:/// 4.3 Installing FreeBSD from CD-ROM and PAO from DOS or FTP --- ------------------------------------------------------ The methods described above are requiring comparatively large resource at install. So, in this section, I will use FreeBSD distribution CD-ROM effectively, with installing main FreeBSD from CD-ROM and PAO from another media. o If you use network together, it is required to able to use CD-ROM in same time. In brief, if only one PC card slot is exist and both type are PC Card, then it can't. o If you use DOS partition together, prepare PAO distribution referencing with "4.1 Installing from DOS partition". C:\FREEBSD\PAOBIN\ PAO binary C:\FREEBSD\PAOSRC\ PAO source Install procedure is, at first expanding distribution from CD-ROM, but on expanding PAO distribution (paobin and paosrc), following message will be displayed: "Couldn't extract the following distributions. This may be because they were not available on the installation media you've chosen" then, hold the installation, change media to DOS or FTP, and continue install. FTP or FTP Passive -> PAO Site (daemon.jp.freebsd.org) or FTP or FTP Passive -> URL -> ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/flp/ 4.4 Configuring WIDE-DHCP client --- ---------------------------- So far, FreeBSD installation has been painful in the environment that DHCP is required. It might be enable to use isc-dhcp for install in the next release, but in this installer, using wide-dhcp is enabled provisionally. +-----------------------------------------------------+ | Host: Domain: | | +--------------------+ +-----------------+ | | |hoehoe | | | | | +--------------------+ +-----------------+ | | Gateway: Name server: | | +----------------+ +-----------------+ | | | | | | | | +----------------+ +-----------------+ | | +------ Configuration for Interface xx0 ----+ | | | IP Address: Netmask: | | | | +-----------------+ +----------------+ | | | | |DHCP | | | | | | | +-----------------+ +----------------+ | | | | Extra options to ifconfig: | | | | +------------------------------+ | | | | |-r | | | | | +------------------------------+ | | | | | | | | +------+ +--------+ | | | | | OK | | CANCEL | | | | | +------+ +--------+ | | | +-------------------------------------------+ | +-----------------------------------------------------+ Requirements: "DHCP" to the Host filed and IP Address and dhcp option instead of ifconfig option to Extra options to ifconfig field. In this moment, valid option to dhcpc is: -r : overwrite /etc/resolv.conf -n : re-configure hostname As necessary: Domain and Name Server However overwritten when specify -r to dhcpc. Ignored: Gateway and Netmask *ATTENTION* Before finish install and reboot, add package of DHCP client. If forget it, please use /stand/dhcpc. 5. After finishing install == ======================= FAQ list of PAO is located at http://home.jp.FreeBSD.org/~toshi/PAO3/PAO-FAQ.html. Please read this before give questions to us. Many typical questions are answered in this file. PAO packages and information can be found at PAO Web pages (http://www.jp.FreeBSD.org/PAO/) and PAO anonymous FTP server (ftp://daemon.jp.FreeBSD.org/pub/FreeBSD-jp/PAO/) Please enjoy mobile computing with FreeBSD ! # Add section 3-4.: Toshihiko Arai $Id: pccard.hlp,v 1.3 1999/11/07 14:34:30 toshi Exp $