Subject: Linux-Development Digest #326
From: Digestifier <[email-masked]>
To: [email-masked]
Date: Mon, 17 Oct 94 19:13:27 EDT

Linux-Development Digest #326, Volume #2         Mon, 17 Oct 94 19:13:27 EDT

Contents:
  Re: We a FAQ: Linux vs. *BSD!!! (Tony Porczyk)
  Linux68k FAQ (Joerg Mayer)
  help with virtual device driver ([email-masked])
  2740 support ([email-masked])
  Sony 561 CD-ROM driver ([email-masked])
  Re: 3Com 509 Driver Problems - Any fixes - Help (Alan Cox)
  Re: Linux 1.1.50+ cache scheme sucks (what happened to me?) (Alan Cox)
  Re: Compiling progs using port I/O (Matthias Urlichs)
  Re: Linux NOT logging people out on hangup (Matthias Urlichs)
  Re: Linux For Mac (James Conrad Pope Smith)

----------------------------------------------------------------------------

Crossposted-To: comp.os.386bsd.development
From: [email-masked] (Tony Porczyk)
Subject: Re: We a FAQ: Linux vs. *BSD!!!
Date: Mon, 17 Oct 1994 18:12:13 GMT

[email-masked] (Geoff Rehmet) writes:

> It would be nice to see a factual list of differences between the
> different free UN*Xes compiled.  I just don't see it happening, and I
> sure as hell am not volunteering to do it.

Okay, I guess someone has to volunteer.  Unless I hear objections to my
doing it, I will post a proposed FAQ structure by the end of this month
and will ask for comments.  When the dust settles and we have a workable
structure, I will ask for contributions to each of the FAQ items.  
I would hope that we will have a working FAQ by the end of the year.

Tony

------------------------------

Crossposted-To: comp.unix.amiga,maus.os.linux68k
From: [email-masked] (Joerg Mayer)
Subject: Linux68k FAQ
Date: Mon, 17 Oct 1994 16:15:41 GMT

  This is the FAQ on Linux68k - a Linux port to Motorola's 680x0 processors

Version of this FAQ: 0.4
Date of this FAQ   : 94-10-17
Version of Linux68k: 09pl3
Version of Linux   : 1.1pl54
Maintainer: Joerg Mayer ([email-masked])

0. Introduction/contents
========================

This is the first version of the Linux68k FAQ. As it will probably be full of
errors (typographical and logical), outdated and missing infos, *YOU* are
encouraged to send feedback and corrections to [email-masked].
It is not intended to describe what Unix is or how to to administrate it.
Parts of this document were snarfed from Helmut Neukirchen's Linux68k WWW page
(see below). Thanks.

0. Introduction/Contents
1. About Linux and Linux68k
2. Requirements to run Linux68k
3. Similarities and differences between Amiga and Atari Linux68k
  3.1 Similarities
  3.2 Differences
4. The current status of Linux68k
  4.1 General
  4.2 Amiga
  4.3 Atari
  4.4 Mac
5. Hints on installing Linux68k
6. Sources for information/sources/binaries
  6.1 Newsgroups
  6.2 Mailinglists
  6.3 WWW-sites
  6.4 Ftp-sites
  6.4.1 Distributions
7. Activities
  7.1 Coordinator 
  7.2 Under construction/To do
8. Famous last words

1. About Linux and Linux68k
===========================
Linux is a freely available operating system for PCs - to be more precise,
it is one of many flavours of Unix. It is being developed on the net by
several thousand people and tested/used by many many more.
The fun and success of Linux inspired some people to port it to another
platform - the Amiga. The first version released to the general public was
005. While 008 was current, a few enthusiasts ported that version to the Atari
and the two versions have been successfully (?) merged with 09pl3 (this
reads version 09 patchlevel 3). Linux68k can be regarded as beta. This means
that code that wasn't ported/written recently works well most of the time.

