[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: new FAQ version!
I made a "quick" html version of New User FAQ
URL: http://www.tryc.on.ca/obsd.html
Cheers,
Wojtek
At 04:19 PM 12/07/97 -0500, J. Joseph Max Katz wrote:
>
>There will be an HTML version of this soon.
>
>-Jon
>
>OpenBSD New User FAQ Version .2 by Jonathan Katz: jkatz@openbsd.org
>
>These are a few of the questions that seem to be asked every so-often on
>the mailing list. This is very early in the making for such a document, so
>if it doesn't contain what you are looking for, please ask and feel free
>to contribute. This document DOES NOT cover the installation process.
>
>Please note this was entirely written in vi and occasionally spell
>checked using ispell. People on the misc@openbsd.org mailing list as
>well as the newsgroups have volunteered to convert this document into
>SGML and HTML.
>
>Sections:
>
>1) Non-standard hardware, my GENERIC or INSTALL kernel won't boot OR
> "I can't get my hardware to work."
>2) Virtual Consoles
>3) How to compile a kernel
>4) Getting source code
>5) Rebuilding my system
>6) Ethernet quirks
>7) Problems loading X11 (XFree86)
>8) Finding other software (ports).
>9) Where do I get my OpenBSD 2.1 CD?
>10) disklabel and fdisk
>11) Miscellany (HELP!)
>
>-------------------------------------------------------
>
>1) My foobar 1230 SCSI adapter (or other peripheral) has a non-standard
>irq and doesn't work with the GENERIC or INSTALL kernels!
>
>Yes it does. With a little tinkering and patience, anything can be
>accomplished. At the OpenBSD boot prompt type "-c". IT should look
>something like this:
>
>[OpenBSD boot Rev. 1.0a]
>boot>> -c
>
>You will eventually get a 'UKC>' prompt. Here you can type "list" and list
>all the devices that are compiled into this kernel. Once you find the name
>of the device you'd like to change, type "change devicename". UKC will guide
>you through the different attributes of the device that can be configured.
>Once you are finished adding the necessary configurations, you'll be back at
>the UKC> prompt. At the prompt type "quit" and your machine will continue to
>boot, with the updated info.
>
>In addition, other device drivers (sound cards, etc) that are compiled
>into the kernel may conflict with other drivers. If your kernel locks up
>during the boot process take note of the device that it failed on. Try
>disabling that device, or the one FOLLOWING it when you do your "list"
>at the "UKC>" prompt.
>
>2) How do I get virtual consoles?
>
>To start, virtual consoles are only supported on the i386 port. The
>default GENERIC kernel (the one you normally get after doing an install)
>has support for virtual consoles compiled in. If you are using an
>older GENERIC kernel, or a different kernel, support for "vt0" (the
>kernel device that controls virtual consoles) may not be included. If
>you are using the 2.1 release GENERIC kernel, you will have virtual
>consoles enabled.
>
>On the 2.1 CD and FTP sites, the GENERIC kernel does not use virtual
>consoles. You must recompile the kernel commenting out the line that
>says "pc0" and uncommenting the line that says "vt0." For more information
>on compiling a new kernel, read on.
>
>2.1) Now that I know I have virtual consoles, how do I use them?
>
>Unlike Linux, you need to hit cntrl+alt+fn to swap from console to
>console. By default (with the files in /dev from your install, and a newly
>compiled kernel with vt0 support) you have four (F1 through F4) virtual
>consoles. If you make more ttyC devices in /dev (cd /dev; MAKEDEV ttyC4;
>MAKEDEV ttyC5; MAKEDEV ttyC6; MAKEDEV ttyC7;) and edit /etc/ttys so that
>all the tty's are on, you will have a standard 8 virtual consoles.
>
>3) How do I compile a kernel?
>
>Kernels can be compiled in under 9 steps (WOW!)
>1) get the source code VIA FTP, CTM, or CVS (skip to CVS section if need be)
>2) cd /usr/src/sys/arch/(your_machine_type)/conf
> NOTE: (your_machine_type) will vary with what kind of
> processor you use. On my VAX 3400, it would be:
> /usr/src/sys/arch/vax/conf
> On my P5/100 it would be:
> /usr/src/sys/arch/i386/conf
> On my Sparc IPC it would be:
> /usr/src/sys/arch/sparc/conf
>3) edit a config file to your liking and save it as a new name.
> (vi GENERIC; :w NEW_KERNEL_NAME :q)
> Things to keep in mind:
> Make your kernel name snazzy (you don't HAVE to do that).
> Most people keep their kernel names in caps (general
> convention).
>4) type "config NEW_KERNEL_NAME"
> If all goes according to plan it will tell you to
> "don't forget to make depend!" If config chokes on
> your file, look at what it says and play with your
> configuration until you get it right.
>5) cd /usr/src/sys/arch/(your_machine_type)/compile/NEW_KERNEL_NAME
> NOTE: config makes that DIRECTORY "NEW_KERNEL_NAME" all by
> itself.
>6) make depend ; make
>7) su (if not root already); cp /bsd /bsd.old; cp bsd /bsd 8)
shutdown/reboot your system. 9) Enjoy your custom kernel :-)
>
>4) How do I get source code?
>
>OpenBSD source code is obtained VIA CVS, FTP or CTM. If you've ftp'd the
>distribution of OpenBSD, it should be pretty simple for you to figure out
>how to FTP the source. CTM is covered in its own document on the WWW
>server. As for CVS, here is your crash course. I've found that getting
>code VIA CVS is fast, easy, and means you get newer/better/bugfixed code.
>
>NOTE: For example purposes I'm using anoncvs.openbsd.org which is a few
>miles of fiber away from me in the United States. You may want to pick a
>nearer cvs site for you to use (especially if you are downloading the
>tree, as downloading OpenBSD's powerful crypto from the States to sites in
>Europe breaks various laws). See the OpenBSD WWW sites for a cvs mirror
>close to home. If these instructions are not working for you, please skip
>to the section that talks about the "pserver" that has been set-up in
>order to alleviate the headache of a proxy/firewall that may be causing you
>some grief.
>
>INITIAL USE:
>cd /usr
>setenv CVSROOT anoncvs@anoncvs.openbsd.org:/cvs
>cvs -z 9 -q get -PA src
>
>UPDATE USE:
>cd /usr/src
>setenv CVSROOT anoncvs@anoncvs.openbsd.org:/cvs
>cvs -z 9 -q up -PAd
>
>"pserver" WORK-AROUND:
>cd /usr
>setenv CVSROOT :pserver:anoncvs@anoncvs5.usa.openbsd.org:/cvs
>cvs login
><type any password, it will return ok...work>
>cvs -z9 -q get src ..
>
>[From: Todd Miller... millert@openbsd.org]
>
>A quick explanation of the flags:
>"-z 9" turns on compression-- the same as "gzip -9"
>"-q" makes it quiet, as CVS can generate a lot of output
>"-d" will create and update new directories if your tree does not have
> them
>"-P" prunes out old directories
>"-A" resets sticky tags
>
>5) How do I rebuild my system?
>
>Depending on what version system you have and what version source you
>have, it can be as easy as four steps, and as lengthy as 22. If
>you have a 2.1 CD (or downloaded 2.1) and are using "-current"
>sources, you should be able to recompile in 4 steps. In order to get 2.1
>(and later) versions to compile on a 2.0 based system, things get a little
>tricky.
>
>5.1) "The Four Steps" (as opposed to the Four Questions)
>
>If you want to be risky, you can just try doing a "make -k build" in
>/usr/src-- the four steps below follow a prudent guideline for making
>a new system.
>
>1) cd /usr/src/share/mk; make install
>2) mkdir /usr/obj; cd /usr/src; make obj
>3) make -k build && make install
>4) make cleandir
>
>A quick explanation:
>1) "fixes" Makefiles and make (if broken, which sometimes happens)
>2) makes the directory for objects, then makes the objects
>3) builds the entire system. "-k" is a flag to make that tries to have
> make progress if there are any errors. "make build" also builds
> the dependencies. "make install" makes SURE it gets installed--
> "make build" is supposed to do the installing.
>4) this cleans up the source tree (deletes out extra binaries, etc)
>
>5.2) The long version. These are very detailed instructions given to
>misc@openbsd.org from Marco Hyman. If you aren't too paranoid, you can
>actually skip some of the stuff in there, at your own risk. Please read
>through carefully. If you aren't careful, you can actually hose your
>system up :(
>
>>From marc@dumbcat.codewright.com Sun May 4 17:57:34 1997
>Date: Sat, 03 May 1997 12:10:35 -0700
>From: Marco S Hyman <marc@dumbcat.codewright.com>
>To: tech@openbsd.org, misc@openbsd.org
>Subject: From 2.0 to current in 22 steps
>
>Someone (Theo?) recently said that updating from a 2.0 to current was
>a bitch. That sounded enough like a challenge that I thought I'd try
>it -- and document what I had to do at the same time. Hope this is
>helpful to others.
>
>Given:
> o System running 2.0 code
> o -current source tree mounted as /usr/src. My -current source lives on a
> different host, so it happens to be NFS mounted. This code was current
> as of 1 May.
> o An empty /usr/obj on the local disk.
>
>Variables:
>
> * $arch=i386, the architecture I'm generating the code for
> * $config=TRAVEL, my configuration file. This is a copy of ALL with
> everything I don't use commented out and a few minor changes. Travel
> is a Toshiba laptop and I wanted the PCMCIA modem to be com1 and the
> PCMCIA ethernet card to be either ed0 or ep0, depending upon which
> flavor or card I happen to be using.
>
>Ok, here are the steps. Disclaimer mode:
> - Some may not be necessary.
> - There may be necessary steps that I missed and just luckely
> have not run into problems yet.
> - The order that I did things may be wrong.
> - Etc.
>[ FAQ assembler's note: This mailing was hearlded by some as a masterpiece
>rivaling the Magna Carta :) ]
>
> [ 1] cd /usr/src/share/mk && make install
> use the new make for everything
>
> [ 2] cd /usr/src/includes && make includes
> use the new included for everything
>
> [ 3] cd /usr/src/bin/pdksh && make && make install && make clean
> This is installed as /bin/sh which is needed for the next step.
> The 2.0 /bin/sh does not work with making the object links.
> The `make clean' step is to get the $arch specific objects
> out of the source directory.
>
> [ 4] cd /usr/src && make obj
> make the obj links so that code is generated on the local disk,
> not the NFS mounted source disk. (Note: the kernel is still
> generated in /sys/arch/$arch/compile/$config).
>
> [ 5] cd /usr/src/usr.bin/mktemp && make && make install
> mktemp is required to generate a kernel
>
> [ 6] cd /usr/src/usr.sbin/config && make depend && make && make install
> The latest config MUST be used to generate the new kernel. If you
> don't use this config you won't get past the "make depend" step
> of kernel generation.
>
> [ 7] cd /sys/arch/$arch/conf
> edit your $config file if necessary.
>
> [ 8] config $config
> generate required files to build updated kernel.
>
> [ 9] cd ../compile/$config && make clean && make depend && make
> Don't forget the make clean. It may not be necessary, but doesn't
> hurt in any case. The new config may have even warned you to do
> this.
>
> [10] mv /bsd /bsd- && mv bsd /
> Get ready...
>
> [11] reboot
> Reboot your box and watch the console to see what's going on. In
> my case all went well. Xdm started and gave me my console login.
> I ssh'd from another host, su'd, and then re-mounted the current
> source on /usr/src. uname -a says:
>
> OpenBSD travel.codewright.com 2.1 TRAVEL#0 i386
>
> [12] cd /usr/src && make cleandir
> We start with this step of the build process because the
> /usr/src/share/mk and the include files were installed above.
>
> [13] cd /usr/src/usr.bin/compile_et && make depend && make && make install
> this tool is required to build the libraries.
>
> [14] cd /usr/src/usr.bin/mk_cmds && make depend && make && make install
> this tool is required to build the libraries
>
> [15] cd /usr/src/lib && make depend && make && make install
> Go and have dinner then see a movie. This should be done
> just about the time you get back to the console. At least
> that's how long it takes on my old pentium portable.
>
> [16] cd /usr/src/gnu/usr.bin/ld && make depend && make && make install
> needed for the gnu libraries (libg++ will fail)
>
> [17] cd /usr/src/gnu/lib && make depend && make && make install
>
> [18] cd /usr/src/kerberosIV && make build
>
> [19] cd /usr/src/gnu/usr.bin/texinfo && \
> make -f Makefile.bsd-wrapper && \
> make -f Makefile.bsd-wrapper install
> The updated makeinfo is required by gcc which is generated
> before makeinfo when doing a standard `make'
>
> [20] cd /usr/src && make depend && make && make install
>
> [21] reboot
> See that everything comes up. If your source lives on a
> remote machine (like mine does), mount it on /usr/src.
>
> [22] cd /usr/src && make build
> This step is optional. I like to use the generated system to
> regenerate the full system just to ensure that all is OK.
> Probably best to start this before you go to bed. It might
> be done by the time you wake up.
>
>As I type this I've completed steps 1-21. Step 22 is in progress. I'll
>mail out an update if I run into any problems. Again, I hope this is
>helpful to others.
>
>// marc
>
>There you have it!
>
>6) Why can't I use my old linux ifconfig commands and flags?
>
>Linux's implementations of "ifconfig" and "route" are not standard.
>OpenBSD's versions are normal. To get my ne2000 clone working, I type:
>
>corinne# ifconfig ed2 205.212.82.80 up
>corinne# route add default 205.212.82.1
>
>That should work to get ANY ethernet interface working, as long as you
>specify the correct IP numbers and interface.
>
>6.1) Whenever I do anything to the network I get a "device timeout"
> error!?!
>
>This is because you have an incorrect hardware or irq address assigned to
>your ethernet interface. To fix this, reboot the machine with the "-c"
>flag and change the attributes for your ethernet interface. See the
>general instructions in item 1 of this FAQ on how to change how the
>kernel talks to your hardware.
>
>6.2) Hey, my IP Aliasing breaks after trying to add a third host!
>
>Aliasing one additional host usually isn't a big deal. When a user tries
>to alias a third or fourth host, sometimes things break. Adding
>"netmask 0xffffffff" to the end of your "ifconfig" for adding the aliased
>host solves the problem. i.e.:
>
>sparcy# ifconfig le0 alias 123.45.67.89 netmask 0xffffffff
>
>6.3) How do I view the hosts that I've aliased?
>
>If you are using the 2.1 release, you must use netstat to see what
>IP numbers you have added to your interface. In "current" (post
>June 17, 1997) source, "ifconfig -a" will show your aliases.
>
>7) Why won't XFree86 load on my (insert really cool/expensive, you
>know-it-will-work-because-you-checked-it-on-the-compatability-list at
>xfree86.org) graphics card?
>
>Some of the X servers require direct access to "/dev/mem" (raw memory)
>in order to work. By default, the OpenBSD kernel does not allow for this.
>There are two solutions:
> A) recompile a kernel with "option insecure" in your configuration
> file.
> B) Use the "apature" Loadable Kernel Module (lkm) found in the X11
> distribution.
>
>In addition, the Matrox Millenium and possibly other cards may require BOTH
>lkm be loaded as well as option insecure.
>
>8) Where's pine (or other GNU/semi-free utility)?
>
>All about ports (as cribbed from www.openbsd.org/ports.html)
>
>OpenBSD is a fairly complete system of its own, but there still is a lot
>of software that one might want see added to their own system. However,
>one has to draw the line on what to include and leave out, as well as
>having to follow licensing and export restrictions laws. Because of these
>problems, some software cannot be shipped with the system. We wanted to
>find a way for users to easily get software we don't provide and started
>to look around. We didn't have to look far because a sibling project,
>FreeBSD, has an excellent mechanism for exactly this purpose called "The
>Ports Collection". After thinking about it for a while we decided to try
>and use their collection as is, feeding back necessary patches that make
>the ports work on OpenBSD as well as FreeBSD.
>
>The ports idea is to have, for each piece of software, a Makefile that
>describes where to download it from, how to alter the sources (if needed)
>and how to build and install it. Furthermore some patches will have to be
>kept in the "port" as well as some administration files for the package
>registry utilities. Normally this information is kept in an hierarchy
>under /usr/ports (this is configurable, and can be changed). The entire
>ports tree can be found at
> ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/ports.tar.gz
>
>Note that this isn't a file on their server, rather it archives their
>directories on-the-fly. The entire collection is almost 3.1M tarred and
>gzip'd and will probably be twice that when uncompressed. The ports tree
>is also on the 2.1 CD.
>
>Let's say you managed to get a ports tree sitting under /usr/ports, then
>you should be able to something like this:
>
> mitnick% su
> mitnick# cd /usr/ports/archivers/unzip
> mitnick# make
> mitnick# make install
> mitnick# exit
>
>Easy, huh?
>
>9) Where do I get my OpenBSD 2.1 CD?
>
>To preface, because OpenBSD contains powerful crypto, CDs are being
>distributed from Canda, Sweden, and Argentina. CDs cost $30 US plus
>shipping ($3-$8 US, generally). The CDs are a two CD set, complete with
>binaries for the Alpha, i386, Sparc, Amiga, Arc, Mac (68k), Pmax, and
>Motorola 68k VME systems, source code, X11R6.3, XFree86 3.3 (binaries and
>sources). In addition, The CDs are designed to be bootable on multiple
>architectures.
>
>http://www.openbsd.org/orders.html will take you through the credit card
>on-line odering system. To order VIA phone, call +1 (403) 605-8166
>between 8AM and 5PM North American Mountain Standard Time. Please
>have your American Express, Master Card or Visa ready.
>
>10) disklabel and fdisk
>
>disklabel and fdisk are different in OpenBSD than what most users are used
>to in different operating systems.
>
>In OpenBSD, disklabel is the core program used to modify and view a
>system's hard disk. disklabel is used to establish the disk's partitions
>as well as write the OpenBSD disklabel to disk. disklabel is also used to
>display which partitions are which. By running disklabel with an argument
>like "wd0" (think "disklabel wd0") the output will show not only what
>partitions of the disk are used by OpenBSD, but also what partitions can be
>used to access DOS partitions. Please note that disklabel is used by ALL
>platforms that OpenBSD supports.
>
>In all install procedures, disklabel is loaded up and the disk must be
>partitioned. Disklabeling is done in 512-byte sectors, so have a calculator
>ready :-)
>
>A typical, finished disklabel looks like this:
>
>----[start disklabel]-----
>
># /dev/rsd0c:
>type: SCSI
>disk: SCSI disk
>label: ST41200N
>flags:
>bytes/sector: 512
>sectors/track: 70
>tracks/cylinder: 15
>sectors/cylinder: 1050
>cylinders: 1931
>total sectors: 2031705
>rpm: 3600
>interleave: 1
>trackskew: 0
>cylinderskew: 0
>headswitch: 0 # milliseconds
>track-to-track seek: 0 # milliseconds
>drivedata: 0
>
>8 partitions:
># size offset fstype [fsize bsize cpg]
> a: 163840 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 156*)
> b: 92160 163840 swap # (Cyl. 156*- 243*)
> c: 2031705 0 unused 0 0 # (Cyl. 0 - 1934*)
> e: 1775705 256000 4.2BSD 1024 8192 16 # (Cyl. 243*- 1934*)
>
>-----[end disklabel]-----
>
>This is the disklabel from my DEC Alpha's SCSI disk-- /dev/sd0. Letters
>"a-e" are the different partitions on the disk. When the OpenBSD install
>procedure fires up disklabel, it generates the top 20 lines of the label.
>It's up to you (the person doing the install) to mete out the partitions
>as necessary for your system. The example I give here is pretty generic.
>Different systems will want to have different sized partitions for different
>uses.
>
>To OpenBSD, there are a few special partition names that are reserved and
have
>a special purpose. Partition "a" is reserved for the root file system.
>Partition "b" is reserved for swap space. "c" is reserved as a way to access
>the whole, raw disk. For compatibility reasons with other *BSD's on the i386
>platform, some people choose not to use partition "d." In setting up my
Alpha,
>I left out partition d, with no great loss.
>
>You don't have to be a math major to figure out how to proclaim space using
>disklabel on your OpenBSD install. From the disklabel above, the root
>partition ("a") of the install above is roughly 80 Megabytes large. How
>does "163840" represent this?
>
>Some of us may remember some dimensional analysis from chemistry. This is
>much easier than finding Avagadro's number.....
>
> 80 * 1024 * 1024 / 512 = 163840
> M -> K -> b -> b/s = sectors
>
> (the long way)
>
>Since for us, the conversion factor will always be the same, multiply
>the amount of Megs that you want in a partition by "2048" and you'll
>get the amount of sectors you need to allot.
>
> 80 * 2048 = 163840
>
> (the easy way)
>
>Now that we know how to size out our partitions, we need to know how
>to place them.
>
>Back to our example:
>
># size offset fstype [fsize bsize cpg]
> a: 163840 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 156*)
> b: 92160 163840 swap # (Cyl. 156*- 243*)
> c: 2031705 0 unused 0 0 # (Cyl. 0 - 1934*)
> e: 1775705 256000 4.2BSD 1024 8192 16 # (Cyl. 243*- 1934*)
>
>You'll notice the "offset" column. That tells the disklabel where it should
>start the next partition. If you notice, the offset for the first partition
>is 0, and for the following partition it is the size of the previous
partition.
>This is because disklabel starts counting from 0 and not from 1. Remember,
>partition "c" spans the entire disk, so it's offset is 0 and it's size is
>the size of the disk in sectors.
>
>The fstype column is used to write to the disklabel what kind of filesystem
>should be on the disk. Notice for "b", the swap partition, it's filesystem
>is declared as "swap" since OpenBSD uses unformatted disk space for swapping.
>Also not that the "c" partition must not have a filesystem on it, otherwise
>it will scrub the disk. Most importantly, OpenBSD uses the 4.2BSD ffs
>filesystem. Partitions like the root partition and /usr, etc need to be
>declared as "4.2BSD" in the disklabel!
>
>fsize, bsize, and cpg
>
>fsize is the minimum file size, a partial block that is allocated for
>small files. fsize should be smaller than bsize.
>bsize is the blocksize for a normal block of data on the partition.
>cpg is the amount of cylinders per group, which is used for when some
>low level programs do mappings and other low-level functions on a
per-cylinder
>basis. The defaults for this are 1024, 8192, and 16, respectively. This
>can be changed based on your needs. For more information, check the FFS
>papers in /usr/share/doc/smm/03.fsck_ffs for starters.
>
>FDISK....
>
>Unlike Linux, DOS, or FreeBSD, OpenBSD's fdisk is not
>full-screen/interactive. fdisk is used to manipulate partitions other than
>OpenBSD partitions as well as the MBR on various hard disks. If you are
>sharing a disk between DOS and OpenBSD, you can change which partition is
>active with fdisk. fdisk can also be used to display the same partition
>information as disklabel, although the format of the output is different.
>
>11) XXYYZZ (system something) is broken!
>
>The OpenBSD source tree is always evolving. The 2.1 release is wonderful
>and stable; however since the release snapshots will be made with many
>bugfixes every so often. Make sure you are running the latest code before
>giving up. See the OpenBSD ftp mirrors (as listed on the OpenBSD www
>sites) as well as the CVS section on how to obtain the source. ALSO, watch
>the misc@openbsd.org and announce@openbsd.org mailing lists for vital
>information. As another resource with your problems, check the OpenBSD
>mailing list archive, where it is quite possible that your question or
>concern has already been addressed. PS: always "man (utility)" and
>"apropos (problem)" because the answer you are looking for can lurk in the
>documentation.
>
>970712 jkatz@openbsd.org
>
> -Jon College Sophomore * OpenBSD Enthusiast * T. Sax
> - Founder and President, Corinne Posse * http://posse.cpio.org -
> jkatz@cpio.org * http://www.cpio.org * http://jon.katz.com
> "OpenBSD: high performance computing for high performance people."
>
>
Wojciech Tryc
-----------------------------------------------------
"There is nothing more permanent
than a temporary solution..."
-----------------------------------------------------
wojtek@tryc.on.ca wojtek@trytel.com
virterm@infreno.tusculum.edu virterm@nether.net
wojciech.tryc@kanatek.ca wojtek@fos.net
wojtek@biodome.org http://www.tryc.on.ca
-----------------------------------------------------