Opis emulatora systemu operacyjnego DOS

Autor: Mike Deisher, Uaktualnione przez Uwe Bonnes bon@elektron.ikp.physik.th-darmstadt.de
Dla dosemu-0.64.4 (w trakcie), 15 Marca 1997
Wersja polska: Bartosz Maruszewski B.Maruszewski@zsmeie.torun.pl
v1.13, 18 Października 1997


Jest to dokument opisujący dosemu i zawierający Często Zadawane Pytania na jego temat. Najbardziej aktualna wersja oryginału tego dokumentu znajduje się po adresem ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/. Wersji oryginalnej możesz też poszukać w Polsce pod adresem ftp.icm.edu.pl. Dokument ten został napisany w standardzie ISO-8859-2.

1. Wstęp.

1.1 Co to w ogóle jest DOSEMU?

Cytując podręcznik, dosemu jest programem dla wszystkich użytkowników danego serwera, który korzysta z pewnych specjalnych cech jądra Linux-a oraz procesora 80386, aby uruchomić system MS-DOS. Emulator tego systemu, kombinacja sprzętowych i programowych trick-ów, ma następujące właściwości:

W tym miejscu chciałbym podziękować Piotrowi Tęczyńskiemu oraz Wojtkowi Gałązce za pomoc w przetłumaczeniu powyższych pięciu punktów.

1.2 Nazwy i liczby.

(xx/yy/zz) oznacza dzień xx, miesiąc yy, rok zz (9/2/97).
winemu oznacza uruchomienie WinOS/2 w dosemu (10/2/97).

1.3 Jaką wersję dosemu powinienem używać?

Dosemu używa tego samego schematu numerowania wersji co jądro. Drugie liczby nieparzyste oznaczają wersję rozwojową, czyli niestabilną, drugie parzyste liczby oznaczają wersję uznaną za stabilną. Podczas pisania tego dokumentu, v0.64.4 jest najnowszą stabilną wersją, podczas gdy v0.65.0.6 jest najnowszą wersją rozwojową. Tak więc jeśli chcesz używać dosemu, zdobądź najnowszą stabilną wersję (28/02/91).

(xx/yy/zz) oznacza dzień xx, miesiąc yy, rok zz (9/2/97).
winemu oznacza uruchomieine WinOS/2 w dosemu(10/2/97).

1.4 Jaka jest najnowsza wersja dosemu i skąd ją mogę wziąć?

Najnowszą wersją dosemu na dzień dzisiejszy (9/2/97) jest dosemu0.64.4 i można ją znaleźć na:

SUNSite Polska

tsx-11.mit.edu

ftp.suse.com:

[Od tłum.]
Lepiej używać adresu w Polsce, bo z zagranicy czas ściągania może się znacznie wydłużyć.

Wersje testowe są dostępne dla testujących i programistów pod adresem:

http://www.ednet.ns.ca/auto/rddc

Pamiętaj, że to jest kod ALFA: mogą być tam poważne błędy i mało dokumentacji na temat nowości. W tej chwili wiadomo, że w wersji testowej znajdują się błędy. Używaj jej tylko jeśli chcesz się aktywnie włączyć w jej rozwój. Nie zgłaszaj błędów w wersji rozwojowej - napraw je.

1.5 Gdzie mogę zadawać pytania?

Jeśli masz problemy związane z instalacją i uruchamianiem dosemu po przeczytaniu dokumentacji, najpierw spróbuj sobie sam pomóc: Twoje pytanie zostało już pewnie zadane i odpowiedź udzielona. Spróbuj poszukać tej informacji w Internecie. Np. możesz zajrzeć do

DejaNews - największego zbioru artykułów z grup dyskusyjnych z całego świata.

aby znaleźć wszystkie artykuły, które zawierają podane przez ciebie słowo. W ten sposób pomożesz sobie prędzej niż zadawaniem dobrze znanego pytania na jakiejś liście. To także uwalnia programistów od odpowiadania na trywialne pytania i przyczynia się do tego, aby nowsze wersje oprogramowania powstawały szybciej(9/2/97).

[Od tłumacza] Istnieje także polska grupa dyskusyjna na temat Linux-a, gdzie możesz pytać o dosemu pod warunkiem, że instalujesz je na Linux-ie. Jej nazwa to pl.comp.os.linux, można się także na nią zapisać listownie pod adresem listserv@ict.pwr.wroc.pl.

1.6 Gdzie mogę zgłaszać zauważone błędy i zadawać pytania?

Jeśli chcesz zadać pytanie lub zgłosić błąd w dosemu, powinieneś rozważyć zapisanie się na listę dyskusyjną linux-msdos-digest mailing list. Aby zapisać się na nią, wyślij list na adres Majordomo@vger.rutgers.edu o treści

    subscribe linux-msdos-digest imię_nazwisko@twoj.adres.pocztowy

Jeśli będziesz chciał się kiedyś wypisać z tej listy, to wyślij pocztę o treści

    unsubscribe linux-msdos-digest imię_nazwisko@twoj.adres.pocztowy

pod ten sam adres co powyżej(11/8/95). Kiedy jesteś zapisany na tę listę możesz na nią wysyłać listy kierując pocztę na adres linux-msdos@vger.rutgers.edu. Istnieje bramka pomiędzy tą listą a grupą dyskusyjną linux.dev.msdos. Jeśli twój dostawca Internetu nie prowadzi tej grupy, to poproś go o dodanie jej(10/2/97).

1.7 Gdzie mogę śledzić rozwój?

Jeśli chcesz śledzić rozwój dosemu, to jest lista dyskusyjna dla programistów. Aby się na nią zapisać, wyślij pocztę na adres Majordomo@ednet.ns.ca, a w treści zawrzyj takie polecenie:

    subscribe msdos-devel imię_nazwisko@twoj.adres.pocztowy

Jeśli będziesz chciał się wypisać z tej listy, to wyślij na ten sam adres wiadomość

    unsubscribe msdos-devel imię_nazwisko@twoj.adres.pocztowy

Proszę NIE używaj tej listy do celów, do których została stworzona lista linux-dosemu-digest. Wszelkie listy kierowane na tę grupę powinny dotyczyć dalszego rozwoju dosemu. Problemy z instalacją nie powinny być tu kierowane i będą ignorowane przez czytających(9/2/97).

1.8 Jaka dokumentacja jest dostępna dla dosemu?

Podręcznik dosemu (dosemu.texinfo) napisany przez Roberta Sandersa nie był od jakiegoś czasu uaktualniany, ale jest dobrym źródłem informacji. Jest on dostarczany wraz z dosemu.

Podręcznik pod nazwą "dosemu Novice's Altering Guide", albo w skrócie DANG stanowi mapę wewnętrznego sposobu działania dosemu. Jest on przeznaczony dla żądnych przygody, dla tych którzy chcą modyfikować kod źródłowy. DANG jest pod opieką Alistair MacDonald ( alistair@slitesys.demon.co.uk) i można go znaleźć w katalogu doc w drzewie katalogów dosemu.

Lista niepowodzeń EMU (EMUfailure.txt) jest listą programów, o których wiadomo, że NIE działają pod dosemu.

No i oczywiście jest dosemu FAQ/HOWTO. Ale o tym już wiesz, nie? Jest ono wysyłane raz na jakiś czas na listę dyskusyjną i znajduje się też w katalogu doc w drzewie katalogów dosemu. Najnowsza wersja oryginału znajduje się pod adresem ftp.mathematik.th-darmstadt.de:/pub/linux/bonnes/(9/2/97).

1.9 Mam program, który nie działa, ale nie ma go na liście EMUfailure.

Najpierw sprawdź czy niedziałanie twojego programu nie jest spowodowane którąś z wymienionych już na liście przyczyn. Jeśli sądzisz, ze znalazłeś coś nowego to wyślij list na adres linux-msdos@vger.rutgers.edu.
Może można to zrobić z pomocą innych. Podaj szczegółowe informacje na twmat twoich ustawień, jaką masz wersję jądra, dosemu itp. i podaj jakie błędy się pokazują. Możesz użyć xdos-a, żeby skopiować błędy myszką bez pisania ich od nowa. Postaraj się, aby twój raport był czytelny. Znamy zawartość pliku ../etc/config.dist. Więc przyślij nam tylko aktywne linijki z twojegu dosemu.conf. I przejrzyj to co wypisał debuger i przyślij tylko to co uważasz za istotne. Tylko nieliczni chcą babrać się w wielkich dołączeniach do poczty, żeby przejrzeć czyjeś błędy i im pomóc. Ale trzymaj swoje logi w razie, gdyby ktoś cię pytał o dalsze szczegóły(10/2/97).

1.10 Jak mam informować o zmianach lub dodatkach w HOWTO?

