This File documents the Amiga NetBSD Distribution ported by Markus Wild

Copyright © 1993 Mike Schwartz et al.

Introduction
************

Welcome to the NetBSD-Amiga-FAQ.

This FAQ was composed to reduce the traffic on the net and to avoid people asking the same questions repeatedly, just as any other FAQ. Please write all comments, suggestions, etc. to the current maintainter of the FAQ. This will help to keep this FAQ up-to-date and useful. Thank you for reading the FAQ, because that's why I put so many hours of work into it:-)

It should be clear at this point that we are talking about the port of NetBSD  to the Amiga. Therefore whenever NetBSD is mentioned, it is only an abbreviation for NetBSD-Amiga, except stated otherwise.

General things
**************

This chapter contains general information about NetBSD.

The name of the game: What is NetBSD?
=====================================

NetBSD is a Unix-like operating system. It is very portable and runs on very different architektures such as Amiga, HP, Mac, Sun, PC, ... It is developed by people all around the world on the Net. Therefore it is called NetBSD. For a complete description of a Unix-like operating system, please refer to some books about unix or get any of the comp.unix.* Newsgroups FAQ.

Who is working on the port?
===========================

NetBSD was ported to the Amiga by mtk, Markus Wild, who also ported GCC to AmigaDOS and who did the ixemul.library.  Somehow he has an uncanny knack of diving into massive projects done by other people and making them work well on the amiga! Once NEtBSD-Amiga was useable, a lot of people joined in and contributed a lot to the project. I don't want to list any names, because I am sure I would forget some brave soul. Maybe I try to set up a complete list later.

What do I need to run NetBSD
****************************

This chapter describes the hardware related topics of NetBSD. It will explain, what kind of hardware you need to be able to run NetBSD.

What kind of Amigas will it run on?
===================================

There are three major requirements your system must fulfill to be able to run NetBSD. You must have an apropriate cpu, enough memory and enough harddiskspace for NetBSD.

Which cpu is needed?
--------------------

It depends heavily on the type of cpu your system has, whether NetBSD runs on your Amiga or if it doesn't. NetBSD, as any other modern Unix-derivate, too, must have a memory-management-unit (MMU) to be able to run. This is needed as all the processes that run under Unix are separated from each others, so no process can do any harm to any other.

If your system is equipped with one of the following cpu's you have the possibility to run NetBSD:

68020 with 68851 (MMU)

68030

68040

Note: It is very important that you have the _real_ cpu's, i.e. no EC-version, or whatever. These versions are missing the MMU-part of the cheap and are therefore cheaper. It is not possible to simply add a 68851 (MMU) to these chips. You have to replace your cpu, if possible, or you have to buy a cpu-board equipped with one of the 'real' cpu's mentioned above to be able to run NetBSD.

NetBSD is known to run on A500, A2000 and A4000/EC30 equipped with additional processor boards that have one oth the abouve CPUs. It runs on stock A3000 and A4000/40.

How much memory do I need?
--------------------------

Theoretically, you only need 2MB of fast RAM and 1MB of chip. The need for chipmemory is only needed for the startup, so if someone rewrites the program that loads the kernel into the memory and starts it, it would be possible to boot the kernel with 512KB-CHIP-RAM. Currently the kernel is loaded into the chipmemory and then copied into the largest chunk of fast memory found. Therefore 2MB is the bare minimun and will not allow you to do anything useful, but booting. It is possible to run NetBSD, in such a low memory situation, because it uses a mechanism named Paging. It writes currently unused parts of programs to the disk, thus freeing some memory for other parts. Writing to disk is very slow, compared to the execution of programs in memory, so the system will be to slow to be useable. So, to have an actual useable system, you should have at least 4MB of FAST-RAM, preferably more. When you want to use X-Windows, a graphical user interface on top of NetBSD, you probably need about 6MB or even more to do anything useful.

How much diskspace do I need?
-----------------------------

8MB of hard disk space will theoretically be sufficient to boot NetBSD, but again a lot more is needed to do anything useful. So, in practice, or to really use NetBSD, you will need at least 100M of hard disk, and even more is prefered.

You will need about twice your RAM amount just for a swap partition on your drive, that is where NetBSD writes the parts of programs which are currently not used to free up some memory for other programs.

What other hardware requirements are there?
-------------------------------------------

As mentioned earlier, there are no other requirements for speacial hardware. You can use any other device with NetBSD, provided the device is already supported by NetBSD. In general it should be possible to support any kind of hardware, but the need of the technical inforamtion on the hardware to be supported is sometimes hard to obtain, but it is even harder to find someone who has the knowledge, the will and the time to actually write a piece of special software for NetBSD to support the device, called a device-driver.

To actually find out, which devices are already supported, see the file "compatibility-list" that comes with the documentation from NetBSD.

