FreeBSD on a laptop
This article was written by "Chris Silva"
<bitsurfr@enteract.com> and outlines how he installed FreeBSD on a Compaq Armada
1530DM without using PAO.
The article
Well – after some time, and many installs I wanted my honey of an OS,
FreeBSD, to be on my lapdog… I would be damned if I would allow Gates to nab me ‘dog…
I
started with a 3Com 3CCE589ET and my ‘dog… I wantend FBSD on it badly. So I installed…
The default, surely didn’t work – so I searched the FreeBSd site… I came across PAO,
wich is mobile computing… That was dandy if you wanted to stay with FBSD 3.3-RELEASE,
but I was looking at 3.4 but just a few weeks away…
Granted, PAO did what it was ‘sposed to do, and I was happy… But, I wanted more…
So, I searched… I did’nt find the info I was hoping for (at least not right off the bat)
so – I thought, lets try NetBSD, OpenBSD, and even Mandrake…
Well, Mandrake blew the hell up… Right out of the water… NetBSD actually went a bit
further, but still blew up… So – I opted fer OpenBSD… The install was a bit much at
first. But after I got the hang of it (10 min.) it was rather refreshing to do something
differant.
OpenBSD was just dandy – I got a config for XFree from a Linux site (name withheld) and
I was off and running…
But, I still missed my fav-OS… I revisited PAO, still no update, then I yacked to my
friends on #FreeBSD/UnderNet… I spoke with Acme, he told me how FBSD should look under
the correct conditions. I jotted down his ideas, and spyed his config…
From that I got a basic idea of what ought to be done and what to look for. He
suggested I compile the PCCARD kernel, which I did, and still, nothing… We chated at
length (Thanks Acme) and still he lent more ideas where to look… It was time for me to
do this on my own…
After a few kernel compiles and watching the dmesg, I deceided to look closely at /etc
– even more so the /etc/pccard.conf.sample file (which I failed to see before). This was
the break I needed.
Here is the stuff I kept:
# Sample PCCARD configuration file
#
# Removing all IRQ conflicts from this file can't be done because of some
# IRQ-selfish PC-cards. So if you want to use some of these cards in
# your machine, you will be forced to modify their IRQ parameters from
# the following list.
#
# IRQ == 0 means "allocate free IRQ from IRQ pool"
# IRQ == 16 means "do not use IRQ (e.g. PIO mode)"
#
# $FreeBSD: src/etc/pccard.conf.sample,v 1.24.2.15 1999/11/16 17:48:38 roger Exp $
# Generally available IO ports
io 0x240-0x360
# Generally available IRQs (Built-in sound-card owners remove 5)
irq 3 5 10 11 13 15
# Available memory slots
memory 0xd4000 96k
# 3Com Megahertz 3CCE589E* 10 Mbps LAN PC Card
card "3Com" "Megahertz 589E"
config 0x1 "ep0" ?
insert echo 3Com Megahertz Ethernet card inserted
insert /etc/pccard_ether ep0
remove echo 3Com Megahertz Ethernet card removed
remove /sbin/ifconfig ep0 delete
After that I moded my /etc/rc.conf to reflect this:
# This file now contains just the overrides from /etc/defaults/rc.conf # please make all changes to this file. # -- sysinstall generated deltas -- # hostname="laptop.makeworld.com" linux_enable="YES" #moused_port="/dev/psm0" #moused_enable="YES" defaultrouter="10.3.1.1" pccard_enable="YES" pccard_mem="DEFAULT" pccard_ifconfig="inet 10.3.1.22 netmask 255.0.0.0" pccardd_flags="-i 10" rpc_statd_enable="NO" portmap_enable="NO" clear_tmp_enable="YES"
The PCCARD Configuration
After a reboot, I preform a PCCARDC DUMPCIS to show me the specs of the card:
Configuration data for card in slot 0
Tuple #1, code = 0x1 (Common memory descriptor), length = 2
000: 00 ff
Common memory device information:
Device number 1, type No device, WPS = OFF
Speed = No speed, Memory block size = reserved, 32 units
Tuple #2, code = 0x17 (Attribute memory descriptor), length = 3
000: 43 02 ff
Attribute memory device information:
Device number 1, type EEPROM, WPS = OFF
Speed = 150nS, Memory block size = 8Kb, 1 units
Tuple #3, code = 0x20 (Manufacturer ID), length = 4
000: 01 01 89 05
PCMCIA ID = 0x101, OEM ID = 0x589
Tuple #4, code = 0x21 (Functional ID), length = 2
000: 06 00
Network/LAN adapter
Tuple #5, code = 0x15 (Version 1 info), length = 46
000: 04 01 33 43 6f 6d 00 4d 65 67 61 68 65 72 74 7a
010: 20 35 38 39 45 00 54 50 2f 42 4e 43 20 4c 41 4e
020: 20 50 43 20 43 61 72 64 00 30 30 35 00 ff
Version = 4.1, Manuf = [3Com],card vers = [Megahertz 589E]
Addit. info = [TP/BNC LAN PC Card],[005]
Tuple #6, code = 0x1a (Configuration map), length = 6
000: 02 03 00 00 01 03
Reg len = 3, config register addr = 0x10000, last config = 0x3
Registers: XX------
Tuple #7, code = 0x1b (Configuration entry), length = 20
000: c1 01 1d 71 55 35 55 54 e0 72 5d 64 30 ff ff 80
010: 80 80 80 0f
Config index = 0x1(default)
Interface byte = 0x1 (I/O)
Vcc pwr:
Nominal operating supply voltage: 5 x 1V
Max current average over 1 second: 3 x 10mA
Max current average over 10 ms: 5 x 10mA
Power down supply current: 5 x 1mA
Wait scale Speed = 7.0 x 100 ns
RDY/BSY scale Speed = 7.0 x 100 ns
Card decodes 18 address lines, full 8/16 Bit I/O
IRQ modes: Level, Pulse
IRQs: IOCK 1 4 5 6 8 10 11 12 14
Tuple #8, code = 0x1b (Configuration entry), length = 7
000: 03 01 71 55 26 26 54
Config index = 0x3
Vcc pwr:
Nominal operating supply voltage: 5 x 1V
Max current average over 1 second: 2 x 100mA
Max current average over 10 ms: 2 x 100mA
Power down supply current: 5 x 1mA
Tuple #9, code = 0x19 (JEDEC descr for attribute memory), length = 3
000: 00 00 ff
Tuple #10, code = 0x14 (No link), length = 0
Tuple #11, code = 0x10 (Checksum), length = 5
000: 8f ff 7a 00 00
Checksum from offset -113, length 122, value is 0x0
In any event – this got the lapdog running, and I have been happy since!!!