Subject: ANNOUNCE: FAQ
To: None <port-arm32@NetBSD.ORG>
From: Mark Brinicombe <amb@physig4.ph.kcl.ac.uk>
List: port-arm32
Date: 08/06/1996 22:15:57
Ok there are still one or two questions that need updated and I still have a
few to add but it has been a long time since I posted a FAQ so here it is.
BTW. The FAQ can be found in the docs directory on the FTP site.


RiscBSD FAQ
===========

This FAQ is copyright (c) Mark Brinicombe 1995-1996, all rights reserved.
Permission is granted to copy this document as a whole or in part provided
that this copyright message is included in all copies.

RiscBSD X Window FAQ
====================

Sections 11 and 12 of the RiscBSD FAQ make up the RiscBSD X Window FAQ.
This FAQ is copyright (c) Rob Black 1995-1996, all rights reserved.
Permission is granted to copy this document as a whole or in part provided
that this copyright message is included in all copies.

Questions 8.6, 9.2, 10.2 copyright (c) 1996 Markus Baeurle

The authors of this document provides no warranty, express or implied, as
to the accuracy of the information contained here although all the
information is supplied in good faith.

$Id: FAQ.txt,v 1.10 1996/08/06 21:07:14 mark Exp $

------------------------------------------------------------------------------
Contents:

1. Basics of RiscBSD
Q 1.1: What is RiscBSD
Q 1.2: What type of machine is supported
Q 1.3: What are the hardware requirements
Q 1.4: What is the state of the A7000 port

2. Availability and Information
Q 2.1: When is the 1.2 release going to be available
Q 2.2: How is RiscBSD available
Q 2.3: Is there an FTP site for RiscBSD
Q 2.4: Are there any FTP mirrors
Q 2.5: How much does the CDROM cost
Q 2.6: Where can I get more information on RiscBSD
Q 2.7: Are there any mailing lists
Q 2.8: How do I contact the kernel team?
Q 2.9: Where do I get the sources

3. The RiscBSD distribution
Q 3.1: I have the Alpha-2 release: will I need to reinstall everything?
Q 3.2: What packages are currently available?
Q 3.3: What sizes are the current packages

4. Kernel matters
Q 4.1: Why is floating point so slow?
Q 4.2: How big is the kernel
Q 4.3: What processors does the kernel support
Q 4.4: How do I configure a custom kernel ?
Q 4.5: What are known kernel-related bugs in RiscBSD?

5. Device drivers
Q 5.1: What device drivers are available for standard RPC hardware
Q 5.2: What SCSI cards are supported
Q 5.3: What ethernet cards are supported
Q 5.4: Will there be 16bit sound support?
Q 5.5: Are there any other drivers under development/planned
Q 5.6: Are there any cards which are unlikely to be supported in the near
future?
Q 5.7: What about ATAPI CDROM support ?

6. Multiprocessor card (Simtec Hydra)
Q 6.1: What is the current status of multiprocessor card support?
Q 6.2: Will the card be used for running custom accelerators or full MP?
Q 6.3: Will it be possible to run RiscBSD on a slave processor in a RiscOS
window?
Q 6.4: Can the 486 card be used from within RiscBSD?
Q 6.5: What is the long term multiprocessor goal

7. Ported Software
Q 7.1: What software is available?
Q 7.2: Can I compile C++ under RiscBSD?
Q 7.3: What networking software is available?
Q 7.4: Is MudOS available?

8. Bugs and Errors
Q 8.1: Who do I report bugs to?
Q 8.2: savecore reports an error during multiuser startup.
Q 8.3: What does proc size mismatch error mean ?
Q 8.4: Global constructors in c++ code are not working
Q 8.5: What does "Possible process deadlock due to shortage of L1 page
tables." mean ?
Q 8.6: I have plenty of memory, but gcc complains about "virtual memory
exhausted" when it tries to compile a large source file.

9. How do I ....
Q 9.1: How do I add users the my system ?
Q 9.2: How can I use my ATAPI CDROM under RiscBSD ?

10. Performance matters
Q 10.1: How good is GCC compared to Norcroft C
Q 10.2: Why is my SCSI harddisk so slow?

11. The X Window System
Q 11.1: What is the minimum specification of machine to run X?
Q 11.2: What is the current state of X?
Q 11.3: Who do I report bugs to?
Q 11.4: What are the known problems and features of X under RiscBSD?
Q 11.5: Where is libXpm / xpm.h ?
Q 11.6: Is Motif available?
Q 11.7: Are programs compiled with Motif available?
Q 11.8: How do I set up xdm?