2. Requirements to run Linux68k
===============================
You need a Motorola 680x0 processor *with PMMU*. There is *no way* to run
it without one. This reduces the list of possible processors to
68020+68851, 68030, 68040, 68LC040, 68060. Currently only the 68030 and 68040
are supported (rumor has it that someone is it running on 68020+68851). At
this stage you will also need a 68881 or 68882 FPU if you don't have a 68040.
A FPU is not strictly neccessary as it can be emulated with the normal
processor, however nobody has written the code to do so.
The list of processors leaves the 68000, 68010, 68EC020, 68EC030, 68EC040.
Linux68k will *never* run on these processors as they lack a PMMU and an
interface for an external one.
If you want to do more than just boot Linux68k you will need 30 - oo (infinity)
MB of harddiskspace an a supported hard disk controller.

3. Similarities and differences between Amiga and Atari Linux68k
================================================================
3.1 Similarities
================
All code that is dependent on the processor only (e.g. paging, systemcalls,
parts of the interrupt handling and of c(o)urse those parts of Linux that
were handoptimized by writing the code in assembler) has to be ported to
Linux68k only once. This means that Amiga and Atari may use the same kernel-
image (in fact the vmlinux from tsx-11 runs on both machines).
Another big bonus is that all userprograms (= binaries) should run on
any machine running Linux68k no matter whether the machine is an Amiga
or Atari - as long as no machine specific devices are used (see below).

3.2 Differences
===============
All code that depends on the hardware is machine dependant and with very
few exceptions which are in the kernel (timer, small part of interrupt
handling, startup code) put into modules called devicedrivers. The writing
of devicedrivers makes up most of the porting work.

4. The current status of Linux68k
=================================
4.1 General
===========
What has been done? The kernel (this means all the processor/mmu/fpu specific
stuff) has been ported. Version 09 is based on the Linux 1.0 patchlevel 9
sources. Several hardware-independend devices have been ported:
Ramdisk, mem, pty, tty, vt, slip, net/inet, general scsi stuff. Also the fol-
lowing filesystems have been done: minix, ext2, msdos, proc, isofs, nfs, affs
( = Amiga Fast File System, read only).
On the mailinglist but not yet in the kernel: Virtual consoles

4.2 Amiga
=========
Supported builtin hardware:
A3000-SCSI, A4000-IDE, serial port, parallel port, mouse, keyboard, graphics
emulates an ascii-terminal (resolution varies with your chipset/setup), timer,
floppy disk drive (DD and HD, Amiga-formatted disks only).

Supported cards:
Several SCSI cards are supported. These are the A2091, A590 and GVP Series II.
To find out if additional hardware is supported look at the Linux68k source
(config.in provides a list of supported hardware).

4.3 Atari
=========
Atari-SCSI interface (ACSI), mouse, serial port, keyboard, timer [there are
some TOS-specific problems with the date], floppy disk drive, graphics
emulates an ascii-terminal (resolution varies with your chipset/setup)

4.4 Mac
=======
From time to time someone posts on the net that he is working on a port. There
is no confirmed sighting of such a thing (i.e. nothing ftp-able). One reason
for this may be that there are no hardware docs available.

5. Hints on installing Linux68k
===============================
[If someone is willing to write something more complete/comprehensible I will
happily replace this section.]
 1. Get a working kernel, *all* announce files and the boostrap program for
   your machine (different kernel versions may require different bootstrap
   versions), the root and usr-filesystems and the newfilesys (this is a
   ramdisk that contains everything you will need to setup a working harddisk
   environment). Sources for these programs: See below.
 2. Bootstrap the kernel and newfilesys as described in the ANNOUNCE file for
   that kernel. Many of the bootstrap flags available will be documented in
   older announce files only.
 3. Create a partition on your harddisk and install an ext2fs filesystem on it.
 4. Crate another partition as swapspace.
 5. Unpack the root and usr filesystem onto the disk.
 6. Copy the contents of your ramdisk to your harddisk. This replaces several
    old programs in root and usr with newer (working) versions.
 7. If /etc/termcap does not exist get (see below) and install it.
 8. Reboot
 9. Bootstrap your kernel, this time from harddisk instead of ramdisk.