A tape drive is recommended for NetBSD, as for any other operating system, too. You should do regularly backups in order to be able to restore the data you might have accidentially destroyed. Especially when you are doing kernel-development, chances are, that you may trash your harddisk. The system is normally quite stable, so doing backups is not a must, but you should do it.

A modem is recommended, too, in order to be able to connect to the internet or at least send some mail to other NetBSD-users. This will enable you to obtain the latest updates and discussions on NetBSD.

What about building the kernel myself?
**************************************

Theoreticall you have two options here. You can build the kernel under AmigaOS or under NetBSD itself. In the beginning of the development, NetBSD was compiled under AmigaOS, of course, but now almost everybody works under NetBSD itself. It is highly recommended that you build the kernel under NetBSD, because you save a lot of HD-space on the Amiga side and, the more important reason, the possibility that other developers can help you with the problems that might occur is much higher.

You will need to get the current version of bsdsyssrc.720.tar.gz file from the ftp site and put it onto one of the NetBSD-partitions.

You will need at least 7Megs of room on your /usr partition.  If you don't have enough room, you can use a softlink to put the usr/src/sys subdir on a different partition.  See question "How do I use softlinks" for more information on softlinks.

The details are in the RECOMPILE text file of what to change.  You also need to edit the Makefile.amiga file and put correct path to the gcc compiler in it.  Change the CPP= line to read

CPP=/usr/gnu/lib/gcc-lib/netbsdamiga/2.4.5/cpp -traditional

You also need to get a bsd version of the config program, which is on the ftp.eunet.ch ftp site.  Copy this config binary into /usr/sbin. Then type:

config AMIGA

cd ../compile/AMIGA

make

Good luck.  Building stuff like this from other environments is not that big a deal.  You will get compile errors - just use your editor and fix what's wrong.  A good rule to remember is that 100% of the code has been compiled before and it works when compiled :-)

Since kernel version 490 NetBSD is able to boot a new kernel from NetBSD. just do:

mknod /dev/reboot c 2 20

cp vmunix.* /dev/reboot

Then it should load the kernelimage vmunix.* and reboot.

NetBSD - Linux - Amiga-Unix - Minix
***********************************

Currently there are four possibilies to run Unix on the Amiga.

The first one was Amiga-Unix. This is a commercial unix from Commodore. It is neither sold nor supported any more.

The second unix on the Amiga was Minix from A.S. Tanenbaum, a very famous operating system professor. It runs on every Amiga and does not support memory protection and some other features needed to get the real unix feeling. It is commercial, too. It's major aim is to be an operating system to play around with. It was developed for the computer science students Tanenbaum held lectures for.

The third available unix on the Amiga was NetBSD. It gives you almost anything you might want to expect from a free unix clone. It runs quite stable. NetBSD is being developed on several platform, which gives it a large background of supporters. All users will benefit from platform independent changes made to it. It was designed to be as portable as possible. Currently there are ports to the Amiga, Intel-based PCs, HP-300 (680x0)-based, Macs, Sun3, Sun-Sparcs and some other platforms. NetBSD-Amiga was added a binary-compatibility-mode for sun3-binaries. Of course, this means only binary-compatibel with static linked binaries. This shows some of the possibilities of NetBSD. If we are going to have the same shared libraries on both sides, running shared linked binaries will eventually be possible, too. Markus Wild reports, that he is already able to run a sun3-compiled emacs on NetBSD. NetBSD-Amiga is based on the NetBSD-current sources and is updated regularly. Any changes made to the sources will go back to the NetBSD-current source tree, so that future distributions contains these changes. A lot of changes made in the 4.4BSD are already incoorporated into NetBSD, some others are still to come. NetBSD contains a lot of other fancy features, other unix-based operating systems are missing, e.g. cpu-time- or quotas. NetBSD is copyrighted software, but you are free to use, modify and distribute it. Note that it is NOT under the GPL (General Public License, the Gnu Cpoyright (-left)) and the developers of NetBSD want it to keep this state. Therefore it is not possible to include any software which is under the GPL into the kernel. NetBSD is available in source, but anybody is free to take the current sources and provide them together with his own binaries, i.e. you don't have to provide the sources of your own work. This offer the opportunity for software developer to keep the sources of the programms they sell. This is not possible under GPL, where you must provide the source.

The forth available unix on the Amiga is Linux. It was designed to run on Intel-based PCs. However, Hamish MacDonald did a major rewrite of the sources, so that it is now possible to run Linux on the Amiga. It adopted the NetBSD-SCSI-driver for the hd's and is now quite useable. It already contains a floppy-driver, although this is not completly functional yet. Everybody has to decide by themselves, which unix is best for them. For now I can say, that using NetBSD is the best way to go, as Linux still has some more nasty bugs in it and is missing a lot of the functionality you might want to use, but this can change in the future. A criteria for the decision can be that Linux tries to be Posix compliant, whereas NetBSD tries to act as a BSD-system, of course. I cannot say anything about the future development of the two.

Frequently Asked Questions and their answers
********************************************

How do I get NetBSD?
====================