12. Troubleshooting X
Q 12.1: I get error messages about missing devices.
Q 12.2: Everything works if I'm root, but not otherwise.
Q 12.3: X is really slow to start up and so are some X apps.
Q 12.4: I get error messages about invalid keycodes.



Subject: 1. Basics of RiscBSD

Q 1.1: What is RiscBSD
A: RiscBSD is a port of NetBSD to the ARM6+ family of processors running in
32bit data, 32bit address mode. The official NetBSD port name is
NetBSD/arm32. RiscBSD is not just NetBSD/arm32 but builds on it adding
packages like X11R6 and hosts of other software to form a much more complete
system.


Q 1.2: What type of machine is supported
A: A Acorn RiscPC 600/700 or A7000 or a VLSI RC7500 motherboard.


Q 1.3: What are the hardware requirements
A: The latest release of RiscBSD including X11R6 requires a ARM6+ processor
with a minimum of 8MB DRAM and 300MB of disk space.
This answer is rather short and not very informative. I will extend it
shortly.


Q 1.4: What is the state of the A7000 port
A: RiscBSD is almost ready to run on a A7000. The only part of the kernel
that does not support the A7000 is the video memory and VIDC code. The
kernel bootstrap needs to be extended (half done already) to reserve
a chunk of DRAM for video memory on non-VRAM machines. In these cases
the VIDC20 must be programmed slightly differently to deal with DRAM
instead of VRAM.
A new PS2 style mouse driver has now been written for the ARM7500.


Subject: 2. Availability

Q 2.1: When is the 1.2 release going to be available
A: Soon. A 1.2-beta release is on the ftp site. This is based of the
NetBSD 1.2 beta release and is available for bug testing. As soon as the
NetBSD 1.2 release is available all the RiscBSD sets will be rebuilt for 1.2
and a RiscBSD 1.2 release will be made available.
Current estimates put that at within the month.


Q 2.2: How is RiscBSD available?
A: Currently RiscBSD is available in binary form by FTP. Some source code
may also be found on the ftp site but the core binary and kernel source code
can be found on any NetBSD mirror site. In addition a CDROM release is
RiscBSD is also being prepared.


Q 2.3: Is there an FTP site for RiscBSD
A: The official release site for RiscBSD is ftp.ph.kcl.ac.uk:/pub/acorn/RiscBSD
This site will contain the latest release of RiscBSD along with user
contributed software and various upgrades.


Q 2.4: Are there any FTP mirrors
A: The official  mirror sites for RiscBSD are:

ftp.uni-stuttgart.de:/pub/systems/acorn/riscbsd/

and a side effect of the stuttgart mirror

src.doc.ic.ac.uk:/computing/systems/archimedes/collections/uni-stuttgart/riscbsd/

NOTE: The FTP site mortimer.cc.ic.ac.uk:/pub/riscbsd/ is closed


Q 2.5: How much does the CDROM cost?
A: It costs 25UKP + VAT on CDROM from Plingboot (no credit cards). Check
the documents directory on the ftp site for an order form. Orders should
be sent to :
PlingBoot,
50 Fordhook Avenue,
Ealing.
London
W5 3LP
Tel: 0181 993 2394
Fax: 0181 992 6735


Q 2.6: Where can I get more information on RiscBSD
A: Information on RiscBSD can be obtained from the official RiscBSD WWW site
http://www.ph.kcl.ac.uk/~amb/riscbsd/


Q 2.7: Are there any mailing lists
A: Yes. Currently there is a mailing list of RiscBSD users.
To subscribe to the mailing list, send an email message to

majordomo@netbsd.org

with the message body

subscribe port-arm32

Notification will be returned when you are subscribed.
To post messages to the mailing you should send mail to

port-arm32@netbsd.org


Q 2.8: How do I contact the kernel team?
A: The kernel team can be contacted either individually by email or by
sending an email to the kernel team mailing list core-riscbsd@tools.de
Alternatively there are email forms on the WWW pages.


Q 2.9: Where do I get the sources
A: The sources to the kernel and the core binaries can be obtained from any
NetBSD mirror site. Failing that they can be obtained from the master NetBSD
FTP site at ftp.netbsd.org. Mirrors of this site can be found at
ftp.demon.co.uk and src.doc.ic.ac.uk
Other sources may be found on the RiscBSD FTP site in the directory
/pub/acorn/RiscBSD/sources
Certain patches may be require to the standard NetBSD source tree and these
can be obtained from the directory /pub/acorn/RiscBSD/sources/patches on
the RiscBSD FTP site.
We would like to hold all the sources on the RiscBSD FTP site but are
restricted by lack of disk space.



