This message announces the availability of version 0.08 of Linux/68k. It can be ftped from directory /pub/linux/680x0 at tsx-11.mit.edu. A precompiled kernel executable and the Amiga "bootstrap" program can be found in kern-0.08.tar.gz in the "kernel" subdirectory. The kernel source can be found in linux-0.08.tar.gz in the "src" subdirectory. Patches against 0.07pl4 can be found in linux-0.08.diffs.gz in the "src" subdirectory. A new, 1024K ramdisk filesystem image has been put in the "filesys" subdirectory in the "new-filesys.gz" file. This ramdisk filesystem is an "ext2" filesystem containing new shared libraries and a slew of programs which are necessary to build/rebuild hard disk filesystems. You can replace the libraries on your hard disk partitions with the new versions on the ramdisk image. You can also replace some of your statically linked executables with executables from the ramdisk image (see below (#)). There is a bug in binutils-1.9l.1 when linking dynamically. If the program you are linking overrides a shared library function, then the program will get a SIGSEGV when it tries to execute that function. I've put a patch to binutils-1.9l.1 in "ld.diffs.shlib" in the "tools" subdirectory. I'll be distributing a new "usr.tar.gz" archive later which will contain the new "ld", and will get rid of the statically linked executables found in /usr/bin, replacing them with dynamically linked executables. The changes in this release against 0.07pl4 include: *) A change in the way that the return value from system calls are returned to user programs. Unfortunately, this breaks the existing 4.5.19 shared library and any existing statically linked applications. This change was unavoidable. The "new-filesys.gz" file in the "filesys" directory contains the new shared libraries and dynamically linked executables (#). *) A number of bug fixes. *) Changes from Martin Apel which allow use of the copyback cache on 68040 processors. Martin says that he thinks that there may be problems with dynamically linked executables/shared libraries with the copyback cache. *) The swapping mechanism has been ported. You should be able to use swap partitions and swap files using "swapon" now (note that the kernel prints out some debugging messages whenever a page is swapped in or out; these will eventually be removed). *) Unix domain socket support has been added. *) The Amiga bootstrap has been changed so that it does not need to be loaded into CHIP RAM anymore. This means that we don't require the "BLINK" program when building it. *) Amiga CHIP RAM now has an allocator. Existing users of chipram have been changed to use this new allocator. *) Amiga keyboard driver has auto-repeat now. *) Includes a driver for the Amiga 4000 (not A1200) IDE hard disk controller. Thanks to Torsten Ebeling, Michael Rausch and Geert Uytterhoeven for separately implementing *3* IDE drivers. It was hard to decide which one to include. I ended up including the one from Torsten since it seemed to fit best into the current source. I'm hoping that Michael and Geert will send in improvements if they have any to make. *) Amiga Mouse driver from Michael Rausch. Nothing uses this yet. *) Amiga Parallel Port printer driver from Michael Rausch. *) VTxxx Terminal Emulation on the console from Arno Griffioen. *) Bug fixes to the Amiga Fast File System code to allow it to work on partitions consisting of an odd number of sectors. *) Patches from Geert Uytterhoeven to the Amiga Fast File System code to allow it to work with the Amiga MultiUser filesystem *) Support for core files. *) The "ext2" filesystem has been ported to Linux/68k. I'm not certain of the correctness of this port on largish (>10) filesystems yet. Use at your own risk. *) The "proc" filesystem has been ported to Linux/68k. *) The "ptrace" support has been ported to Linux/68k. This allows the use of "gdb" to source-level debug programs (this has been very useful to me already in tracking down various bugs). This release still contains only support for the Amiga. Hopefully the people working on MacIntosh and Atari support will have some sources for inclusion soon. To boot the kernel on an Amiga, use the supplied "bootstrap" command. To boot with the ram disk image, uncompress the image and type: bootstrap -r new-filesys ro The "ro" option tells the kernel to mount the ramdisk as read-only. The "/etc/rc" file on the ramdisk image will "check" the ramdisk image and remount the root (ramdisk) filesystem read/write. The ramdisk image contains an "/sbin/shutdown" script which will unmount all filesystems, mount the ramdisk read-only, sync all dirty buffers, and then print a message indicating that it is safe to reboot. You can boot from an existing Linux hard disk partition by supplying the device name to the bootstrap program: bootstrap root=/dev/[sh]d[a-f][1-16] You may want to provide the "ro" option to mount the partition read-only. The major number for SCSI disks is "0x08", and the minor number depends on the disk and partition. linux/68k searches for SCSI disks from target 0 to target 7, and for Logical Units 0 through 7 on each target. The minor number can be calculated by (disk_number)*16 + partition_number. The first disk found is disk 0. Partition 0 is the whole disk. Partition 1 is the first partition found in the RigidDiskBlock partition table on the Amiga hard disk. Thus 0x0801 is the first partition on the first disk found. 0x0812 is the second partition on the second hard disk found. For example, I have two SCSI hard disks. The first is at target 5, LUN 0 and the second at target 6, LUN 0. The first has three partitions (used for Linux) and the second has 4 partitions used for AmigaDOS. Thus I have: devnum linux device name ------ ------------------------------------ 0x0800 sda (the entire disk at target 5 : BE CAREFUL) 0x0801 sda1 (1st partition on disk at target 5) 0x0802 sda2 (2nd partition on disk at target 5) 0x0803 sda3 (3rd partition on disk at target 5) 0x0810 sdb (the entire disk at target 6 : BE CAREFUL) 0x0811 sdb1 (1st partition on disk at target 6) 0x0812 sdb2 (2nd partition on disk at target 6) 0x0813 sdb3 (3rd partition on disk at target 6) 0x0814 sdb4 (4th partition on disk at target 6) *NOTE* The target numbers above are examples; these are what I get on my system, since the first disk is at target 5 and the second at target 6. If your first disk is at target 0, your sda will *still* be 0x0800 (/dev/sda). My Linux root partition is on the 1st partition of my first drive, so I boot with: bootstrap root=/dev/sda1 After booting from one of the above methods, if the kernel supports your SCSI driver, you should be able to create a minix file system on one of your hard disk partitions if you wish. Determine the size of your partition in 1K blocks (take the number of 512 byte sectors from HDToolBox and divide by two), and determine which special file to use in /dev (see above). *DOUBLE CHECK* that the major/minor numbers for the special device (ls -l /dev/xxx) are correct. If they are incorrect or the device special file doesn't exist, use mknod to change or create the device special file. Then execute: /sbin/mkfs.minix /dev/xxxx size This will create a minix file system on the hard disk partition. You can then mount this partition under /mnt and copy files to it: mount /dev/xxxx /mnt When finished copying, unmount the partition: umount /mnt sync a few times, run "/sbin/shutdown" and then reboot. You can then boot the kernel by providing "bootstrap" with the device name to boot from. Again, you do any mucking around with hard disks at your OWN RISK. Note that the above can be used on IDE hard disks now also, except that the major/minor numbers for IDE hard disks are different, and the special devices in /dev are named hd[ab][1-64].