ftape-HOWTO - streamery w Linuxie - jak to zrobić: Często zadawane pytania (FAQ)
Następna strona
Poprzednia strona
Spis treści
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 ftapeMakefile. 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.
Następna strona
Poprzednia strona
Spis treści
Wyszukiwarka
Podobne podstrony:
ftape howto plFtape HOWTO pl 9 (2)Ftape HOWTO pl 7 (2)Ftape HOWTO pl 6 (2)Ftape HOWTO pl 1 (2)Ftape HOWTO pl 3 (2)Ftape HOWTO plFtape HOWTO pl 2 (2)Ftape HOWTO pl 11 (2)Ftape HOWTO pl 10 (2)Ftape HOWTO pl 4 (2)ftape howto pl 5Ftape HOWTO pl (2)bootdisk howto pl 8PPP HOWTO pl 6 (2)NIS HOWTO pl 1 (2)cdrom howto pl 1jtz howto pl 5Keystroke HOWTO pl (2)więcej podobnych podstron