Subject: 3. The RiscBSD distribution

Q 3.1: I have the Alpha-2 release: will I need to reinstall everything?
A: Yes, but not necessarily in one go. One of the main changes was
the execution address of binaries due to moving the start of user processes
address space from 4MB to 4KB. Current kernels support binaries compiled for
both address but in the future support will be dropped for binaries running
at 4MB. There are no changes to partition structures (as there were with the
alpha -> alpha2 upgrade) so re-partitioning etc. is not required.
Also the major numbers of a lot of devices were changed between the alpha2
and beta releases. The upgrade filesystem should update all the device
special files in /dev. You find find it necessary to run MAKEDEV manually.

Q 3.2: What packages are currently available?
A: The list of available sets for RiscBSD changes frequently as new sets are
added. The current list is as follows:

as252		OPT	Binutils 2.5.2 as and ld
base		REQ	base distribution set
bash		REC	bash shell. (sh with added features e.g. line editing)
bison		OPT	GNU bison set
cc263		OPT	GCC 2.6.3
cc272		OPT	GCC 2.7.2
cdtools		OPT	CDROM tools
comp		OPT	compiler related distribution set
config		REC	Configuration scripts and set installer.
cvs		OPT	Concurrent versions system (source code management)
dip		OPT	Dialup Internet Protocol distribution set
etc		REQ	/etc distribution set
g++upgrade	OPT	G++ upgrade set for cc272
games		OPT	text console based games
gmake		OPT	GNU make 3.74 set
gs262		OPT	GNU Ghostscript 2.6.2, postscript previewer set
gs262fonts	OPT	GNU Ghostscript 2.6.2 extra fonts set
gs353		OPT	Aladdin Ghostscript 3.5.3, postscript previewer set
httpd		OPT	NCSA HTTPD 1.4.2 set
joe		OPT	joe 2.2 text editor set
jpeg		OPT	JPEG library and convertion tools
kern4049	REQ	kernel revision 4049
kern4120	REQ	kernel revision 4120
kern4121	REQ	kernel revision 4121
kern4130	REQ	kernel revision 4130
local		REC	local binaries and scripts
man		OPT	manual pages set
misc		REQ	miscellaneous distribution set
nfspatch	OPT	replacement NFS binaries for NFS V3
patch1		REC	patch set for base upgrades.
perl		OPT	Practical Extraction and Report Language
shells		OPT	Extra shells set (tcsh, bash, zsh) (superceeded)
ssh		OPT	Secure shell
sup		OPT	Software Upgrade Protocol set
tcl		OPT	Tcl
tcsh		REC	tcsh shell. (csh with added features e.g. line editing)
text		OPT	text distribution set
tk		OPT	Tk
wuftpd		OPT	Enhanced ftp daemon
zsh		OPT	zsh shell.

x11r6		OPT	X11R6 base distribution
x11r6man	OPT	X11R6 manual distribution
x11r6upgrade	OPT	X11R6 upgrade distribution (requires xarm16)
xarm15		OPT	Xarm 8bpp Xserver release 15
xarm15m		OPT	Xarm 1bpp Xserver release 15
xarm16		OPT	Xarm 8bpp Xserver release 16
xarm16m		OPT	Xarm 1bpp Xserver release 16
xarchie		OPT 	X11 interface to archie
xaw3d		OPT	3D version of the Xaw library.
xcontrib	OPT	X11 contrib programs
xdm		OPT	XDM config files
xfig		OPT	XFig, X11R6 drawing package
xftp		OPT	X11 front end to ftp
xmosaic		OPT	Mosaic WWW brower for X
xpaint		OPT	X11 paint package
xpixmap		OPT	Xpm editor
xpm		OPT	Xpm library for X11
xrn		OPT	X11 news reader
xutils		OPT	X utilities (xosview ..)
xv 		OPT	XV 3.10 image viewer
axe		OPT	X11 text editor
axe3d		OPT	X11 text editor (with 3D widgit set)
chimera		OPT	X11 WWW browser
ctwm		OPT	CTWM window manager for X11R6
gview		OPT	Ghostview, X11 postscript previwer
fvwm		OPT	FVWM window manager for X11R6
knews		OPT	X11 Threaded news reader