The primary distribution site of NetBSD is ftp.eunet.ch. You can ftp to there and get the all the docs in /pub/NetBSD/incoming/DOCS. This is were the latest versions of all the NetBSD-Amiga related docs can be found.

How do I install it?
====================

Get the file "NetBSD.Install.720" and follow its instructions. See 'How do I get NetBSD' for instructions on where to find it.

Does NetBSD support my device?
==============================

The file "compatibility-list" that comes with the NetBSD distribution contains all the gathered information on the devices that work with NetBSD. See 'How do I get NetBSD' for instructions on where to find it.

I cannot su to root
===================

If a users should be able to 'su' (switch or substitute a user) to root, then he must be a member of group wheel.

I have problems with my tape drive.
===================================

When NetBSD boots, it reports for some tape drives that the drive is not supported.  Ignore this message.  It is particulary dumb that you get this message for CBM's own A3070 tape drive.

NetBSD seems to work with everyone's tape drive so far.  Not that many brands have been tested yet. There are two regularly occuring problems with the tape drives and there is a workaround for each.  Evenutally, we'll get all this stuff working right.

Note that there have been some bugfixes for tapedrives, but I don't know exactly, if all the problems below are already fixed, so I mention them here nevertheless.

Tapedrive -- Problem 1
----------------------

After I just used btn on the AmigaOS side to write a tape, I booted bsd and tar reports some error when I try to read from the tape drive.

Solution:

NetBSD doesn't issue a SCSI reset command to SCSI ID's 4 and 5 - these are assumed to be tape drives, and sending the reset makes drives like the A3070 make a lot of annoying reset/rewind noises.  The solution to the problem is to either power cycle your tape drive before or after bsd is booted.  The problem goes away and bsd can then read the tape.  Note that if the tape is rewinding, you will get an error trying to read from it.  Just wait until the tape is done rewinding and try again.

Tapedrive -- Problem 2
----------------------

If I write small files to the tape from NetBSD and try to read them from the AmigaOS side, there doesn't appear to be anything on the tape.  This may occur in the other direction, too.

Solution:

If you are using tar to make the tapes, add a fairly big file to the end of the tape.  For example, i want to just put vmunix on tape, so normally, I'd just:

tar cvfp tape: vmunix

What I need to do to workaround the problem is:

tar cvfp tape: vmunix rootfs.gz

And on the bsd side:

tar xvfp /dev/rst0 vmunix

General workaround for tapedrive problems
-----------------------------------------

If you cannot get your tapedrive to get to work with NetBSD, write a new device driver for your tapedrive, or wait until someone else does so. As a workaround you can write a tar-file with tar to an unused partition, boot into AmigaDOS and user dcp or devtofile and back this up. It is a kludge, but it works.

What do I need to know about softlinks?
=======================================

A softlink is basically a pointer to a file or subdirectory that redirects normal unix subdir tree processing to other places. Let's use some examples to clarify the use of softlinks.

Above, we talked about building the kernel under netbsd environment. Well, if you had made only a 50M /usr partition like I did, there is NOT enough room to untar and build the bsdsyssrc.tgz (kernel). Using softlinks, you can put the bsdsyssrc stuff on your /opt partition (where I put mine) and fake unix into thinking it is in /usr/src/sys.

Here's how to do it:

cd /usr

mkdir src

cd src

ln -s /opt/sys sys

Now do:

ls -laF

and you will see something like:

sys@ -> /opt/sys

Now you can just:

cd /opt

tar xzvfp /dev/rst0

and untar the bsdsyssrc there.  It will make a /opt/sys for you. Now if you:

cd /usr/src/sys

you have really done:

cd /opt/sys

Another use for softlinks.  I recommend this, actually.  I put all my amiga (CBM) header files on tape, then untarred them to /opt/cbm then I made a link:

ln -s /opt/cbm /cbm

Now I can:

cd /cbm

and get to my headers.  I also put font files in /cbm/fonts.  For example, /cbm/fonts/topaz.c is the output of dumpfont (run that under amigaos) to create a topaz font for kernel compiling.  I also have a /cbm/fonts/mach.c for the kernel_font.c.distrib and a cedfont.c for a cedfont I made.  In the kernel source tree, I did:

cd /usr/src/sys/arch/amiga/dev

ln -s /cbm/fonts/topaz.c kernel_font.c

And when I build the kernel, it uses topaz.c to make the font for the console.  Slick? :-)

I hope you get the idea now.  One thing that took me a while to get straight is the ORDER of the names on the ln command line :-) Just remember:

ln -s {ORIGINAL} {LINK}

and alphabetically, ORIGINAL is before LINK :-) (Just like the cp-command)

I have no uptime-command?
=========================

Do 'ln -s /usr/bin/w /usr/bin/uptime'

How do I update the header files automatically ?
================================================