These are the filenames relative to 680x0/
  ANNOUNCE-0.XXXXXX
  filesys/new-filesys.gz
  filesys/root.tar.gz
  filesys/usr.tar.gz
  kernel/vmlinux-0.9pl3.gz
  kernel/amiboot-1.9.gz
  kernel/ataboot-0.2.gz
  [I don't know a ftp site where you can find /etc/termcap, so you have to get
   it via Helmut Neukirchen's WWW pages.]
   
6. Sources for information/sources/binaries
===========================================
6.1 Newsgroups
==============
comp.os.linux.development: This group is on Linux development in gerneral.
  From time to time it contains messages dealing with Linux68k.
comp.os.linux.announce: This group announces new Linux related products as
  well as new kernelreleases. Announcements for new versions of Linux68k
  can be found here.
maus.os.linux68k: [This newsgroup may not be available outside Germany.]
  This group deals with Linux68k only. The language currently used is German
  but don't hesitate to post in English.
  It should be available at least at the following sites:
        news.uni-stuttgart.de
        rz.uni-karlsruhe.de
        xlink.net
        howland.reston.ans.net
        news.uni-oldenburg.de
        rz.uni-hildesheim.de
  [Has anyone checked whether these sites allow external access?]
comp.unix.amiga: This group is for diskussions on AMIX, NetBSD and Linux68k
  on the Amiga. As most articles on Linux68k are not Amiga specific, the
  name is somewhat of a misnomer.

6.2 Mailinglists
================
I am aware of one mailinglist for Linux68k. This is the 680x0 channel of
linux-activists. To find out how to subscribe send an empty mail to
[email-masked]. The channel you want to join is
680x0. Keep the help file! In order to unsubscribe you will want to read the
help file again. The articles on this list are currently mirrored on
maus.os.linux68k.

6.3 WWW-sites
=============
Helmut Neukirchen's Linux68k WWW page:
  http://www-users.informatik.rwth-aachen.de/~hn/linux68k.html
Mirror of tsx-11 via WWW:
  http://src.doc.ic.ac.uk/packages/Linux/tsx-11-mirror/680x0/

6.4 Ftp-sites
=============
THE Linux68k server:
  ftp://tsx-11.mit.edu/pub/linux/680x0/
Mirrors of it (please use the one nearest to you, most of these mirrors
are updated daily):
  ftp://ftp.tu-clausthal.de/pub/systems/Linux/680x0/
  ftp://ftp.informatik.tu-muenchen.de/pub/comp/os/linux/680x0/
  ftp://ftp.twi.tudelft.nl/pub/Linux/680x0/
  ftp://ftp.informatik.rwth-aachen.de/pub/Linux/BETA/680x0/
THE two Linux servers (sources for you to port to/compile on Linux68k):
  ftp://tsx-11.mit.edu/pub/linux/sources/
  ftp://sunsite.unc.edu/pub/Linux/system/
The kernel source for Linux68k can be found in 680x0/src/, a lot of
binaries in 680x0/bin/. A few more tools reside in 680x0/tools/.

6.4.1 Distributions
===================
None (yet).

7. Activities
=============
7.1 Coordinator
===============
Linux68k releases are built and released by Hamish Macdonald (his e-mail is
[email-masked]). Built means that you write a patch against the
current version/patchlevel and he will integrate it into the next release.
Well, at least that is how it should be - very often he has to write the
stuff too (Amiga only, the Atarists are a lot more active these days).
If you want your patches to be generally available rather than waiting for
Hamish to integrate them: Post them to the 680x0 channel of linux-activists
at least. Hamish has his own pace at doing releases. So read my lips:-)
*Don't push him!*