The following sets have not yet been upgraded to a beta state

texbin		OPT	TeX binaries
texlib		OPT	TeX library stuff
xemacs		OPT	XEmacs

REQ - Required set
OPT - Optional set
REC - Recommended set

Note: The shell set has been superceeded by three separate sets bash, tcsh
and zsh.


Q 3.3: What sizes are the current packages
A: The list of available sets for RiscBSD changes frequently as new sets are
added. The current list is as follows:

Package		Compresses size Uncompressed size
as252		   226702	   552960
axe		  1413988	  3215360
axe3d		  1420020	  3225600
base		 20264305	 46151680
bash		   307598	   788480
bison		   123182	   368640
cc263		  2139990	  5253120
cc272		  2248013	  5509120
cdtools		    77026	  ~112640
chimera		   607375	  1474560
comp		  3110998	 11335680
config		    13407	   ~92160
ctwm		   600653	  1925120
cvs		   349075	   849920
dip		   112828	   276480
etc		    66160	   348160
fvwm		  1966783	  4464640
g++upgrade	   338183	      N/A
games		  4758402	 10803200
gmake		   234442	   665600
gs262		   786962	  1925120
gs262fonts	  1714119	  3409920
gs353		  1197290	  3164160
gview		   536189	  1198080
httpd		   382791	  1075200
joe		   204146	   501760
jpeg		   298992	   716800
kern4049	   544127	  1167360
kern4120	   568122	  1259520
kern4121	   569079	  1259520
kern4130	   574510	  1269760
knews		   545926	  1218560
local		   220187	   512000
man		   849382	  3379200
misc		  1776314	  6021120
nfspatch	   124099	   276480
patch1		   733362	  1812480
perl		  1534665	  4904960
shells		   802260	  1945600
ssh		   788971	  1761280
sup		   307490	   675840
tcl		   394703	  1648640
tcsh		   274719	   655360
text		  1277940	  3952640
tk		  1317293	  4341760
wuftpd		   231758	   522240
x11r6		 18800176	 50964480
x11r6man	   715160	  1300480
x11r6upgrade	 13768507	 33331200
xarchie		   601578	  1392640
xarm15		   829711	  2170880
xarm15m		   781669	  2048000
xarm16		   830602	  2201600
xarm16m		   781218	  2037760
xaw3d		   223506	   829440
xcontrib	  4039780	  9123840
xdm		     2778	    20480
xfig		   855736	  1945600
xftp		   666350	  1628160
xmosaic		  1264388	      N/A
xpaint		   679972	  1679360
xpixmap		   582800	  1351680
xpm		   401812	   911360
xrn		   583446	  1310720
xutils		   207884	      N/A
xv		   973846	  2344960
zsh		   223979	   532480

Total	       ~104908382     ~265113600

xemacs		 10613054	 38768640	** Alpha2 set **

NOTE: The uncompresses size is the size for the uncompressed binaries and
data files. It does not include filesystem overheads and block rounding.



Subject: 4. Kernel matters

Q 4.1: Why is floating point so slow?
A: Because all floating point instructions are emulated. RiscBSD uses a
floating point emulator from ARM Ltd and has the some core as the RiscOS
FPE.


Q 4.2: How big is the kernel
A: Typical RiscBSD kernels are somewhere around 1MB. The kernel running on
the machine this FAQ is being written on is 1.1MB This has all the basic
drivers, SCSI support, full TCPIP and NFS (PHARM & VOYAGER configurations).
If networking is not required kernels as small as 600K can be built. So far
the largest kernel that has been built was 1450K (GENERIC configuration)


Q 4.3: What processors does the kernel support
A: Currently the kernel supports ARM610, ARM700 & ARM710.
The ARM7500 processor core is supported but currently VIDC20 with no DRAM is
not.
The StrongARM is not yet supported yet. Work has started on added support
but this will not progress very far until a SA-110 is made available to the
kernel team.

Q 4.4: How do I configure a custom kernel ?
A: A kernel configuration guide (config_guide.txt) can be found in the docs
directory on the RiscBSD ftp site or one of its mirrors. This explains the
proceedure for installing the kernel sources, patching them as require,
creating your own kernel configuration file and compiling the kernel.


