SourceForge.net Logo

OSST history page


The kernelspace solution to drive the SC-x0 has been created by copying the original scsi tape driver st of Kai Mikasara to osst and changing it in order to support the OnStream device. When being loaded, it allows to access the OnStream tape via /dev/osst? just like normal tapes using mt, tar, amanda, ...
The driver currently supports 2.4.x kernels. A 2.2 version is also available, but has not been updated with some of the latest fixes. Likewise, a 2.6 version is available. Osst comes standard with all recent kernels from kernel.org or your favorite distribution.


Here comes a full history of status updates:

CVS is up and running, and almost completely filled with the base data. For the mailing list, the DNS entry needs to be there, first.
While the userspace osg gets better and better, the kernelspace OnStream SCSI tape driver osst starts to become useable. Reading and writing basically works, but the error recovery needs to be implemented before an alpha release can be published.
Mailing list is up and running without any problems since some time now. Subscribe by sending a mail with help in the body to osst-request@www.linux1onstream.nl and follow the instructions.
2000-04-05: (osst 0.6.3)
The first public ALPHA release for the adventureous testers.
A tester's page has been set up, where you can find a tarball with the driver (ALPHA state at the moment) to download and some instructions on how to use it and how to report success or failure back to the developers.
2000-04-17: (osst 0.6.4)
Should fix the blocking problem.
2000-05-02: (osst 0.7.0)
Added the "fast open" feature: The headers are cached and if the tape has not been changed, they don't need to be reread. A list of filesmarks is now kept in the headers: LIN4 signature. Automatic conversion on write. Better error recovery.
The Firmware dir has been added to CVS
2000-05-14: (osst 0.7.1)
Bugfixes. Maintains soft error count. Successfully tested with firmware 1.05 and 1.08.
2000-05-15: (osst 0.7.2)
Fix error handling skipping over second header group.
2000-05-21: (osst 0.7.3)
Fix I/O error on read after seek.
2000-05-24: (osst 0.7.9)
On own character device (major 206) has been registered. The driver has been adapted to use it and is now able to coexist with st. (Mostly untested, sorry!) A README.osst file has been added. Some test's and we'll be ready for BETA!
2000-05-27: (osst 0.7.91)
Osst coexistance with st in the 2.2.15 kernel tree has now been tested. After applying the osst-22.diff patch you will find in the sources (see Download below) st will no longer detect OnStream tape drives other than the ADR series (which do not need osst). Copy in osst.[ch] as explained in the README, compile and install a new kernel as usual, create the osst devices and try it out!
2000-06-11: (osst 0.7.99)
Adopted ADR 1.4 Tape Format, which standardizes the location of file mark lists in the Header and disambiguates terminology.
2000-06-21: (osst 0.7.99a)
Slight changes to the way it is integrated into the kernel. Both osst and st now use the OSST_SUPPORTS(SDp) macro provided by osst_detect.h in both detect() and attach(). Kernel patch is against 2.2.16 now.
2000-06-25: (osst 0.8.0)
BETA Test candidate! Options can now independently be set in osst_options.h (non-applicable options from st are dropped). Osst.c now identifies the tape drive with a unique code rather than as a generic SCSI2 drive.
2000-07-16: (osst 0.8.1)
Improved handling of opening the device after a 'mt offline'. Driver now returns error ENOSPC 164 blocks before reaching tape capacity. This should make volume spanning work now. The 164 blocks allows for two write errors to be recovered at the end of tape.
2000-07-24: (osst 0.8.1 / 0.9.0p1)
The 2.4 test version is out there (0.9.0p1)!
2000-08-12: (osst 0.8.2 / 0.9.0p2)
osst_int_ioctl now uses the Scsi_Cmnd structure allocated by the caller, as allocating a new one hangs the driver on resource challenged installations.
2000-08-12: (osst 0.8.2 / 0.9.0)
Beta test version 0.9.0 for linux-2.4.0-test6.
2000-09-24: (osst 0.8.4 / 0.9.2)
The drive now ejects the tape with 'mt offline'. Fixed polling algorithm in preparation of supporting IDE and USB drives. Osst 0.9.2 needs the version of st found in kernel versions 2.4.0-test9-pre6 and later.
2000-10-04: (osst 0.8.5 / 0.9.3)
Some bugfixes. 0.9.3 now verified to support USB Onstream drives and big endian platforms such as the Power PC.
2000-10-29: (osst 0.8.6 / 0.9.4)
Deal with the complications of read errors occurring near but not at the location where a recovered write error occurred. Better handling of rewriting part of a tape (not recommended). Made sure tape is left in a suitable position and state when reposition commands fail.
2000-12-09: (osst 0.8.7)
This version implements blocksizes less than 32k. The default at startup is 512 bytes. You can change it like this: 'mt defblksize 1024' or another size (that divides into 32k) of your choice. The blocksize for files written is determined by the default at the time of open. I don't allow changes during a write. The blocksize for reading is set to the size used to write it when you start reading.
2000-12-11: (osst 0.8.8)
Fixed bug when write error is detected during polling.
Alan Cox merged the osst driver 0.8.6 into Linux-2.2.19pre1.
Hopefully Linus will accept to merge the osst - 0.9.4 (which is functionally equivalent) into 2.4.0.
2000-12-20: (osst /
Ported the bugfix which went into 0.8.8 to the versions with a fixed block size of 32k.
Added notice that the is the one being interesting ...
The osst driver by now is very stable -- thanks to the beta testers -- and should be prefered over osg. It even works with the IDE device (DI-30) over ide-scsi and for the USB (USB30) one via usb-storage. For the latter, you need at least a 2.4.0-test12 kernel and you need to activate freecom support.
2000-12-22: (osst / could not be compiled statically into the kernel. Fixed.
2001-01-03: (osst 0.8.9)
Preceed locate(3000) with locate(0) because some drives go AWOL when they mistakenly detect BOT during such a locate.
2001-01-25: (osst 0.8.10 / 0.9.5)
Osst 0.9.5 is for the released kernel 2.4.0. It has now caught up with the version for the 2.2.x kernels and implements blocksizes less than 32k. The locate(0) above should not have been applied during write error recovery - corrected. Some log output has been rationalized. Note that recent official kernel trees do now include osst and to upgrade them to these versions all you need to do is copy the new osst.c and osst.h into /usr/src/linux/drivers/scsi and re-run 'make modules modules_install'.
2001-02-08: (osst 0.8.11 / 0.9.6)
Fixed a hang of 0.9.6 when using tar's default 10K transfer size. Fixed a buglet in close of the rewinding device in both versions.
2001-03-31: (osst 0.8.12 / 0.9.7)
Junfeng Yang (Stanford) reported potential invalid pointer dereferences in two functions within osst, identified by their CHECKER tool. There was a theoretical possibility that an invalid pointer would be used, though I doubt that anyone would ever be hit by this. Corrected all the same.
2001-06-03: (osst 0.8.13 / 0.9.8)
Fixed data corruption problem with error recovery on firmware versions 1.05 and older when the error is detected when waiting to skip the config partition (2990-3000). Fixed off by one in block numbering after [bf]sr and seek. Rationalized printk log statement severities (see READMEs). Reflected the ability to use multiple blocksizes in READMEs.
The list and the web pages are not reachable some time now. This has been caused by OnStream switching Provider, but not getting DNS registered for all hosts :-(. The machine has always been reachable und the IP DNS will come up again with a changed name www.linux1onstream.nl.
DNS in finally up again.
Added firmware update tools
2001-10-10: (osst 0.8.14 / 0.9.9)
Made changes required to have Arkeia work with osst. Have 'mt load' open door and wait for medium to be inserted when there is no tape in the drive. A few minor bug fixes. Tested with kernels 2.2.20pre10 and 2.4.9ac18 respectively.
2001-11-01: (osst 0.8.15)
Applied missing backport bug fix from 0.9.9.
2001-11-11: (osst 0.9.10)
Accomodate 64 bit PCI API in linux-2.4.13 that broke osst. Make recoverable read/write log messages less intimidating.
2002-05-18: (osst 0.9.11)
This is an experimental version for FW-30 support. crashes for me on write error recovery. Brave souls with FW-30 drives can try it out at their own risk. Reports welcome. Be sure to first update your ieee1394 drivers from debian. Fixes old Buslogic bug. Files shorter than one 32K frame now get written out. Osst now supports a proc file for each drive (/proc/scsi/osst/osstX) which provides 'ADRversion_major.minor linux_media_version first_data_ppos eod_frame_ppos filemrk_cnt'.
2002-12-12: (osst 0.9.12)
Fix a memory alloc/free mismatch that could have made your kernel unstable after rmmod osst. Fix a number of tape (re)positioning bugs around filemarks that affected Amanda, Arkeia and Storix backup software. Rationalize module parameters.
2002-12-31: (osst 0.8.16 / 0.99.0)
Backported 0.9.12 changes to Linux 2.2: osst-0.8.16. Forward ported them to Linux 2.5 kernel: osst-0.99.0. You need at least 2.5.53 if you use a DI-x0 on 2.5.xx system (even it still lacks a couple of fixes that hopefully will make it in 2.5.54).
2003-6-27: (osst 0.9.13)
Fixed a time out that occured with DI-x0 drives when skipping to EOD when there are several GB recorded on the tape. To make osst work for the Bacula backup application, made the driver write the EOD marker and update the Header when writing a file is terminated by moving the tape using ioctl.

(w) by WR, $Id: history.html,v 1.1 2003/11/30 22:30:18 wriede Exp $