Hubert Feyrer writes:

     Whenever a new kernel comes out, it's possible for some kernal-structures to be changed. You can install the altered headers by hand, but there's a easier way by using symlinks into the src-tree.

     In particular, the files under /usr/include/machine and /usr/include/sys are often altered. To replace those files with the one that came with your latest kernel-sources, simply link /usr/src/sys/sys to /usr/include/sys and /usr/src/sys/arch/amiga/include to /usr/include/machine:

     cd /usr/include mv sys sys.old mv include include.old ln -s /usr/src/sys/sys sys ln -s /usr/src/sys/arch/amiga/include machine

How do I get a /usr/local?
==========================

As netbsd comes configured (i.e. after you install it), some things either don't work right or are just missing.

There is no /usr/local in the distributed netbsd distribution.  There SHOULD be a /usr/local, so you have to create it.  Use the following:

mkdir -p /usr/local/man/man1

mkdir /usr/local/man/man2

mkdir /usr/local/man/man3

mkdir /usr/local/man/man4

mkdir /usr/local/man/man5

mkdir /usr/local/man/man6

mkdir /usr/local/man/man7

mkdir /usr/local/man/man8

mkdir /usr/local/man/cat1

mkdir /usr/local/man/cat2

mkdir /usr/local/man/cat3

mkdir /usr/local/man/cat4

mkdir /usr/local/man/cat5

mkdir /usr/local/man/cat6

mkdir /usr/local/man/cat7

mkdir /usr/local/man/cat8

mkdir /usr/games

mkdir /usr/local/lib

chmod -r 755 /usr/local

Once you've done this setup, you can install new packages!

What packages can I install for BSD to enhance it?
==================================================

Currently, you can install the following software packages under bsd.  The porting job has already been done.  Just get the tar file and the readme and it will give you instructions. If you want to use more packages, ftp to one of the NetBSD-current mirrors and get the sources for whatever is availble there. Most of it should compile right out of the box, but due to the rapid changes there might be some incompatibilities.

  * ados.tar.gz - a start for an amigados emulator for unix/bsd.

  * anethack.tar.z - nethack ported to netbsd.

  * ascreen.tar.z - screen, a multisession program, that gives you more than one screen with separate shells on each.

  * atcsh.tar.z - the tcsh shell ported to NetBSD.

  * aterm.tar.z - linux's most wonderful term program, ported to NetBSD. it works like dnet, sortof - only better.  It lets you have multiple remote shells, but also lets you run irc clients directly on the netbsd machine.  It also has ftp and telnet clients for it so you can ftp, for example, right to/from your netbsd harddisk over the internet.  It also has the ability to allow anyone else on internet to telnet in to your netbsd machine.  (irc, ftp, telnet clients not ported yet).

  * config.tgz - source to config so you can compile it under netbsd to build your kernels under netbsd.

  * grofflibg++bin.tar.gz - gnu roff and libg++.  You need groff to have man pages formatted, and libg++ to compile c++ programs.

  * term107.tar.z - unhacked sources to term107 (aterm) so you can easily compile it on remote (i.e. not your netbsd) machine.

  * manpages.tar.z - man pages for sections 2 and 3 of /usr/man.  Library and os calls documented.

  * bffs1.25.lzh - archive of the amiga bffs (berkeley file system) tools and filesystem handler.  Handler reads your bsd partitions, but doesn't write (according to the docs).  It contains the needed filetodev program for installing netbsd in the first place.

  * diff-2.3.tgz - port of gnu diff (needed for RCS)

  * rcs-5.6.0.1.tgz - port of RCS (requires diff-2.3.tgz :-)

  * perl-4.036.tar.gz - port of perl

  * X11R5.*.tar.gz - X11R5 package

  * cat12345678.tar.gz - all man-pages, already formatted.

How Do I get man pages.
=======================

The man-pages are currently in the distribution directory of NetBSD . The are called cat*.tar.gz. Please get them and install, i.e. gunzip and tar xf, them to the appropriate directory. Be warned, they take about 1 MB of diskspace.

How can I modify the kernel to work with my graphic card?
=========================================================

mtk says:

Ok, from my memory, these files need to be changed:

  * grfvar.h      add defines for your board analogue the others

  * device.h      add manufacturer/product code

  * autoconfig.c  add man/prod to switch statement, and set to BITMAP type

  * write grf_XX.c and ite_XX.c, look at the existing drivers in general, grf_ should deal with the framebuffer as such, and ite_ should care about the framebuffer in text-mode, ie. drawing characters, scrolling lines, etc.

  * add your board to the dispatch tables in grf.c and ite.c

  * add - if necessary - new grf1 entry to conf/AMIGA

  * add your new files to conf/files.amiga

  * reconfig the kernel, make, cross fingers, debug ;-)

What about X-Windows?
=====================

I am very proud to announce that X-Windows DOES run on NetBSD-Amiga. Things have become accellerated quite a bit as more people work on the port of any kind of software!

