diff --git a/FAQ/admin.sgml b/FAQ/admin.sgml index d83a0f0d6d..816ef54f37 100644 --- a/FAQ/admin.sgml +++ b/FAQ/admin.sgml @@ -1,866 +1,902 @@ - + System Administration Where are the system start-up configuration files?

From 2.0.5R to 2.2.1R, the primary configuration file is /etc/sysconfig. All the options are to be specified in this file and other files such as and /etc/netstart just include it.

Look in the /etc/sysconfig file and change the value to match your system. This file is filled with comments to show what to put in there.

In post-2.2.1 and 3.0, /etc/sysconfig was renamed to a more self-describing file and the syntax cleaned up a bit in the process. /etc/netstart was also renamed to /etc/rc.network so that all files could be copied with a /usr/src/etc/rc* /etc command.

/etc/rc.local is here as always and may be used to start up additional local services like or set custom options.

The /etc/rc.serial is for serial port initialization (e.g. locking the port characteristics, and so on.).

The /etc/rc.i386 is for Intel-specifics settings, such as iBCS2 emulation or the PC system console configuration.

Starting with 2.1.0R, you can also have "local" startup files in a directory specified in /etc/sysconfig (or /etc/rc.conf): # Location of local startup files. local_startup=/usr/local/etc/rc.local.d

Each file ending in If you want to ensure a certain execution order without changing all the file names, you can use a scheme similar to the following with digits prepended to each file name to insure the ordering: 10news.sh 15httpd.sh 20ssh.sh

It can be seen as ugly (or SysV :-)) but it provides a simple and regular scheme for locally-added packages without resorting to magical editing of /etc/rc.local. Many of the ports/packages assume that /usr/local/etc/rc.d is a local startup directory. How do I add a user easily?

Use the command.

There is another package called ``<roberto@FreeBSD.ORG> about it. It is currently undergoing further development.

To remove the user again, use the command. How can I add my new hard disk to my FreeBSD system?

See the Disk Formatting Tutorial at . I have a new removable drive, how do I use it?

Whether it's a removable drive like a ZIP or an EZ drive (or even a floppy, if you want to use it that way), or a new hard disk, once it's installed and recognized by the system, and you have your cartridge/floppy/whatever slotted in, things are pretty much the same for all devices.

If it's a ZIP drive or a floppy , you've already got a DOS filesystem on it, you can use a command like this: mount -t msdos /dev/fd0c /floppy

if it's a floppy, or this: mount -t msdos /dev/sd2s4 /zip

for a ZIP disk with the factory configuration.

For other disks, see how they're laid out using /stand/sysinstall.

The rest of the examples will be for a ZIP drive on sd2, the third SCSI disk.

Unless it's a floppy, or a removable you plan on sharing with other people, it's probably a better idea to stick a BSD file system on it. You'll get long filename support, at least a 2X improvement in performance, and a lot more stability. First, you need to redo the DOS-level partitions/filesystems. You can either use or /stand/sysinstall, or for a small drive that you don't want to bother with multiple operating system support on, just blow away the whole FAT partition table (slices) and just use the BSD partitioning: dd if=/dev/zero of=/dev/rsd2 count=2 disklabel -Brw sd2 auto

You can use disklabel or /stand/sysinstall to create multiple BSD partitions. You'll certainly want to do this if you're adding swap space on a fixed disk, but it's probably irrelevant on a removable drive like a ZIP.

Finally, create a new file system, this one's on our ZIP drive using the whole disk: newfs /dev/rsd2c

and mount it: mount /dev/sd2c /zip

and it's probably a good idea to add a line like this to so you can just type "mount /zip" in the future: /dev/sd2c /zip ffs rw,noauto 0 0 How do I mount a secondary DOS partition?

The secondary DOS partitions are found after ALL the primary partitions. For example, if you have an "E" partition as the second DOS partition on the second SCSI drive, you need to create the special files for "slice 5" in /dev, then mount /dev/sd1s5: # cd /dev # ./MAKEDEV sd1s5 # mount -t msdos /dev/sd1s5 /dos/e Can I mount other foreign filesystems under FreeBSD?

for more information.

Any other information on this subject would be appreciated. How can I use the NT loader to boot FreeBSD?

The general idea is that you copy the first sector of your native root FreeBSD partition into a file in the DOS/NT partition. Assuming you name that file something like c:\bootsect.bsd (inspired by c:\bootsect.dos), you can then edit the c:\boot.ini file to come up with something like this: [boot loader] timeout=30 default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT" C:\BOOTSECT.BSD="FreeBSD" C:\="DOS"