Preferowaną metodą jest edycja pliku dosemu-HOWTO-xx.x.sgml, żeby nanieść zmiany, stworzenie pliku z różnicami przez napisanie czegoś takiego:

diff -uw plik-oryginalny plik-nowy > zmiany

i wysłanie pliku zmiany na adres bon@elektron.ikp.physik.th-darmstadt.de.
Jeśli nie znasz SGML-a, to nie szkodzi. Zmiany będą akceptowane w jakiejkolwiek formie. Stworzenie pliku "zmiany", to po prostu ułatwienie życia opiekunowi HOWTO. :-)(9/2/97)

1.11 Wiadomości od Grega...

O ile nie stwierdza się inaczej, dokumenty HOWTO są chronione prawami autorskimi ich autorów. Mogą one być rozprowadzane w całości lub w części, w jakiejkolwiek postaci fizycznej czy elektronicznej tak długo, dopóki znajduje się w nich ta wzmianka. Dystrybucja komercyjna jest dozwolona, a nawet zachęca się do niej; chociaż autor chciałby być poinformowany o takowej.

Wszelkie tłumaczenia, prace pochodne, prace zebrane zawierające dokumenty HOWTO muszą zawierać tę notatkę o prawach autorskich. Oznacza to, że nie możesz stworzyć pracy pochodzącej z HOWTO i nałożyć na jej dystrybucję dodatkowych ograniczeń. Wyjątki od tej zasady mogą być uczynione pod pewnymi warunkami; skontaktuj się z koordynatorem programu Linux HOWTO pod niżej podanym adresem.

Krótko mówiąc, chcemy promować szerzenie tych dokumentów przez wszelkie dostępne kanały. Chcielibyśmy także utrzymać prawa autorskie nałożone na te dokumenty, i być powiadomieni o planach dotyczących redystrybucji HOWTO.

Jeśli masz pytania skontaktuj się z Gregiem Hankisem, koordynatorem programu Linux HOWTO pod adresem gregh@sunsite.unc.edu(11/8/95).

2. Kompilacja i instalacja dosemu.

2.1 Gdzie są instrukcje instalacyjne?

Znajdują się one w pliku "QuickStart" dołączonym do dystrybucji.

2.2 Dziesięć najczęściej spotykanych problemów podczas instalacji dosemu.

  1. Zapomniałeś przeczytać podręcznika QuickStart.
  2. Próbujesz skompilować jakąś starą wersję dosemu.
  3. Próbujesz kompilować z jądrem starszym niż 2.0.28 lub 2.1.15.
  4. Masz złą wersję źródeł jądra w /usr/src/linux albo nie masz pliku /usr/src/linux/include/version.h
  5. Używasz dosemu z jądrem, które nie ma wkompilowanej obsługi IPC.
  6. Kompilujesz przy pomocy gcc starszego niż 2.7.2 albo z biblioteką libc starszą niż 5.2.18 ([od. tłum.]Jednak autor nie potrafił podać dokładnej wersji. Napisał, że z tą bibblioteką mu jeszcze działa).
  7. Zapomniałeś zmodyfikować pliku /etc/dosemu.conf.
  8. Uruchamiasz DOSEMU z dostępem do partycji podczas gdy są one już zamontowane.
  9. Nie instalujesz dosemu zalogowany jako root. (08/04/97).

2.3 Jak mogę używać dosemu ze starszą wersją jądra?

Jeśli ciągle jeszcze używasz 1.2.13 i z jakiegoś powodu nie możesz go zmienić, użyj dosemu-0.60.4. Jeśli używasz jakiejś wersji poniżej 2.0.28 lub poniżej 2.1.15, to Hans Lermen ( lermen@elserv.ffm.fgan.de) miał na ten temat pytanie:

> Czy dosemu-0.64.3.tgz jest przeznaczone dla jąder 2.xx.yy?

Tak, ale ...

  if ( ((xx == 0) && (yy >= 28)) || ((xx >= 1) && (yy >= 15)) )
    weź_dosemu_0_64_4();
  else {
    if (xx == 1)  exit(1);
    weź_dosemu_0_64_2_x();
  }

;-)

2.4 Jak mam zrobić binaria a.out?

Poczynając od wersji 0.64.4 nie ma już obsługi formatu a.out. Jeśli koniecznie jej potrzebujesz, musisz użyć wersji 0.64.3.1. Skrypt konfiguracyjny powinien się tym zając jeśli masz standardową konfigurację(11/2/97).

2.5 Jak mam skompilować dosemu na maszynie z małą ilością RAM-u?

Marty Leisner (leisner@sdsp.mc.xerox.com) zgłosił (8/4/95)

"Jeśli masz problemy z pamięcią, np. kończy się swap, to możesz dodać wyrażenie CFLAGS+=-fno-inline za definicją CFLAGS w pliku dpmi/Makefile. Bądź ostrożny i sprawdź czy masz swap. Przekonałem się, że Linux często pada jeśli nie ma swap-u."

2.6 Kompilacja przerywa się na jakichś dziwnych błędach dotyczących "slang".

Przypuszczalnie zainstalowałeś swoją wersję biblioteki Slang. Hans Lermen <lermen@elserv.ffm.fgan.de> pisze(11/2/97):

  configure --enable-force-slang

2.7 Jakie opcje można konfigurować?

Napisz

configure --help

aby zobaczyć listę takich opcji (12/2/97).

2.8 Jak mogę przyśpieszyć kompilację?

Marty Leisner (leisner@sdsp.mc.xerox.com) zgłosił(8/4/95)

"Optymalizacja domyślna to -O2. Możesz zmodyfikować plik makefile i zmienić odpowiednio -O na taką wartość, przy której będzie szybciej bądź mniejszy kod wynikowy)."

2.9 Więcej wskazówek na temat kompilacji od Marty'ego...

Musisz skompilować jądro na swoim systemie, żeby otrzymać bieżącą wersję. Jeśli nie, to możesz ręcznie zmodyfikować wpis KERNEL_VERSION w pliku Makefile w najwyższym katalogu źródeł. Numer ma postać "nnpppłłł", gdzie "nn" jest wersją, "ppp" jest podwersją a "łłł" to wersja łaty. Na przykład jądru 1.1.88 odpowiada zapis "1001088" a jądru 1.2.1 - "1002001".

Dodatkowe info od (lermen@elserv.ffm.fgan.de):

Dla wersji nowszych niż 0.64.3 nie jest to już prawdą. Musisz mieć ważny plik linux/version.h, który musi być częścią twojego katalogu /usr/include. Jeśli go nie masz, to albo zrobiłeś "make clean" na swoim drzewie źródeł jądra, albo twój dystrybutor nie dał ci tego pliku.

2.10 Czy muszę kompilować dosemu jako root?

(8/4/95)

Nie. Chociaż musisz je zainstalować jako root.

Marty Leisner (leisner@sdsp.mc.xerox.com) dodaje:

"Aby mieć dostęp do portów wejścia/wyjścia (włączając konsolę) dosemu musi być uruchomione z prawami root-a. Uruchamianie dosemu w xterminalu lub w systemie X i wymaganie bezpośredniego dostępu do sprzętu pozwala na uruchomienie go jako użytkownik. Kwestie bezpieczeństwa i bitu setuid będą opracowywane w wersjach roboczych(11/8/95).

Rzuć też okiem na ..;/doc/SECURITY.readme(9/2/97).

2.11 Jak mam łatać dosemu.

Jeśli łatasz dosemu z jednej wersji do drugiej, napisz "make pristine;./configure; make". Jeśli nie napiszesz "make pristine", przynajmniej nowa wersja wykonywalna będzie zła jeśli całość się w ogóle skompiluje(9/2/97).

2.12 Jakie wersje DOS-a działają z dosemu.

