Linux, DosBox i /dev/ttyS0

Jak wiadomo – programista nie pracoholik – grać musi. Co należy jednak zrobić gdy jego sprzęt nie daje mu do końca takiej możliwości?

Wbrew pozorom, nie chodzi wcale o granie w super-wypasionego MMORPG’a – chodzi o grę starą i niemalże zapomnianą: The Settlers 2. Jaki więc mam problem skoro bóg zesłał programistów, którzy napisali DosBOX’a nawet na Linuksa?

Problemem jest gra na dwóch graczy. Każdy kto grał w The Settlers 2 wie o co chodzi – trzeba podłączyć 2 myszki, z czego co najmniej jedna musi być na porcie szeregowym (COM). Niby nic, ale co jeśli nie ma takiego portu? ^^ Np. ja w moim laptopie go nie mam i tutaj zaczynają się schody.

Poszperałem trochę w internecie i znalazłem informację, że porty szeregowe w linuksie reprezentowane są przez pliki /dev/ttyS* ( * – numer portu 0-3 [odpowiednio COM1-4] ). Istotne też, aby pamiętać, że ‚S’ ma być duże 😉 Znalazłem taki port u siebie w katalogu /dev jednak nie mam pojęcia co mogę z tym zrobić dalej skoro nie mam takiego portu fizycznie? ^^

Napisałem nawet program który czyta dane z portu myszy ( /dev/input/mouse* ) i wysyła je na /dev/ttyS0 ale niestety sam DosBOX nie chce czytać tego portu zwracając przy starcie komunikat o błędzie:

Serial1: Opening /dev/ttyS0
tcgetattr failed with error 5.

Nie mam zielonego pojęcia co oznacza kod 5 bo nie mogłem znaleźć tego w internecie, ale pewnie ma to związek z brakiem fizycznego portu rs232 w moim laptopie.

Nasuwa mi się na myśl tylko jedna rzecz – jakiś wirtualny port szeregowy. Pytanie tylko czy to podziała… Może ktoś ma jakiś pomysł co do tego? Jestem otwarty na pomysły 🙂

Reklamy

3 myśli nt. „Linux, DosBox i /dev/ttyS0

  1. Kod 5 to Input/output error. Żeby to sprawdzić wystarczy napisać programik w stylu:

    errno = 5;
    perror („”);

    Najwyraźniej więc masz rację i chodzi o brak portu. Nie mam przy sobie Linuksa akurat, ale zastanawiam się, czy nie możnaby wywalić oryginalnego /dev/ttyS0 i stworzyć nowego jako hardlinka do /dev/input/mouse 🙂

  2. @Xion: to nie przejdzie. W configu DosBOXa mogę sobie podać jaki port ma czytać i na linuksie jest tak fajnie, że mogę podać mu bezpośrednio ścieżkę do /dev/input/mouse*

    Bo tam jest kilka plików, mi zależy głównie na jednym – który otrzymuje dane od jednej konkretnej myszy. Jest też /dev/input/mice który otrzymuje dane od wszystkich myszy 🙂

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s