I cite Philippe Brand (PhB@telesys-innov.fr):

     Port has been done mainly by Olivier Raoul, my brother Olivier & friends (raoul_o@boson.epita.fr).

     Their internet connection is broken down for at least one month, so you can send email to NetBSD list or private to me and I'll forward them quickly.

     All machines should be able to run it, provided you have enough RAM. As for now standard custom chips are supported, and they will work on the support for the Retina card, as soon as they can get hold of one. X-color will be available with standard customs chips as they told me.

What about networking?
======================

Ethernetsupport is working perfectly.  FTP and telnet work both in client- and server-mode, NFS was only testet as client with only one filesystem mounted read-only. Also, NetBSD-Amiga has proofed Internet-compatibility in running a NNTP-based News-Server for several weeks.

If you don't have a Ethernet-card but want to connect to a a unix-box, you can do this using SLIP (Serial Line Internet Protocol) or PPP (Point to Point Protocol) over a serial line. This way you can use all TCP/IP services to all hosts on you network without any restrictions.

What about accessing ados-files from NetBSD?
============================================

Niklas Hallqvist, Email: niklas@appli.se is currently working on a solution for this, but his time is very limited. So, if you want to have it fast, contact him and help him or do it on your own.

Is there a debugger for NetBSD. Is there any? If so, where is it?
=================================================================

Andy Heffernan   ahh@netcom.com has ported gdb-4.11 to NetBSD. It still contains some minor bugs, but it is already useable.

How do I get /dev/reload and /dev/zero and /dev/par ?
=====================================================

As root do:

mknod /dev/reboot c 2 20 mknod /dev/zero c 2 12 mknod /dev/par c 11 0

Does NetBSD run on the 68040?
=============================

Yes. Michael L. Hitch (osymh@montana.edu) has made it possible.

How do I create accounts and change user-information?
=====================================================

Use vipw and chpass.

How do I get a reboot that reboots into NetBSD
==============================================

Do the following: # mv /sbin/reboot /sbin/reboot.amiga # echo "cp /vmunix /dev/reboot" >/sbin/reboot

'reboot' reboots NetBSD, 'reboot.amiga' reboots into Amiga-DOS.

How do I get cron to work?
==========================

Put the crontab-cmd setuid root:

# chmod u+s /usr/bin/crontab

then start the correct cron-daemon in /etc/rc .replace 'cron' by '/usr/libexec/crond'. To create a user's first crontab do 'crontab -r /dev/null'.

How do I get a serial terminal to work correctly?
=================================================

Add the following line in /etc/ttys: tty00 "/usr/libexec/getty std.19200" vt100 on secure Other values for speed can be looked up in /etc/gettytab

Does NetBSD work with my retina and my noname-monitor?
======================================================

NetBSD opens a ~800x600 screen with ~75Hz on the retina, if present. Some monitors are not able to display a screen with such a high diplay-rate. So, for your on sake, set _retina_default_mon to 0 before starting NetBSD.

How can I access Floppies from NetBSD?
======================================

Currently it is not possible to read or write floppies from NetBSD. A floppy-driver is being worked on, but it is not complete yet.

Can I run NetBSD with my IDE-drive?
===================================

Currently you are not able to run NetBSD with an IDE-drive. You need an IDE device-driver, which is able to talk to an IDE-drive. Up to now, nobody volunteered to write one, so if you want to do so, please go ahead.

What Projects are being worked on?
==================================

See the file "projects" for more information. See question "How do I get NetBSD" for how to obtain this file.

Is there a Mailing-list?
========================

Yes. The list structure for NetBSD on the Amiga:

NetBSD-Amiga -	This is the main list that contains helpful information on installation and general questions about NetBSD on the Amiga. New kernel versions and binaries announcements will appear in this list.  A Frequently Asked Questions will be posted bi-weekly to monthly.

NetBSD-X     -	This is the list for installation and development specifically geared towards running X under NetBSD on the Amiga.

NetBSD-Dev   -	This is the list for specifically for kernel hackers.

How to get on (or off of) the lists:

To: NetBSD-Request@cbmuucp.commodore.com Subject: SUBSCRIBE NETBSD

Allow a couple of days for the transaction to occur.  If after a few days nothing happens, then resend the request.

Some acceptable subjects:

SUBSCRIBE X  - this will get you on the NetBSD-X list. UNSUBSCRIBE NETBSD-DEV - this will remove you from the NetBSD-Dev list. SUBSCRIBE - this will get you on the NetBSD-Amiga list (the default).

Acceptable aliases:

admin: netbsd-admin@cbmuucp.commodore.com netbsd-request@cbmuucp.commodore.com billc@iceCuBE.rain.com

X list: netbsd-x@cbmuucp.commodore.com x@cbmuucp.commodore.com

Dev list: netbsd-dev@cbmuucp.commodore.com dev@cbmuucp.commodore.com

NetBSD list: netbsd-amiga@cbmuucp.commodore.com netbsd@cbmuucp.commodore.com

Past postings:

Past postings to any of the groups are not archived here. However, you can find an archive from the NetBSD-Amiga list on ftp.uni-regensburg.de:/pub/NetBSD-Amiga/DOCS/Mailinglist-Archive. This directory contains all mails from the NetBSD-Amiga mailing-list, all mails of one month go into one file. The .Subject-files contain only the subject-lines of the corresponding month.

You can read the files using your favourite email-frontend. Just copy the file to /var/spool/mail/$USER (or /var/mail/$USER, or whatever) and start elm, emacs or anything else.

Policy:

Commodore Business Machines, Commodore International Limited, or any of it subsideraries neither cares, nor endorses this mailing list, the NetBSD project on the Amiga, or anything affiliated with this project (muchless even knows what NetBSD is, or what a mailing list is, for that matter).  They are just nice enough to allocate some CPU and disk space for us, for which we are virtually grateful (just nod your head and smile, like when some is talking to you in a foreign language and you have no translator near).

Is there a Newsgroup for NetBSD?
================================

Yes and no. There is no NetBSD specific Newsgroup, but most the Newsgroup comp.unix.amiga is the one with the most NetBSD-Amiga related postings. You may also subscribe to comp.os.386bsd.{announce, development, apps, bugs, misc, questions}. Although NetBSD-Amiga is not completely reintegrated into the source tree, work is underway. So if you have general NetBSD questions, the above mentioned newsgroups are fine. If you think that your questions are more Amiga specific, please use the Amiga-newsgroup.

How can I autoboot into multi-user mode?
========================================

Eduardo Horvath (eeh@public.btr.com) writes

     Now for the technical stuff.  The boot parameter is passed to the kernel in d7 (the way the HP seems to have done it.)  The new loadbsd will default to single user booting.  If you specify the -a flag (ala DECstations), loadbsd will tell the kernel to autoboot.  Older kernels simply ignore this parameter.

     new loadbsd usage:

     -a	boot up to multiuser mode. -b	ask for which root device [I have roots on 3 different disks at times]. -k	reserve the first 4M of fast mem [Some one else is going to have to answer that it is used for]. -p	Currently not used - it's to specify that the highest priority fastmem segement is to be used for NetBSD instead of the largest segment.  The higher priority segment is usually faster (i.e. 32 bit memory), but some people have smaller amounts of 32 bit memory. -t	This is a "test" option.  It prints out the memory list information being passed to the kernel and also exits without actually starting NetBSD.

ps does not work on my system.
==============================

The file /vmunix has to be the same like the kernel you are running. Just copy your the kernel you started to /vmunix.

NetBSD on non A3000 machines.
=============================

When you try to run NetBSD on a new machine with a new configuration other than an A3000, then have a close look at the is_a3000() function. Currently this function detremines if NetBSD is running on an A3000 in a very kludgy way. This is a matter of change in the future, but  we have to live with it today.

NetBSD does not use all my memory.
==================================

Currently NetBSD only uses the largest chunk of Fast-Memory it can find on boot-up. This might change in the future, but today there is no workaround for this.

If your memory is continuous, but NetBSD doesn't use all of it, use the following trick from Chriss Hopps:

     Everyone does know about mergemem from workbench 1.3 right?  If your memory is contigous but not merged into a single memlist netbsd doesn't seem to think its contiguous (bogus).  You can run Mergemem (Sys:system/mergemem) and like magic netbsd will use the extra ram I am currently doing this with 4 M 32 on a 2630, 2M on a gvp csontroller and 2M on a supra 8M board.

NetBSD asks me root device?
===========================

You have got an old version of loadbsd! Please get a new one. It's in the bin directory. vmunix-644 and later won't load correctly with the old one.

Where can I find ixemul.version >= 39.46?
=========================================

If loadbsd starts with opening a requester asking you for a version of the ixemul.library, it ok to continue and boot with Version 39.45. mtk says:

     No problem running it with r45. r46 is a networking version, I think I only released r47 in the networking package.

How do I report bugs?
=====================

If you encountered a bug, before reporting this bug, please get sure it is really a bug and not your own mistake/misusage. If you need help, write to the mailing-list or post your question/bug-report to the appropriate newsgroups (see "Is there a newsgroup for NetBSD"). If you report a bur, please try to give as much information as possible. This includes your configuration and the output you got.

Why does NetBSD not change my clock?
====================================

At the moment NetBSD is able to read the internal clock, but it is not possible to write to this clock. You can set the clock on the AmigaDos side and NetBSD will recognize the change. It should not be too difficult to add this functionality to NetBSD, but up to now, nobody did it.

Why does vi tell me he cannot read /etc/termcap ?
=================================================

This is a bug in the termcap-library. It looks for /usr/share/misc/termcap, but if it can't find this it says, that that it can't read /etc/termcap. Move the emacs-termcap to /etc/termcap and make a symbolic link from /usr/share/misc/termcap to /etc/termcap.

How can I change the console to autowrap?
=========================================