Caldera OpenDos (przedtem znany jako DrDOS) ma działać z dosemu według (Nicolasa St-Pierre <draggy@kosmic.org>. Ponieważ Open DOS może być używany za darmo do celów niekomercyjnych jest to metoda preferowana. Teraz redystrybucja nie jest dozwolona. Musisz samemu ściągnąć OpenDOS-a ze strony Caldery http://www.caldera.com/dos. Miejmy nadzieję, że się to w krótce zmieni, żeby dosemu mogło dystrybuować ładowalny obraz systemu.
MsDos-6.22 także działa z dosemu. MsDos-7 czyli Win 95 także działa, ale zakładając, że nie masz włączonego logo startowego i nie wystartujesz środowiska graficznego. Jeśli uczynisz obraz dysku startowym tak zwaną "dyskietką ratunkową", która jest ci oferowana podczas instalacji Windows-ów, będziesz miał dobre ustawienia. Jeśli użyjesz normalnej instalacji Win95, aby przenieść pliki systemowe, to zajrzyj do pliku msdos.sys zapisanym na obrazie dysku i zmień ustawienia w sekcji [Options] na takie:

[Options]
Logo=0
BootGUI=0

(7/3/97)

2.13 Wersje, które nie działają.

Dos 4.01 miał problemy sam w sobie, więc nie będzie także działał z dosemu (Mattias Hembruch <mghembru@ece.uwaterloo.ca> 97/04/03)

3. Ustawienia twardego dysku.

3.1 Jak mam używać swojego dysku z dosemu?

Po pierwsze zamontuj parytcję DOS-ową jako podkatalog w drzewie Linux-a. Na przykład stwórz katalog "/dos" w Linux-ie (mkdir -m 755 /dos) i dodaj taką linię

   /dev/hda1       /dos     msdos   umask=022

do pliku /etc/fstab. (W tym przykładzie, dysk twardy jest zamontowany w trybie tylko-do-odczytu. Możesz go zamontować w trybie odczyt-zapis zamieniając "022" na "000" i używając w poleceniu mkdir opcji -m 777). Teraz mount /dos. I możesz dodać taką linię

  lredir d: linux\fs/dos

do pliku AUTOEXEC.BAT na obrazie twardego dysku (zobacz też komentarze na temat LREDIR poniżej). W systemie wieloużytkownikowym możesz użyć

  lredir d: linux\fs\${dom}

gdzie "dom" jest nazwą zmiennej śrdowiskowej, która zawiera lokalizację katalogu z DOS-em (w tym przykładzie /dos)(11/8/95).

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

Tim Bird (Tim_R_Bird@Novell.COM) stwierdza, że użytkownicy LREDIR-a powinni być ostrożni kiedy go używają w autoexec-u, ponieważ COMMAND.COM będzie kontynuował interpretację autoexec-a na przekierowanym dysku od tego samego miejsca, w którym opuścił autoexec z fizycznego dysku. Z tego powodu, najbezpieczniej jest mieć na dysku fizycznym (obraz dysku) oraz na dysku przekierowanym ten sam plik autoexec(11/8/95).

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

Robert D. Warren (rw11258@xx.acs.appstate.edu) podał

"Startuję mały plik hdimage (mniejszy niż 1MB - i dwa razy taki jaki mógłby być) i przedostatnią linijką w moim config.sys-ie na obrazie dysku jest:

        
        install=c:\lredir.exe c: LINUX\FS\home/dos

To wywoła lredir tuż przed interpreterem polecenim. Udało mi się go skutecznie uruchomić z command.com-em jak i 4DOS-em. To eliminuje problem z pozycją w autoexec-u przy użyciu lredir-a.

Uwe Bonnes (bon@elektron.ikp.physik.th-darmstadt.de) dodaje(11/8/95), że:

Użyteczne jest wpisanie zaraz przed tym

install=C:\subst.exe g: c:

W ten sposób wciąż możesz mieć dostęp do swojego obrazu dysku poprzez dysk G:.
Inną użyteczną wskazówką w tych warunkach jest konfiguracja dosemu w taki sposób, aby używało "autoexec.emu" i w ten sposób mieć osobno DOS-a i dosemu.

3.2 Jak mogę się dostać do obrazu dysku z Linux-a?

Użyj ostatniej wersji mtools (v3.0 - w czasie pisania). Do pliku /etc/mtools.conf dopisz linię:

   drive g:  file="/var/lib/dosemu/hdimage" Offset=8832

Potem możesz już używać mtools, np. "mdir d:". "mcopy g:/config.emu /tmp" skopiuje plik config.emu z obrazu dysku DOS-owego do katalogu /tmp na Linux-ie. Możesz go tam zmodyfikować i skopiować z powrotem. Użyj takiej litery dla dysku jaką chcesz, G: jest tylko przykładem(9/2/97).

3.3 Czy mogę używać dysku spakowanego (stacked/double-spaced/super-stored)?

W tej chwili standardowe jądro nie potrafi obsłużyć takich dysków przy pomocy programów "lredir" czy "emufs". Jest jednak łata, przy pomocy której można zamontować skompresowane pliki. Nazywa się "dmsdosfs". Można ją znaleźć w Polsce na

SUNSite Polska, albo w USA pod adresem sunsite.unc.edu.

Dobrym pomysłem jest też zaglądanie do katalogu incoming w poszukiwaniu nowszej wersji. Oryginalna zawartość jest pod adresem sunsite.unc.edu.

Jednak wielu osobom udało się to zrobić po prostu odkomentowując linię

   disk { wholedisk "/dev/hda" }        # 1st partition on 1st disk

w pliku konfiguracyjnym dosemu. Innym udało się z linią

   disk { partition "/dev/hda1" }

Jeśli to robisz, to miej na uwadze fakt, że jeśli dosemu ci padnie, to stracisz wszystkie dane z rzeczywistego dysku(9/2/97)!

Jeśli twoja partycja DOS-owa jest już zamontowana z dostępem dla zapisu i próbujesz uruchomić dosemu z dostępem do parytcji lub całego dysku, to wyświetli ono komunikat o błędzie i przerwie działanie. Takie zachowanie zapobiega robieniu przez Linux-a i DOS-a niezależnych zapisów na twojej partycji, co w konsekwencji zaśmieciłoby ci tylko dysk(11/8/95).

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

Jeśli masz zainstalowane LILO, to powyższe nie będzie działać. Chociaż...

Thomas Mockridge (thomas@aztec.co.za) zgłosił (5/8/94)

Aby wystartować (boot) dosemu z LILO i Stacker-em 4.0 robisz małe obejście...

  1. przy pomocy polecenia dd przeniosłem MBR do pliku (czy Norton Utilities, w każdym bądź razie pierwsze 512 bajtów).
  2. wystartowałem DOS-a (rzeczywisty DOS - nie dosemu), potem wykonałem polecenie fdisk /mbr i uczyniłem partycję DOS-ową aktywną (DOS-owym fdisk-iem).
  3. skopiowałem nowy MBR do pliku.
  4. zamieniłem na oryginalny MBR.
  5. skopiowałem ten drugi MBR do /var/lib/dosemu/partition.hda? (gdziekolwiek tam masz parytcję DOS-ową).
  6. ustawiłem w dosemu.conf
                   disk {partition "/dev/hda? ?"}
    
  7. Wystartowałem dosemu i voila! Nie ma LILO.

Holger Schemel (q99492@pbhrzx.uni-paderborn.de) zgłosił (10/2/97), że

Działa nawet dobrze pod dosemu z MS-DOS-em 6.0. Jeśli masz jakieś kłopoty, to musisz ręcznie zmodyfikować plik "DBLSPACE.INI" i zmienić literę dysku na taką jaką twój dysk otrzymuje pod dosemu.

Darren J Moffat (moffatd@dcs.gla.ac.uk) zgłosił także (27/3/94)

"...jeśli tylko możesz to używaj 6.2! Tylko upewnij się, że masz dyskietkę startową z LILO pod ręką ponieważ DOS 6{.2} zmieni MBR."

3.4 Tworzenie własnych plików hdimage.

W wersji 0.66-2 jest dodatkowy program narzędziowy mkhdimage, który pozwala na tworzenie nagłówków plików hdimage. Pełna informacja na ten temat znajduje się w plikach dosemu-info dołączanych do dystrybucji. Oto kilka linii zaczerpniętych stamtąd:

"Aby stworzyć plik obraz dysku z geometrią odpowiadającą prawdziwemu dyskowi z 12 głowicami, 17 sektorami na ścieżkę i 300 cylindrami napisz:

   mkhdimage -h 12 -s 17 -c 300 >hdimage

Przy założeniu, że każdy sektor zajmuje 512 bajtów plik ten będzie odpowiedał dyskowi o pojemności 29 MB. W większości przypadków jest to raczej zbyt dużo; jeśli potrzebujesz tyle miejsca, to rozważ użycie dysku wirtualnego."

[Fragment napisany przez Jacka Pliszkę.]

4. Porty równoległe, szeregowe i myszy.

4.1 Dostęp do portów działał w starszych wersjach, a teraz nie chce!

Przeczytaj ../doc/README.port-io i sekcję na temat portów w ../etc/config.dist

4.2 Dostęp do portów był szybszy w starszych wersjach!

Aby móc logować każdy dostęp do portu, każdy taki dostęp wywołuje przerwanie z poza trybu vm86. To zabiera trochę czasu. Jeśli nie chcesz, żeby dostęp do portów był logowany, użyj klucza "fast" w odpowiedniej sekcji.

4.3 Gdzie są (kompatybilne z microsoftem) sterowniki mysz?

Tom Kimball (tk@pssparc2.oc.com) zgłosił(24/11/93)

Kilku ludzi mówiło, aby używać różnych sterowników i zasugerowało niektóre. Znalazłem parę, które wydają się działać.

   oak.oakland.edu:/pub/msdos/mouse/mouse701.zip   (mscmouse)
   oak.oakland.edu:/pub/msdos/mouse/gmous102.zip   (gmouse)

Normalnie możesz używać wewnętrznego sterownika z dosemu, więc nie potrzebujesz żadnego dodatkowego sterownika do myszy w dosemu poza winemu(10/2/97).

4.4 Dlaczego nie działa sterownik myszy?

Mark Rejhon (mdrejhon@magi.com) zgłosił(7/4/95)

Jeśli uruchomisz sterownik do myszy, a on się po prostu zawiesi (może to trwać około 30-60 sekund), ale jeśli czekasz dłużej niż minutę, aby sterownik zaczął działać, spróbuj podać w linii poleceń port COM, na którym jest mysz.

4.5 Dlaczego dosemu blokuje COM4?

Rob Janssen (rob@pe1chl.ampr.org) zgłosił(24/3/94)

Według jmorriso@bogomips.ee.ubc.ca, "dosemu wciąż blokuje COM4 (0x2e8, IRQ 5). Portu 0x2e8 nie ma w tablicy ports{} w pliku konfiguracyjnym. Muszę uruchamiać setserial /dev/cua3 irq 5 po zakończeniu dosemu."

Jest to spowodowane BIOS-em karty VGA. Stwierdziłem to włączając śledzenie portu i wypatrzyłem kiedy się to dzieje.

Wyłącz opcję "allowvideoportaccess" w pliku konfiguracyjnym i będzie dobrze. Jeśli będziesz miał wtedy problemy z wizją, to spróbuj bardziej ograniczyć zasięgi portów IO (np. 40-43).

4.6 Jak mam używać dosemu z portami szeregowymi?

4.7 Jak mogę przełączać kontrolę linii szeregowej pomiędzy dosemu a powłoką?

John Taylor (taylor@pollux.cs.uga.edu) zgłosił(25/5/94)

Mam Linux-a 1.1.13 i chcę wskazać dużą zaletę, którą należy chronić i należy uniknąć jej zniknięcia (moim skromnym zdaniem). Wraz z wersją 52 mogę uruchomić program "screen". Ze screen-a, mogę wywołać DOS-a -D-a. To co jest najlepsze, to to, że polecenia screen-a (polecenia z CTRL-A) wciąż działają. Oznacza to, że mogę wcisnąć CTRL-A C i otworzyć nowe okno z powłoką unix-ową i przełączać się pomiędzy nimi (DOS/UNIX). Pozwala mi to kontrolować linię szeregową poprzez dosemu bardzo efektywnie, ponieważ przełączanie się jest bardzo proste.

4.8 Jak mogę zmusić do działania porty szeregowe?

W pliku konfiguracyjnym dosemu.conf znajdują się linie, które przekierowują wyjście drukarki do programu lpr albo do pliku. Jeśli chcesz mieć bezpośredni dostęp do gołego żelastwa, to wykomentuj te linie i dodaj taką:

ports { device /dev/lp0 fast range 0x3bc 0x3bf } # lpt0

dla portu drukarki z kartą kontrolną (odpowiada to /dev/lp0), albo

ports { device /dev/lp1 fast range 0x378 0x37f } # lpt1

ports { device /dev/lp1 fast range 0x278 0x27f } # lpt2

odpowiednio dla LPT1 (/dev/lp1) i LPT2 (/dev/lp2)(9/2/97).

5. Wieloużytkownikowość i nieinteraktywne sesje.

5.1 Czy mogę używać dosemu na systemie wieloużytkownikowym?

Corey Sweeney (corey@amiganet.xnet.com) zgłosił(8/12/93)

Jeśli masz dosemu na systemie, w którym więcej niż jeden użytkownik może chcieć go uruchomić, to wtedy możesz zmienić katalog, w którym znajduje się obraz dysku twardego. W tej chwili w pliku /etc/dosemu.conf znajduje się linia określająca obraz twardego dysku jako "hdimage". Jeśli zmienisz to na /var/lib/dosemu/hdimage, wtedy ludzie nie będą musieli się martwić w jakim katalogu są kiedy uruchiamiają dosemu i obraz twardego dysku nie będzie musiał być przenoszony za każdym razem kiedy będziesz uaktualniał do następnego poziomu łat.

Jeśli masz wieloużytkownikowe dosemu, to możesz dać tylko odczyt do obrazu dysku w katalogu /var/lib/dosemu oprócz administratora dosemu.

Możesz też użyć nowegu emufs.sys, żeby zamontować katalog "publiczny" i/lub "prywatne" katalogi (podkatalogi w każdym katalogu domowym użytkownika).

[Uwaga: Użytkownicy mogą też tworzyć swoje własne pliki konfiguracyjne pod nazwą ~/.dosrc (format taki sam jak /etc/dosemu.conf), żeby uruchamiać swoją kopię DOS-a.]

5.2 Jak mogę uruchamiać polecenia DOS-a nieinteraktywnie?

Od jakiegoś już czasu zabieram się za napisanie artykułu na ten temat, ale jakoś się nie mogę zebrać. Oto kilka wskazówek od innych:

Dan Newcombe (newcombe@aa.csc.peachnet.edu) zgłosił(27/1/94)

Oto pomysł (nie testowany) na uruchamianie polecenia DOS-owego z linii poleceń (albo jakiegoś menu, itp...) bez modyfikacji właściwego emulatora. [Zakłada się, że twoja parytcja DOS-owa jest już zamontowana pod Linux-em.]

Załóżmy, że chcesz uruchomić wp60.exe z parametrem "wp60 d:\doc\paper.txt". Zrobiłbyś coś jak "dosrun wp60 d:\doc\paper.txt". "dosrun" byłby skryptem w powłoce Linux-owej, który by a) modyfikował plik autoexec.bat z twojej partycji DOS-owej i b) po prostu uruchamiał dosemu (np. "dos -C >/dev/null"). Krok a) trzymałby jakoś wszystko to, co chciałbyś mieć w autoexec.bat (np. mouse.com) a ostatnią linią było by "wp60 d:\doc\paper.txt".

