# ftape-HOWTO - streamery w Linuxie - jak to zrobić

## Autor : Kevin Johnson, <kjj@pobox.com>
v2.0, 15 Marca 1997
Wersja polska : Jakub Chmielewski yacoob@manager.ae.wroc.pl
v0.99.1, 6 lipca 1997 roku.

Dokument ten zawiera najważniejsze przykazania dotyczące sterownika `ftape`. Sterownik ten obsługuje napędy zgodne z QIC-40, QIC-80, QIC-3010 i QIC-3020. Standardy QIC-3010 i QIC-3020 znane są też jako 'Travan' (TR-2 i TR-3). Napędy te łączą się z komputerem przez kontroler dyskietek (FDC). Niniejszy tekst nie dotyczy urządzeń SCSI ani streamerów zgodnych z QIC-02. Napędy DAT zazwyczaj (zawsze?) komunikują się z komputerem przez sterownik SCSI. Tekst ten jest jednym z wielu dokumentów HOWTO. Listę tych prac można znaleźć tutaj a same dokumenty można ściągnąć przez ftp z `ftp.icm.edu.pl`, `ftp.pwr.wroc.pl` (to są polskie mirrory) lub z `sunsite.unc.edu:pub/Linux/doc/HOWTO`. Można też je oglądać na WWW - każdy mirror LDP

## 1. Legalności

Niniejszy dokument (ftape-HOWTO) może być reprodukowany i rozprowadzany w całości pod następującymi warunkami:

> `

>     Copyright (c) 1993-1996 by Kai Harrekilde-Petersen
>     Email: khp@dolphinics.no

>     Copyright (c) 1996-1997 by Kevin Johnson
>     Email: kjj@pobox.com

>     Tłumaczenie na język polski:
>     Copyright (c) 1997 by Jakub Chmielewski
>     Email: yacoob@manager.ae.wroc.pl

> `

Linux ftape-HOWTO jest darmowy; możesz go kopiować, modyfikować zachowując jednak postanowienia wesji drugiej (i następnych) Licencji GNU General Public Licence opublikowanej przez Free Software Foundation.

Dokument ten został napisany aby pomóc/usprawnić pracę użytkowników systemu Linux, jednak autor NIE DAJE ŻADNYCH GWARANCJI. Więcej szczegółów znajdziesz w GNU General Public Licence.

Autor zachęca do kopiowania i dytrybucji niniejszego dokumentu w celach prywatnych jak i komercyjnych, pod warunkiem, że pozostają one w zgodzie z zaleceniami GNU General Public Licence. Oznacza to, że można go kopiować jednak bez żadnych opłat (z wyjątkiem tych pokrywających koszty reprodukcji) - czyli bez zysku. Autor (no i tłumacz) wyraża niniejszym zgodę na reprodukowanie swojej pracy w jakiejkolwiek postaci - fizycznej bądź elektronicznej.

Uwaga! Prace oparte na Linux ftape-HOWTO (w szczególności tłumaczenia) muszą być dostępne zgodnie z GNU General Public Licence i oryginalny copyright musi zostać nienaruszony. Jeśli dodałeś nowe informacje do tego dokumentu, musisz utworzyć jego tekst źródłowy (tzn w formacie SGML) aby móc go uaktualniać. Prześlij, proszę swoje uaktualnienia do autora: kjj@pobox.com. Pozwoli to na dołączenie twoich informacji do oryginału i pozwoli wszystkim się z nimi zapoznać.

Autor zachęca do załączania niniejszego dokumentu do dokumentacji twoich programów. Zgodnie z wcześniejszym zezwoleniem możesz ten tekst drukować lub w innej formie przekazywać osobom trzecim (oczywiście zachowując copyright). Możesz także, jeśli uznasz to za stosowne dołączyć odpowiedni ,,dodatek instalacyjny'' dotyczący twojego programu lub zmienić treść odpowiednich rozdziałów.

Autor chciałby być informowany o jakichkolwiek planach publikowania tego tekstu w celach komercyjnych. Zapewni to Tobie dostęp do aktualnych wersji dokumentu. Jeśli zdarzy się, że jego nowsza wersja będzie miała ukazać się lada dzień, może zechcesz poczekać z publikacją twojej pracy do czasu ukazania się najświeższej wersji.

Jeśli rozprowadzasz ten dokument w celach komercyjnych, wszelkie wartości materialne (finansowo płynne) jak i wydrukowane egzemplarze dokumentu przekazane autorowi spotkają się z jego wielką wdzięcznością. Wesprzesz w ten sposób autorów darmowego oprogramowanie oraz Linux Documentation Project.

Jeśli masz pytania, komentarze, oto adres autora: `kjj@pobox.com`.

## 2. Historia uaktualnień

wersja 2.0 (15.3.1997)

  - opis ftape w wersji 2.11 i 3.xx
  - mnóstwo innych uaktualnień
wersja 1.9 (20.9.1996)

  - Nowy administrator ftape i HOWTO.
  - Kilka drobnych poprawek w formatowaniu i ortografii.
  - Uaktualnienie do wersji 2.0 jądra.
  - Dodane niektóre informacje o ftape autorstwa Andrewa Martina.
wersja 1.8 (22.5.1996)

  - Zmieniony Copyright (zgodny z GNU GPL v2)
  - Zmienił się adres email administratora.
  - uaktualnienie do ftape-2.08
  - `ftape` jest teraz częścią jądra.
wersja 1.7.1 (13.2.1996)

  - Uaktualnienie do ftape-2.06b
wersja 1.7 (January 28.1.1996)

  - Uaktualnienie do ftape-2.06 i modułów-1.3.57
wersja 1.6.2 (23.1.1996)

  - Dodano opis Connor TST3200R.
  - Uaktualnino informacje o 2Mbps FDC.
wersja 1.6.1 (16.1.1996)

  - drobne poprawki
wersja 1.6 (10.1.1996)

  - Nowy administrator `ftape`'a
  - Uaktualnienie do w2.05
  - Dodane nowe napędy

## 3. Wstęp

Sterownikiem ftape i jego źródłami administruje Claus Heine <claus@momo.math.rwth-aachen.de>. Jego strona WWW znajduje się w http://samuel.math.rwth-aachen.de/~LBFM/claus/ftape/ftape-page.html.