This procedure assumes that DOS, NT, FreeBSD, or whatever have been installed into their respective fdisk partitions on the Mount a DOS-formatted floppy (if you've converted to NTFS) or the FAT partition, under, say, /mnt. dd if=/dev/rsd0a of=/mnt/bootsect.bsd bs=512 count=1

Reboot into DOS or NT. NTFS users copy the attrib -s -r c:\boot.ini

Edit to add the appropriate entries from the example attrib -r -s c:\boot.ini

If FreeBSD is booting from the MBR, restore it with the DOS `` How do I boot FreeBSD and Linux from LILO?

If you have FreeBSD and Linux on the same disk, just follow LILO's installation instructions for booting a non-Linux operating system. Very briefly, these are:

Boot Linux, and add the following lines to /etc/lilo.conf: other=/dev/hda2 table=/dev/hda label=FreeBSD (the above assumes that your FreeBSD slice is known to Linux as /dev/hda2; tailor to suit your setup). Then, run lilo as root and you should be done.

If FreeBSD resides on another disk, you need to add ``loader=/boot/chain.b'' to the LILO entry. For example: other=/dev/sdb4 table=/dev/sdb loader=/boot/chain.b label=FreeBSD

In some cases you may need to specify the BIOS drive number to the FreeBSD boot loader to successfully boot off the second disk. For example, if your FreeBSD SCSI disk is probed by BIOS as BIOS disk 1, at the FreeBSD boot loader prompt you need to specify: Boot: 1:sd(0,a)/kernel

On FreeBSD 2.2.5 and later, you can configure to automatically do this for you at boot time.

The is a good reference for FreeBSD and Linux interoperability issues. How do I boot FreeBSD and Linux using BootEasy?

Install LILO at the start of your Linux boot partition instead of in the Master Boot Record. You can then boot LILO from BootEasy.

If you're running Windows-95 and Linux this is recommended anyway, to make it simpler to get Linux booting again if you should need to reinstall Windows95 (which is a Jealous Operating System, and will bear no other Operating Systems in the Master Boot Record). Will a ``dangerously dedicated'' disk endanger my health?

Now, while this is certainly the common case for people coming from a PC background, those people coming more from a Unix background and who are going to setup a machine just to run FreeBSD and only FreeBSD, are more used to the classic Unix way where the operating system owns the entire disks, from the very first sector through the end. A true fdisk table isn't of any use in this case, the machine is running FreeBSD 24 hours per day, 7 days per week, no other operating system should ever be booted on it. So, if you select ``A)ll FreeBSD'' in sysinstall's fdisk editor, and answer the next question with ``No'', you'll get this mode. Note that this means the BSD bootstrap also forms the MBR for this drive, so there's no space left for anything like a boot manager. Don't ever try to install one, or you'll damage the BSD bootstrap.

So why it is called ``dangerous''? A disk in this mode doesn't contain what normal PC utilities would consider a valid fdisk table. Depending on how well they have been designed, they might complain at you once they are getting in contact with such a disk, or even worse, they might damage the BSD bootstrap without even asking or notifying you. Some kind of operating system that is in rather widespread use on PCs is known for this kind of user-unfriendliness (of course, it does this in the name of ``user-friendliness''). At least one Award BIOS that is for example used in HP Netservers (but not only there) is known to ignore any harddisk that doesn't have what it believes to be a valid fdisk table. When it comes to booting, it simply ignores such a disk drive, advances to the floppy drive, and barfs at you with just ``Read error''. Very impressive, eh? They probably also call this ``user-friendly'', who knows?

The advantages of this mode are: FreeBSD owns the entire disk, no need to waste several fictitious `tracks' for just nothing but a 1980-aged simplistic partitioning model enforcing some artificial and now rather nonsensical constraints on how this partitioning needs to be done. These constraints often lead to what might be the biggest headaches for OS installations on PCs, geometry mismatch hassles resulting out of two different, redundant ways how to store the partitioning information in the fdisk table. See the chapter about . In ``dangerously dedicated'' mode, the BSD bootstrap starts at sector 0, and this one is the only sector that always translates into the same C/H/S values, regardless of which `translation' your BIOS is using for your disk. Thus, you can also swap disks between systems/controllers that use a different translation scheme, without risking that they won't boot anymore.

To return a ``dangerously dedicated'' disk for normal PC use, there are basically two options. The first is, you write enough NULL bytes over the MBR to make any subsequent installation believe this to be a blank disk. You can do this for example with dd if=/dev/zero of=/dev/rsd0 count=15

Alternatively, the undocumented DOS ``feature'' fdisk /mbr

will to install a new master boot record as well, thus clobbering the BSD bootstrap. How can I add more swap space?

The best way is to increase the size of your swap partition, or take advantage of this convenient excuse to add another disk.

Adding swap onto a separate disk makes things faster than simply adding swap onto the same disk. As an example, if you are compiling source located on one disk, and the swap is on another disk, this is much faster than both swap and compile on the same disk. This is true for SCSI disks specifically.

IDE drives are not able to allow access to both drives on the same channel at the same time (FreeBSD doesn't support mode 4, so all IDE disk I/O is ``programmed''). I would still suggest putting your swap on a separate drive however. The drives are so cheap, it is not worth worrying about.

It is a really bad idea to locate your swap file over NFS unless you are running in a very fast networking environment, with a good server.

Here is an example for 64Mb vn-swap (/usr/swap0, though of course you can use any name that you want).

Make sure your kernel was built with the line pseudo-device vn 1 #Vnode driver (turns a file into a device)

in your config-file. The GENERIC kernel already contains this. create a vn-device cd /dev sh ./MAKEDEV vn0 create a swapfile (/usr/swap0) dd if=/dev/zero of=/usr/swap0 bs=1024k count=64 enable the swap file in /etc/rc.conf swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired. reboot the machine

To enable the swap file immediately, type vnconfig -ce /dev/vn0c /usr/swap0 swap I'm having problems setting up my printer.

Please have a look at the Handbook entry on printing. It should cover most of your problem. See the The keyboard mappings are wrong for my system.

The kbdcontrol program has an option to load a keyboard map file. Under /usr/share/syscons/keymaps are a number of map files. Choose the one relevant to your system and load it. kbdcontrol -l uk.iso

Both the /usr/share/syscons/keymaps and the .

This can be configured in /etc/sysconfig (or ). See the appropriate comments in this file.

In 2.0.5R and later, everything related to text fonts, keyboard mapping is in /usr/share/examples/syscons.

The following mappings are currently supported: Belgian ISO-8859-1 Brazilian 275 keyboard Codepage 850 Brazilian 275 keyboard ISO-8859-1 Danish Codepage 865 Danish ISO-8859-1 French ISO-8859-1 German Codepage 850 German ISO-8859-1 Italian ISO-8859-1 Japanese 106 Japanese 106x Latin American Norwegian ISO-8859-1 Polish ISO-8859-2 (programmer's) Russian Codepage 866 (alternative) Russian koi8-r (shift) Russian koi8-r Spanish ISO-8859-1 Swedish Codepage 850 Swedish ISO-8859-1 Swiss-German ISO-8859-1 United Kingdom Codepage 850 United Kingdom ISO-8859-1 United States of America ISO-8859-1 United States of America dvorak United States of America dvorakx I can't get user quotas to work properly.

Don't turn on quotas on '/', Put the quota file on the file system that the quotas are to be enforced on. ie: FS QUOTA FILE /usr /usr/admin/quotas /home /home/admin/quotas ... What's inappropriate about my ccd?

The symptom of this is: # ccdconfig -C ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format #

This usually happens when you are trying to concatenate the `c' partitions, which default to type `unused'. The ccd driver requires the underlying partition type to be FS_BSDFFS. Edit the disklabel of the disks you are trying to concatenate and change the types of partitions to `4.2BSD'. Why can't I edit the disklabel on my ccd?

The symptom of this is: # disklabel ccd0 (it prints something sensible here, so let's try to edit it) # disklabel -e ccd0 (edit, save, quit) disklabel: ioctl DIOCWDINFO: No disk label on disk; use "disklabel -r" to install initial label #

This is because the disklabel returned by ccd is actually a `fake' one that is not really on the disk. You can solve this problem by writing it back explicitly, as in: # disklabel ccd0 > /tmp/disklabel.tmp # disklabel -Rr ccd0 /tmp/disklabel.tmp # disklabel -e ccd0 (this will work now) Does FreeBSD support System V IPC primitives?

Yes, FreeBSD supports System V-style IPC. This includes shared memory, messages and semaphores. You need to add the following lines to your kernel config to enable them. options SYSVSHM options "SHMMAXPGS=64" # 256Kb of sharable memory options SYSVSEM # enable for semaphores options SYSVMSG # enable for messaging

Recompile and install.

How do I use sendmail for mail delivery with UUCP?

The sendmail configuration that ships with FreeBSD is suited for sites that connect directly to the Internet. Sites that wish to exchange their mail via UUCP must install another sendmail configuration file.

Tweaking /etc/sendmail.cf manually is considered something for purists. Sendmail version 8 comes with a new approach of generating config files via some preprocessing, where the actual hand-crafted configuration is on a higher abstraction level. You should use the configuration files under /usr/src/usr.sbin/sendmail/cf

If you didn't install your system with full sources, the sendmail config stuff has been broken out into a separate source distribution tarball just for you. Assuming you've got your CD-ROM mounted, do: cd /usr/src tar -xvzf /cdrom/dists/src/ssmailcf.aa

Don't panic, this is only a few hundred kilobytes in size. The file README in the cf directory can serve as a basic introduction to m4 configuration.

For UUCP delivery, you are best advised to use the mailertable feature. This constitutes a database that sendmail can use to base its routing decision upon.

First, you have to create your .mc file. The directory /usr/src/usr.sbin/sendmail/cf/cf is the home of these files. Look around, there are already a few examples. Assuming you have named your file foo.mc, all you need to do in order to convert it into a valid sendmail.cf is: cd /usr/src/usr.sbin/sendmail/cf/cf make foo.cf cp foo.cf /etc/sendmail.cf

A typical .mc file might look like: include(`../m4/cf.m4') VERSIONID(`Your version number') OSTYPE(bsd4.4) FEATURE(nodns) FEATURE(nocanonify) FEATURE(mailertable) define(`UUCP_RELAY', your.uucp.relay) define(`UUCP_MAX_SIZE', 200000) MAILER(local) MAILER(smtp) MAILER(uucp) Cw your.alias.host.name Cw youruucpnodename.UUCP

The nodns and nocanonify features will prevent any usage of the DNS during mail delivery. The UUCP_RELAY clause is needed for bizarre reasons, don't ask. Simply put an Internet hostname there that is able to handle .UUCP pseudo-domain addresses; most likely, you will enter the mail relay of your ISP there.

Once you've got this, you need this file called /etc/mailertable. A typical example of this gender again: # # makemap hash /etc/mailertable.db < /etc/mailertable # horus.interface-business.de uucp-dom:horus .interface-business.de uucp-dom:if-bus interface-business.de uucp-dom:if-bus .heep.sax.de smtp8:%1 horus.UUCP uucp-dom:horus if-bus.UUCP uucp-dom:if-bus . uucp-dom:sax

As you can see, this is part of a real-life file. The first three lines handle special cases where domain-addressed mail should not be sent out to the default route, but instead to some UUCP neighbor in order to ``shortcut'' the delivery path. The next line handles mail to the local Ethernet domain that can be delivered using SMTP. Finally, the UUCP neighbors are mentioned in the .UUCP pseudo-domain notation, to allow for a ``uucp-neighbor!recipient'' override of the default rules. The last line is always a single dot, matching everything else, with UUCP delivery to a UUCP neighbor that serves as your universal mail gateway to the world. All of the node names behind the uucp-dom: keyword must be valid UUCP neighbors, as you can verify using the command uuname.

As a reminder that this file needs to be converted into a DBM database file before being usable, the command line to accomplish this is best placed as a comment at the top of the mailertable. You always have to execute this command each time you change your mailertable.

Final hint: if you are uncertain whether some particular mail routing would work, remember the -bt option to sendmail. It starts sendmail in address test mode; simply enter ``0 '', followed by the address you wish to test for the mail routing. The last line tells you the used internal mail agent, the destination host this agent will be called with, and the (possibly translated) address. Leave this mode by typing Control-D. j@uriah 191% sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter

> 0 foo@interface-business.de rewrite: ruleset 0 input: foo @ interface-business . de ... rewrite: ruleset 0 returns: $# uucp-dom $@ if-bus $: foo \ < @ interface-business . de > > ^D j@uriah 192% How do I set up mail with a dialup connection to the 'net?

If you've got a statically assigned IP number, you should not need to adjust anything from the default. Set your host name up as your assigned internet name and sendmail will do the rest.

If you've got a dynamically assigned IP number and use a dialup In order to retrieve mail from your mailbox, you'll need to install a retrieval agent. /etc/ppp/ppp.linkup: MYADDR: !bg su user -c fetchmail

I'm assuming that you have an account for poll myISP.com protocol pop3 fetchall pass MySecret;

Needless to say, this file should not be readable by anyone except In order to send mail with the correct The following VERSIONID(`bsd.home.mc version 1.0') OSTYPE(bsd4.4)dnl FEATURE(nouucp)dnl MAILER(local)dnl MAILER(smtp)dnl Cwlocalhost Cwbsd.home MASQUERADE_AS(`myISP.com')dnl FEATURE(allmasquerade)dnl FEATURE(masquerade_envelope)dnl FEATURE(nocanonify)dnl FEATURE(nodns)dnl define(SMART_HOST, `relay.myISP.com') Dmbsd.home define(`confDOMAIN_NAME',`bsd.home')dnl define(`confDELIVERY_MODE',`deferred')dnl

Refer to the previous section for details of how to turn this Eek! I forgot the root password!

Don't Panic! Simply restart the system, type -s at the Boot: prompt to enter Single User mode. At the question about the shell to use, hit ENTER. You'll be dropped to a # prompt. Enter mount -u / to remount your root filesystem read/write, then run How do I keep Control-Alt-Delete from rebooting the system?

Edit the keymap you are using for the console and replace the /usr/share/syscons/keymaps/us.iso.kbd. You may have to instruct /etc/rc.conf to load this keymap explicitly for the change to take effect. Of course if you are using an alternate keymap for your country, you should edit that one instead. How do I reformat DOS text files to UNIX ones?

Simply use this perl command: perl -i.bak -pe 's/\r\n/\n/g' file ...

file is the file(s) to process. The modification is done in-place, with the original file stored with a .bak extension. How do I kill processes by name?

Use . Why is su bugging me about not being in root's ACL?

The error comes from the Kerberos distributed authentication system. The problem isn't fatal but annoying. You can either run su with the -K option, or uninstall Kerberos as described in the next question. How do I uninstall Kerberos?

To remove Kerberos from the system, reinstall the bin distribution for the release you are running. If you have the CDROM, you can mount the cd (we'll assume on /cdrom) and run cd /cdrom/bin ./install.sh + + How do I add pseudoterminals to the system? + +

If you have lots of telnet, ssh, X, or screen users, you'll probably run + out of pseudoterminals. Here's how to add more: + + + Build and install a new kernel with the line + + + pseudo-device pty 256 + + +

in the configuration file. + + Run the command + + + # cd /dev + # ./MAKEDEV pty{1,2,3,4,5,6,7} + + +

to make 256 device nodes for the new terminals. + + Edit /etc/ttys and add lines for each of the 256 + terminals. They should match the form of the existing entries, i.e. they look like + + + ttyqc none network + + +

The order of the letter designations is tty[pqrsPQRS][0-9a-v], + using a regular expression. + + Reboot the system with the new kernel and you're ready to go. + diff --git a/FAQ/troubleshoot.sgml b/FAQ/troubleshoot.sgml index d03ff03d3b..35a7c5ba73 100644 --- a/FAQ/troubleshoot.sgml +++ b/FAQ/troubleshoot.sgml @@ -1,476 +1,502 @@ - + Troubleshooting I have bad blocks on my hard drive!

With SCSI drives, the drive should be capable of re-mapping these automatically. However, many drives are shipped with this feature disabled, for some mysterious reason...

To enable this, you'll need to edit the first device page mode, which can be done on FreeBSD by giving the command (as root) scsi -f /dev/rsd0c -m 1 -e -P 3

and changing the values of AWRE and ARRE from 0 to 1:- AWRE (Auto Write Reallocation Enbld): 1 ARRE (Auto Read Reallocation Enbld): 1

The following paragraphs were submitted by :

For IDE drives, any bad block is usually a sign of potential trouble. All modern IDE drives come with internal bad-block remapping turned on. All IDE hard drive manufacturers today offer extensive warranties and will replace drives with bad blocks on them.

If you still want to attempt to rescue an IDE drive with bad blocks, you can attempt to download the IDE drive manufacturer's IDE diagnostic program, and run this against the drive. Sometimes these programs can be set to force the drive electronics to rescan the drive for bad blocks and lock them out.

For ESDI, RLL and MFM drives, bad blocks are a normal part of the drive and are no sign of trouble, generally. With a PC, the disk drive controller card and BIOS handle the task of locking out bad sectors. This is fine for operating systems like DOS that use BIOS code to access the disk. However, FreeBSD's disk driver does not go through BIOS, therefore a mechanism, bad144, exists that replaces this functionality. bad144 only works with the wd driver, it is NOT able to be used with SCSI. bad144 works by entering all bad sectors found into a special file.

One caveat with bad144 - the bad block special file is placed on the last track of the disk. As this file may possibly contain a listing for a bad sector that would occur near the beginning of the disk, where the /kernel file might be located, it therefore must be accessible to the bootstrap program that uses BIOS calls to read the kernel file. This means that the disk with bad144 used on it must not exceed 1024 cylinders, 16 heads, and 63 sectors. This places an effective limit of 500MB on a disk that is mapped with bad144.

To use bad144, simply set the "Bad Block" scanning to ON in the FreeBSD fdisk screen during the initial install. This works up through FreeBSD 2.2.7. The disk must have less than 1024 cylinders. It is generally recommended that the disk drive has been in operation for at least 4 hours prior to this to allow for thermal expansion and track wandering.

If the disk has more than 1024 cylinders (such as a large ESDI drive) the ESDI controller uses a special translation mode to make it work under DOS. The wd driver understands about these translation modes, IF you enter the "translated" geometry with the "set geometry" command in fdisk. You must also NOT use the "dangerously dedicated" mode of creating the FreeBSD partition, as this ignores the geometry. Also, even though fdisk will use your overridden geometry, it still knows the true size of the disk, and will attempt to create a too large FreeBSD partition. If the disk geometry is changed to the translated geometry, the partition MUST be manually created with the number of blocks.

A quick trick to use is to set up the large ESDI disk with the ESDI controller, boot it with a DOS disk and format it with a DOS partition. Then, boot the FreeBSD install and in the fdisk screen, read off and write down the blocksize and block numbers for the DOS partition. Then, reset the geometry to the same that DOS uses, delete the DOS partition, and create a "cooperative" FreeBSD partition using the blocksize you recorded earlier. Then, set the partition bootable and turn on bad block scanning. During the actual install, bad144 will run first, before any filesystems are created. (you can view this with an Alt-F2) If it has any trouble creating the badsector file, you have set too large a disk geometry - reboot the system and start all over again (including repartitioning and reformatting with DOS).

If remapping is enabled and you are seeing bad blocks, consider replacing the drive. The bad blocks will only get worse as time goes on. FreeBSD does not recognize my Bustek 742a EISA SCSI!

This info is specific to the 742a but may also cover other Buslogic cards. (Bustek = Buslogic)

There are 2 general ``versions'' of the 742a card. They are hardware revisions A-G, and revisions H - onwards. The revision letter is located after the Assembly number on the edge of the card. The 742a has 2 ROM chips on it, one is the BIOS chip and the other is the Firmware chip. FreeBSD doesn't care what version of BIOS chip you have but it does care about what version of firmware chip. Buslogic will send upgrade ROMS out if you call their tech support dept. The BIOS and Firmware chips are shipped as a matched pair. You must have the most current Firmware ROM in your adapter card for your hardware revision.

The REV A-G cards can only accept BIOS/Firmware sets up to 2.41/2.21. The REV H- up cards can accept the most current BIOS/Firmware sets of 4.70/3.37. The difference between the firmware sets is that the 3.37 firmware supports ``round robin''

The Buslogic cards also have a serial number on them. If you have a old hardware revision card you can call the Buslogic RMA department and give them the serial number and attempt to exchange the card for a newer hardware revision. If the card is young enough they will do so.

FreeBSD 2.1 only supports Firmware revisions 2.21 onward. If you have a Firmware revision older than this your card will not be recognized as a Buslogic card. It may be recognized as an Adaptec 1540, however. The early Buslogic firmware contains an AHA1540 ``emulation'' mode. This is not a good thing for an EISA card, however.

If you have an old hardware revision card and you obtain the 2.21 firmware for it, you will need to check the position of jumper W1 to B-C, the default is A-B.

The 742a EISA cards never had the ``>16MB'' problem mentioned in the section . This is a problem that occurs with the Vesa-Local Buslogic SCSI cards. My HP Netserver's SCSI controller is not detected!

This is basically a known problem. The EISA on-board SCSI controller in the HP Netserver machines occupies EISA slot number 11, so all the ``true'' EISA slots are in front of it. Alas, the address space for EISA slots >= 10 collides with the address space assigned to PCI, and FreeBSD's auto-configuration currently cannot handle this situation very well.

So now, the best you can do is to pretend there is no address range clash :), by bumping the kernel option .

Of course, this does present you with a chicken-and-egg problem when installing on such a machine. In order to work around this problem, a special hack is available inside UserConfig. Do not use the ``visual'' interface, but the plain command-line interface there. Simply type eisa 12 quit

at the prompt, and install your system as usual. While it's recommended you compile and install a custom kernel anyway, now also understands to save this value.

Hopefully, future versions will have a proper fix for this problem.

for more info. What's up with this CMD640 IDE controller?

It's broken. It cannot handle commands on both channels simultaneously.

There's a workaround available now and it is enabled automatically if your system uses this chip. For the details refer to the manual page of the disk driver (man 4 wd).

If you're already running FreeBSD 2.2.1 or 2.2.2 with a CMD640 IDE controller and you want to use the second channel, build a new kernel with I keep seeing messages like ``

This is usually caused by an interrupt conflict (e.g., two boards using the same IRQ). FreeBSD prior to 2.0.5R used to be tolerant of this, and the network driver would still function in the presence of IRQ conflicts. However, with 2.0.5R and later, IRQ conflicts are no longer tolerated. Boot with the -c option and change the ed0/de0/... entry to match your board.

If you're using the BNC connector on your network card, you may also see device timeouts because of bad termination. To check this, attach a terminator directly to the NIC (with no cable) and see if the error messages go away.

Some NE2000 compatible cards will give this error if there is no link on the UTP port or if the cable is disconnected. When I mount a CDROM, I get ``Incorrect super block''.

You have to tell the type of the device that you want to mount. By default, will assume the filesystem is of type ``. This does, of course, assume that the CDROM contains an ISO 9660 filesystem, which is what most CDROMs have. As of 1.1R, FreeBSD automatically understands the Rock Ridge (long filename) extensions as well.

As an example, if you want to mount the CDROM device, ``/dev/cd0c'', under /mnt, you would execute: mount -t cd9660 /dev/cd0c /mnt

Note that your device name (``/dev/cd0c'' in this example) could be different, depending on the CDROM interface. Note that the `` mount_cd9660 /dev/cd0c /mnt When I mount a CDROM, I get ``Device not configured''.

This generally means that there is no CDROM in the CDROM drive, or the drive is not visible on the bus. Feed the drive something, and/or check its master/slave status if it is IDE (ATAPI). It can take a couple of seconds for a CDROM drive to notice that it's been fed, so be patient.

Sometimes a SCSI CD-ROM may be missed because it hadn't enough time to answer the bus reset. If you have a SCSI CD-ROM please try to add the following symbol into your kernel configuration file and recompile. options "SCSI_DELAY=15" My printer is ridiculously slow. What can I do ?

If it's parallel, and the only problem is that it's terribly slow, try setting your printer port into ``polled'' mode: lptcontrol -p

Some newer HP printers are claimed not to work correctly in interrupt mode, apparently due to some (not yet exactly understood) timing problem. My programs occasionally die with ``Signal 11'' errors.

This can be caused by bad hardware (memory, motherboard, etc.). Try running a memory-testing program on your PC. Note that, even though every memory testing program you try will report your memory as being fine, it's possible for slightly marginal memory to pass all memory tests, yet fail under operating conditions (such as during bus mastering DMA from a SCSI controller like the Adaptec 1542, when you're beating on memory by compiling a kernel, or just when the system's running particularly hot).

The SIG11 FAQ (listed below) points up slow memory as being the most common problem. Increase the number of wait states in your BIOS setup, or get faster memory.

For me the guilty party has been bad cache RAM or a bad on-board cache controller. Try disabling the on-board (secondary) cache in the BIOS setup and see if that solves the problem.

There's an extensive FAQ on this at When I boot, the screen goes black and loses sync!

This is a known problem with the ATI Mach 64 video card. The problem is that this card uses address driver it will touch this port even if you don't have the fourth serial port, and Until the bug has been fixed, you can use this workaround: Enter Disable no problems. Type exit to continue booting.

If you want to be able to use your serial ports, you'll have to build a new kernel with the following modification: in /usr/src/sys/i386/isa/sio.c find the one occurrence of the string Even after applying these workarounds, you may still find that X Window does not work properly. Some newer ATI Mach 64 video cards (notably ATI Mach Xpression) do not run with the current version of and following the links to the new beta release. Get the following files:

AccelCards, BetaReport, Cards, Devices, FILES, README.ati, README.FreeBSD, README.Mach64, RELNOTES, VGADriver.Doc, X312BMa64.tgz

Replace the older files with the new versions and make sure you run again. I have 128 MB of RAM but the system only uses 64 MB.

Due to the manner in which FreeBSD gets the memory size from the BIOS, it can only detect 16 bits worth of Kbytes in size (65535 Kbytes = 64MB) (or less... some BIOSes peg the memory size to 16M). If you have more than 64MB, FreeBSD will attempt to detect it; however, the attempt may fail.

To work around this problem, you need to use the kernel option specified below. There is a way to get complete memory information from the BIOS, but we don't have room in the bootblocks to do it. Someday when lack of room in the bootblocks is fixed, we'll use the extended BIOS functions to get the full memory information...but for now we're stuck with the kernel option. options "MAXMEM=<n>"

Where FreeBSD 2.0 panics with ``kmem_map too small!''

The panic indicates that the system ran out of virtual memory for network buffers (specifically, mbuf clusters). You can increase the amount of VM available for mbuf clusters by adding:

options "NMBCLUSTERS=<n>"

to your kernel config file, where <n> is a number in the range 512-4096, depending on the number of concurrent TCP connections you need to support. I'd recommend trying 2048 - this should get rid of the panic completely. You can monitor the number of mbuf clusters allocated/in use on the system with . The default value for NMBCLUSTERS is ``CMAP busy panic'' when rebooting with a new kernel.

The logic that attempts to detect an out of date /var/db/kvm_*.db files sometimes fails and using a mismatched file can sometimes lead to panics.

If this happens, reboot single-user and do: rm /var/db/kvm_*.db ahc0: brkadrint, Illegal Host Access at seqaddr 0x0

This is a conflict with an Ultrastor SCSI Host Adapter.

During the boot process enter the kernel configuration menu and disable , which is causing the problem. Sendmail says ``mail loops back to myself''

This is answered in the sendmail FAQ as follows:- * I'm getting "Local configuration error" messages, such as: 553 relay.domain.net config error: mail loops back to myself 554 ... Local configuration error How can I solve this problem? You have asked mail to the domain (e.g., domain.net) to be forwarded to a specific host (in this case, relay.domain.net) by using an MX record, but the relay machine doesn't recognize itself as domain.net. Add domain.net to /etc/sendmail.cw (if you are using FEATURE(use_cw_file)) or add "Cw domain.net" to /etc/sendmail.cf.

The current version of the is no longer maintained with the sendmail release. It is however regularly posted to , , , , and . You can also receive a copy via email by sending a message to with the command "send usenet/news.answers/mail/sendmail-faq" as the body of the message. Full screen applications on remote machines misbehave!

The remote machine may be setting your terminal type to something other than the cons25 terminal type used by the FreeBSD console.

There are a number of work-arounds for this problem: After logging on to the remote machine, set your TERM shell variable to either ansi or sco. Use a VT100 emulator like locally. screen offers you the ability to run multiple concurrent sessions from one terminal, and is a neat program in its own right. Install the cons25 terminal database entry on the remote machine. Fire up X and login to the remote machine from an xterm. + + + My machine prints "calcru: negative time..." +

This can be caused by various hardware and/or software ailments + relating to interrupts. It may be due to bugs but can also happen + by nature of certain devices. Running TCP/IP over the parallel + port using a large MTU is one good way to provoke this problem. + Graphics accelleratorscan also get you here, in which case you + should check the interrupt setting of the card first. + +

A side effect of this problem are dying processes with the + message "SIGXCPU exceeded cpu time limit". + +

For FreeBSD 3.0 and later from Nov 29, 1998 forward: If the + problem cannot be fixed otherwise the solution is to set + this sysctl variable: + + sysctl -w kern.timecounter.method=1 + +

This means a performance impact, but considering the cause of + this problem, you probably will not notice. If the problem + persists, keep the sysctl set to one and set the "NTIMECOUNTER" + option in your kernel to increasingly large values. If by the + time you have reached "NTIMECOUNTER=20" the problem isn't + solved, interrupts are too hosed on your machine for reliable + timekeeping.