Q 4.5: What are known kernel-related bugs in RiscBSD?
A: There are still several bugs in the RiscBSD kernel.
The known bugs in bsd-4444 :

   * Writing to DOS floppies often results in files which give disk errors
     when reading them afterwards. Sometimes you can get readable files if you
     don't mount the floppy but use the mtools.

   * Due to timing problems, SLIP connections often suffer from silo and ibuf
     overflows. The former seem to have reduced in favour of ibuf overflows.
     This only reduces the performance of your serial connections.

   * Occasionally, one of the indirect block address fields in an inode would
     get trashed, which would result in the loss of the corresponding file.
     The trashing is now prevented, but the bug causing the wrong value still
     exists. This happens if you see a message saying: "ffs_update: bad
     indirect addr on entry...", so you can ignore it.

   * There are problems with printing running bsd-4444. They often result in
     a complete crash of the kernel.

   * There are still bugs in the console code due to ineffective resource
     locking. This can cause a kernel panic (usually a data abort) on
     console switching (This is a rare bug).

   * The console vt100 and vt220 emulation is buggy.

   * It is possible to crash the console code by running top and holding
     down CTRL-L which forces screen redraws. For some reason a circular
     list in the console code gets trashed.



Subject: 5. Device drivers

Q 5.1: What device drivers are available for standard RPC hardware
A: Device drivers have been written for the following devices. floppy, ide,
serial, parallel, keyboard, quadmouse, virtual consoles, simple beep (non
16 bit sound machines)
A ATAPI CDROM driver is planned for shortly.


Q 5.2: What SCSI cards are supported
A: Currently there are alpha stage polling drivers for Cumana SCSI II and
Powertec SCSI II cards. An alpha Oak SCSI I driver has been be completed.
A new Acorn SCSI I driver has now been written (04/03/96) that replaces
the existing alpha stage driver. This new driver is a low more reliable and
also supports interrupts. Other SCSI drivers planned (but not limited to)
are Morley, VTI and Yellowstone


Q 5.3: What ethernet cards are supported
A: Currently there are drivers for ether1, ether3/5, etherB and etherH
interfaces. Support for etherM interfaces is being looked into.
A driver for the 91C9X ethernet controller on RC7500 motherboards is also
supported.


Q 5.4: Will there be 16bit sound support?
A: Very soon. A driver is under development at the moment. Note machines
with 16 bit sound do not support the simple beep device as the beep device
uses 8 bit log sound which requires software emulation on the 16bit
hardware.


Q 5.5: Are there any other drivers under development/planned
A: Yes. Drivers for the simtec multiprocessor card, and vidcaudio are under
development.
Drivers are planned or under development for a number of SCSI and ethernet
cards (see 5.2 and 5.3). Drivers are also planned for the ISAadapter,
486 coproc, dual serial cards and several image digitisers.
A driver for the Yellowstone RapIDE podule is planned and work is expected
to commence shortly. Initial the driver will be written without using any
NDA material so will not achieve the maximum possible performance, but the
expected performance should significantly better than internal IDE driver.
In the future when LKM's are supported a high performance version of the
driver may be made available as an object file.


Q 5.6: Are there any cards which are unlikely to be supported in the near
future?
A: No specific cards. However unless the kernel team has access to a podule
or can get one on loan a driver is unlikely to be written for a podule.


Q 5.7: What about ATAPI CDROM support ?
A: Kernels have been built using the ATAPI code under development for
NetBSD. These kernels are still being tested an ATAPI kernel hopefully
will be available shortly.



Subject: 6. Multiprocessor card (Simtec Hydra)

Q 6.1: What is the current status of multiprocessor card support?
A: There are some hardware problems with the first prototype multiprocessor
card. We have a syscall which loads user code onto a slave processor and
runs it but the code eventually crashes (believed to be hardware related).
02/08/96 - I now have the latest revision of the multiprocessor board so
the code is being updated for the changes to the interrupts.

Q 6.2: Will the card be used for running custom accelerators or full MP?
A: We plan to have full multiprocessing capabilities within RiscBSD
(probably by the time that Simtec start selling the cards). An accelerated MP
FPE will probably be written for internal testing purposes but this is
unlikely to appear in a released kernel. Other interesting custom accelerators
would involve nearly as much work as making RiscBSD fully MP so there is no
intention to implement them at present.


Q 6.3: Will it be possible to run RiscBSD on a slave processor in a RiscOS
window?
A: We (the core team) have enough on our plate for the moment so we will not
be implementing it within the next six months. There has been a lot of
interest in it so I would guess that it will get done eventually (someone
has even volunteered to write bits of it, but he will need to wait until
the multiprocessor board is on sale). Another point to note is that it is
likely to run *very* slowly.