Use echo -n "^[[?7h". If you compile the kernel for yourself, you can change the auto-wrap-default in ite.c to 1.

NetBSD will not boot into multi-user-mode
=========================================

If NetBSD hangs when you are trying to boot into multiuser-mode, check if you removed the named in /etc/rc. named causes the machine to hang, if you are not connected to the internet.

How do I use binpatch?
======================

binpatch is a small utility to patch the kernel. It uses the bugging information to locate the variables. So, for example, if your drive is not able to be run in sync-mode, you can disable the sync-mode by using binpatch as follows:

Assuming the hd is on ID5 :

# binpatch -s _inhibit_sync vmunix  (get address of _inhibit_sync)
_inhibit_sync(0x12345): 0 (0x0)     (replace 0x12345 by real value from now on)
{Addr=0x12345+Unit (==5)==0x1234a}
# binpatch -b -a 0x1234a -r 1	      (replace 0x1234a with calculated value)

This inhibits sync-handshake on unit 5.

The options of binpatch are:

-s              search for an address of a variable

-a <address>    specify the address you want to patch

-b              patch only a byte value

-w              patch a word value (2 bytes)

-l              patch a long word value (4 bytes)

-r              the value to replace the old value

Another example from mtk:

     Remark to Retina-owners with monitors that don't grok the default video-mode opened by BSD, you're now able to binpatch this to an inferior mode:

     binpatch -s _retina_default_mon -r 1  will give you 640x512 with 31.5kHz and binpatch -s _retina_default_mon -r 2  will give you 768x600 with 38kHz

     -r 3 is the default at 64kHz.

NetBSD tells me: init FATAL error: console: Interrupted system call
===================================================================

You forgot to install libexec/getty.

How do I get a Meta-Key for Emacs ?
===================================

According to mtk, enter 'stty cs8 -istrip -parenb' and use any Amiga-key as meta-key.

How do I get a german keymap?
=============================

Starting from 644 the distribution contains (in sys/arch/amiga/stand/loadkmap) a prog to do just this. Compile it, generate the german keymap and user loadkmap to get a german keymap:

bin-kbdmap >din loadkmap din

How do I get dmesg to work?
===========================

chmod u+s /usr/sbin/dmesg

ioctl (GDINFO): invalid argument. What is wrong?
================================================

Starting with version 713 support for Non-BSD partitions was added.  This meant that pre-713 binaries of programs depending on sizeof (struct disklabel) got obsolete.  Specifically newfs, mount_mfs (which is a link to newfs) and disklabel didn't work anymore.  Newer versions of these can be gotten from ftp.eunet.ch, either in bin-newest or in bin-sbin.tar.gz if it's newer than Nov 22 1993.  If you've compiled the thing yourself, recompile it making sure that you use a post-713 version of sys/disklabel.h which can be found either in a recent (post-713) bsdsyssrc.xxx.tar.gz archive or a post-713 release of bin-usr.include.tar.gz.

What is /bin-newest for?
========================

This directory contains the latest versions of some programs. If a program does not work as expected, look into this directory to see, if someone has put up a later version into it, than the one you are using. This directory was created to remove to need to update bin-distribution every time a binary has changed.

How to set up SLIP?
===================

1	Dialup (and maybe login to) a SLIP port (kermit is a good way to do this).

2	slattach -a -h -s 38400 //dev/tty00

3	ifconfig sl0 LOCAL-IP-ADDR REMOTE-IP-ADDR -arp -trailers up

4	route add 0.0.0.0 REMOTE-IP-ADDR

Well, here are the steps I used to get it running. First let me state that the terminal server I dial-in to haas support for SLIP, so I only need to connect to it and tell it I want a SLIP connection. Others may have to actually login and start SLIP on the login session. Also because of this connection method my IP address can change each time.

1. Edit /etc/netstart to turn off the servers you won't use, but leave routed on. Setup /etc/hosts for your node and any others and make sure "hostname" and "domainname" reflect the proper things.

2. Run kermit to connect to the remote node: set modem none	(I use this to keep the line alive) set line /dev/tty00 set speed 38400	(This may depend on your modem) (Can NetBSD support 57.6Kbaud?) set flow rts/cts dial ### connect <Do what ever to get SLIP running remotely> Cntrl-\ Q	(Kill off Kermit, leaving line up)

3. Start up the local SLIP service: slattach -a -h -s 38400 /dev/tty00

4. Enable the network connection: ifconfig sl0 inet <local IP addr> <remote IP addr> -arp -trailers up

5. Turn on routing: route add 0.0.0.0 <remote IP addr>

I tried to setup routing information int he /etc/gateways file, but routed seemed to ignore it. Anyone know more details on how this should be done or if routed supports the file? I also tried to use "default" in place of "0.0.0.0" in the route comand, but it does not understand that syntax. I got that syntax from SUNOS 4.1 manuals and AmiTCP setup.