Ze strony dosemu, przedtem musiałbyś zmodyfikować plik config.sys (znajdujący się na obrazie dysku), tak żeby 1) używał emufs, żeby mieć dostęp do partycji DOS-owej jako D:, 2) ustawił "COMPSEC=D:\ (Tak sądzę - nie mam pod ręką podręcznika DOS-owego.) i 3) ustawiał "shell=c:\command.com /p".

Pomysł polega na tym, że za każdym razem kiedy uruchamiasz dosemu, tworzysz od nowa plik autoexec.bat, który jest specyficzny dla danej sesji. Specyficzne byłoby to, że w ostatniej linii znajdowałby się program, który chciałbyś uruchomić. Modyfikacje na obrazie dysku mają poinformować emulator/DOS, że chcesz startować (i to efektywnie) z D:, które jest rzeczywistą partycją DOS.

Jeśli nie użyjesz obrazu dysku i zadziałasz na systemie plików DOS-a bezpośrednio po starcie dosemu, to będzie to działać i nie musisz przechodzić przez część związaną z obrazem dysku.

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

Daniel T. Schwager (danny@dragon.s.bawue.de) zgłosił(2/7/94), że

Możesz użyć różnych plików konfiguracyjnych (i różnych obrazów startowych z różnymi plikami autoexec.bat) i wywoływać dosemu w ten sposób:

$ dos -F mój_zrobiony_dosemu.conf

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

Dietmar Braun (braun@math20.mathematik.uni-bielefeld.de) zgłosił(4/7/94), że

Nie ma żadnego problemu jeśli użyjesz przekierowania z dosemu. Jest możliwe przekierowania litery dysku na katalog Linux-owy podany w zmiennej środowiskowej.

Tak więc ja mam skrypt w powłoce nazwany "DOS", który robi coś takiego:

 mkdir /tmp/dos.$$
 DOSTMP=/tmp/dos.$$; export DOSTMP