Q 6.4: Can the 486 card be used from within RiscBSD?
A: No. 3rd parties are welcome to try. There may be a driver written in the
future to aid communication with the 486 co-proc. Currently the information
on ARM<->486 communications is NDA thus making it difficult for 3rd parties.


Q 6.5: What is the long term multiprocessor goal

A: The eventual aim is to be able to thread user processes onto all the
processors on the multiprocessor board. This is a fairly major piece of work
and is likely to take a long time to complete. There is some SMP work
proceeding for the the Sparc 20 port of NetBSD and we hope that we may be
able to join forces with some of that development in order to speed the
development up.



Subject: 7. Ported Software

Q 7.1: What software is available?
A: Lots. A list of some of the more interesting (??) software currently
ported is: top, X11R6, fvwm, joe, xemacs, aXe, TeX, LaTeX, xdvi, xv,
xpaint, xanim, mpeg_play, knews, chimera, Mosaic, ghostscript .
See Q3.2 for a list of sets available for installation.


Q 7.2: Can I compile C++ under RiscBSD?
A: The cc272 set contains both a c and c++ compiler.
There were problems compiling c++ code with the older gcc 2.6.3 release and
with the original RiscBSD 1.1 comp set. These problems were fixed with 2.7.2
and the latest comp set.

Q 7.3: What networking software is available?
A: Most of the standard UNIX networking: telnet, nfs, news, www, ftp,
email, SLIP, PLIP, etc. RiscBSD can act as client, server or both in most
cases.


Q 7.4: Is MudOS available?
A: The MudOS source triggered a bug in the gcc 2.6.3 ARM-610 back-end.
This causes the code to either fail to compile or compile incorrectly
leading to strange errors when it runs.
Now that GCC 2.7.2 is available for RiscBSD the bug needs to be tested.
At moment the author (of this FAQ) does not know if this problem has been
fixed.



Subject: 8. Bugs and Errors

Q 8.1: Who do I report bugs to?
A: There are a number of places to report bugs to :
1. The mailing list. Reporting bugs to the mailing will bring them to the
attention of the kernel team and other users who may have encountered the
problem or who may encounter it.
2. The WWW bug report form. The bug report form should also be used to
report bugs. Reports sent via the form are sent to the kernel team member
responcible for that particular part of the kernel.
3. The core team. Bug reports can be sent to the core kernel team's mailing
list but normally the two above methods should be used.
4. Use send-pr (see the man page for more details). Problems with RiscBSD
or NetBSD/arm32 should use the port-arm32 category.

Q 8.2: savecore reports an error during multiuser startup.
A: This error can occur if the kernel you booted RiscBSD from is not the
same as the kernel /netbsd. NetBSD uses the kernel image in the file /netbsd
to lookup symbols names in order to read kernel variables via /dev/kmem. If
the /netbsd does not match the booted kernel then variables can be read from
the wrong locations. The first indication is normally savecore which makes
use of /netbsd to lookup the major and minor of the dump device.


Q 8.3: What does proc size mismatch error mean ?
A: There are two possible causes of this error. Q8.2 explains one possible
reason. The other is that that the proc structure in the kernel has changed
and this effects libkvm. Any binaries that use libkvm (ps, top vmstat etc.)
will need to be updated. If changes are made to the proc structure that will
effect libkvm then a kvm upgrade set/patch will be made available.


Q 8.4: Global constructors in c++ code are not working
A: A bug in the beta cc263 set meant that the gcc collect2 binary was
not installed. This binary is required by the the current linker (GNU
binutils 2.5.2) to handle global constructors and destructors in c++ code
As of 01/02/96 the beta cc263 set has been fixed to cure this problem.
If you are running a version of cc263 installed prior to 01/02/96 you should
re-install the set.


Q 8.5: What does "Possible process deadlock due to shortage of L1 page
tables." mean ?
A: The MMU required a level 1 page table for each process. Due to the design
of the ARM MMU, these page tables must be a 16KB physically continuous block
of physical memory on a 16KB physical boundry. Since the kernel VM system
cannot not dynamically allocate such block of memory, memory for the L1 page
tables has to be reserved at boot time. The "max processes" field in the
boot loader specifies the number of L1 page tables to allocate at boot. If
more than this number of processes are created then a shortage occurs. The
new processes are put to sleep until L1 page tables become available. This
will happen when an existing process terminates. During the sleeping period
system deadlocks can sometimes occur if none of the existing processes
terminate. The system will appear to freeze as none of the existing
processes can exit until the new processes start etc. Sometimes CTRL-C
can be used to terminate a processes running in the foreground.
As yet a solution to this problem has not for found that is satisfactory.