7.2 Under construction/To do
============================
[Your call for coworkers could be found here. I would like to have a list of
not yet ported filing systems and needed drivers here.]
- X-server for Amiga: Contact Martin Apel ([email-masked]) if and only
  if you really want to help (there is *no* use in asking/pushing him).
  He is currently searching for someone who can explain the workings of the
  console/tty/vt stuff to him to get the keyboard-input running.
- Affs: Write code and special root block handling missing.
- Documentation: A Linux68k update of the khg (Kernel hackers guide) needs to
  be written (especially the mmu specific stuff).
...

8. Famous last words
====================
Amiga, Atari, Unix and perhaps some more words I used in this text are
trademarks. So what!

===========
J"org Mayer  Student an der Universit"at Kaiserslautern
e-mail    :  [email-masked]   //   PGPid: 0xFB2461E1
phone     :  Kaiserslautern:  205-3348 (Uni) //  3100480 (privat)
snail-mail:  Beethovenstr. 44 // 67655 Kaiserslautern  // Germany

------------------------------

From: [email-masked]
Subject: help with virtual device driver
Date: 13 Oct 1994 19:12:31 GMT
Reply-To: [email-masked]

I am working on a stripping driver, the plan is for it to be a virtual
device driver that redirects block requests from a single point to the
other devices to be handled and then reconstruct the incoming blocks to
return back to the requesting process...
My problem is lack of documentation or perhaps I am looking in the wrong 
places...
It seems to me that creating a buffer_head for each stripped drive and then
send requests do each drive with bread is the way to go.  The problem is
lack of documentation on bread.  Is there an example Virtual driver???
Joe Julicher
[email-masked]

------------------------------

From: [email-masked]
Subject: 2740 support
Date: 13 Oct 1994 19:13:49 GMT
Reply-To: [email-masked]

I have not seen a 2740 scsi driver.  Does one exist? or do I need to pull
out the copy of the tech doc I have and modify the 1740 driver?
Joe Julicher

------------------------------

From: [email-masked]
Subject: Sony 561 CD-ROM driver
Date: 13 Oct 1994 19:15:24 GMT
Reply-To: [email-masked]

Is someone working on a Sony 561 driver?  This would also include Apple 300i
support (same mechanism but a few extra commands).
Joe Julicher

------------------------------

Crossposted-To: comp.os.linux.help
From: [email-masked] (Alan Cox)
Subject: Re: 3Com 509 Driver Problems - Any fixes - Help
Date: Mon, 17 Oct 1994 11:22:01 GMT

In article <[email-masked]> [email-masked] (Stanley Owen Jester) writes:
>Will  a 3c501 card work with Linux sllackware 2?
>I know it is old, but it is for home, so I won't need much horsepower.

Its a really foul card but it does work sort of.

Alan
-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: [email-masked] (Alan Cox)
Subject: Re: Linux 1.1.50+ cache scheme sucks (what happened to me?)
Date: Mon, 17 Oct 1994 11:23:26 GMT

In article <[email-masked]> [email-masked] (Byron Faber) writes:
>This seems kinda annoying as I need to swap much more out of memory now,
>so that Linux can have its 2 meg Buffer region.

The 2Mb of buffers will mostly be read only pages of programs currently
running. Linux counts read only chunks of program as disk cache (after all
they can be used as exactly that)