a potem mały trick, żeby "echo $* > $DOSTMP/startup.bat" rzeczywiście zadziałało (właściwie mały programik w C, który zamienia '/' na '\' i poprawnie oznacza końce linii, i dodaje ^Z na końcu pliku), tworzy pliki startowe, dołączenia itd. w tym katalogu, a potem uruchamia dosemu. W pliku "autoexec.bat" dysk C: jest odwzorowany z obrazu dysku na ten katalog tymczasowy, który ma dołączenia dla $HOME i $PWD.

Tak więc jeśli chcę zobaczyć nazwy moich plików skróconych do wersji 8.3, mogę napisać "DOS dir" i mam zawartość mojego bierzącego katalogu. Tak więc mam pełno-wieloużytkownikowego DOS-a (nie mam żadnej partycji DOS-owej a odwzorowanie na Linux-a zachowuje odpowiednie prawa dostępu dla użytkownika) i wielozadaniowego (sesje dosemu są zupełnie niezależne). Zrobiłem tak raz, żeby móc używać sterownika do drukarki pod DOS-a. Pole df z mojego printcap-a wskazuje właściwie na program DOS-owy. Tak więc możesz nawet robić programy DOS-owe, które będą działać jako filtry dl lpr-a.

6. dosemu i Netware.

6.1 Jak mam zrobić dostęp do dosemu z Netware'a?

Jak zwykle preferowany jest dostęp z systemu plików Linux-a. Zamontuj dyski z Netware'a przy pomocy narzędzi Caldera's Netware albo darmowego narzędzia Volker-a Lendecke - ncpfs ( ftp.icm.edu.pl a adres macierzysty to ftp://ftp.gwdg.de:/pub/linux/misc/ncpfs). Jeśli potrzebujesz rzeczywistego dostępu do IPX-a np. aby uruchomić program "syscon" z Novell-a, przeczytaj plik ../doc/NOVELL-HOWTO.txt.

7. dosemu i X-y(9/2/27).

7.1 Czy mogę uruchomić dosemu na konsoli podczas działania X-ów?

Ronald Schalk (R.Schalk@uci.kun.nl) zgłosił (17/1/94), że

Tak, nie ma problemu. Tylko pamietaj, aby używać CTRL-ALT-<Fn> do poruszania się pomiędzy wirtualnymi konsolami i możesz uruchamiać jakiekolwiek aplikacje pod Linux-a (dosemu to też aplikacja pod Linux-a). Prawie zawsze mam uruchomionego WP5.1 w sesji dosemu.

[Uwaga: Użyj CTRL-ALT-F7, aby przełączyć się z powrotem do X-ów jeśli X-y uruchomione są na 7 virtualnej konsoli.]

7.2 Czy możliwe jest uruchamianie dosemu w oknie w X-ach?

Jeśli masz zainstalowane X-y i udało ci się skompilować dosemu oraz uruchomić go w trybie tekstowym, to powinieneś móc uruchomić "xdos" lub "dos -X", żeby uruchomić je w oknie w X-ach. Jeśli to nie działa, to sprawdź następujące punkty.

  1. Wkompilowana obsługa X-ów w dosemu. Jest to opcja domyślna, chociaż jeśli konfigurowałeś dosemu w taki sposób: "./configure --without-x", to nie masz obsługi X-ów. Napisz więc "make pristine; ./configure; make; make install" i powinieneś otrzymać skompilowane dosemu z obsługą X-ów jeśli masz zainstalowane biblioteki X-ów w /usr/X11R6.
  2. Ustaw mapę klawiatury w X-ach. W xterm-ie napisz:
         xmodmap -e "keycode 22 = 0xff08"
         xmodmap -e "keycode 107 = 0xffff"
    
    Linie te ustawiają odpowiednio poprawną obsługę klawiszy backspace i delete.
  3. Konfiguracja opcji w pliku /etc/dosemu.conf związanych z X-ami.

Możesz też uruchomić dosemu w kolorowym xterm-ie, co nie jest zalecane ponieważ większość kolorowych xterm-ów źle obsługuje złożone metody wyświetlania tekstu w dosemu. To nie wymaga włączonej obsługi X-ów w dosemu. Chociaż jeśli naprawdę chcesz to zrobić, to postępuj według poniższych kroków:

  1. Zaistaluj ansi_xterm. Zalecany pakiet można znaleźć na ftp,icm.edu.pl.
  2. Ustaw mapę klawiatury w X-ach. W xterm-ie napisz:
         xmodmap -e "keycode 22 = 0xff08"
         xmodmap -e "keycode 107 = 0xffff"
    
    Linie te ustawiają odpowiednio poprawną obsługę klawiszy backspace i delete.
  3. Skonfiguruj w pliku /etc/dosemu.conf opcje związane z terminalem (nie X-ami).
(9/2/97)

Marty Leisner (leisner@sdsp.mc.xerox.com) zgłosił (31/3/95)

W bazie danych xrdb mam następujące zasoby:

dosxterm*Font:  vga
dosxterm*geometry:      80x25
dosxterm*saveLines: 25

albo mam alias-a"dosxterm=term -fn vga -title dosxterm -geometry 80x25 -sl 25"

Jeśli używasz metody z xrdb, to wszystko co musisz zrobić to napisać "xterm -name dosxterm".

7.3 Xdos nie działa na odległym ekranie X-ów!

W tej chwili, dosemu używa rozszerzeń MIT do pamięci dzielonej. Rozszerzenia te działają tylko na lokalnym ekranie. Jeśli chcesz uruchomić dosemu na odległym ekranie, to skonfiguruj dosemu z opcją "--enable-nomitshm" po poleceniu "make pristine" albo na czystym drzewie ze źródłami.(9/2/97).

7.4 Xdos nie znajduje czcionek VGA.

Sprawdź czy czcionki VGA, które zainstalowałeś są na liście font.dir w katalogu, w którym je instalowałeś:

hertz:~> grep misc /usr/X11R6/lib/X11/XF86Config
    FontPath    "/usr/X11R6/lib/X11/fonts/misc/"
hertz:~> grep vga /usr/X11R6/lib/X11/fonts/misc/fonts.dir 
vga.pcf vga
vga11x19.pcf vga11x19
hertz:~> ls /usr/X11R6/lib/X11/fonts/misc/vga*
/usr/X11R6/lib/X11/fonts/misc/vga.pcf
/usr/X11R6/lib/X11/fonts/misc/vga11x19.bdf
/usr/X11R6/lib/X11/fonts/misc/vga11x19.pcf

Jeśli zainstalowałeś jakieś czcionki pod X-y, tak jak wtedy kiedy pierwszy raz instalowałeś dosemu z obsługą X-ów, musisz uruchomić programy "mkfontdir" a potem "xset fp rehash". Instalacja dosemu powinna się zająć poleceniem "mkfontdir" i poinformuje cię o "xset fp rehash". Powiedz nam jeśli ci to nie działa.

7.5 Czcionki VGA są bardzo małe w mojej dużej rozdzielczości.

Poszukaj czcionek vga11x19. (13/2/97).

7.6 Kompilacja dosemu przerywa się na jakichś dziwnych błędach dotyczących X-ów.

Jak już to zostało powiedziane wcześniej dosemu domyślnie używa rozszerzeń MIT do pamięci dzielonej. W XFree86 są one dostępne tylko w wersji 3.1.2 i nowszej. Jeśli masz starszą wersję, to zastanów się nad uaktualnieniem lub skonfiguruj dosemu tak, aby nie używało tych rozszerzeń (zobacz ostatnią sekcję)(9/2/97).

7.7 Czy emulacja ansi działa poprawnie?

Marty Leisner (leisner@sdsp.mc.xerox.com) zgłosił(31/3/95), że

Tak. Używam nnansi.com pod X-ami. tryby 25-, 43- i 50-liniowe działają poprawnie, chociaż tryb 50-liniowy jest trudny w użyciu przy rozdzielczości 1024x768 (o ile nie użyjesz mniejszych czcionek albo większego monitora). Tryb 43-liniowy zmieni rozmiar xterm-a tak, aby zawierał on 43 linie.

8. dosemu i MS-Windows 3.1.

8.1 Czy możliwe jest uruchomienie MS-Windows 3.1 w dosemu?

W pliku ../doc/README.Windows czytamy:

***************************************************************
*    UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!!    *
*                                                             *
*  Uwaga! Nie jest to jeszcze w pełni obsługiwane i jest      *
*  wiele znanych błędów! Wielkie programy prawie na pewno     *
*  NIE BĘDĄ DZIAŁAĆ!!! BĄDŹ PRZYGOTOWANY NA PADY SYSTEMU      *
*  JEŚLI TEGO SPRÓBUJESZ!!!                                   *
*                                                             *
*    UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!! UWAGA!!!    *
***************************************************************

No dobra, możliwe jest wystartowanie WINOS2 (zmodyfikowanej wersji Windows 3.1, której używa OS/2) pod dosemu. Wielkie dzięki dla Lutz-a & Dong-a!

Ale, POTRZEBUJESZ OBU LICENCJI, dla WINDOWS 3.1 oraz OS/2 !!!

Jest wiele znanych problemów. Windows-y bardzo często się wywalają i mogą za sobą pociągnąć dane. Wielkie programy nie będą się ładować itp., itd.

Innymi słowy nie jest to jeszcze gotowe do codziennego użytku. Wiele kart graficznych ma problemy (możesz zobaczyć miły biały ekran, chociaż poszukaj na dole win-31-in-xdos). Twoje grupy programów będą znikać... Po prostu - fatalnie.

Z drugiej strony, jeśli koniecznie musisz zobaczyć ten ekranik Windows-owy pod Linux-em i czytałeś to UWAŻNIE i PRZYŻEKASZ, ŻE NIE ZBOMBARDUJESZ GRUPY PROGRAMISTÓW ZAJMUJĄCYCH SIĘ DOSEMU LISTAMI W POSTACI "MS Word 6.0 mi nie działa!!!"...

  1. Zdobądź źródłową dystrybucję dosemu i Linux-a.
  2. Rozpakuj dosemu.
  3. Skonfiguruj dosemu pisząc './configure' i NIE wyłączaj vm86plus.
  4. Skompiluj dosemu pisząc 'make'.
  5. Zdobądź dystrybucję OS2WIN31.ZIP z ... ????
    ... no cóż, i już masz pierwszy problem.
    Kiedyś to to było na ibm.com, ale zniknęło z pod tego adresu i tak długo jak tam było mogliśmy to mirrorować. ... widzisz ten problem? Chociaż możesz użyć 'archie-go' do poszukania, pewnie będzie to gdzieś tam na sieci ... przez jakiś czas ;-)
  6. Rozpakuj ten plik w katalogu WINDOWS\SYSTEM. (Właściwie potrzebujesz tylko pliku WINDOWS\SYSTEM\os2k386.exe i sterownika do myszy.)
  7. Wystartuj dosemu (upewnij się, że DPMI jest ustawione na wartość taką jak 4096).
  8. Skopiuj plik winemu.bat na dysk C:.
  9. Trzymaj kciuki.

Powodzenia!

PAMIĘTAJ:   NIE JEST TO WCALE ZALECANE!!! TO NIE JEST ZALECANE!!!
            NIE ZALECAMY TEGO!!!

---------

8.2 Windows 3.x w xdos.

Jeśli chodzi o wersję 0.64.3, to jest ona w stanie uruchomić Windows-y w xdos. Oczywiście nie jest to wcale zalecane, ale jeśli rzeczywiście chcesz spróbować, jest to bezpieczniejsze niż uruchamianie Windows 3.1 na konsoli, ponieważ _kiedy_ padnie, nie zablokuje ci klawiatury czy ekranu.

Wskazówki:

  1. Zdobądź żródła dosemu i Linux-a.
  2. Rozpakuj dosemu.
  3. Uruchom ./configure", żeby skonfigurować dosemu (skrypt ten włączy domyślnie vm86plus).
  4. Napisz "make", aby skompilować pakiet.
  5. Zdobądź sterowniki Trident SVGA dla Windows-a. Pliki te to tvgaw31a.zip i/lub tvgaw31b.zip. Są one dostępne pod adresm garbo.uwasa.fi. (jakieś mirror-y?).
  6. Rozpakuj sterowniki Trident.
  7. W instalacji Windows-a, zainstaluj sterownik Trident "800x600 256 color for 512K boards".
  8. Zrób wszystko co opisano powyżej, żeby zaistalować OS2WIN31.
  9. Uruchom xdos.
  10. W dosemu, przejdź do katalogu Windows-ów i uruchom winemu.
  11. Trzymaj kciuki.

8.3 Czy mogę zainstalować Windows-y z wewnątrz dosemu?

Nie, nie możesz. DOS powie ci coś w stylu:

The XMS driver you have on your system is not compatible with Windows...

Musisz zainstalować Windows-y z DOS-a. Możesz skopiować drzewo z Windows-ami gdzieś do Linux-a i użyć lredir, aby zamontować ten katalog w tym samym miejscu, w którym jest pod dosem. Na przykład:

Masz Windows-y w d:\windows Katalog ten jest zamontowany pod Linux-em na /dosc Kopiujesz drzewo z Windows-ami na Linux-a, np: "cp -a /dosd/windows/ /usr/share" W dosemu przekierowujesz skopiowane drzewo w ten sposób: lredir d: linux\fs\dosd

Teraz dosemu nie może mieszać w twoim katalogu z Windows-ami, ale także zmiany w tym katalogu nie są widoczne przez dosemu. Jeśli chcesz zrobić to samo z Windows-ami na C:, to zobacz w FAQ jak przekierować C:.

Ale możesz też użyć "setup-u" z katalogu Windows-ów, żeby zainstalować jakieś sterowniki lub pozmieniać jakieś ustawienia.(14/2/97)

8.4 Uwagi na temat myszy w Windows 3.1 w xdosemu.

  1. Użyj sterownika myszy "mouse.drv" z WinOS2.
  2. Aby mysz działała poprawnie musisz wpisać nastepujące linie do pliku wini.ini:
         [windows]
         MouseThreshold1=0
         MouseThreshold2=0
         MouseSpeed=0
    
  3. Kursor myszy nie jest rysowany przez X-y, ale przez Windows-y, tak więc zależy on od częstości odświeżania (refresh rate), ale zmiany położenia myszy nie będą opóźniane.
    (Właściwie masz dwa kursory, ale kursorowi z X-ów nadawany jest "niewidzialny kształt" podczas gdy znajduje się on wewnątrz okienka z DOS-em.)
  4. Ponieważ położenie przekazywane do Windows-ów jest interpretowane względnie, musimy wyskalować kursor. Jest to robione autoamtycznie za każdym razem kiedy znajdziesz się w obszarze okna z DOS-em: Kursorowi nadawane są współrzędne (0,0) a potem otrzymuje on z powrotem swoje położenie względem okna X-owego. Więc jeśli chcesz wyskalować kursor, po prostu przesuń go poza okno z DOS-em i z powrotem do wewnątrz.

(10/2/97)

8.5 Czemu moja ikona zniknęła z Program Manager-a?

MS-Windows i WinOS2 różnie obsługują grupę "Program Manager". MS-Win zapisuje ustawienia w "progman.ini", WINOS2 zapisuje zawartość "progman.ini" w "system.ini". Oto wskazówka od (friest@acm.org (Todda T. Friesa)):

cat progman.ini >> system.ini

Pamiętaj żebyś użył ">>" :-)