6. To avoid adding everything to your /etc/hosts file, turn on DNS access if you have it avialable on the remote end. Do this by creating or copying a /etc/resolv.config file from the reomte network.

Now all I need is to build ftptool on the NetBSD end and I can start downloading software directly to my Amiga :)

Can I read a sun tape data cartidge?
====================================

The original sun Archive tape drive, will read/write both QIC-11,QIC-24 format. To maximize you chances of reading the tape from your tape drive use the QIC-24 format. How?  Do a : tar -cvf /dev/rts8 will create a QIC-24 formatted tape.

What if my tape drive on the sun is a Archive Viper?
====================================================

Though the hardware of a 'Archive Viper' is capable of reading/writing multiple tape formats, sun only supports on format for writing, QIC-150. So using /dev/rts0, /dev/rst8, /dev/rst16, /dev/rst24 will all produce a QIC-150 formatted tape.

How can I tell what type of tape drive my sun has?
==================================================

You don't, just use /dev/rst8 for all data cartridge systems. Note if it isn't a 8mm tape or a 4mm tape then it probably is a Data Cartridge.

How can I find the major and minor numbers for devices?
=======================================================

Simply look into sys/arch/amiga/amiga/conf.c There is an array organized by major device numbers. Minors are the unit numbers.

Does NetBSD run with the PROTO-Chip?
====================================

Yes. The ONLY problem which may occure is that some drives (!) do not like to be enabled to the sync mode, which the PROTO does not handle properly. Again: this depends on the drives you are using, and the kludges in the kernel.

What went wrong with the latest distribution?
*********************************************

libc got crippled
=================

A part of libc got crippled, so all programs linked with this part do not function properly. This affects the regular expression matching.

sed
---

Neither of the distributed sed does not work properly. Get gnu-sed-2.03 and use the sed in usr gnu to built it or rebuilt libc.

expr
----

expr does not work properly and there is no workaround for it, other than building a new libc and then rebuilding expr.

gcc
===

Most of the headerfiles generated in /usr/gnu/lib/gcc-lib/netbsdamiga/2.5.6/include are bogus.

Remove all the files *EXCEPT* the following (at least that's what mtk did after discovering the problem):

total 50 -rw-r--r--  1 root  10   495 Dec  8 19:26 README -rw-r--r--  1 root  10  3719 Dec  8 22:08 float.h -rw-r--r--  1 root  10  2922 Dec  8 19:26 limits.h -rw-r--r--  1 root  10  9573 Dec  8 19:30 math-68881.h -rw-r--r--  1 root  10  5394 Dec  8 19:25 math.h drwxr-xr-x  2 root  10   512 Dec  8 19:31 objc

rootfs_720
==========

Make a symbolic link from /usr/share/misc/termcap to /etc/termcap. This gets vi and more working without complaining.

A few binaries are not stripped in /bin and /sbin. This is not really a bug, but consumes a bit of hd-space. To save even more space remove /bin/sh and make a hard link from /bin/bash to sh. Both files are identical in this release, anyway.

So, to sum up:

cd /bin exec csh strip bash rm sh ln -f bash sh strip less strip ash strip red

cd /sbin strip chown strip ldconfig exec bash

Recompiling the kernel
======================

I found some odd things in building the kernel that I'll pass on for other first time builders:

- make sure the /lib/cpp link is right. Mine pointed to the wrong gcc version.

- I had two config programs on my system. One in /usr/sbin which didn't work but was used by default from the path. The other was in /usr/share and it worked.

- I had to change the ENTRY macro in sys/lib/libkern/amiga/DEFS.h to be from: .globl /**/x; .even; _/**/x: to: .globl ##x; .even; _##x##: and I had to copy it into sys/lib/libkern/m68k

- I had to copy fpspnull.s to fpsp.s

- I had to make .s versions of strncmp and strncpy using gcc -S on the c versions in sys/lib/libkern

Loading the kernel
==================

Please use the latest loadbsd.730 to load kernels >= 720. This avoids some problems you might encounter otherwise.

If the kernel doesn't boot, try binpatch -s _ite_default_height -r 400 [kernel name]. You can also use 200 instead of 400.

Console bug
===========

The current console has a bug, which shows when using man.

Please do the following binpatch:

binpatch _kernel_font_baseline -b -r 6 [kernel name]

panic: cannot mount root
========================

Generally there seem to be 2 standard possibilities:

(1)	Your scsi controler cannot dma to the mmu memory. Solution: binpatch _scsi_no_dma to 1. (2)	You did not install the rootfs to the appropriate block. Solution: binpatch _sddebug to 1. This will output you, where NetBSD looks for the rootfs. Write down this number and filetodev the rootfs to the proper position. (Be sure to have reserved blocks = 0. hdtoolbox sometimes doesn't change this value correct)

For me none of the two worked. Michael L. Hitch seems to have found the problem as beeing something of 16 vs 32 bit word access problem of my '030. But I'd suggest, you try the first 2 ways before going more into this.