summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorMats O Jansson <maja@cvs.openbsd.org>1999-10-12 00:25:31 +0000
committerMats O Jansson <maja@cvs.openbsd.org>1999-10-12 00:25:31 +0000
commit8529c45f59ee196ca07e6b3a08c35a8df79e3489 (patch)
tree6980ed5a800ad96b166860663ec07a3c652f6947 /usr.sbin
parent9071ef1730481a3f01853fdc8c66868b024e955b (diff)
document config -e. -moj
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/config/config.8248
1 files changed, 246 insertions, 2 deletions
diff --git a/usr.sbin/config/config.8 b/usr.sbin/config/config.8
index 0a32e09280c..d4b4d26bfe2 100644
--- a/usr.sbin/config/config.8
+++ b/usr.sbin/config/config.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: config.8,v 1.10 1999/07/22 19:24:52 deraadt Exp $
+.\" $OpenBSD: config.8,v 1.11 1999/10/12 00:25:30 maja Exp $
.\" $NetBSD: config.8,v 1.10 1996/08/31 20:58:16 mycroft Exp $
.\"
.\" Copyright (c) 1980, 1991, 1993
@@ -39,18 +39,27 @@
.Os
.Sh NAME
.Nm config
-.Nd build kernel compilation directories
+.Nd build kernel compilation directories or modify a kernel
.Sh SYNOPSIS
.Nm config
.Op Fl b Ar builddir
.Op Fl s Ar srcdir
.Op Fl p
.Op Ar config-file
+.Nm config
+.Fl e
+.Op Fl f | o Ar outfile
+.Op Fl u
+.Ar infile
.Sh DESCRIPTION
.Nm config
creates a kernel build directory from the file
.Ar config-file ,
which describes the system to configure.
+.Nm config
+can also be used to modify a compiled kernel when using the
+.Fl e
+option, see section modifying kernel.
.Pp
There are several different ways to run the
.Nm config
@@ -264,6 +273,237 @@ Most people save their backup kernels as
.Pa /bsd.1 ,
.Pa /bsd.2 ,
etc.
+.Sh MODIFYING KERNEL
+.Nm config
+.Fl e
+has the same functionalty as
+.Xr boot_config 8
+, to modify the device configuration of a kernel. One problem with
+.Xr boot_config 8
+has been that modifications has to be done on every boot.
+.Nm config
+.Fl e
+makes it possible to do permanent changes to a kernel.
+.Pp
+The options are as follows:
+.Bl -tag -width indent
+.It Fl f
+If
+.Fl o Ar outfile
+hasn't be given use
+.Ar infile
+as output file.
+.It Fl o Ar outfile
+Save any changes to
+.Ar outfile .
+.It Fl u
+If
+.Ar infile
+seems to be the same kernel as the current kernel, apply all changes done at
+boot.
+.El
+.Pp
+When invoked the kernel identification of the input file will be showed
+.Pp
+.Bd -literal
+.Li #\ Ic config Fl e o Ar bsd.new /bsd
+OpenBSD 2.6-beta (GENERIC.rz0) #0: Mon Oct 4 03:57:22 MEST 1999
+ root@winona:/usr/src/sys/arch/pmax/compile/GENERIC.rz0
+Enter 'help' for information
+ukc>
+.Ed
+.Pp
+Some warnings might be printed before the ukc prompt.
+.Bd -literal
+warning: not output file specified
+.Ed
+.Pp
+Niether
+.Fl f
+or
+.Fl o
+has been specifed. Changes will be ignored.
+.Bd -literal
+WARNING this kernel doesn't contain all information needed!
+WARNING the commands add and change might not work.
+.Ed
+.Pp
+The kernel is too old (pre
+.Ox 2.6 )
+and can't support all functionality of
+.Ic config Fl e .
+.Bd -literal
+WARNING kernel mismatch. -u ignored.
+WARNING the running kernel version:
+.Ed
+.Pp
+.Nm config
+doesn't think that the running kernel is the same as the file specified.
+Since the log of changes in the running kernel is kernel specific the
+.Fl u
+option is ignored.
+.Sh COMMANDS
+.Bl -tag -width "disable attr val | devno | dev" indent
+.It Ic add Ar dev
+Add a device through copying another.
+.It Ic base Ar 8 | 10 | 16
+Change the base of numbers displayed and entered,
+e.g. I/O addresses in a VAXen are octal.
+.It Ic change Ar devno | dev
+Modify one or more devices.
+.It Ic disable Ar attr val | devno | dev
+Disable one or more devices.
+.It Ic enable Ar attr val | devno | dev
+Enable one or more devices.
+.It Ic exit
+Exit without saving changes.
+.It Ic find Ar devno | dev
+Find one or more devices.
+.It Ic help
+Give a short summary of all commands and their arguments.
+.It Ic list
+Show all known devices, a screen at a time.
+.It Ic lines Op Ar count
+Set the number of rows per page.
+.It Ic quit
+Exit and save changes.
+.It Ic show Op Ar attr Op Ar val
+Show all devices for which attribute
+.Ar attr
+has the value
+.Ar val .
+.El
+.Sh MORE EXAMPLES
+The ethernet card is not detected at boot because the kernel configuration
+does not match the physical hardware configuration,
+e.g. wrong IRQ in OpenBSD/i386.
+The ethernet card is supposed to use the
+.Xr ne 4
+driver.
+.Pp
+.Bd -literal
+.No ukc> Ic find ne
+24 ne0 at isa0 port 0x240 size 0 iomem 0xd8000 iosiz 0 irq 9 drq -1 drq2 -1
+25 ne1 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+26 ne* at isapnp0 port -1 size 0 iomem -1 iosiz 0 irq -1 drq -1
+27 ne* at pci* dev -1 function -1
+28 ne* at pcmcia* function -1 irq -1
+ukc>
+.Ed
+.Pp
+ne1 seems to match the configuration except it uses IRQ 5 instead of IRQ 10. So
+the irq on ne1 should be changed via the
+.Fa change
+command. The device can be specified by either name or number.
+.Pp
+.Bd -literal
+.No ukc> Ic change ne1
+25 ne1 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+.No change (y/n) ? Ic y
+.No port [0x300] ?
+.No size [0] ?
+.No iomem [-1] ?
+.No iosiz [0] ?
+.No irq [10] ? Ic 5
+.No drq [-1] ?
+.No drq2 [-1] ?
+25 ne1 changed
+25 ne1 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 5 drq -1 drq2 -1
+ukc>
+.Ed
+.Pp
+Another case is a mistakenly detected non-existing device instead of another
+device at the probed location.
+One known case is the Mitsumi
+CD-ROM in OpenBSD/i386. The simplest thing to solve that problem is to
+disable mcd0.
+.Pp
+.Bd -literal
+.No ukc> Ic find mcd0
+ 29 mcd0 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+.No ukc> Ic disable mcd0
+ 29 mcd0 disabled
+.No ukc> Ic find 29
+ 29 mcd0 at isa0 disable port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+.Ed
+.Pp
+It's also possible to disable all devices with a common attribute. e.g.
+.Pp
+.Bd -literal
+.No ukc> Ic disable port 0x300
+ 25 ne1 disabled
+ 29 mcd0 alredy disabled
+ 72 we1 disabled
+ 75 el0 disabled
+ 77 ie1 disabled
+.Ed
+.Pp
+The show command is useful for finding which devices have a certain attribute.
+It can also be used to find those devices with a particular value for
+an attribute.
+.Bd -literal
+.No ukc> Ic show slot
+ 2 ahc* at eisa0 slot -1
+ 10 uha* at eisa0 slot -1
+ 12 ep0 at eisa0 slot -1
+ 17 ep* at eisa0 slot -1
+102 ahb* at eisa0 slot -1
+103 fea* at eisa0 slot -1
+.No ukc> Ic show port 0x300
+ 25 ne1 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+ 72 we1 at isa0 port 0x300 size 0 iomem 0xcc000 iosiz 0 irq 10 drq -1 drq2 -1
+ 75 el0 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 9 drq -1 drq2 -1
+ 77 ie1 at isa0 port 0x300 size 0 iomem -1 iosiz 0 irq 10 drq -1 drq2 -1
+ukc>
+.Ed
+.Pp
+It is possible to add new devices, but only devices that were linked into the
+kernel. If a new device is added, following devices will be renumbered.
+.Pp
+.Bd -literal
+.No ukc> Ic find ep
+ 11 ep0 at isa0 port -1 size 0 iomem -1 iosiz 0 irq -1 drq -1 drq2 -1
+ 12 ep0 at eisa0 slot -1
+ 13 ep0 at pci* dev -1 function -1
+ 14 ep* at isapnp0 port -1 size 0 iomem -1 iosiz 0 irq -1 drq -1
+ 15 ep* at isa0 port -1 size 0 iomem -1 iosiz 0 irq -1 drq -1 drq2 -1
+ 16 ep* at eisa0 slot -1
+ 17 ep* at pci* dev -1 function -1
+ 18 ep* at pcmcia* dev -1 irq -1
+.No ukc> Ic add ep1
+.No "Clone Device (DevNo, 'q' or '?') ?" Ic 13
+.No "Insert before Device (DevNo, 'q' or '?')" Ic 14
+ 14 ep1 at pci* dev -1 function -1
+.No ukc> Ic change 14
+ 14 ep1 at pci* dev -1 function -1
+.No change (y/n) ? Ic y
+.No dev [-1] ? Ic 14
+.No function [-1] ?
+ 14 ep1 changed
+ 14 ep1 at pci* dev 14 function -1
+ukc>
+.Ed
+.Pp
+When done exit the program with the
+.Ic quit
+or
+.Ic exit
+commands.
+.Ic exit
+will ignore any changes while
+.Ic quit
+writes the changes in
+.Ar outfile
+(if
+.Fl o
+or
+.Fl f
+was given, else ignore changes).
+.Pp
+.Bd -literal
+.No ukc> Ic quit
+.Ed
+.Pp
.Sh SEE ALSO
.Xr options 4
.Pp
@@ -280,3 +520,7 @@ command appeared in
.Bx 4.1 .
It was completely revised in
.Bx 4.4 .
+The
+.Nm config Fl e
+command appeared in
+.Ox 2.6 .