Jeśli masz jakieś problemy, pytania związane z ftape, spróbuj umieścić je na liście `linux.dev.tape`. Jest to lista Usenet, która jest kopią listy dyskusyjnej `linux-tape@vger.rutger.edu` (zobacz też punkt Śledzenie rozwoju ftape'a) Polecam korzystanie z grup dyskusyjnych zamiast bezpośrednio z listy, ponieważ serwer `vger` jest co nieco przeciążony listami.

Wracając do streamerów osobiście używam `ftape` (to mój głównym środek archiwizacji danych na mojej maszynce :-). Nie chciałbym tutaj polecać jakiegokolwiek sprzętu. Ja używam Iomega Ditto Tape Insider 3200 i jest dla mnie wystarczający. Lista urządzeń obsługiwanych przez sterownik znajduje się w punkcie Napędy współpracujące z ftape'm.

Jeśli masz jakieś kłopoty ze streamerem a znalazłeś jakieś rozwiązanie podziel się swoimi uwagami z innymi (lista dyskusujna - `linux.dev.tape`) oraz ze mną (`<kjj@pobox.com>`).

Swoją pocztę przeglądam zwykle kilka razy na tydzień, staram się też odpowiadać na każdy list, ale nie mogę gwarantować, że odpiszę natychmiast. Często też przeglądam listy dyskusyjne `linux.dev.tape` oraz `kernel`'a

Jeśli niniejszy tekst dotarł do ciebie w formie drukowanej, lub też tylko w części odwiedź proszę stronę the Linux Documentation home page lub ftp to ftp://sunsite.unc.edu:/pub/Linux/doc/HOWTO aby dowiedzieć się czy nie ma nowszej wersji tego tekstu. Może to zaoszczędzić ci wiele kłopotu.

Jeśli zechcesz do mnie napisać, umieść proszę nagłówek `ftape` w linijce tematu listu. Może to uchronić twój list przed wirtualną śmiercią,

## 3.1 Co to jest `ftape`

`ftape` jest sterownikiem, który obsługuje różne typy tanich streamerów podłączanych do kontrolera dyskietek.

`ftape` nie jest programem archiwizującym - jest tylko sterownikiem, który pozwala używać tasiemca (tak samo jak sterownik SoundBlaster'a pozwala wykorzystać tę kartę) poprzez pliki `/dev/[n]rft[0-3]`.

Pierwsze wersje `ftape` zostały napisane przez Bas'a Laarhoven'a z ,,niewielką pomocą ze strony przyjaciół'', którzy pomogli rozgryźć ECC (Error Correcting Code). Prawa autorskie do `ftape`'a należą do Bas'a i są zgodne z GNU Genral Public Licence, która to mówi: ,,spoko, możesz kopiować i rozdawać to, tylko pozwól i innym to robić''.

`ftape` jest już od dłuższego całkiem stabilnym sterownikiem. Jest wystarczająco bezpieczny aby na taśmach można było składować ważne dane (chociaż dobrym nawykiem jest sprawdzać swoje archiwa co jakiś czas, żeby nie być (nie)mile zaskoczonym pewnego pięknego poranka...).

`ftape` współpracuje z napędaami zgodnymi ze specyfikacją QIC-117 oraz z jednym z następujących standardów: QIC-80, QIC-40, QIC-30101 lub QIC-3020.

`ftape` nie współpracuje z napędami QIC-02, IDE (ATAPI) ani SCSI. Współpraca z napędami SCSI jest możliwa dzięki plikom `/dev/[n]st[0-70` oraz jądru, które zawiera sterowniki SCSI. Informacje o napędach SCSI można znaleźć w `SCSI-howto`. Urządzenia ATAPI są obsługiwane przez kernel (jądro) od wersji 1.3.46. Zajrzyj do punktów Napędy współpracujące z ftape oraz Napędy nie współpracujące z ftape, w których znajduje się spis tych urządzeń.

## 4. Instalacja `ftape`'a

## 4.1 Gdzie można znaleźć `ftape`

Wersje 2.0.x jądra zawierają sterownik `ftape` w wersji 2.08. Jednak najlepiej zdobyć najnowszą wersję kodu źródłowego. Nowsza wersja zawiera pliki nie dołączone do jądra oraz dużo bogatszą dokumentację dotyczącą instalacji itd.

Najświeższe wersje sterownika (2.11a i wyżej) dostępne są na stronie http://samuel.math.rwth-aachen.de/~LBFM/claus/ftape/ftape-page.html. Gdy piszę ten dokument dostępna jest już wersja 3.xx `ftape`'a. Niemniej polecam starsze wydanie (2.xx), chyba że masz ochotę igrać z ogniem (3.xx jest wersją rozwojową i z pewnością ma kilka robaczków `:-)` ).

## 4.2 Instalacja sterownika

Niniejszy punkt zawiera informacje dotyczące instalacji sterownika w2.11a i czynnościach, które muszą ją poprzedzać.

Zakładam, że masz już skompresowany kod źródłowy (najprawdopodobniej `ftape-2.11a.tar.gz`). Umieść go w katalogu docelowym (np `/usr/src` lub `~/src`) rozpakuj komendą `tar xvzf ftape-2.11a.tar.gz` Wszystkie pliki zostaną umieszczone w podkatalogu `ftape-2.11a` czyli w `/usr/src/ftape-2.11a` albo `~/src/ftape-2.11a`. Można też wrzucić cały pakiet do `/usr/src/linux/drivers/char/ftape` ale osobiście radzę najpierw przeczytać dokumentację a potem zdecydować gdzie go umieścić.

Na początek przeczytaj plik `README` - zawiera on bardzo ważne informacje. Jeśli autor radzi zajrzeć do innych plików i zapoznać się z ich treścią - zrób to. Uchroni cię to przed przykrymi niespodziankami później i znacznie uprości dalszą instalację.

Dobra rada: NIE rozpoczynaj instalacji (kompilacji) pakietu jeśli dokładnie nie przeczytałeś `README` lub `Install-guide`. W pliku `README` autor wspomina o liście dyskusyjnej `linux-tape`. Ja radzę jednak zapisać się na `linux.dev.tape`, ponieważ serwer obsługujący tą pierwszą jest, jak już wspominałem, przeładowany.

Są dwa sposoby korzystania z `ftape`'a

- Skompilować sterownik jako stałą część jądra.
- Skompilować go jako moduł.

Pierwsza metoda będzie zapewne nastręczać mniej kłopotów. Zaletą drugiej jest fakt, że moduł ładowany jest do pamięci tylko wtedy, gdy jest potrzebny (zawsze można go zdeinstalować bez konieczności przeładowania systemu). Autor wczesnych wersji sterownika (Bas Laarhoven) twierdzi jednak, że nie był on przeznaczony do kompilacji jako moduł (od tego czasu wiele się zmieniło i teraz `ftape` działa bez zarzutu w obydwu wersjach - przynajmniej u mnie - tłumacz `:)` ).

Na swoim komputerze sterownik kompiluję bezpośrednio do jądra. Myślę, że jest to lepsze rozwiązanie, ponieważ mniej jest z tym problemów. Radzę tak właśnie zrobić, chyba że masz dobry powód aby postąpić inaczej i jesteś przygotowany na komplikacje, które mogą wyniknąć podczas przygotowywania modułów. Jeśli zdecydujesz się kompilować sterownik bezpośrednio do jądra, to:

- pamiętaj że nie można używać `zftape` zamiast `ftape` ponieważ obydwa te programy używają tego samego bardziej znaczącego numeru sterownika,
- możesz pominąć większość instrukcji dotyczących przygotowywania modułów.

Jeśli używasz jądra w wersji 1.2, powinieneś zaopatrzyć się także w pakiet modules-1.3.57 a nie modules-1.2.8. (Bjø rn Ekwall, administrujący pakietem modules to właśnie zaleca).

Jeśli masz wersję 1.3.x jądra, powinieneś rozważyć przejście na wersję 2.0.x. Jądro 1.3.x było wersją rozwojową zanim powstała stabilna 2.0.x.

## 4.3 Śledzenie rozwoju `ftape`'a

Rozwój `ftape`'a można śledzić dzięki liście Usenet `linux.dev.tape`. Jak już wcześniej wspomniałem jest to kopia `linux-tape@vger.rutgers.edu` ale ze względu na przeciążenie tego serwera, radzę korzystać z Usenet'u.

Jeśli nie masz dostępu do Usenet'u możesz zapisać się na tę listę wysyłając e-mail'a do `majordomo@vger.rutgers.edu` o następującej treści: `subscribe linux-tape`'. Na początek otrzymasz list zawierający informacje o sposobie korzystania z listy (wysyłanie własnych uwag, sposób wypisania się z listy itd.) Miej jednak na uwadze, że nie mam (NIE MAM) żadnych przywilejów jeśli chodzi o tę listę. Nie jestem w stanie wypisać cię z niej, jeśli serwer nie chce zrobić tego automatycznie, mogę co najwyżej wysłać ci list z kondolencjami (co ci w niczym nie pomoże).

## 4.4 Współpraca `ftape` i stacji dyskietek

Jako, że streamer i stacja dysków łączą się z tym samym kontrolerem (i wykorzystują to samo przerwanie - IRQ6) nie mogą pracować równolegle. Dlatego, jeśli zamontowałeś już (`mount`) stację dysków i spróbujesz odwołać się do streamera, `ftape` wyświetli komunikat, że nie może przejąć przerwania IRQ6 i odmówi współpracy. Staje się to szczególnie uciążliwe, gdy chcesz stworzyć dyskietkę systemową (ratunkową), która korzystałaby z `ftape`'a. Rozwiązaniem jest albo ładowanie dyskietki startowej do ramdysku i wtedy odłączenie stacji dysków (umount) albo zaopatrzenie się w dwa kontrolery FDC.

## 5. Taśmy i streamer w użyciu

## 5.1 Formatowanie

Zanim taśma jest zdatna do użytku, musi zostać najpierw sformatowana. Proces formatowania dzieli taśmę na sektory i zapisuje najważniejsze informacje na nośniku. Inne streamery (SCSI itd) zwykle nie wymagają formatowania, ale te podłączane do FDC muszą po prostu udawać dyskietki (trochę to dziwne, ale tak to już jest).

### Czy można formatować taśmy pod Linuxem?

Nie. (Na razie, bo trwają już prace nad tym)

Dopóki nie można tego robić pod Linuxem, trzeba niestety używać M* DOSa (Tfu!Błeeh...) albo kupować taśmy już sformatowane. Trzeba jednak pamiętać, że niektóre preformatowane taśmy zostały przygotowane bez sprawdzania czy nie zawierają błędnych sektorów!. Jeśli `ftape` stwierdzi, że taśma nie ma zaznaczonych żadnych błędnych sektorów, poinformuje cię o tym specjalnym ostrzeżeniem. Jeśli `ftape` będzie miał kłopoty z odczytem/zapisem twojej nowej taśmy, spróbuj sprawdzić ją pod DOS'em. Jeśli i dosowskiemu oprogramowaniu nie spodoba się twoja taśma, rozwiązaniem może być przeformatowanie jej. Pamiętaj jednak, że zanim będziesz mógł używać nowo sformatowane taśmy, musisz je najpierw wyczyścić poleceniem:

> `

>             # mt -f /dev/nftape erase

> `

### Jakich programów używać do formatowania taśm (dla DOS'u)?

Poniżej wymienione zostały programy, które zostały sprawdzone i chodzą:

- Colorado Memory System's software (`tape.exe`)
- Conner Backup Basics v1.1 i wszystkie wersje pod Windowsy
- Norton Backup
- QICstream wersja 2
- Tallgrass FileSecure v1.52
- Escom Powerstream 3.0 (`qs3.exe` -- QICstream v3?)

A te programy są mniej lub bardziej pewne:

- Conner Backup Basics 1.0
- Colorado Windows tape
- CP Backup (marnuje miejsce na taśmie, ale poza tym jest w porządku)

W zasadzie większość programów pod DOS'em całkiem nadaje się do formatowania taśm. Program Conner Backup Basics v1.0 miał błąd spowodowany złą interpretacją specyfikacji QIC przez programistów (sic). Błąd ten został poprawiony w wersji 1.1. `ftape` wykryje tę usterkę i nie ,,wysypie'' się na niej.

Od Dennisa T. Flaherty (`<dennisf@denix.elk.miles.com>`) dowiedziałem się ostatnio, że posiadacze Connera C260MQ (niestety tylko w USA) mogą otrzymać wersję 1.1 tego programu dzwoniąc pod numer 1-800-4Conner za darmo lub płacąc tylko za dyskietkę. Dla innych pocieszenie - wersja dla Windows nie ma tego błędu i powinna działać dobrze. Niektóre wersje oprogramowania pod Windows'y dla streamerów Colorado mają

błąd, ale `ftape` rozpoznaje i ,,obchodzi'' go.

Dobrym programem jest także Central Point Backup ale ten znów marnuje drogocenne miejsce na taśmie gdy znajdzie jakiś uszkodzony sektor.

UWAGA: Jeśli używasz innego oprogramowania pod DOS'a, nie wymienionego przeze mnie, napisz do mnie ( <kjj@pobox.com> żebym mógł uaktualnić powyższą listę.

## 5.2 Retenstioning

Taśmy QIC są szczególnie wrażliwe na rozciąganie. Powodem tego jest fakt, że podczas preformatowania zapisywana jest na nich informacja o sektorach, podczas gdy w innych rodzajach streamerów informacje synchronizacji (pozycjonowania) są zapisywane wraz z twoimi danymi. Jeśli taka taśma rozciągnie się, mogą wystąpić przekłamania odczytu (sektor się wydłuża). Oczywiście im dłuższa taśma, tym większe niebezpieczeństwo uszkodzenia nośnika.

Dobrym rozwiązaniem jest więc kilkuktrotne ,,retensionowanie'' (czyli rozprężanie) nowej taśmy przed pierwszym użyciem (zapisem danych albo formatowaniem). Retensionowanie taśmy zalecane jest także wtedy, gdy podczas odczytu występują błędy oraz przed każdym dokonaniem zapisu na taśmę.

> `

>             # mt -f /dev/nftape retension

> `

## 5.3 Czyszczenie napędu

Powierzchnia taśmy pokryta jest związkiem tlenu. Kiedy nośnik styka się z głowicą zostawia na jej powierzchni niewielką ilość osadu. Co jakiś czas powinieneś ją czyścić. najlepiej użyć miękkiej szmatki lub czegoś z naturalnych włókien (żeby nie porysować głowicy) oraz płynu czyszczącego zalecanego przez producenta streamera. (Producent Jumbo-250 poleca zwykły czysty spirytus - swój chłop - tłumacz). Sposób czyszczenia powinien być opisany w instrukcji.

Jeszcze jedna uwaga: jeśli zacząłeś korzystać z zupełnie nowej taśmy, powinieneś także wyczyścić głowicę - nowe taśmy zostawiają więcej osadu po pierwszym użyciu.

Podziękowania dla Neal'a Friedman'a za doradzenie aby te informacje umieścić w tym dokumencie.

## 5.4 Napędy współpracujące z `ftape`

Wszystkie napędy zgodne z QIC-117 oraz zgodne z QIC-40, 80, 3010 lub 3020 powinny działać. `ftape` rozpoznaje także streamery QIC-WIDE i Travan (TR-1 to po prostu QIC-80 na 8 mm taśmie, TR-2 i TR-3 to odpowiednio QIC-3010 i 3020).

Na dzień dzisiejszy znane mi są następujące urządzenia współpracujące z `ftape`

Alloy Retriever 250

Archive 5580i, XL9250i

Colorado DJ-10, DJ-20 (tzn: Jumbo 120, Jumbo 250)

Colorado 1400

  <kosowsky@bellini.harvard.edu> poinformował mnie o kłopotach podczas archiwizowania 1GB danych za pomocą tapera.

HP Colorado T1000

  działa z taśmami 3M Travan 400M (TR-1) 120M. Zgłoszono już kilkukrotnie, że mt zawiesza się, ale działa z archiwami utworzonymi przez tar. Jeśli chcesz posługiwać się cpio, korzystaj raczej z ftape a nie z zftape. (<millner@millner.bevc.blacksburg.va.us>)

  Wiele osób miało problemy z zftape - napęd ciągle zatrzymywał się i wznawiał pracę (<75104.1756@compuserve.com>). Wydaje się, że winny jest napęd, który zbyt szybko czyta dane i komputer gubi je; bufory DMA są opróżniane zanim zdążą się zapełnić. Rozwiązanie jest tu proste - użyć nowszej wersji zftape albo stosować większe bufory DMA. (<millner@millner.bevc.blacksburg.va.us>).

Conner C250MQ(T)

  Napęd ten zgłasza błedy zapisu i często repozycjonuje taśmę (Frank Stuess z Nacamar Data Communications).

Conner TSM420R, TSM850R

  Modele 400 i 800 współpracują tylko z taśmami TR-1.

Conner TST3200R

  Pracuje z taśmami TR-3 (tzn. tylko pojemność 1600MB) przy prędkości 1Mbps. Współpracuje też z QIC-WIDE 400m (Sony 5122?) (<chris@cs.wmich.edu>). Obsługuje też taśmy TR-3, QIC-3010 oraz QIC-3020. Napęd dostarczany jest z kontrolerem FDC z 2MB RAMU na pokładzie.

  Prawdopodobnie współpracuje z ftape 2.05 jeśli podłączony jest do szybkiego kontrolera (żeby móc korzystać z QIC-3020). Niektórzy nie mogą odczytywać rzadkich dyskietek. Prawdopodobnie trzeba grzebać w IRQ/portach/DMA (<chris@yakkocs.wmich.edu>).

Conner TST800R

  Działą z taśmami TR-1, Sony QW5122F (210m) i DC2120. Ponoć pracuje z ftape 2.02e (ale nie 2.03b) oraz z v2.05 (<khp@pip.dknet.dk>). Wymaga patcha ''the length patch''. Zgłoszono mi, że możesz potrzebować zmodyfikować Makefile żeby upewnić się, że ftape odwołuje się do pierwszego (PRIMARY) kontrolera dyskietek (<jzc@primenet.com>). Pojawia się także błąd "Timer expired" gdy używane są taśmy TR-1 i ftape 2.05-2.07) (<les@amc.uva.nl>).

Conner CTT3200

  CTT3200 jest przypuszczalnie odpowiednikiem Iomega Ditto 3200. Działa z dołączonym kontrolerem 2Mbps ale przy szybkości 1Mbps. Na niektórych maszynach nie działa pod DOSem (<jmorris@dtx.net>).

Conner 1.7G Tapestor (TSM1700R)

  Działa z nośnikami QIC-WIDE (<pschmidt@slip.net>). Częściowo także z QIS-3200. Jeśli używasz kontrolera HSC-2, musisz zmienić numer kanału DMA (zwiększyć o 1, kanał 2? - w Makefile). Potem musisz zmodyfikować plik Makefile ftape'a, żeby ten uwzględnił zmiany. Jednak, nawet z tymi poprawkami ftape nie działa do końca poprawnie (co to znaczy flaky???) (<ttait@tiac.net>). Kontroler HSC może nie działać w trybie 2Mbps - wyświetlany jest tylko komunikat "dumb tape stop" i koniec. (<ttait@tiac.net>).

Escom or Archive (Hornet) 31250Q

Exabyte EXB-1500

  Działa z taśmami QIC-3010, wymaga jednak łatki (,,the length patch'').

Exabyte TR-3

Irwin 80SX, Insight 80Mb

Iomega 250

Iomega Ditto Tape Insider 420, 1700

Iomega Ditto Tape Insider 3200

  Właśnie tego streamera używam. Z mojego doświadczenia wiem, że standardowe ustawienie jumperów uniemożliwia poprawne działanie napędu. Numer irq i ioport pozostaw bez zmian (odpowiednio 6 i 0x370) ale zmień DMA z 3 na 2.

  W starszych wersjach `ftape` trzeba dodać następującą linię do pliku `vendors.h`: `{0x08882, 80, wake_up_colorado, "Iomega 3200"}`

  Problemy występują także z ftape v2.07 i jądrem 1.12.13. Jakiegokolwiek akceleratora by nie używać, na niektórych komputerach, napęd może być użyty tylko raz (<erwin@box.nl>). Czasami, także po pierwszym zapisie/odczycie, sterownik uznaje taśmę za zabezpieczoną przed zapisem (<erwin@box.nl>, <M.J.Ammerlaan@dutiwy.twi.tudelft.nl>). Zgłoszono raz wypadek przewinięcia taśmy poza swój koniec (czyli urwania jej...). Na inny błąd natrafiono podczas tworzenia archiwum komendą `dd`. Na początku działa poprawnie ale potem streamer zatrzymuje się, przewija taśmę do początku i zaczyna czytać aż do końca taśmy. Dzieje się tak najprawdopodobniej dlatego, że sterownik zatrzymuje taśmę na chwilę, co powinno spowodować przewinięcie jej o 3 segmenty w tył, ale zamiast tego taśma przewija się do początku. Patch, który miał naprawić te błędy niestety nie działa.

Iomega Ditto 800 Insider

  Można używać taśm Travan TR1, TR2 albo DC2120, ale trzeba użyć łatki ,,the length patch''

  (<klein@informatik.uni-rostock.de>).

Mountain FS8000

Reveal TB1400

  Zgłoszono, że nie działa z jądrem 1.3.79 i ftape (nie podano numeru wersji) oraz jądrem 1.2.13 i zftape 1.04 (<colin@colina.demon.co.uk>).

Summit SE 150, SE 250

Tallgrass FS300

  Jeśli twój kontroler to AHA1542B, musisz zwiększyć jego czas bus-on/bus-off. Antti Virjo (`<klanvi@uta.fi>`), pisze, że można tego dokonać zmieniając `CMD_BUSON_TIME` w pliku `linux/drivers/scsi/aha1542.c` z 4 na 12.

Teac 800

Memorex tape drive backup system

Wangtek 3040F, 3080F

W pliku `vendors.h` (katalog linux/drivers/char/ftape) znajduje się aktualna lista urządzeń obsługiwanych przez daną wersję `ftape`'a.

Jeśli chodzi o dobór sprzętu, to chociaż nie chciałbym tu specjalnie krytykować kontretnych urządzeń, doszły mnie słuchy, że Colorado Dj-20 (czyli Jumbo 250 - mój sprzęt! - tłumacz) jest raczej hałaśliwy (jak Jumbo Jet, ale co z tego? :( ). Mówi się, że nawet 5-10 razy głośniejszy od Connera (jakby to hałas miał jakikolwiek wpływ na dane - po prostu nie robić backupów w nocy i po kłopocie :).

UWAGA: Jeśli posiadasz sprzęt nie wymieniony na tej liście (albo `vendors.h`) , który mimo to dobrze współpracuje z `ftape`'m zgłoś ten fakt autorowi HOWTO (`<kjj@pobox.com>`).

## 5.5 kontrolery współpracujące z `ftape`

`ftape` obsługuje następujące specjalne kontrolery :

- Colorado FC-10, FC-20
- Mountain MACH-2
- Iomega Tape Accelerator II
- 2Mbps controllers (posiadające i82078-1 fdc)

Obsługę kontrolera FC-10 włączono do `ftape'`a w wersji 1.12. Więcej informacji można znaleźć w plikach `RELEASE-NOTES` i `Makefile` w pakiecie `ftape`. Wersje 2.03 sterownika powinny obsługiwać już FC-20, ale dla pewności sprawdź w `RELEASE-NOTES`.

MACH-2 działa ze sterownikiem w wersji 1.14d wzwyż.

Aby móc korzystać z Iomega Tape Accelerator II, musisz użyć `-DMACH2` (Makefile) oraz ustawić poprawne adresy I/O, IRQ oraz DMA. Będzie to działać przynajmniej z `ftape-2.02` (wypróbowane przez Scott'a Bailey'a <sbailey@xcc.mc.xerox.com>)

### Iomega Ditto Dash i inne kontrolery 2Mbps

Iomega Ditto Dash i inne kontrolery z możliwością transferu 2mbps używają układu Intel 82078-1. Obsługa tego układu jest cały czas w fazie rozwoju. Prace mają być zakończone w styczniu lub lutym '97 (czyli już dawno temu). Na razie jednak kontroler ten działa z normalną prędkością 1Mbps.

## 5.6 Napędy nie współpracujące z `ftape`

- Wszystkie napędy podłączane do portu równoległego (np Colorado Trakker) To nie do końca jest już prawdą - patrz punkt Od tłumacza
- Irwin AX250L / Accutrak 250. (niezgodne z QIC-80 drive)
- IBM Internal Tape Backup Unit (odpowiednik Irwin AX250L)
- COREtape light

Jak już wcześniej wspomniałem WSZYSTKIE napędy podłączane do LPT nie są obsługiwane (a ja już wcześniej zauważyłem, że to się zmieniło ;) - tłumacz). Jest to spowodowane tym, że używają one innego sposobu komunikowania się z komputerem, który nie jest zgodny z QIC-117.

Irwin AX250L oraz IBM Internal Tape Backup Unit nie współpracują z `ftape`'m ponieważ są zgodne jedynie z QIC-117 ale nie z QIC-80 (używają własnego formatu (''servo (Rhomat)''). Nie wiem niestety nic o tym formacie ani gdzie można zdobyć jakieś informacje o nim.

COREtape light nie reaguje na komendy inicjujące, wysyłane przez sterownik, co czyni ten napęd bezużytecznym.

Iomega 2GB Ditto także nie działa z `ftape`'m, ponieważ używa własnego formatu, na temat którego Claus (zarządzający `ftape`) nie mógł uzyskać żadnych informacji.

## 5.7 Współpraca zewnętrznego streamera z `ftape`'m

Jeśli masz kontroler FDC, posiadający żeńskie łącze DB37 i masz możliwość dostarczenia zasilania do streamera, możesz używać go z `ftape'm`. Dobra, nie jest to zbyt zrozumiałe. Spróbujmy inaczej. Niektóre starsze kontrolery FDC mają złącze DB37 na krawędzi, służące do podłączania zewnętrznych stacji dysków.

Jeśli zaopatrzysz się w odpowiedni kabel podłączany do tego wejścia (czytaj: sam sobie go zrobisz), możesz zmusić `ftape`'a do obsługi twojego tasiemca. Sterownik nie rozróżnia bowiem zewnętrznych i wewnętrznych urządzeń. I dlatego dla niego oba warianty są identyczne.

- Pins 20-37: GROUND
- 1: +12 Volt (POWER)
- 2: +12 Volt return (GROUND)
- 3: +5 Volt return (GROUND)
- 4: +5 Volt (POWER)
- 5: 2
- 6: 8
- 7: 10
- 8: 12
- 9: 14
- 10: 16
- 11: 18
- 12: 20
- 13: 22
- 14: 24
- 15: 26
- 16: 28
- 17: 30
- 18: 32
- 19: 34

UWAGA!! - dostępny jest już patch `parport`, który umożliwia obsługę urządzeń podłączanych do LPT (nie tylko streamerów) oraz patch obsługujący Trakkera (patrz punkt Od tłumacza).

Wtyczka zasilania to ta mała, taka jak w stacji 3,5". Musisz taką wtyczkę podłączyć do gniazda DB37. Jeśli chcesz użyć tylko jednego kable, możesz użyć 50 żyłowego i użyć kilku połączeń dla zasilania (i uziemienia).

Dotychczas nikt nie zgłosił mi, że takie coś działa. Jeśli tobie się uda pisz!

## 5.8 Płyty główne PCI i `ftape`

Niestety, niektóre płyty główne stwarzają problemy podczas używania `ftape`'a. Niektórzy mieli kłopoty z odpaleniem `ftape`'a na płycie PCI, a na zwykłęj 386-ce z ISA program chodził bez problemów (z tym samym streamerem). Jeśli ty także masz podobny problem, przejrzyj plik `README.PCI` w katalogu ftape'a.

## 6. Archiwizowanie i odtwarzanie danych

Punkt ten opisuje niektóre funkcje `tar` i `mt`.

## 6.1 Archiwizowanie

Do tego celu służą `tar`, `dd`, `cpio`, oraz `afio`. Jednak aby móc w pełni wykorzystać możliwości swojej zabawki będziesz musiał użyć komendy `mt`. Na początek radzę poznać `tar`, ponieważ za jego pomocą można zarchiwizować całe drzewo katalogów oraz odtworzyć pojedyncze pliki. `cpio` tworzy mniejsze archiwa, jest bardziej elastyczny od `tar`'a, chociaż nie ma niektórych opcji, jak np nadawanie nazw woluminom. `afio` tworzy archiwa, w których każdy plik jest spakowany a następnie dołączony do archiwum. To pozwala odzyskać pliki znajdujące się za miejscem wystąpienia błędu (np uszkodzania nośnika). Jeśli takie archiwum utworzone byłoby `tar`'em i `gzip`'em wszystkie dane znajdujące sie za tym miejscem zostałyby utracone! (Dla mnie jest to dobry powód, żeby nie kompresować danych przy archiwizacji). Wybór metody archiwizacji zależy od sytuacji oraz zalet i wad każdego z tych programów. Polecam zapoznać się z każdym z nich i samemu ocenić ich walory. Możliwe jest, że w przyszłości dokument ten zawierać będzie więcej informacji na ten temat.

No to bierzmy się do roboty!

Aby zachować katalog `/usr/src/linux` wraz z podkatalogami używając `tar`'a trzeba wydać polecenia:

> `

>             # cd /usr/src
>             # tar cf /dev/ftape linux

> `

Tą metodą dane zostaną zapisane bez kompresji, ale komputer będzie mógł nadążyć z dostarczeniem danych do streamera (Taśma nie będzie co chwila przewijana w tę i spowrotem). Jeśli chcesz skompresować dane użyj parametr(*) `-z`, np:

``tar czf /dev/ftape linux`'

Więcej informacji o `tar`, `dd` i `mt` można znaleźć na stronach poręcznika (man pages) i w plikach texinfo dołączonych do tych programów.

(*) `tar` zakłada, że piersze parametr jest opcją/parametrem programu, nie trzeba więc używać ``-`'. Na przykład komendy ``tar xzf /dev/ftape`' oraz ``tar -xzf /dev/ftape`' są interpretowane identycznie.

## 6.2 Odtwarzanie danych

Dobra, teraz odtworzymy dane zapisane w poprzednim punkcie ( Archiwizowanie). Wpisz:

> `

>             tar xf /dev/ftape

> `

i to wszystko...

Jeśli skompresowałeś dane, napisz:

> `

>             tar xzf /dev/ftape

> `

Na samym końcy archiwum `gzip` najprawdopodobniej uraczy cię komunikatem o jakichś smieciach (co zakończy się komunikatem 'broken pipe' - tu urwane archiwum). Zignoruj to.

Informacje o innych narzędziach znajdziesz na stronach podręcznika.

## 6.3 Weryfikacja archiwum

`tar` posiada opcję `d` która umożliwia wykrycie różnic między archiwum na taśmie i plikami na dysku. Żeby zweryfikować poprawność zapisanych danych napisz:

> `

>             tar df /dev/ftape

> `

Jeśli nie masz na swoim dysku strony podręcznika do `tar`, to listę opcji możesz otrzymać pisząc: ``tar --help 2>&1 | less`'

## 6.4 Zapisywanie kilku(nastu) archiwów na jednej taśmie

Żeby umieścić kilka archiwów na jednej taśmie musisz użyć programu `mt`. Jeśli używasz, którejś z popularnych dystrybucji (Slackware, Debian albo RedHat) najprawdopodobniej maż już go zainstalowanego.

Programy takie jak `tar` and `cpio` tworzą pojedyncze Taśmowe ARchiwum i nie mają bladego pojęcia o pozycjonowaniu taśmy (odnajdywaniu konkretnego archiwum na taśmie), one po prostu czytają albo zapisują co im się pod głowice napatoczy. `mt` potrafi przewijać taśmę do przodu i do tyłu ale nie umie czytać danych. Jak już pewnie zauważyłeś umiejętne posługiwanie się `tar`'em lub `cpio` oraz `mt` pozwoli na swobodne przemieszczanie się po taśmie i pełną nad nią kontrolę.

Aby skorzystać z dobrodziejstw `mt` musisz korzystać z pseudo-plików urządzeń `nrft[0-3]` (`nftape`), np: `mt -f /dev/nftape fsf 2` spowoduje przesunięcie taśmy o dwa pliki (file marks) do przodu (pliki utworzone przez np `tar`'a). Potem używając `tar`'a lub `cpio` odczytujemy interesujące nas pliki.

Najczęściej pliki `nrft[0-3]` (tzw non-rewinding - czyli takie, które nie powodują przewinięcia taśmy automatycznie do początku po każdej zakończonej operacji) używane są do dołączaniam nowego pliku na końcu taśmy. A oto konkretny przykład:

- Włóż kasetkę do napędu. W niektórych urządzeniach może to spowodować automatyczne przewinięcie taśmy do początku.
- wydaj polecenie End-of-Tape (na koniec taśmy) urządzeniu nrft

  > `

  >      mt -f /dev/n???? eof

  > `

  Taśma powinna zostać przesunięta na koniec taśmy (a konkretnie - pomiędzy dwa znaczniki End-Of-File (EOF) 2*EOF=EOT) . Teraz napęd oczekuje kolejnych komend i nie zacznie przewijać taśmy dopóki program/użytkownik nie wyda stosownej komendy (np czytania/zapisu/przewinięcia usunięcia modułu ftape z pamięci itd.) Uwaga: na urządzeniach QIC można użyć krótszej komendy: ``mt eof`'
- Teraz głowica taśmy ustawiona jest dokładnie na znaku EOT (Koniec Taśmy). Nie oznacza to jednak, że w tym miejscu kończy się taśma (no proszę...), tylko że tu kończy się ostatni plik archiwalny. Reszta taśmy jest puściutka i czeka na dane. Jeśli teraz rozkażemy komputerowi zapisać coś na taśmie, ten dołączy nowy plik bez kasowania starych. Jeśli zaś zechcemy odczytać z taśmy wystąpi błąd (Nie ma przecież czego czytać). Wracając do znaku EOT - składa się on z dwóch znaków EOF (Koniec pliku). Jeśli zapisujemy coś na koniec taśmy, drugi z tych znaków jest automatycznie kasowany, a pierwszy pozostaje i później będzie interpretowany jako zwykły znacznik końca pliku. Zapisywanie znaku EOF jest dokonywane przez program (na końcu każdego pliku) albo przez sterownik, gdy wykonywana jest instrukcja close().
- Możemy już zapisywać dane...

  > `

  >     # tar cf /dev/ftape linux

  > `

- A teraz uwaga: Przewiń taśmę do początku. `ftape` i `zftape` przechowują niektóre dane (które powinny być zapisane w nagłówku taśmy) w pamięci operacyjnej. Dane te są umieszczane na taśmie dopiero wtedy, gdy zostaje ona przewinięta! Buforowanie to jest potrzebne, ponieważ bez niego komputer musiałby uaktualniać nagłówek nośnika, po każdej operacji zapisu, a ciągłe przewijanie kasetki jest czynnością dość zarówno długotrwałą jak i niezbyt ,,zdrową'' dla taśmy. Wadą tego rozwiązania jest możliwość utraty danych, gdy zapomnisz o przewinięciu taśmy.

## 6.5 Dołączanie nowych plików do archiwum

,,Czy można rozszerzać archiwum - utworzyć je a poźniej dołączać pliki na jego końcu?''

Nie. Chociaż w dokumentacji `tar`'a stoi jak byk, że za pomocą `tar -Ar`' można tego dokonać, z `ftape`'m to nie działa (przynajmniej na razie).

## 6.6 Montowanie/demontowanie (mount/umount) taśm

Jako, że streamer nie tworzy żadnego formalnego systemu plików (file system) na taśmie, nie można używać komendy mount/umount. Operacji na zawartości nośnika dokonuje się tylko przy użyciu `tar`'a albo innego programu przeznaczonego do obsługi streamera.

## 7. Tworzenie dyskietki systemowej (startowej) dla `ftape`

Niniejszy rozdział zostałnapisany przez Clausa Tøndering `<ct@login.dknet.dk>`.

Kiedy już zostaniesz szczęśliwym właścicielem streamera i całej kolekcji tasiemek z kopiami bezpieczeństwa zapytasz się pewnie: ,,Jeśli cały dysk twardy szlag weźmie i stracę wszystkie dane, w jaki sposób odtworzę zawartość moich taśm?''

Będziesz potrzebował zapasowej dyskietki startowej, zawierającej odpowiednie pliki (/dev/*rft*) oraz oprogramowania umożliwiających odtworzenie twojego twardziela z taśm.

Pierwszą rzeczą, którą powinieneś zrobić zanim zaczniesz czytać dalej jest zapoznanie się ,,Bootdisk HOWTO'' napisanym przez Grahama Chapmana <grahamc@zeta.org.au>. Dokument ten zawiera wszystkie przydatne informacje na temat tworzenia dyskietek systemowych. Poniższy tekst zawiera kilka dodatkowych wskazówek, które ułatwią ci pracę z Bootdisk-HOWTO.

- Nie będziesz potrzebował `/etc/init`, `/etc/inittab`, `/etc/getty`, ani `/etc/rc.d/*`. Jeśli Linux nie znajdzie `/etc/init/`, uruchomi shell `/bin/sh` na twojej konsoli, który wystarczy do odtworzenia danych. Skasowanie tamtych plików zwiększy ilość wolnego miejsca na dyskietce, którego będziesz prawdopodobnie potrzebował.
- Zamiast klasycznego `/bin/sh` użyj jakiegoś małego jego odpowiednika. Można je znaleźć na dyskietkach startowych wchodzących w skład każdej dystrybucji Linuxa(RedHat, Debian....). To także da ci kilka dodatkowych kilobajtów na dyskietce. Sugerowałbym tu `ash`, który jest bardzo mały (około 62KB), a przy tym zgodny z `bash`'em.
- Plik `/etc/fstab`, który zostanie umieszczony na dystkietce powinien wyglądać mniej więcej tak:

  > `

  >     /dev/fd0        /               minix   defaults
  >     none            /proc           proc    defaults
  >     /dev/hda        /mnt            ext2    defaults

  > `

  Zaraz po wystartowaniu systemu z dystketki wpisz:

  > `

  >     # mount -av

  > `

  co spowoduje ,,zamontowanie''
- Zanim odwołasz się do streamera pamiętaj o zdemontowaniu stacji dyskietek. Jeśli tego nie zrobisz, system pozdrowi cię komunikatem:

  > `

  >     Unable to grab IRQ6 for ftape driver

  > `

  Pamiętakj bowiem, że streamer i stacja dysków używają tego samego przerwania. To oznacza, że będziesz musiał załadować dyskietkę startową do RAMDYSK'u. Jest to o tyle niewygodne, że programy służące do odtwarzania zawartości taśmy nie mogą być uruchamiane z dyskietki. Masz dwie możliwości:
  1. Umieść programy, których używasz do obsługi streamera (`tar`, `cpio`...) na dyskietce systemowej (właśnie po to potrzebowałeś sporo wolnego miejsca na niej). Programy te zostaną zgrane do RAMDYSK'u.
  2. Zanim przystąpisz do odtwarzania danych, skopiuj `tar`'a (albo `cpio` albo ....) na twardy dysk i stamtąd je uruchamiaj.
- Oprócz programów archiwizujących potrzebował będziesz pewnie `mt`. Umieść go także na swojej dyskietce.
- Upewnij się, że pseudo plik streamera (np `/dev/nrft0`) także znajduje się na niej.
- Na koniec : WYPRÓBÓJ JĄ;. Oczywiście nie namawiam cię do wykasowania całej zawartości twardziela, żeby zobaczyć, czy będziesz mógł go odtworzyć (czynność trochę samobójcza). Polecam jednak załadowanie systemu z tej dyskietki i spróbowanie przynajmniej wyświetlenia listy plików znajdujących się na taśmie.

## 8. Często zadawane pytania (FAQ)

Poniżej przytoczone zostały pytania, które mogą zostać potraktowane jako FAQ. Jeśli uważasz, że poniższa lista powinna zostać rozszerzona, napisz do mnie (dołącz odpowiedzi na zadane pytania `:)` dzięki! )

## 8.1 Czy `ftape` współpracuje z Iomega 2GB?

Niestety, nie. Iomega używa własnego formatu zapisu na swoich taśmach, niezgodnego z QIC. Administrator `ftape`'a nie mógł uzyskać dokumentacji tego formatu od producenta.

## 8.2 Jak szybki jest `ftape`?

Używając `ftape`'a można osiągnąć całkiem przyzwoite prędkości zapisu/odczytu. Oczywiście wszystko zależy od sprzętu: Colorado DJ-20 (Jumbo 250) oraz kontroler Adaptec 1542CF, weryfikując 70MB archiwum utrzymywał stałą prędkość transferu danych na poziomie 4.25MB/min (bez kompresji). Prędkość `ftape`'a zależy głównie od możliwości kontrolera FDC: AHA1542CD posiada kontroler ''post-1991 82077'' i może przesyłać dane z szybkością 1Mbit/sek. Jeśli twój FDC może przesyłać tylko 500Kbit/sek wydajność twojego systemu będzie prawdopodobnie o około połowę mniejsza.

## 8.3 Jak zmienia się ,,trace-level''?

,,Trace level'' (poziom śledzenia) lub ,tracing'' jest to parametr mówiący sterownikowi ile (i jakie) informacje o pracy napędu przekazywać na konsolę.

Poszczególne wartości tego parametru mają następujące znaczenie:

- 0 Wyświetl informacje o błędach w sterowniku (bugs)
- 1 + Błędy pracy napędu
- 2 + Ostrzeżenia (warnings)
- 3 + Informacje (well?)
- 4 + Więcej informacji
- 5 + Program flow (komendy programu)
- 6 + Informacje z FDC/DMA
- 7 + Przepływ danych
- 8 + Wszystko inne

Wartość tego parametru można zmienić na trzy sposoby:

### Sposób 1. `insmod`

Jeśli twój `ftape` jest modułem, możesz zdefiniować poziom jako opcję tej komendy.

> `

>              /sbin/insmod ftape.o tracing=<poziom-śledzenia>

> `

### Sposób 2. Zmiana ,,trace-level'' przy pomocy `mt`

Poziom śledzenia można także zmienić stosując małą ,,sztuczkę''. Wykorzystując komendę `fsr` programu `mt` możemy zmienić ten poziom. `zftape` niestety nie reaguje na to.

> `

>             mt -f /dev/ftape fsr <poziom-śledzenia>

> `

Stosowanie komendy `fsr` jest nieformalną metodą zmiany poziomu śledzenia. W przyszłości najprawdopodobniej niemożliwe będzie użycie jej.

### Sposób 3. Rekompilacja sterownika

Plik `tracing.c` zawiera linię `int tracing=3;` - tutaj właśnie zdefiniowana jest domyślna wartość ,,tracingu''. Zmień 3 na 0..8 i skompiluj.

## 8.4 Czy mogę wymieniać taśmy z kimś, kto używa MS-DOS?

Nie. Chociaż programy DOS'owskie stosują się do wszystkich zaleceń firmy QIC jeśli chodzi o specyfikację QIC-80, nie ma jeszcze programów, które pozwalałyby stosować taśmy nagrane w DOS'ie. Nie powinno być kłopotów z napisaniem takiego programu, pewnie większym problemem byłoby stworzenie przyjaznego interface'u użytkownika...

## 8.5 Jak to zrobić ... z `tar`'em?

Najlepiej przeczytać strony podręcznika (`man`) albo `info` dotyczące `tar`'a. Jeśli nie masz żadnej z nich, możesz spróbować '`tar --help 2>&1 | less`'.

Jeśli twój `tar` jest v.1.11.1 albo starszy, powinieneś uaktualnić go do wersji 1.11.8. Dopiero ta obsługuje opcję `-z` czyli kompresję archiwum. Wersja ta ma także rozbudowaną pomoc (`--help`).

## 8.6 Transfer danych przez DMA powoduje pojawianie się błędów ECC

Niestety niektóre karty SVGA oraz Ethernet niepoprawnie dekodują swoje adresy. Zazwyczaj zdarza się to, gdy bufory `ftape`'a znajdują się pomiędzy `0x1a0000` a `0x1c0000`. DMA ,,gubi'' swoje cykle i co drugi bajt zapisany ma wartość `0xff`. Znana jest co najmniej jedna karta, która takie problemy powoduje - ATI 16bit VGA.

Najprostszym rozwiązaniem jest włożyć kartę do 8-bitowego slotu (niewystarcza przekofigurować jej na 8-bitowy transfer danych). Przesunięcie buforów `ftape`'a w inne miejsce pamięci jest tylko półśrodkiem - inne bufory DMA mogą mieć ten sam problem. Powiedzmy sobie jasno - błędy te nie są zawinione przez `ftape`'a.

## 8.7 `insmod` twierdzi, że wersja jądra jest błędna!

`insmod` może porównywać nr wersji jądra dla którego `ftape`'a został skompilowany z wersja aktualnie działającego jądra na dwa sposoby: przez porównanie numeru wersji jądra zapisanego w kodzie sterownika z nr działającego jądra albo, jeśli jądro i `ftape` zostały skompilowane z tzw ,,versioned symbols'' przez porównanie tych symboli.

Jeśli uaktualniłeś GCC do wersji 2.7.0 lub późniejszej, musisz skompilować narzędzia obsługujące moduły (m.in : `insmod`) jeszcze raz.

Nowsze wersje `insmod` pozwalają ,,zmusić'' jądro do załadowania modułu nawet, jeśli wcześniej wspomniane numery wersji się nie zgadzają.

## 8.8 Co to są te ,,versioned symbols''?

Jeśli podczas konfigurowania jądra (`make config`) na pytanie CONFIG_MODVERSIONS odpowiedziałeś twierdząco, wszystkie symbole jądra, które są eksportowane (tzn symbole, które ładowalne moduły ,,widzą'') są poszerzone o sumę kontrolną parametrów wywołania oraz tych zwracanych przez funkcje systemowe. Pozwala to np `insmod`'owi ustalić, czy definicja danej zmiennej albo funkcji jądra zmieniła się od czasu ostatniej kompilacji `ftape`'a.

Ten sposób ,,znakowania'' symboli sprzyja bezpieczeństwu systemu i weryfikacji kompatybilności poszczególnych jego składników.

Jeśli włączysz opcję CONFIG_MODVERSIONS w jądrze, pamiętaj aby wykasować znak '#' w linii MODULE_OPT znajdujący się przed `-DMODVERSIONS -include /usr/include/linux/modversions.h' w pliku `ftape`Makefile. I na odwrót, jeśli wyłączysz tę opcję wstaw ten znak (# - znak komentarza) na powrót.

## 8.9 `insmod` mówi, że jądro 1.2.0 różni się od 1.2.0

Czy wstawiłeś łatkę (patch) jądra dotyczącą `ksyms.c`? Jeśli nie przeczytaj `README.linux-1.2` dostarczany razem ze źródłem sterownika.

## 8.10 `ftape` wyświetla komunikat ,,`This tape has no 'Linux raw format'`''

Komunikat taki przywita cię, gdy próbujesz bawić się niewykasowaną, świeżo sformatowaną taśmą. Trzeba ją skasować, ponieważ `ftape` wymaga ,,magicznego nagłówka'' na taśmie, który pozwala sterownikowi posługiwać się nią. Wpisz:

> `

>     #  mt -f /dev/nftape erase

> `

## 8.11 Gdzie mogę znaleźć binaria/kody źródłowe/strony podręcznika programów`tar`/`mt`/`cpio`/`dd`?

Wszystkie te narzędzia są tworzone jako projekt GNU i można je znaleźć prawie na każdym serwerze ftp, (więc także na `ftp.icm.edu.pl`, `ftp.pwr.wroc.pl`). Na pewno zaś można je znaleźć na serwerze GNU : `prep.ai.mit.edu[18.71.0.38]:/pub/gnu`. Najnowsze wersje tych programów (na dzień 12 września 1996) to:

> `

>             cpio:   2.4.2 (cpio-2.4.2.tar.gz)
>             dd:     3.13 (fileutils-3.13.tar.gz)
>             mt:     2.4.2 (cpio-2.4.2.tar.gz)
>             tar:    1.11.8 (tar-1.11.8.tar.gz)
>             gzip:   1.2.4 (gzip-1.2.4.tar.gz)

> `

Mogą być one skompilowane bez problemu w Linuxie `v1.0.4`, libc - `v4.5.19`, gcc - `v2.5.8`.

## 8.12 Gdzie można znaleźć informacje na temat standardu QIC?

Jeśli chcesz przyczynić się do rozwoju `ftape`'a lub stworzyć własne narzędzia (na przykład program do formatowania taśm) będziesz musiał zapoznać się z odpowiednimi specyfikacjami QIC. Dokumenty, w które powinieneś się zaopatrzyć, to: opis standardu QIC-80, -117, 3010 i 3020. QIC-117 dotyczy obsługi napędu na niskim poziomie - sposób komunikowania się z urządzeniem - nie będziesz więc go prawdopodobnie potrzebować. QIC-80/3010/3020 dotyczą ,,wyższego'' poziomu działania streamera (zawierają m.in. kody ECC, sposób zapisu samych plików na taśmie). Wszystkie te dokumenty można otrzymać od samej firmy:

> `

>     Quarter Inch Cartridge Drive Standards, Inc.
>     311 East Carrillo Street
>     Santa Barbara, California 93101
>     Phone: (805) 963-3853
>     Fax:   (805) 962-1541

> `

lub ściągając odpowiednie dokumenty (format Adobe Acrobat) z adresu

`ftp.qic.org`

## 8.13 Jaką wielkość bloku powinienem stosować używając `tar`'a?

Używając `tar`'a, dobrym pomysłem jest nakłonienie go do dzielenia danych archiwizowanych na części. Ponieważ `ftape` tnie archiwa na 29 kilobajtowe bloki, opcja `-b58`' powinna zapewnić sprawne działanie.

,,Dlaczego akurat 29kB?'' zapytasz pewnie? Zacznijmy więc od początku. Standard QIC-80 mówi, że dane powinny być chronione przez Error Correcting Code (ECC), który pozwala na detekcję i korektę ewentualnych błędów odczytu . Odmiana tego kodu stosowana przez QIC-80 znana jest pod nazwą `Reed-Solomon (R-S) code`. Zgodnie z jego zaleceniami `ftape` czyta 29 bajtów danych i na ich podstawie i tworzy 3 bajty parzystości. Aby zwiększyć wydajność kodu ECC, bajty parzystości zapisywane są zaraz po 29-ciu 1-kilobajtowych sektorów danych. `ftape` zapisuje więc 29kB danych plus 3 kB kodów ECC (29kB * 3b/29b) - co daje w sumie blok 32kB. `ftape` zawsze posługuje się 32kB blokami, z których tylko 29kB to dane a reszta to dane ECC.

Jeśli chcesz dowiedzieć się więcej na temat `ECC` i `Red-Solomon codes` przejrzyj pliki `ecc.c` oraz `ecc.h`.

## 8.14 `ftape` wykrywa więcej błędnych sektorów na taśmach QIC-3020 niż programy w DOS'ie

Jeśli dokładnie przyjrzysz się różnicy w ilości błędnych sektorów, to zauważysz, że jest ona równa 2784. Liczba, którą podaje `ftape` jest oczywiście poprawna `;-)`. Każda ''bezbłędnie'' sformatowana taśma ma 2784 sektory w stałych miejscach, które są umieszczone na mapie błędnych sektorów. Oto fragment specyfikacji dotyczących tych taśm: ''Ścieżki 5,7,9,11,13,15,17,19,21,23,25 i 27 wewnątrz 4 segmentów EOT lub BOT narażone są na zwiększone występowanie błędów spowodowanych odciskaniem się na nośniku otworów znajdujących się na początku taśmy (dzięki nim streamer wie, gdzie jest początek taśmy -tłumacz). Dlatego też, sektory te zostaną odznaczone jako błędne podczas formatowania i umieszczone na mapie błędnych sektorów.''

Daje to więc 12 ścieżek * 2 * 4 segmenty *29 sektorów = 2784 sektorów.

`ftape` podaje więc prawdziwą ilość sektorów wyłączonych z użycia, DOS zaś daje bardziej ,,optymistyczny'' obraz sytuacji, co lepiej chyba pokazuje jakość taśmy. Zachowanie `ftape`'a może zmienić się w przyszłości - być może podawane będą dwie wartości ilości błędnych sektorów, jednak zadanie to ma stosunkowo niski priorytet.

Powyższe informacje dotyczą także taśm QIC-3010.

## 8.15 Syslogd przesadza z ilością komunikatów `ftape`'a

Opcje `NO_TRACE` i `NO_TRACE_AT_ALL` służą do kontrolowania ilości informacji przekazywanych do pliku log'u. Użyj jednej z tych opcji w plik `Makefile` i skompiluj jeszcze raz.

## 8.16 ,,Polerowanie''

,,Polerowanie'' to nieskończone przewijanie po kawałeczku taśmy w przód i w tył - tak jakby streamer chciał wypolerować i tak już błyszczącą taśmę. To niecodzienne zjawisko zostało zaobserwowane na Jumbo 250 (przez 74404.3051@compuserve.com) oraz na Iomega 250 Ditto Insider (tom@opus.cais.com). W drugim przypadku okazało się, że to wina twardziela SCSI podłączonego do Adapteca 1542cf. Skontaktuj się ze mną jeśli masz swoje własne teorie na temat takiego zachowania.

## 8.17 Próbując skompilować `ftape` otrzymuję błąd: `modversions.h: no such file or directory`

Plik `modversions.h` jest tworzony podczas kompilacji jądra z włączoną opcją `CONFIG_MODVERSIONS`. Dokładniej, komenda `make dep` powoduje jego utworzenie.

Jeśli występuje w/w błąd, to prawdopodobnie zbiór ten został skasowany poleceniem `make mrproper`. Trzeba więc rekonfigurować jądro, i wykonać `make dep` aby przywrócić ów plik.

## 8.18 Co robi '`mt eom`' jeśli nadpisuję nowy plik w środku taśmy?

EOM znaczy End Of Recorded Media - czyli miejscę w którym kończy się jakikolwiek zapis na taśmie.

,,Pliki'' na taśmie są specyficznym rodzajem plików - są one zapisywane sekwencyjnie (gęsiego) i taki jest też do nich dostęp. Zapisując dane na taśmie możemy dołączać nowy plik na końcu gąśiennicy lub też uciąć ją w połowie i wyrzucając ogon dokleić nasze nowe archiwum. Ten drugi przypadek zachodzi właśnie wtedy gdy zapisujemy dane w środku zapisanej taśmy. `ftape` przed utworzeniem takiego archiwum kasuje (!) wszystkie pliki następujące po miejscu, w którym chcemy pisać (przenosi znak EOM w to miejsce) i zaczyna archiwizować.

Oznacza to, że nowy znak EOM znajdzie się zaraz za naszym nowo utworzonym archiwum.

Jedną z konsekwencji tego, jest fakt, że zapisując plik w środku taśmy, zostaje skasowany nie tylko zbiór znajdujący się wcześniej w tym miejscu ale także wszystkie po nim następujące.

## 8.19 Help! W pliku syslogu system raczy mnie komunikatem `dmaalloc() failed!`

Taki komunikat może pojawić się tylko wtedy, gdy instalujesz `ftape`'a jako moduł. Spróbuj uruchomić `swapout` na początek. Program ten dostarczany jest razem z kodem źródłowym `ftape`'a ale nie tym dostarczanym ze źródłami jądra, lecz w osobnym pakiecie `ftape.X.y.tgz`.

Oto przykład fragmentu pliku rc.local, który może wybawić cię z kłopotu:

> `

>             # Instaluj Streamera
>             if [ -f /boot/modules/`uname -r`/misc/ftape.o ]; then
>                 echo Instaluję ftape'a, Linux w.`uname -r`
>                 swapout
>                 insmod /boot/modules/`uname -r`/misc/ftape.o
>             fi

> `

Tego rodzaju błąd nie wystąpi, jeśli wkompilujesz `ftape`'a bezpośrednio w jądro.

## 8.20 Czy wszysko jest w porządku, gdy wykonując komendę `mt fsf`, `mt bsf` taśma się nie przesuwa?

Oczywiście. Sterownik po prostu zmienia swój wewnętrzny licznik, gdy wydajesz jedną z tych komend. Taśma zostanie przewinięta w odpowiednie miejsce, kiedy wydasz polecenie zapisu/odczytu.

## 9. Odpluskwianie sterownika `ftape`.

## 9.1 Jądro/`ftape` zawiesza się gdy ..... - czy to błąd?

Nie, tak miało być `;‐)`

A teraz poważnie. Dobry program się nie wiesza. Szczególnie jądro tego nie robi lub nie powinno tego robić. Jeśli jednak tak się stanie i możesz udowodnić, że to `ftape` jest winowajcą, możesz uznać to jako Błąd, Który Powinien Być Usunięty. Napisz do administratora (`<kjj@pobox.com>`) oraz na listę dyskusyjną.

## 9.2 No dobra, to błąd - jak go zgłośić?

Na początek, upewnij się, że możesz odtworzyć sytuację w której wystąpił ,,błąd''. Fałszywe błędy są szczególnie wredne, bo bardzo trudno je wytropić (podobnie jak i prawdziwe)`:-/`. Oto krótka lista małego myśliwego:

- Wersja jądra i użyte łatki
- Wersja `ftape`'a
- model/producent streamera
- typ szyny/magistrali (ISA/EISA/PCI lub VL-bus)
- Co zrobiłeś, żeby sprowokować wystąpienie błędu
- Co się wtedy stało
- Nie kasuj jądra ani `ftape`'a. Może zostaniesz poproszony o wypróbowanie jakichś łatek albo posłużyć się innym testem wykrywającym być może i inne potencjalne błędy.

Zwiększ wartość ,,trace level'' do 7 (prawie maksymalny poziom śledzenia) i uruchom program/komendę które sprawiały kłopot. Potem przeczytaj informacje zawarte w logu jądra (lub `/proc/kmsg/` zależnie od tego gdzie jądro umieszcza swoje komunikaty). Sprawdź, co wypisuje tam `ftape`. Na początku może to się wydawać kompletnym bełkotem ale komunikaty jądra/`ftape`'a mogą okazać się ważnym źródłem informacji o twoich problemach. Większość zapisów zawiera nazwę funkcji, która go wysłała, co może uprościć znacznie odpluskwianie. Następnie przejrzyj odpowiednie pliki źródłowe i spróbuj sam zlokalizować robaka `;-)`. Jeśli wersja twojego jądra (lub `ftape`'a) jest nie pierwszej świeżości spróbuj użyć nowszej (lub najnowszej) i wtedy sprawdź czy błąd jeszcze występuje. Jeśli zdecydujesz się przesłać informacje o nim, pamiętaj, żeby umieścić istotne informacje o twoim systemie - wersje jądra, `ftape`'a, dane płycty głównej (ISA/PCI/....) szybkości zegara, kontrolera FDC i samego tasiemca. Opisz dokładnie i zwięźle sytuację. Niektórzy nie mogą odpalić streamera na płytach PCI a na 396DX ISA wszystko gra i buczy (dlatego przyglądnij się dokładnie punktowi Płyty główne PCI i ftape).

Pomyśl także o tych biednych duszyczkach, które płacą niemało kapuchy za dostęp do Internetu - nie wysyłaj potężnych logów sterownika bez wyraźnego powodu. Zamiast tego opisz swój problem i zaoferuj, że wyślesz log do zainteresowanych.

Swoje spostrzeżenia/raport wyślij do `<linux-tape@vger.rutgers.edu>`. Możesz także napisać do `<claus@momo.math.rwth-aachen.de>`.

## 10. Podziękowania

Oto lista ludzi, którzy przyczynili się do powstania niniejszego dokumentu. Chciałbym także przeprosić tych, którzy powinni się znaleźć na niej a jakimś trafem tak się nie stało.

`Kai Harrekilde-Petersen` <khp@dolphinics.no>: Poprzedni administrator `ftape`'a oraz HOWTO.

`Andrew Martin` <martin@biochemistry.ucl.ac.uk>: Wniósł wiele dodatkowych informacji w HOWTO.

`Bas Laarhoven` <bas@vimec.nl>: Autor `ftape`'a.

## 11. Od tłumacza

## 11.1 Obsługa napędów podłączanych do portu równoległego

W oryginalnej wersji Ftape-HOWTO autor nie zamieścił informacji na temat możliwości obsługi streamerów podłączanych do portu równoległego. Wkrótce jednak, mam nadzieję, zostanie zapełniona ta luka i będzie o tym można przeczytać w niniejszym Ftape-HOWTO.

Ze swojej strony mogę dodać, że jest już dostępna łatka na jądro (2.0.29 i 2.0.30 oraz w wersjach rozwojowych 2.1.xx) `parport`, która pozwala na obsługę urządzeń podłączanych do portu równoległego - nie tylko streamerów. Jedyny znany mi model stremaera działający z tą łatką to Trakker. Bezpośrednią obsługą tego urządzenia zajmuje się druga, osobna łatka.

Miałem przyjemność pracować z owymi ,,nowościami'' oraz Trakkerem i moje wrażenia są co najmniej pozytywne. Chociaż ,,testowałem'' dość wczesną wersję `trakker.c` i na początku streamer nie chciał w ogóle odpalić, wkrótce otrzymałem poprawioną wersję źródła i mogłem już tworzyć pierwsze archiwa.

Więcej informacji o łatce `parport` można znaleźć na stronie http://www.cyberelk.demon.co.uk/parport.html. Informacje o łatce dla Trakkera są na stronie http://www.informatik.uni-oldenburg.de/~delwi/trakker.html

Jeśli znasz inne urządzenia współpracujące z `parport`'em, daj mi znać `yacoob@manager.ae.wroc.pl`. Dzięki!

## 11.2 Słowo o Ftape-HOWTO-pl

### Zmiany

Jedyne zmiany w stosunku do oryginalnego tekstu, dotyczą adresów internetowych pod którymi można znaleźć inne dokumenty - wskazałem polskie mirrory. Inne zmiany są odznaczone w dokumencie dopiskiem tłumacz. Więcej grzechów nie pamiętam.

### Adres

Najnowsze wersje niniejszego dokumentu znajdują się na stronie http://manager.ae.wroc.pl/~yacoob/ftape-HOWTO-pl.html

### ,,Feedback'' czyli wszelkie comments dotyczące performance

Jeśli masz jakieś uwagi/zastrzeżenia/skargi dotyczące tego dokumentu (tłumaczenia Ftape-HOWTO) podziel się nimi ze mną. Wszelkie wytknięte błędy (literówki, koślawe tłumaczenie, błędy merytoryczne) postaram się usunąć jak najszybciej.

Jakub Chmielewski yacoob@manager.ae.wroc.pl