9. Grafika i dźwięk.

9.1 Czy mogę uruchamiać pod dosemu gry z 32-bitową grafiką?

Mark Rejhon (mdrejhon@magi.com) zgłosił(8/4/95)

Biorąc pod uwagę ostatnie poprawki w implementacji DPMI, które pojawiły się w wersji 0.60 można teraz w dosemu uruchamiać niektóre gry z 32-bitową grafiką. Jeśli gra jest kompatybilna z sesją DOS-ową w OS/2, to są spore szanse, że zadziała także w dosemu. (Przykładami takich gier są Descent, Dark Forces, Mortal Kombat 2,Rise of The Triad, Wszystkie zostały uruchomione z pozytywnym skutkiem w dosemu.)

Zanim uruchomisz jakąś grę z grafiką, klawiaturę musisz mieć skonfigurowaną na tryb surowy (raw mode) i włączone tryby graficzne VGA w pliku /etc/dosemu.conf. Jeśli udało ci się już uruchomić programy graficzne w dosemu i jesteś przygotowany na ewentualny pad systemu (spowodowane jest to tym, że pozwalasz dosemu na dostęp do karty graficznej z przywilejami root-a, co może spowodować ustawienie karty graficznej w zły stan, z którego trudno przywrócić normalny), to możesz próbowac uruchamiać gry graficzne.

Zauważ jednak, że będziesz musiał wyłączyć dźwięk w grze. (Ktoś będzie musiał zaprogramować emulację karty dźwiękowej zanim będziemy mogli tego uniknąć). Zauważ też, że odświeżanie w grze może być trochę wolne, z powodu wielozadaniowości Linux-a i braku obsługi dużej częstotliwości odświeżania.. Tak więc gry mogą działać w prędkości od 5 do 100 procent swojej mocy. Typowa prędkość, to ok. 50 procent w ostatnich wersjach dosemu i ma ostatecznie wzrosnąć.

Kto wie, może to nawet będzie działać. Jeśli nie chce ci to działać, sprawdź listę "EMUfailure" czy program tam nie występuje, albo czy nie jest w kategorii programów, które teraz ani przupuszcalnie w ogóle nie będą działać w dosemu. Jeśli sądzisz, że powinno się go wymienić na liście "EMUfailrue", to zgłoś to do linux-msdos@vger.rutgers.edu.

Dodatek od (lermen@elserv.ffm.fgan.de(11/2/97)):

Jeśli włączysz DPMI i dosemu uruchamiane jest z prawem "suid root", to automatycznie robisz sobie dziurę w systemie (szczególnie jeśli używasz gier bazujących na dos4gw), klient jest w stanie dostać się do całej przestrzeni użytkownika, więc może także modyfikować kod dosemu. Włączenie opcji "secure" w pliku /etc/dosemu.conf blokuje to, ale nie możesz wtedy uruchamiać takich gier.