Q 8.6: I have plenty of memory, but gcc complains about "virtual memory
exhausted" when it tries to compile a large source file.
A: There are limits in NetBSD to keep programs from using too much of the
machine's resources. They can be viewed with "limit" ("sysctl -a | more"
gives more information kept by the kernel).
Type "limit datasize unlimited" or "unlimit" (this will remove all limits)
to allow gcc to grab more than 16 MB. You can also put this in your
shell's startup file, eg. ~/.cshrc.



Subject: 9. How do I ...

Q 9.1: How do I add users to my system ?
A: There are a number of ways of adding users to your system. They are :
1) Edit the master.passwd file adding an entry for a new user. Then
   run pwd_mkdb master.passwd to rebuild the passwd database.
2) Use the command vipw. This allows you to edit the passwd file in vi
   and will automatically rebuild the passwd database when you exit
3) Install the config set (Any version after 29/01/96).
   Run the command /usr/local/sbin/rcm to invoke the RiscBSD configuration
   Manager. There will be a menu option to add users. After selecting
   this you will be prompted for details about the account you want to
   create. The user will be added to the passwd file and the passwd database
   will automatically be rebuilt.


Q 9.2: How can I use my ATAPI CDROM under RiscBSD ?
A: First make sure you have a kernel that supports ATAPI drives.
During device probing the kernel will report any ATAPI devices found if
it supports ATAPI drives.
Secondly you have to ensure that the device files in /dev are present:
Log on as root, then:

	cd /dev
	mknod acd0a b 20 0
	mknod acd0c b 20 2
	mknod racd0a c 20 0
	mknod racd0c c 20 2

>From RiscBSD 1.2 onwards /dev/MAKEDEV will support makeing the acd devices
so you can use

	cd /dev
	/MAKEDEV acd0

You should then be able to mount a CD with:
      mount -r -t cd9660 /dev/acd0a /mnt

Please note that ATAPI support is still in its beta stage.



Subject: 10. Performance matters

Q 10.1: How good is GCC compared to Norcroft C
A: So far the only performance tests conducted have been dhrystone
measurements. The results are shown below.

Dhrystones benchmarks
Processor: 30MHz ARM610

1000000 iterations -DHZ=100 -DTIME

GCC 2.7.2 options		us/dhrystone	dhrystones/sec
				71.0		14085
-O				38.0		26316
-O1				37.0		27027
-O2				37.0		27027
-O3				36.0		27777

1000000 iterations -DHZ=100 -DTIME -DREG=register

GCC 2.7.2 options		us/dhrystone	dhrystones/sec
				63.0		15873
-O				37.0		27027
-O1				37.0		27027
-O2				37.0		27027
-O3				36.0		27778

1000000 iterations -DHZ=100 -DTIME

GCC 2.7.2 options		us/dhrystone	dhrystones/sec
-O -fomit-frame-pointer		32.0		31250
-O1 -fomit-frame-pointer	32.0		31250
-O2 -fomit-frame-pointer	32.0		31250
-O3 -fomit-frame-pointer	31.0		32258

1000000 iterations -DHZ=100 -DMSC_TIME

				us/dhrystone	dhrystones/sec
Norcroft C V4			32.0		31250
Norcroft C V5			25.6		39093

Summary
Results indicate with optimisation greater than -O the use of the
register keyword does not aid performance.
Results indicate that there is very little (if any) performance gain
between the optimisation levels -O, -O1 and -O2. -O provides a significant
performance increase over no optimisation. -O3 does provide a small
increase over -O2. Further improvements can be obtained using the
-fomit-frame-pointer option.
NOTE: Omitting frame pointers means that a binary cannot be debugged or
traced so any program crashes etc. cannot be traced. -fomit-frame-pointer
should not be used in conjuction with -g.

GCC 2.7.2 can produce code as efficiently as Norcroft C V4 but Norcroft C V5
produces much better results.


Q 10.2: Why is my SCSI harddisk so slow?
A: This is due to the fact that the drivers for the Cumana and PowerTec
cards are polling only at the moment. There were problems with interrupt
handling which are almost fixed now, so these drivers should become interrupt
driven soon.



Subject: 11. The X Window System

