RiscBSD FAQ This document contains a list of frequently-asked questions (together with answers) about the RiscBSD operating system. Comments, critisicms or suggestions about this document are very welcome. Please send them to the maintainer of this FAQ, Amit Gupta (93akg@eng.cam.ac.uk). This FAQ is (c) Mark Brinicombe 1995 - 1997. Sections 10 and 11 are (c) Rob Black 1995 - 1997. Portions of this document (c) Markus Baeurle 1996. Portions of this document (c) Amit Gupta 1997. 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. All trademarks acknowledged. The authors of this document provide no warranty, express or implied, as to the accuracy of the information contained here although all the information is supplied in good faith. --------------------------------------------------------------------- Contents: 1. The Basics Q 1.1: What is RiscBSD? Q 1.2: What type of machines are supported? Q 1.3: How much memory and disk space do I need? Q 1.4: How difficult is it to install? 2. Availability and Information Q 2.1: What is the latest version of RiscBSD? Q 2.2: How do I get hold of RiscBSD? Q 2.3: Are there any FTP mirrors? Q 2.4: Is there a Web site? Q 2.5: Are there any mailing lists? Q 2.6: Where can I get an archive of the mailing list? Q 2.7: How do I unsubscribe from the mailing list? Q 2.8: Who are the kernel team? Q 2.9: How can I contact the kernel team? Q 2.10: How do I get the source code? 3. General matters Q 3.1: Can I run RiscBSD and RISC OS at the same time? Q 3.2: Why are RiscBSD binaries bigger than Linux ones? Q 3.3: Why does RiscBSD need so much memory compared to Linux on my PC? Q 3.4: How big is the kernel? Q 3.5: Are there any known bugs in RiscBSD? 4. Device drivers Q 4.1: What device drivers are available for standard RPC hardware? Q 4.2: What SCSI cards are supported? Q 4.3: What ethernet cards are supported? Q 4.4: What IDE cards are supported? Q 4.5: Will there be 16-bit sound support? Q 4.6: Are there any other drivers under development? Q 4.7: Can I use my Yellowstone RapIDE card under RiscBSD? Q 4.8: Are there any cards which will never be supported? Q 4.9: Is there any CD-ROM support? 5. Multiprocessor cards, including the Simtec Hydra Q 5.1: What is the current status of multiprocessor card support? Q 5.2: Will it be possible to run RiscBSD on a slave processor in a RiscOS window? Q 5.3: Can the 486 card be used from within RiscBSD? Q 5.4: What is the long term multiprocessor goal? 6. Ported Software Q 6.1: What software is available? Q 6.2: Can I compile C++ under RiscBSD? Q 6.3: Can I compile Fortran under RiscBSD? Q 6.4: Is there a Java compiler? Q 6.5: Can you get gdb under RiscBSD? Q 6.6: What networking software is available? Q 6.7: Is MudOS available? 7. Bugs and Errors Q 7.1: Who do I report bugs to? Q 7.2: savecore reports an error during multiuser startup. Q 7.3: What does "proc size mismatch error" mean? Q 7.4: Global constructors in C++ code are not working. Q 7.5: What does "Possible process deadlock due to shortage of L1 page tables." mean? Q 7.6: I have plenty of memory, but gcc complains about "virtual memory exhausted" when it tries to compile a large source file. Q 7.7: When I try compiling a large program, gcc falls over with an internal compiler error. Q 7.8: I have an EtherH device and I can't get RiscBSD to boot. Q 7.9: I have more than 32 Mb of DRAM and I get a panic when I boot. 8. How do I .... Q 8.1: How do I add users the my system? Q 8.2: How do I use my ATAPI CDROM under RiscBSD? Q 8.3: How do I compile my own kernel? 9. Performance matters Q 9.1: How good is GCC compared to Norcroft C? Q 9.2: Why is my SCSI hard disk so slow? Q 9.3: Why is floating point so slow? 10. The X Window System Q 10.1: What is the minimum specification of machine to run X? Q 10.2: What is the current state of X? Q 10.3: Who do I report bugs to? Q 10.4: What are the known problems and features of X under RiscBSD? Q 10.5: Where is libXpm / xpm.h? Q 10.6: Is Motif available? Q 10.7: Are programs compiled with Motif available? Q 10.8: How do I set up xdm? Q 10.9: How do I use different resolutions and display depths in X? Q 10.10: What display depths are supported by current X servers? 11. Troubleshooting X Q 11.1: I get error messages about missing devices. Q 11.2: Everything works if I'm root, but not otherwise. Q 11.3: X is really slow to start up and so are some X apps. Q 11.4: I get error messages about invalid keycodes. Q 11.5: Xarm-mono doesn't work. Subject: 1. Basics of RiscBSD Q 1.1: What is RiscBSD? A: RiscBSD is a Unix-type system for the Acorn RiscPC and A7000 computers. It has all the features normally present in a Unix system including C and C++ compilers, pre-emptive multitasking, long filenames, virtual memory, built-in networking, shells and so on. Almost anything that can be done on a Unix workstation can be done under RiscBSD. In addition to the standard Unix distribution, RiscBSD adds many other packages including a full port of X11R6 and numerous other binaries including TeX/LaTeX, xv, Ghostscript/Ghostview, Mosaic, Chimera, Emacs, Tcl/Tk and many others. The result is a complete Unix system which can be installed and run on any currently-sold Acorn computer. On a more technical note, RiscBSD is a port of NetBSD to ARM processors which support the 32-bit data, 32-bit address mode (i.e. the ARM6 and later). The official port name is NetBSD/arm32. You can find more information on NetBSD from the NetBSD Web site : http://www.netbsd.org/ Q 1.2: What type of machine is supported? A: RiscBSD currently supports the following hardware : * Acorn Risc PC with any of the following processor cards : ARM610, ARM700, ARM710, SA-110 ("StrongARM"). In the case of the ARM700, RiscBSD will recognise and use the FPA11 floating-point processor if fitted. * Acorn A7000. Although this port is complete, it has yet to be fully tested. * VLSI RC7500 motherboard. This is an evaluation board containing an ARM7500 processor which is designed to fit into a PC style case. Support for the following hardware is currently being worked on : * Digital EB-SA110. This is an evaluation board containing a StrongARM processor and Ethernet interface. * Simtec Hydra multiprocessor card. See section 5 for more details about multiprocessor support within RiscBSD. All standard IDE hard drives, floppy drives, keyboards, serial/parallel ports and mice are supported. VRAM is not essential but is recommended. Many SCSI, IDE and Ethernet cards are supported - see section 4. Please note that older Acorn computers, such as the A5000 and Archimedes range, will never be supported. This is because such computers do not support the 32/32 bit processor mode which RiscBSD requires. If you have such an older computer and would like a Unix system, check out the ARM Linux web pages (http://www.ecs.soton.ac.uk/~rmk92/armlinux.html). Q 1.3: How much memory and disk space do I need? A: It depends on what you want to do. As a very rough guideline : * A bare working system including a kernel and all standard NetBSD binaries will require around 4 megabytes of DRAM and 150 megabytes of hard disk space. * A more useable system including X11R6 and a reasonable selection of packages will require at least 8 megabytes of DRAM and 250 megabytes of hard disk space. If you want to run X seriously then 16 megabytes or more of RAM, plus at least one megabyte of VRAM, is highly recommended. Remember that much of your first 8 megabytes is taken up by the kernel and X server, so adding another 8 will make an enormous difference. Q 1.4: How difficult is it to install? A: Not very. Currently the installation procedure involves reformatting your hard disk, installing some RISC OS software and then booting into a "minimal" RiscBSD system from which the complete system can be installed. The whole thing takes around an hour if you do it carefully. Do remember to read the installation guide first ! If you do get stuck, help is always available from the mailing list (see below) - there will almost certainly be somebody who had a similar problem and knows the solution. For your peace of mind : it is *not* possible to damage any of your hardware by installing RiscBSD, nor is it possible to leave your machine in an unusable state. If you change your mind later on, you can always remove RiscBSD by reformatting your hard disk. RiscBSD and RISC OS co-exist peacefully on the same hard disk. Your computer will still boot into RISC OS and run all RISC OS applications; booting into RiscBSD is accomplished by double-clicking on a RISC OS icon. You will not, however, be able to run RISC OS and RiscBSD simultaneously (see question 3.1). ===================================================================== Subject: 2. Availability Q 2.1: What is the latest version of RiscBSD? A: The current version of RiscBSD is 1.2-release, released in June 1996. Many updates, mainly to the kernel, have been released since then. The latest kernel (4956) was released in January 1997. Q 2.2: How do I get hold of RiscBSD? A: The standard way of obtaining RiscBSD is by FTP. You will need Internet access for this. The address of the FTP site is : ftp.ph.kcl.ac.uk and RiscBSD can be found in the directory /pub/acorn/RiscBSD If you're a beginner your first move should be to download and read the documentation and installation guides (see the docs directory). These should (hopefully) give you a flavour of what is involved in a typical installation and let you decide whether to go ahead. An "official" CD-ROM release of RiscBSD is also being prepared. This should be easier to install from and will include the complete contents of the FTP site. This will hopefully appear early in 1997; more information will be entered here as it arrives. In the meantime, there are at least three other CDs around which carry RiscBSD : * Datafile PD-CD 4, carrying RiscBSD 1.2-beta * Uniqueway RiscDisc 2, carrying RiscBSD 1.2-release * German Archimedes Group (GAG) CD containing RiscBSD 1.2-beta. This CD apparently contains mangled filenames, so beware ! You can get hold of all the source code, too - see question 2.10. Q 2.3: Are there any FTP mirrors? A: Yes. The official mirror sites for RiscBSD are: ftp.southern.com:/pub/RiscBSD 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/ Please note : The FTP site mortimer.cc.ic.ac.uk:/pub/riscbsd/ is now closed. Q 2.4: Is there a Web site? A: Yes. The official RiscBSD Web site is at http://www.ph.kcl.ac.uk/~amb/riscbsd/riscbsd.html Among other things, this site contains a link to the FTP site and information on the latest kernels and sets. Q 2.5: 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 list you should send mail to port-arm32@netbsd.org There is also a mailing list for the RiscBSD Documentation Project. To subscribe to this, send an email message to majordomo@physig.ph.kcl.ac.uk with the message body subscribe rdp Notification will be returned when you are subscribed. To post messages to this mailing list you should send mail to rdp@physig.ph.kcl.ac.uk Everybody is welcome to join either or both of these mailing lists. The main mailing list receives around 10 - 20 messages per day, with the RDP list being much quieter (a little *too* quiet, maybe :-) There is currently talk of moving to a newsgroup but this is unlikely to happen within the next few months. Q 2.6: Where can I get an archive of the mailing list? A: The RiscBSD Web site (see Q2.4) contains a link to www.flame.org, which contains an archive of past messages. Q 2.7: How do I unsubscribe from the mailing list? A: To unsubscribe from the RiscBSD mailing list, send mail to majordomo@netbsd.org with the message body unsubscribe port-arm32 To unsubscribe from the RiscBSD Documentation Project mailing list, send mail to majordomo@ph.kcl.ac.uk with the message body unsubscribe rdp In both cases, you will receive notification when you are unsubscribed. Q 2.8: Who are the kernel team? A: RiscBSD is brought to you by : * Mark Brinicombe : release engineer, kernel developer * Rob Black : console driver, anything to do with X * Scott Stevens : unixfs, SCSI drivers * Melvin Tang-Richardson : console/ethernet drivers * Neil Carson : floating-point support * Manar Hussain : organisation and administration The Web site (see question 2.4) gives more details of the kernel team. Q 2.9: How can I contact the kernel team? A: There are three ways : * Individually by e-mail. * By sending e-mail to the kernel team mailing list, core-riscbsd@tools.de * By sending e-mail to the standard RiscBSD mailing list, which is read regularly by the kernel team. There are also some e-mail forms on the Web pages. Q 2.10: How do I get the source code? A: The source code to the kernel and the core binaries can be obtained from the master NetBSD FTP site : ftp.netbsd.org or from any of its mirrors. Three UK-based mirrors are at ftp.southern.com, ftp.demon.co.uk and src.doc.ic.ac.uk. We would like to hold a complete source tree on the RiscBSD FTP site but we're restricted by a lack of disk space. See question 8.3 for information on how to recompile the kernel. ================================================================== Subject: 3. General matters Q 3.1: Can I run RiscBSD and RISC OS at the same time? A: No, sorry. RiscBSD is a complete operating system and it cannot run concurrently with RISC OS. Producing such a system would have resulted in numerous compromises to RiscBSD in terms of speed and capabilities. Q 3.2: Why are RiscBSD binaries bigger than Linux ones? A: RiscBSD currently uses static linking for producing binaries. This means that, whenever a program is compiled and linked, chunks of the standard libraries get linked into the executable increasing its size. Many other systems - such as NetBSD/i386 or Linux on Intel platforms - support dynamic linking, also known as shared libraries. In this case much of the linking is done at run-time and hence the binaries are smaller. Upgrading RiscBSD to use shared libraries is a substantial task involving some major work on the C compiler. This is apparently underway but no more information is available at present. Q 3.3: Why does RiscBSD need so much memory compared to Linux on my PC? A: This is mainly a consequence of static linking, see above. The larger binaries need more memory to run in. Q 3.4: How big is the kernel? A: The biggest kernel (GENERIC configuration including SCSI, Ethernet, TCP/IP and NFS) is around 1.3 megabytes in size. Typical kernels are somewhere around 1 megabyte. Q 3.5: Are there any known bugs in RiscBSD? A: There are a few known bugs in the latest RiscBSD kernel. The main ones are as follows : * Occasionally an inode (disk node) seems to get trashed. The cause is as yet unknown. The latest kernels fix the symptoms (by un-trashing any trashed inodes they come across) but not the cause. * The lpt (printer) driver causes a kernel panic on some configurations. The cause has yet to be found. * There are currently several console-related bugs. The console code is currently being rewritten. * There are some problems with the SCSI drivers to do with interrupts and multiple devices. This problem has apparently been fixed in the latest kernels. =================================================================== Subject: 4. Device drivers Q 4.1: What device drivers are available for standard Risc PC hardware? A: Device drivers have been written for the following devices : Peripheral Notes Console including virtual consoles Floppy disk drive IDE interface ATAPI CD-ROM beta stage driver Serial port Parallel port Quadrature mouse for Risc PC systems PS/2 mouse for A7000 systems Keyboard simple beep both 8-bit and 16-bit sound Q 4.2: What SCSI cards are supported? A: The following SCSI cards are supported : Device Card Status Interrupts ? DMA ? Work planned ? asc Acorn SCSI-1 Working Yes No Yes cosc MCS Connect32 Working No No Yes ptsc Powertec Working Yes Alpha Yes csc Cumana SCSI-2 Working Yes No Yes oak Oak SCSI-1 Alpha No No No ??? Cumana SCSI-1 None No No Yes Notes : Cards with interrupt-driven drivers give *much* better performance under RiscBSD. See Q9.2 for the exact reason. DMA-based drivers will give even better performance when they arrive. The Cumana SCSI-2 driver is supplied in object (pre-compiled) format because some of the information used in the driver is under NDA. In the future when LKMs (loadable kernel modules) are supported a high performance version of the driver may be made available as an object file. It is planned to support the Morley, VTI and Yellowstone SCSI cards at some point in the future. Q 4.3: What ethernet cards are supported? A: The following Ethernet cards are supported : Device Card Status Work planned ? ea ANT ether3/5 Working Optimise ea Atomwide ether3/5 Working Optimise eb ANT network slot Working Optimise ie Acorn ether 1 Beta Yes eh I-Cubed etherH Alpha (bugged) New driver soon em ANT etherM Non-existent Yes Support for etherM interfaces is being looked into. A driver for the 91C9X ethernet controller on RC7500 motherboards is also provided. Q 4.4: What IDE cards are supported? A: Currently there are two IDE cards supported in addition to the standard motherboard IDE interface. They are : * ICS iDEA IDE podule * Yellowstone RapIDE32 podule (issue 2 only) Q 4.5: Will there be 16-bit sound support? A: Soon. A driver is under development at the moment. The simple beep waveform is supported on 16-bit sound cards but anything more sophisticated currently isn't. Q 4.6: Are there any other drivers under development? A: Yes. Drivers for the Simtec multiprocessor card (see section 5) and VIDC audio are under development. Drivers are also planned for : * Cumana SCSI-1 interface * Atomwide ISAadapter * 486 coprocessor cards (but see question 5.3) * Dual serial cards * Several image digitisers. Q 4.7: Can I use my Yellowstone RapIDE card under RiscBSD? A: Yes. For a long time information on the RapIDE card was not available and thus a driver could not be written. This has now changed and the latest kernels support RapIDE Issue 2 boards (see Q 4.4). Issue 1 boards should be supported shortly. Q 4.8: Are there any cards which will never be supported? 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. Q 4.9: Is there any CDROM support? A: Yes. RiscBSD includes support for ATAPI CD-ROM devices as provided with the Risc PC and A7000. The NetBSD ATAPI code is still under development and so this support should be considered beta. SCSI CD-ROM devices are also fully supported. ================================================================== Subject: 5. Multiprocessor cards, including the Simtec Hydra Q 5.1: What is the current status of multiprocessor card support? A: Initial RiscBSD support for the Hydra (probing only) appeared in early 1996. It is now possible to target code to specific processors on the Hydra but full multiprocessing support is still a fair way off. Moves are afoot to support multiprocessing within NetBSD generally and so Hydra work will probably be linked with that. Q 5.2: Will it be possible to run RiscBSD on a slave processor in a RiscOS window? A: Probably not. It would be an enormous amount of work, be of use to very few people, and run *very* slowly. There has been interest in it so it may get done eventually, but it isn't being actively worked on. Q 5.3: Can the PC co-processor card be used from within RiscBSD? A: No, sorry. Third parties are welcome to try. There may be a driver written in the future to aid communication with the PC co-processor. Currently the information on ARM<->PC communications is under NDA, making it difficult for third parties. Q 5.4: What is the long term multiprocessor goal? A: The eventual aim is to have full multiprocessing capabilities in RiscBSD including the ability 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 other ports of NetBSD and we hope that we may be able to join forces with some of that development in order to speed things up. =================================================================== Subject: 6. Ported Software Q 6.1: What software is available? A: Lots. In addition to the usual Unix and X11 binaries, some of the more interesting software currently ported is : top, fvwm, joe, xemacs, aXe, TeX, LaTeX, xdvi, xv, xpaint, xanim, mpeg_play, knews, chimera, Mosaic, ghostscript. If the package you need isn't on this list, it'll probably work anyway - just try compiling it (or asking on the mailing list - somebody else may have already done it). A complete list of packages (as of 11th February) is : System sets ----------- base (1.2-r) Base set, absolutely required config (1.2-r) Mainly RCM, scripts for system administration etc (1.2-r) Files in /etc, absolutely required etc.old (1.2-r) Files in /etc, old version that should be removed games (1.2-r) traditional terminal-based games, fortune cookie local (1.2-r) Contents of /usr/local man (1.2-r) Manual pages for system binaries (base set), recommended misc (1.2-r) Not sure about this, install it patch12-1 (1.2-r) Patches for 1.2-R (new MAKEDEV and vi) patch12-2 (1.2-r) Patches for 1.2-R (new config, ps, *stat) patch12-3 (1.2-r) Patches for 1.2-R (new config, top, ps, *stat...) Shells ------ bash (1.2-r) GNU "Bourne-again shell", good shell tcsh (1.2-r) Better shell than csh zsh (1.1-b) Another shell, said to be good Programming ----------- bison (1.2-r) GNU bison (yacc replacement) cc2721 (1.2-r) GNU C/C++/Objective C compiler cc2721p1 (1.2-r) Patchkit to fix two bugs in the C compiler comp (1.2-r) Include files, libraries and the like needed for cc2721 cvs (1.2-r) Concurrent versions system, helps to maintain projects gmake (1.2-r) GNU make, program for compiling projects jpeg (1.2-r) Binaries and libaries for displaying JPEG images perl (1.2-r) Interpreted language, mainly for system administration tcl (1.2-r) Script language tk (1.2-r) Libraries for easy creation of X programs, based on Tcl x11dev (1.2-r) Needed to compile X programs xaw3d (1.1-b) 3D Athena Widget set, needed to compile some X programs xpm (1.2-r) library to display xpm pixmap files Text related ------------ axe (1.1-b) "Another X Editor", editor in the X Window environment axe3d (1.1-b) Same as above, but with 3D buttons joe (1.2-r) Nice terminal-based text editor, Wordstar/Emacs keymaps gs262 (1.2-r) Ghostscript 2.6.2, displays Postscript files gs262fonts (1.2-r) Fonts for Ghostscript gs353 (1.1-b) Ghostscript 3.5.3, done by different people than 2.6.2 gview (1.2-r) Ghostview, frontend for Ghostscript in X11 environment nedit (1.2-r) Nice editor for X11 texbin (1.1-a) TeX binaries, doesn't work with 1.2-r texlib (1.1-a) TeX library stuff, doesn't work with 1.2-r texinfo (1.2-r) Read documentation in texinfo format text (1.2-r) Text processing utilities, needed to format man pages xemacs (1.1-a) XEmacs, probably old Utils ----- cdtools (1.2-r) Tools for CD-ROMs (CD audio player, extended CD info) nspark (1.2-r) Unpack Spark archives unzip (1.2-r) Extract ZIP archives Networking ---------- apache (1.2-r) WWW server V 1.1.1 chimera (1.1-b) WWW browser in the X11 environment dip (1.2-r) Program to establish SLIP connection over modem line knews (1.2-r) Nice thread-oriented news reader for Usenet mftp (1.2-r) FTP program under X using Motif ssh (1.2-r) Secure shell (secure transmission over networks) sup (1.2-r) Software Upgrade Protocol, update files over network wuftpd (1.1-b) FTP server daemon xarchie (1.2-r) X Frontend for archie, a file finder for the Internet xftp (1.1-b) FTP program under X xmosaic (1.2-r) X Mosaic, WWW browser, best one available for RiscBSD xrn (1.1-b) X newsreader X related --------- ctwm (1.1-b) Window manager, replaces standard (awful) twm fvwm (1.2-r) Probably the most popular free window manager x11base (1.2-r) Base set for X11 window system x11fonts (1.2-r) Fonts for X11 window system, required x11man (1.2-r) Manual pages for X11, not strictly needed xanim (1.2-r) Movie player xarm27 (1.2-r) X server binary, needed for X11 xcontrib (1.2-r) Additional X programs (clock, calendar, calculator...) xdaliclock (1.2-r) Morphing clock xdm (1.1-b) Configuration files for X based login manager xfig (1.1-b) Drawing program xmcolor (1.1-b) Colour browser using Motif xlock (1.2-r) Screen locker xosview (1.2-r) Utility to display system statistics xpaint (1.1-b) Paint program xpdf (1.2-r) Program to view and print Adobe Acrobat PDF documents xpixmap (1.1-b) Pixmap editor xv (1.2-r) Very nice image viewing and manipulation program Q 6.2: Can I compile C++ under RiscBSD? A: Yes. Both C and C++ compilers are included. 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.1 and the latest comp set. If you're having problems compiling C++, try upgrading. The latest version of the C and C++ compilers is 2.7.2.1. Q 6.3: Can I compile Fortran under RiscBSD? A: Yes. The GNU Fortran compiler is not yet available for RiscBSD, but f2c (the public-domain Fortran to C translator) compiles and works under RiscBSD. Q 6.4: Is there a Java compiler? A: Not yet. The Java Development Kit is currently being ported. Progress is being made but it's still a little way off. Q 6.5: Can you get gdb for RiscBSD? A: Yes. A port of gdb is currently in beta and there appear to be no obvious bugs. It is available as a set. Q 6.6: What networking software is available? A: Most of the standard Unix networking: telnet, nfs, news, www, ftp, email, SLIP, PLIP, PPP etc. RiscBSD can act as client, server or both in most cases. Q 6.7: Is MudOS available? A: Not yet. The beta version (v22b22) compiles successfully under gcc 2.7.2.1 with no optimisation. When the final version appears it will be made available as a set. ================================================================ Subject: 7. Bugs and Errors Q 7.1: Who do I report bugs to? A: There are a number of places to report bugs to : * The mailing list. Reporting bugs to the mailing list will bring them to the attention of the kernel team and other users who may have encountered the problem or who may encounter it. * The WWW bug report form. The bug report form can also be used to report bugs. Reports sent via the form are sent to the kernel team member responsible for that particular part of the kernel. * 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. * Use send-pr (see the man page for more details). Problems with RiscBSD or NetBSD/arm32 should be put in the port-arm32 category. Q 7.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 look up symbol names in order to read kernel variables via /dev/kmem. If the /netbsd file 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 look up the major and minor of the dump device. Q 7.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 affects 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 7.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 7.5: What does "Possible process deadlock due to shortage of L1 page tables." mean? A: Under RiscBSD, the ARM's MMU (memory management unit) requires a level 1 page table for each process. (Page tables are used to handle the translation from logical to physical memory addresses and hence provide virtual memory.) 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 boundary. Since the kernel's virtual memory system cannot dynamically allocate such a block of memory while running, memory for the level 1 page tables has to be reserved at boot time. The "Max processes" field in the boot loader specifies the number of 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 page tables become available. This can only 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. The "Possible process deadlock..." message is a warning that such a condition is imminent. Sometimes CTRL-C can be used to terminate a process running in the foreground. If you're having problems, the best solution is to increase the value of the "Max processes" field before booting RiscBSD. Q 7.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. Q 7.7: When I try compiling a large program, gcc falls over with an internal compiler error. A: Try turning the optimisation off. There have been some problems with optimisation when compiling complex source files. Also, contact the kernel team (as previously described) with details of the source file. If the bug is genuine they can pass the information onto the gcc maintainer. Q 7.8: I have an EtherH device and I can't get RiscBSD to boot. A: Try adding the parameter 'ehbug' (without the quotes) to the Extra Options field in the bootloader. There is a bug in some revisions of the Ethernet chip used on this card which causes problems when transferring data packets above 128 bytes. Q 7.9: I have more than 32 Mb of DRAM and I get a panic when I boot. A: Try adding the parameter 'nbuf=500' (without the quotes) to the Extra Options field in the bootloader. ========================================================================= Subject: 8. How do I ... Q 8.1: How do I add users to my system? A: There are a number of ways of adding users to your system : * Edit the master.passwd file adding an entry for a new user. Then run pwd_mkdb master.passwd to rebuild the password database. * Use the command vipw. This allows you to edit the passwd file in vi and will automatically rebuild the passwd database when you exit. Note : a different editor can be used by changing the environment variable EDITOR. * 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 password database will automatically be rebuilt. Q 8.2: How do 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 making 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. Q 8.3: How do I compile my own 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 required, creating your own kernel configuration file and compiling the kernel. ====================================================================== Subject: 9. Performance matters Q 9.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. Dhrystone 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 that 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. Future versions of GCC should provide better optimisation. Q 9.2: Why is my SCSI hard disk so slow? A: If you're using a Cumana SCSI-2 or PowerTec card, this is due to the fact that the drivers for these cards do not use DMA at the moment. DMA support is getting closer and will hopefully appear in the near future. Q 9.3: Why is floating point so slow? A: Unlike most Unix workstations, Acorn computers don't come with floating-point hardware. Under RiscBSD floating-point instructions are emulated in software. This is inevitably much slower than having dedicated hardware and is more of a problem under RiscBSD than under RISC OS, since Unix applications tend to be written with floating-point-equipped workstations in mind. In particular X11R6 makes very heavy use of floating-point and this can lead to serious performance bottlenecks (for example, rendering fonts when an X application starts). At some point in the future, a solution may appear in the form of an inline maths library which, while still not as fast as a dedicated floating-point chip, should provide substantial speed gains. This is some way off and no more information is available at present. Technical note : The RiscBSD floating-point emulator is the same as that used under RISC OS; both are licensed from ARM Ltd. ====================================================================== Subject: 10. The X Window System Q 10.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 8Mb of RAM and at least 24Mb of swap. At least 1 megabyte of VRAM is highly recommended. You will also need over 60Mb of disk space to install X. Q 10.2: What is the current state of X? A: X for RiscBSD is version 11, release 6.1 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-. If you upgrade to a new X-server it should be installed as /usr/X11R6.1/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 10.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 Web site can be used. Q 10.4: What are the known problems and features of X under RiscBSD? A: Here is a list of features of Xarm which are specific to RiscBSD: * Numeric keypad acts as a mouse * Virtual terminal switching - X is on ALT-F9 * xpm displayed on startup (/usr/X11R6.1/include/X11/pixmaps/Xserver.xpm); this must use numeric respresentation for colours. xv usually produces suitable pixmaps. Here is a list of features not yet supported by Xarm: * Autorepeat is fixed rate and cannot be switched off. * Mouse acceleration is not configurable. * The only working lock key is Caps Lock. The following are known bugs in the current Xarm : * If you switch consoles there is a race condition which *might* corrupt the free space records on the heap. This occasionally causes X to core dump at a later point. More usually it causes an effective memory leak. * If you do solid window drags X sometimes writes to the wrong bit of memory. This can cause screen corruption or even a core dump. * Some of the lock keys do funny things. * If you are pressing a key when you switch out of X but aren't pressing it when you switch back in then X doesn't see the key release event. Q 10.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 10.6: Is Motif available? A: No, sorry. Motif is a commercial package and we can't afford a source license to port it. We can distribute binaries which are based on the Motif toolkit but we can't distribute the Motif toolkit itself. There is a solution on its way. Lesstif is a Motif-compatible toolkit which will be freely distributable when complete. The list of applications which compile successfully using Lesstif is growing rapidly. You can get more information on Lesstif (including the source code) at the Hungry Programmers web site : http://www.hungry.com/products/lesstif Q 10.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 10.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. Q 10.9: How do I use different resolutions and display depths? A: There is a command called setdisplay that can be used to manipulate the display resolution and depth. Type 'setdisplay' for more information. Q 10.10: What display depths are supported by current X servers? A: The X server currently supports 1, 8 and 16 bits per pixel display depths. Work is in progress to add 24-bit display depth. ==================================================================== Subject: 11. Troubleshooting X Q 11.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 11.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.1/bin; chown root Xarm; chmod u+sx Xarm' Q 11.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 11.4: I get error messages about invalid keycodes. A: You are using a pre-beta Xarm with an beta kernel. Upgrade Xarm to the latest version. Q 11.5: Xarm-mono dosen't work. A: Xarm-mono is now obsolete. There is now only one X server for colour and mono. Use the latest Xarm together with the setdisplay command. ===============================================================