Alan
-- 
  ..-----------,,----------------------------,,----------------------------,,
 // Alan Cox  //  [email-masked]   //  GW4PTS@GB7SWN.#45.GBR.EU  //
 ``----------'`----------------------------'`----------------------------''

------------------------------

From: [email-masked] (Matthias Urlichs)
Subject: Re: Compiling progs using port I/O
Date: 17 Oct 1994 17:03:21 +0100

In comp.os.linux.development, article <[email-masked]>,
  [email-masked] writes:
> 
> The problem with using static inline is that you get copies of the
> function included with every single .o file which had included 
> #include <asm/io.h>.  
> 
Isn't GCC smart enough not to do that if the function isn't called?

If not, I'd regard that as a bug.

> There is a better solution, which requires support from a library
> (probably libc in this case, or perhaps we would create a new library
> for this purpose).
> 
Good point. We should start by implementing this in the kernel.
As it is now, there are several and slightly incompatible versions of that
trick in the kernel include files...

-- 
Ertz's observation:
    Millions long for immortality who do not know what to do with themselves
    on a rainy Sunday afternoon.
-- 
Matthias Urlichs        \ XLink-POP Nürnberg  | EMail: [email-masked]
Schleiermacherstraße 12  \  Unix+Linux+Mac    | Phone: ...please use email.
90491 Nürnberg (Germany)  \   Consulting+Networking+Programming+etc'ing     42
          PGP: 1B 89 E2 1C 43 EA 80 44  15 D2 29 CF C6 C7 E0 DE 
      Click <A HREF="http://smurf.noris.de/~urlichs/finger">here</A>.

------------------------------

From: [email-masked] (Matthias Urlichs)
Crossposted-To: comp.os.linux.admin
Subject: Re: Linux NOT logging people out on hangup
Date: 17 Oct 1994 17:33:05 +0100

In comp.os.linux.development, article <[email-masked]>,
  [email-masked] (Bart Kindt) writes:
> 
> >Anyway, a cursory look at 1.1.53 doesn't reveal any loops the close could
> >hang in.
> 
> But it does happen... all the time.
> 
Grrr. That is a bug. Please fix bugs, don't kludge them.

Could you (or somebody who sees the problem) implement the following patch
please? It installs a "kernel stack" file in /proc/*, which shows the
active part of the kernel stack of a process. Dumping that file (with "od
-t x4 /proc/???/kstack") and looking up the addresses in linux/zSystem.map
(or with gdb tools/zImage /proc/kcore, "l *0xaddress") should show where
the process is hanging, which should tell us how to fix the problem.

Warning, the following patch is heavily edited (my kernel is somewhat
nonstandard) and may not apply cleanly.

diff -rub --unidir /pub/src/linux/kernel/linux-1.1/fs/proc/base.c ./fs/proc/base.c
--- /pub/src/linux/kernel/linux-1.1/fs/proc/base.c      Fri Aug 12 13:59:09 1994
+++ ./fs/proc/base.c    Fri Aug 12 19:48:56 1994
@@ -62,7 +62,8 @@
        { PROC_PID_CMDLINE,     7, "cmdline" },
        { PROC_PID_STAT,        4, "stat" },
        { PROC_PID_STATM,       5, "statm" },
-       { PROC_PID_MAPS,        4, "maps" }
+       { PROC_PID_MAPS,    4, "maps" },
+       { PROC_PID_KSTACK,      6, "kstack" },
 };
 
 #define NR_BASE_DIRENTRY ((sizeof (base_dir))/(sizeof (base_dir[0])))
diff -rub --unidir /pub/src/linux/kernel/linux-1.1/fs/proc/inode.c ./fs/proc/inode.c
--- /pub/src/linux/kernel/linux-1.1/fs/proc/inode.c     Sat Oct 15 08:51:58 1994
+++ ./fs/proc/inode.c   Sat Oct 15 09:11:53 1994
@@ -159,4 +159,8 @@
                        inode->i_op = &proc_fd_inode_operations;
                        inode->i_nlink = 2;
                        return;
+               case PROC_PID_KSTACK:
+                       inode->i_mode = S_IFREG | S_IRUSR;
+                       inode->i_op = &proc_array_inode_operations;
+                       return;
                case PROC_PID_ENVIRON:
diff -rub --unidir /pub/src/linux/kernel/linux-1.1/fs/proc/array.c ./fs/proc/array.c
--- /pub/src/linux/kernel/linux-1.1/fs/proc/array.c     Fri Aug 26 17:25:08 1994
+++ ./fs/proc/array.c   Mon Sep 12 11:23:57 1994
@@ -30,2 +30,4 @@
+extern int get_kstack(pid_t pid, void *page);
+
 static int read_core(struct inode * inode, struct file * file,char * buf, int count)
 {
@@ -513,2 +591,4 @@
                        return get_maps(pid, page);
+               case PROC_PID_KSTACK:
+                       return get_kstack(pid, page);
        }
diff -rub --unidir /pub/src/linux/kernel/linux-1.1/include/linux/proc_fs.h ./include/linux/proc_fs.h
--- /pub/src/linux/kernel/linux-1.1/include/linux/proc_fs.h     Fri Aug 26 17:25:10 1994
+++ ./include/linux/proc_fs.h   Sun Aug 28 11:10:13 1994
@@ -1,6 +1,8 @@
 #ifndef _LINUX_PROC_FS_H
 #define _LINUX_PROC_FS_H
 
+#include <linux/config.h>
+
 /*
  * The proc filesystem constants/structures
  */
@@ -36,4 +47,5 @@
        PROC_PID_ENVIRON,
        PROC_PID_CMDLINE,
+       PROC_PID_KSTACK,
        PROC_PID_STAT,
        PROC_PID_MAPS
diff -rub --unidir /pub/src/linux/kernel/linux-1.1/kernel/sched.c ./kernel/sched.c
--- /pub/src/linux/kernel/linux-1.1/kernel/sched.c      Sat Oct 15 08:48:10 1994
+++ ./kernel/sched.c    Wed Oct 12 08:31:02 1994
@@ -55,1 +55,13 @@
+int get_kstack(pid_t pid, void *page) 
+{
+    struct task_struct *p;
+    for_each_task(p) {
+        if(p->pid == pid) {
+            memcpy(page,(void *)p->tss.esp,PAGE_SIZE - (p->tss.esp & ~PAGE_MASK));
+            return PAGE_SIZE - (p->tss.esp & ~PAGE_MASK);
+        }
+    }
+    return -EBADF;
+}
+
 static void show_task(int nr,struct task_struct * p)

-- 
In 1918 illuminated helmets were first made for miners. It
made them feel light headed.
                                -- "On This Day in History"
-- 
Matthias Urlichs        \ XLink-POP Nürnberg  | EMail: [email-masked]
Schleiermacherstraße 12  \  Unix+Linux+Mac    | Phone: ...please use email.
90491 Nürnberg (Germany)  \   Consulting+Networking+Programming+etc'ing     42
          PGP: 1B 89 E2 1C 43 EA 80 44  15 D2 29 CF C6 C7 E0 DE 
      Click <A HREF="http://smurf.noris.de/~urlichs/finger">here</A>.

------------------------------

From: [email-masked] (James Conrad Pope Smith)
Subject: Re: Linux For Mac
Date: 17 Oct 1994 14:28:23 GMT

Hillel Y. Sims ([email-masked]) wrote:
: Well, just to throw my two cents into this thread...
: I just purchased a PowerMac 7100/66 for my brother this last weekend, and boy
: was that thing fast, and _that_ was while running at least 3/4 of its software
: emulated from 68k code

: I would LOVE to have an asskicking os like linux running on this thing, rather
: than system 7, especially now that i have to pay for updates to the os (i love
: macs look-and-feel of software, but i've grown to loathe the actual os itself
: over the last year or so, since my exposure to linux :-)

A buddy of mine at work just got his PowerMac 8100 in and I was pretty 
impressed with it.  He buoght a commercial Unix for it, and he can run
System 7, SoftWindows, and this Unix all at once.  Full X/tcpip support. The
works.  Very slick.

James
--
======================================================================
James P. Smith
Engineer/Collector (older non-sports, Jack Kemp, 1969 Topps BB)
NASA/JSC, Mail Code ES
Houston, Texas 77058
[email-masked]
[email-masked]
[email-masked]

------------------------------

** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [email-masked]

You can send mail to the entire list (and comp.os.linux.development) via:

    Internet: [email-masked]

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Development Digest
******************************