Q 11.1: What is the minimum specification of machine to run X?
A: In addition to the minimum specifications to run RiscBSD, X requires quite
a bit of memory. It is recommended that you have at least 12Mb of RAM and at
least 24Mb of swap. You will also need over 60Mb of disk space to install X.


Q 11.2: What is the current state of X?
A: X for RiscBSD is version 11, release 6 of the MIT X Window System. All the
libraries of the base distribution have been ported and an X-server (the bit
which controls the display hardware) is in the process of being written.
Snapshots of the current X-server are released periodically. The X-server is
usually referred to as Xarm-<snapshot number>. If you upgrade to a new X-server
it should be installed as /usr/X11R6/bin/Xarm. The only way to find out the
version number of an installed Xarm is to run it. It prints out its version
on the text console as it starts up.


Q 11.3: Who do I report bugs to?
A: Bugs should be reported to r.black@ic.ac.uk and the RiscBSD mailing list
(port-arm32@netbsd.org). Alternatively the bug report form on the WWW site
can be used.


Q 11.4: What are the known problems and features of X under RiscBSD?
A: Here is a list of features of Xarm extra to RiscBSD:

* Numeric keypad acts as a mouse

* Virtual terminal switching - X is on ALT-F9

* xpm displayed on startup (/usr/X11R6/include/X11/pixmaps/Xserver.xpm)
this must use numeric respresentation for colours. xv usually produces
suitable pixmaps.

Here is a list of features not supported fully by Xarm:

* Autorepeat is fixed rate and cannot be switched off.

* No screensaver.

* Mouse acceleration is not configurable.

* Only 8bpp modes are supported by the standard Xarm. A specific mono Xarm
is available on request but it doesn't work with most kernels.

* The only working lock key is Caps Lock.

The following are known bugs:

* Autorepeat sometimes inserts three characters instead of one.

* Virtual terminal switching does not work properly on many combinations of
Xarm and RiscBSD kernel versions. The workaround is to waggle the mouse after
attempting to switch back into X with ALT-F9. Then press ALT again and release
it so that X gets a key-up event.

* ALT key can appear to be stuck if the console is switched. Pressing the
ALT keys after switching in X will cure the problem.


Q 11.5: Where is libXpm / xpm.h ?
A: libXpm is not part of the standard X11R6 distribution. It is a separate
package so you need to download it separately.


Q 11.6: Is Motif available?
A: No. Motif is a commercial package and we can't afford a source license to
port it. At some time in the future Lesstif will be used instead but for the
moment Lesstif does not support much of the functionality required. You are
likely to be able to compile things 'out of the box' using Lesstif instead of
Motif by Q4 1996.


Q 11.7: Are programs compiled with Motif available?
A: There are no license problems with distributing binaries which are
statically linked using the Motif runtime executive provided that the
person who linked them has either a Motif source or library license
(in practice this means a source license).


Q 11.8:  How do I set up xdm?
A: You need to do a lot of reading of the manual pages. At some time in the
future I will stick together some sample configuration scripts. The samples
supplied with X11R6 as standard do not work properly with RiscBSD.



Subject: 12. Troubleshooting X

Q 12.1: I get error messages about missing devices.
A: This means that either Xarm is incompatible with your kernel or you are
missing some files from the /dev directory. To create device files cd to /dev
and type './MAKEDEV all' (as root).


Q 12.2: Everything works if I'm root, but not otherwise.
A: This means that the permissions on Xarm are wrong. Type the following:
'cd /usr/X11R6/bin; chown root Xarm; chmod u+sx Xarm'


Q 12.3: X is really slow to start up and so are some X apps.
A: The floating point emulator under RiscBSD is less than optimal. Font
handling uses a lot of floating point maths. The fonts are converted into
bitmaps when various applications start up.


Q 12.4: I get error messages about invalid keycodes.
A: You are using a pre-beta Xarm with an beta kernel. Upgrade Xarm to #14

--------------------------------------------------------------------------
$Log: FAQ.txt,v $
Revision 1.10  1996/08/06 21:07:14  mark
Updated questions 1.2, 1.3, 2.1, 2.4, 2.7, 4.1, 7.2, 11.1, 11.3 and 11.4
Removed questions 3.4 and 4.2
Added questions 4.5, 8.6, 9.2 and 10.2
Various other miscellaneous changes.

-- 
Mark Brinicombe				amb@physig.ph.kcl.ac.uk
Research Associate			http://www.ph.kcl.ac.uk/~amb/
Department of Physics			tel: 0171 873 2894
King's College London			fax: 0171 873 2716