9.2 Podczas wychodzenia z dosemu mam zaśmiecony cały ekran.

(8/4/95)

Problem jest w tym, że informacje o czcionce dla tekstowego ekranu nie są zachowywane. Zdobądź pakiet "svgalib". Bieżące źródła są w SUNSite Polska.

Może też znajdować się w twojej dystrybucji Linux-a jako prekompilowany pakiet. Użyj programu savetextmode, aby zachować bieżący tryb tekstowy i czcionki w pliku w katalogu /tmp zanim uruchomisz dosemu. Potem, po wyjściu z dosemu uruchom textmode, żeby odzyskać stan sprzed uruchomienia.

Dodatek od (lermen@elserv.ffm.fgan.de(11/2/97)):

Spójrz także do src/arch/linux/debugger/README.recover i README.dosdebug, dosdebug może ci pomóc w naprawie.

9.3 Jak mam zmusić dosemu do współpracy z moją kartą Trident/Actix/inną?

[Ekran gwałtownie miga, wyświetla komunikat o starcie BIOS-u grafiki i wisi.]

Andrew Tridgell (tridge@nimbus.anu.edu.au) zgłosił(29/1/94)

Przekonałem się, że jeśli użyję

   ports { 0x42 }

we wczesnych wersjach, to będzie to działać, ale moja maszyna pada podczas odswieżania grafiki z BIOS-u w dosemu (ang.:when it was cycling the video BIOS in dosemu). [Od tłum.: Jeśli to tłumaczenie nie jest zbyt trafne i masz jakiś lepszy pomysł, to przyślij mi go.] Jest tak ponieważ pozwalasz BIOS-owi VGA na przeprogramowanie zegara, co się bardzo kłóci z Linux-em.

To zmusiło mnie do napiania tylko-do-odczytu i maskujących łat dla dosemu, które chyba wciąż są w ostatnich wersjach. Ja teraz używam:

   ports { readonly 0x42 }

Co prawda dosemu startuje teraz wolniej, ale bardziej rozsądnie.

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

Tim Shnaider (tims@kcbbs.gen.nz) zgłosił także (18/1/94), że

Jednym ze sposobów, aby to naprawić jest użycie programu GETROM, aby zrzucić BIOS z karty graficznej do pliku oraz zmodyfikować plik konfiguracyjny w katalogu /etc/dosemu. Oto moja linia dotycząca grafiki:

   video { vga console graphics chipset trident memsize 1024 vbios_file
   /etc/dosemu/vbios }

gdzie "vbios" to plik wygenerowany poleceniem

   getrom > vbios

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

Douglas Gleichman (p86884@tcville.edsg.hac.com) zgłosił(1/9/94), że (z ATI Graphics Ultra)

W wersji 0.52 musisz dodać taką linię do pliku dosemu.conf:

 ports  { 0x1ce 0x1cf 0x238 0x23b 0x23c 0x23f 0x9ae8 0x9ae9 0x9aee 0x9aef }

Test karty zgłosi błąd/błędy, ale programy graficzne będą działać dobrze.

9.4 Dlaczego moje programy dźwiękowe nie działają na mojej karcie?

Hannu Savolainen (hsavolai@cs.Helsinki.FI) zgłosił(21/3/94), że

Dosemu i wszystkie programy DOS-owe uruchamiane sa pod kontrolą systemu z operacjami w trybie chronionym. Oznacza to, że pamięć nie jest odwzorowywana tak jak program by się tego spodziewał. Jeśli w jakiś spośob uda się uruchomić nagrywanie bazowane na DMA z SB, to nagrywany dźwięk nie znajdzie drogi do aplikacji. Zniszczy po prostu jaieś dane w pamięci.

James B. MacLean (macleajb@ednet.ns.ca) zgłosił(19/6/94)

Przepraszam, że zawodzę, ale w tej chwili dosemu nie obsługuje bezpośrednio potrzebnego przechwytywania przerwań albo w ogóle DMA, które jest wymagane dla dostępu do kart dźwiękowych w dosemu. :-(

Chociaż kiedyś w przyszłości planuje się to zrobić.

A Corey Sweeney (orey@d94.nnb.interaccess.com) zgłosił(15/2/97), że

Kod dotyczący dźwięku jest w tej chwili opracowywany.

10. Gry.

10.1 Jak mam zmusić do działania moje urządzenie xxxxx pod dosemu?

Corey Sweeney (corey@bbs.xnet.com) zgłosił(30/5/94):

Oto zapiski z moich przygód dotyczących uruchamiania różnych urządzeń pod dosemu. Jak dotąd udało mi się zrobić pocztę głosową i w połowie skaner. Oto jak:

  1. Zobacz w podręczniku czy twoja karta używa jakichś portów. Jeśli znajdziesz jakieś, to umieść je w swoim pliku konfiguracyjnym w linii "ports". Pamiętaj, że czasami musisz mieć kilka portów na raz, i ten pierwszy to jedyny udokumentowany.
  2. Spróbuj czy działa. Jeśli nie, albo nie masz podręcznika (albo jest on denny jak mój podręcznik AT&T), to uruchom dosemu w taki sposób: "dos -D+T 2> /tmp/io.debug". Uruchom oprogramowanie do twojego urządzenia i wyjdź z dosemu. Przejrzyj /tmp/io.debug i poszukaj wszelkich portów. Spróbuj je dodać do swojego pliku konfiguracyjnego i uruchom dosemu jeszcze raz. Porty poniżej 0x400 ze słowem kluczowy "fast" nie są logowane!(9/2/97)
  3. Jeśli ciągle ci się nie udaje, to potrzebujesz przerwań.
    Zobacz jakiego IRQ używa twoja karta i zobacz czy jądro nie używa tego IRQ (cat /proc/interrupts).

Hans Lermen napisał(17/2/97):

  1. Upewnij się, że Linux nie używa tej karty sieciowej.
  2. Ustaw w /etc/dosemu.conf 'sillyint { use_sigio 5 }'.

(parę dodatków (11/2/97))

i to wszystko...

Pytanie: Co jeśli moja karta używa DMA? Odpowiedź: To pech.

11. Problemy i rozwiązania.

11.1 Sprawa dotycząca bezpieczeństwa.

Aby dosemu mogło być w pełni wykorzystane musi być "suid root", np. żeby miało dostęp do portów. Dosemu działa z przywilejami "root-a" tylko tam gdzie musi i zaraz potem przechodzi na innego użytkownika. Ale w przypadku DPMI, program dos-owy ma dostęp do całego obszaru użytkownika, a więc może tez modyfikować kod dosemu. Użycie opcji 'secure on' w pliku /etc/dosemu.conf blokuje tę możliwość, ale nie możesz też uruchamiać niektórych aplikacji jak np. gry z 32-bitową grafiką (lermen@elserv.ffm.fgan.de(97/2/11)). Np. uruchomienie dobrze znanego kompilatora z pełnym dostępem może mieć znacznie mniejszy wpływ na bezpieczeństwo niż uruchomienie jakiejś gry wziętej nie wiadomo skąd.

11.2 Dosemu pada podczas startu. Mam zainstalowane Win95.

Dosemu zakłada, że wersje DOS-u na obrazie dysku oraz na napędzie, który odwzorowujesz są takie same. Jeśli nie, to dosemu padnie wcześniej czy później. Podczas wyboru jaki daje Win95 po wciśnięciu klawiszy F4, F5 lub F8 po tekście "Uruchamianie systemu Win95" wersje na dysku Win95 mogą się zamienić. Miej szczególnie na uwadze command.com. Niech zmienna "shell" w config.emu wskazuje na poprawną statyczną wersję command.com-a, np: shell=c:\win95\command.com c:\ /P /E:1024 (97/02/28)

Naucz się posługiwania programem dosdebug i używaj go do kontrolowania przebiegu sesji dosemu(9/2/97)

11.3 Dosemu się zawiesza! Jak mogę je zabić?

Naucz się posługiwania programem dosdebug i używaj go do kontrolowania przebiegu sesji dosemu(9/2/97)

11.4 Dosemu padło i nie mogę nic pisać.

Daniel Barlow(jo95004@sable.ox.ac.uk) zgłosił(8/4/95)

Jeśli nie masz terminala, ani dostępu poprzez sieć, żeby się zalogować, możliwe, że będziesz musiał wcisnąć przycisk "RESET". Jeśli jednak możesz w jakiś sposób dostać się do używalnej powłoki, to uruchom "kbd_mode -a", aby przełączyć klawiaturę w tryb ASCII, i/lub "stty sane", na konsoli żebyś widział co piszesz.

Mądrą rzeczą jest uruchamianie dosemu poprzez skrypt, w którym polecenie "kbd_mode -a" byłoby wykonywane zaraz po zakończeniu dosemu. Kiedy dosemu padnie, skrypt powinien wykonać polecenie kbd_mode.

11.5 Włączyłem pamięć EMS w /etc/dosemu.conf, ale to nie pomaga.

Rob Janssen (rob@pe1chl.ampr.org) zgłosił(11/7/94)

Nie zapomnij załadować dostarczanego ems.sys z pliku config.sys.

11.6 Jak się pozbyć tych denerwujących komunikatów "disk change"?

(11/8/94)

Zdobądź i zainstaluj klogd (sysklogd). Powinieneś znaleźć ten program na SUNSite Polska.

11.7 Dlaczego dosemu nie chce się uruchomić drugi raz po wyjściu w trybie konsoli?

Aldy Hernandez (aldy@sauron.cc.andrews.edu) zgłosił(8/7/94), że

Powinieneś wyłączyć cache grafiki i/lub BIOS-u.

11.8 Dlaczego dosemu uruchamia się na terminalu, a nie chce na konsoli?

JyiJiin Luo (jjluo@casbah.acns.nwu.edu)(19/4/94) zgłosił

Przedtem miałem dokładnie ten sam problem. Stwierdziłem, że muszę wyłączyć całkowicie przesłanianie (shadow) grafiki w BIOS-ie. Od tej pory dosemu działa dobrze na moim systemie.

11.9 Jak mogę przyśpieszyć dosemu?

W niektórych przypadkach ciekawe efekty można uzyskać poprzez próbowanie różnych wartości zmiennej HogThreshold w pliku dosemu.conf.

Daniel Barlow(jo95004@sable.ox.ac.uk) zgłosił(8/4/95)

Zmienna HogThreshold powinna być teraz ustawiana na conajmniej połowę wartości BogoMips jaką wskazuje system podczas ładowania.

11.10 Mój CDROM ma problemy podczas odczytu niektórych plików pod dosemu.

Vinod G Kulkarni (vinod@cse.iitb.ernet.in)(7/4/94) zgłosił, że

Kiedy CDROM jest montowany spod Linux-a i używany pod dosemu (napęd odwzorowany), mogą wystąpić problemy. Sterownik do CDROM-u (iso9660) umieszczony w jądrze próbuje zgadnąć typ pliku (tj. binarny czy tekstowy). Jeśli nie zgadnie, to próbuje dalej używając heurystyki. Metoda ta zawodzi w pewnych okolicznościach kiedy (prawie) tekstowy plik ma być potraktowany jako binarny. (Nie wiem czy to jest błąd czy zaleta.)

Wynikiem tego jest to, że jeśli skopiujesz taki plik z CDROM-u (z Linux-a - niekoniecznie z dosemu), to plik wynikowy będzie większy niż plik oryginalny. (Puste znaki sa dodawane przed ^J i ^M.) Więc program uruchamiany w dosemu podaje komunikat o błędzie lub się zawiesza, co może dawać mylne wrażenie o problemach z dosemu.

Rob Janssen (pe1chl@rabo.nl) zgłosił(10/8/94), że

Sposobem na rozwiązanie tego problemu jest wyłączenie konwersji. Podczas montowania CDROM-u dodaj opcję "-o conv=binary" do polecenia mount, albo użyj takiego wpisu w /etc/fstab:

/dev/cdrom      /cdrom          iso9660 conv=binary,ro

Nie są potrzebne łaty do jądra.

11.11 Jak mam zobaczyć wyniki śledzenia?

Co do wersji 0.60 wyniki te są przekierowywane do pliku podanego w linii poleceń. Użyj polecenia "dos -D+a -o /tmp/debug", aby zapisać wszystkie wyniki śledzenia w pliku /tmp/debug. Nie powinno być już potrzeby przekierowywania stderr.

11.12 Dlaczego litery na ekranie są wyświetlane ddwwaa razy?

Nick Holloway (alfie@dcs.warwick.ac.uk) zgłosił(22/2/94), że

Zdarza się to tylko jeśli uruchamiasz DOS-a na konsoli z ustawionym "istrip". Sądze, że jest to spowodowane tym, że surowe kody klawiszy są powielane przez "istrip, tak że puszczenie klawisza widziane jest jako jego wciśnięcie.

Tak, że obsługa wejściowa musi być wyłączona jeśli używasz kodów klawiszy na konsoli (nie byłoby to dobrym pomysłem na terminalu).

11.13 Dosemu psuje mi ekran?

Przy kartach nie do końca obsługiwanych w dosemu, z włączonym dostepem do grafiki na konsoli pad dosemu może pozostawić konsolę w prawie nieużywalnym stanie. Aby przygotować się na taką sytuację, Spudgun <spudgun@earthlight.co.nz> wysłał następujące rozwiązanie. Najpierw zapisz swoje rejestry z konsoli

~> cat /usr/bin/savetextmode
~> restoretextmode -w /etc/textregs
~> restorefont -w /etc/fontdata

Potem, kiedy dosemu padnie, uruchom następujący skrypt:

restoretextmode -r /etc/textregs
restorefont -r /etc/fontdata
restorepalette

Jeśli to nie pomoże, to nic nie pomoże.
Przekonałem się także, że uruchomiony Xserwer ustawiał moją kartę graficzną w dziwny stan, a ten skrypt tylko pogarszał sprawę. Myślę, że pomogła zmiana Xserwer-a i/lub uruchamianie savetextmode na vt podczas działania X-ów.(08/04/97)

11.14 MS FoxPro 2.6 nie chce działać.

FoxPro 2.6 nie chce działać na napędach sieciowych. Alexey Naidyonov <growler@growler.tsu.tula.ru> stwierdza:
Sądzę, że twoje pliki są na przekierowanym dysku, tak? Problem w tym, że FoxPro nie działa na takich dyskach, ale kiedy ustawiłem disk { partition ... } w /etc/dosemu.conf, to działał.

12. Wkład w projekt dosemu.

12.1 Kto jest odpowiedzialny za dosemu?

(9/2/97)

Dosemu tworzone jest na podstawie pracy Matthiasa Lautnera i Roberta Sandersa. Hans Lermen (lermen@elserv.ffm.fgan.de) jest odpowiedzialny za organizację najnowszej wersji dosemu.

                       History of dosemu

          Version    Date                Person           
         -------------------------------------------------
          0.1        3 Września 1992   Matthias Lautner
          0.2        13 Września 1992  Matthias Lautner
          0.3        ???                 Matthias Lautner
          0.4        26 Listopada 1992   Matthias Lautner
          0.47       27 Stycznia 1993    Robert Sanders
          0.47.7     5 Lutego 1993    Robert Sanders
          0.48       16 Lutego 1993   Robert Sanders
          0.48pl1    18 Lutego 1993   Robert Sanders
          0.49       20 Maja 1993        Robert Sanders
          0.49pl2    18 Listopada 1993   James MacLean
          0.49pl3    30 Listopada 1993   James MacLean
          0.49pl3.3  3 Grudnia 1993    James MacLean
          0.50       4 Marca 1994       James MacLean
          0.50pl1    18 Marca 1994      James MacLean
          0.52       16 Czerwca 1994       James MacLean
          0.60       9 Kwietnia 1995       James MacLean
          0.64.4     9 Lutego 1997       Hans Lermen

12.2 Chcę pomóc. Z kim mam się skontaktować?

Projekt dosemu jest rezultatem wysiłku drużynowego. Jeśli chcesz wnieść jakiś wkład, to przeczytaj DPR (dosemu Project Register). Aktualną kopię możesz znaleźć w ../doc/DANG(9/2/97)

12.3 Od tłumacza.

Tłumaczenie to jest chronione prawami autorskimi © Bartosza Maruszewskiego. Dozwolone jest rozprowadzanie i dystrybucja na prawach takich samych jak dokument oryginalny.

Jeśli znalazłeś jakieś rażące błędy ortograficzne, gramatyczne, składniowe, techniczne to pisz do mnie:

B.Maruszewski@zsmeie.torun.pl

Oficjalną stroną tłumaczeń HOWTO jest http://www.jtz.org.pl/

Aktualne wersje przetłumaczonych dokumentów znajdują się na tejże stronie. Dostępne są także poprzez anonimowe ftp pod adresem ftp.ippt.gov.pl w katalogu /pub/Linux/JTZ/.

Przetłumaczone przeze mnie dokumenty znajdują się także na mojej stronie WWW. Są tam też odwołania do Polskiej Strony Tłumaczeniowej.

Kontakt z naszą grupą, grupą tłumaczy możesz uzyskać poprzez listę dyskusyjną jtz@ippt.gov.pl. Jeśli chcesz sie na nią zapisać, to wyślij list o treści subscribe jtz Imię Nazwisko na adres listproc@ippt.gov.pl

Zmiany w tym dokumencie wprowadzone przez tłumacza to: