Strona główna | Informacje | Społeczność | Rozwój | mójReactOS | Kontakt
|
Community > ReactOS Newsletter Archive > ReactOS Newsletter: Newsletter 57Newsletter 57by Z98 on 2009-04-30 Tłumaczenie: Olaf Siejka topSterownik grafiki VBoxNie tak dawno sterownik grafiki VirtualBox zaczął wreszcie działać w ReactOS, co oznaczało możliwość korzystania z akceleracji 3D z komputera - hosta. Jednak by do tego doszło, Timo Kreuzer musiał poradzić sobie z dwoma błędami podsystemu Win32. Mimo, iż sam sterownik działał jako tako, jego funkcjonalność była znacznie ograniczona, z powodu błędów wyświetlanego obrazu. Pierwszy problem tyczył się kursora myszki, a dokładniej – śladu jaki za sobą zostawiał podczas przesuwania go po ekranie. Zwykle, gdy kursor opuszcza swoją pozycję, jego zawartość z miejsca startu jest przerysowywana a sam kursor – ukrywany. Następnie, pozycja kursora jest uaktualniona do nowej pozycji, jego zawartość rysowana a kursor odkrywany. Problem tkwiący w starym kodzie polegał na tym, że moduł odpowiedzialny za rysowanie kursora na nowej pozycji także próbował ponownie dokonać ukrycia go na jego starej pozycji i przepisania. Jednakże lokalizacja kursora była już uaktualniona na nowa pozycje, stary kursor był zatem rysowany na pozycji nowego. W rezultacie prowadziło to do zamazywania obrazu kursorami myszki. Timo usunął redundantny fragment, co usunęło błąd. Drugi problem związany był ze zmianą rozdzielczości ekranu i ilości wyświetlanych kolorów. O wiele prostszy, ReactOS nie zapisywał bowiem częstotliwości pionowego odświeżania ekranu do ustawień sterownika grafiki w rejestrze. Kiedy sterownik grafiki VBox szukał tej wartości i nie mógł jej znaleźć, ustawiał domyślną rozdzielczość 640x480x256. Co ciekawe, sterownik grafiki VMWare pracował poprawnie bez niej. topRosBE i RBuildKJK::Hyperion jakiś czas temu popełnił dość duży pakiet zmian w RBuild. Niestety, skończyło się to odkryciem poważnego problemu w RosBE, zarówno w wersji Windows jak i Unix. Poprawki, które chciał wprowadzić KJK wymagają (a raczej będą wymagać) szeregu zdefiniowanych zmiennych, takich jak TARGET_CFLAGS, TARGET_CPPFLAGS, HOST_CFLAGS i HOST_CPPFLAGS. GCC dla Windows niestety zawiera błąd, uniemożliwiający ich użycie. Dokładniej mówiąc, ścieżki do katalogów, w których znajdują się pliki include są w GCC zapisane na stałe, tak by aplikacja mogła znaleźć je kiedykolwiek będą potrzebne podczas kompilacji. Sprawiało to już rozliczne problemy, także w RosBE. Aby ominąć ograniczenie z tym związane, mamy zdefiniowane zmienne HOST_CFLAGS i HOST_CPPFLAGS, wskazujące na poprawne katalogi. Z tego powodu, nie można było już ich użyć gdzie indziej, tam gdzie planował zrobić to KJK. Zaproponował więc zmianę nazw obecnie używanych zmiennych na ROSBE_HOST_CFLAGS i podobne. Kolejny problem, tym razem wyłącznie w wersji RosBE UNIX polegał na braku zdefiniowanych zmiennych TARGET_CFLAGS czy TARGET_CPPFLAGS. RBuild będzie potrzebować ich, w przypadku użycia innego kompilatora niż GCC, jest to więc głównie potrzebne w wersji RosBE Windows. Rbuild jednakowoż wymaga obecności tych zmiennych bez względu na używaną platformę, dlatego ich brak w wersji UNIX wywołał niniejszy problem. Łatwy do rozwiązania w porównaniu do pierwszego, Colin po prostu owe zmienne dla RosBE UNIX zdefiniował. Podsumowując, udało się skompilować wersję GCC dla Windows, z poprawionymi ścieżkami do include, jednak Danier Reimer nie był w stanie skompilować ReactOS za jej pomocą. Jako, że RosBE które nie może skompilować ReactOS jest bezużyteczne, Ekipa musi zorientować się, gdzie tkwi kolejny błąd. Możemy oczekiwać kolejnej wersji RosBE, miejmy nadzieję - niedługo. topSterowniki kart sieciowychOd lata 2008, Olaf Siejka i inni testerzy, zaczęli wypróbowywać rozmaite karty sieciowe na własnych, testowych PC-tach, patrząc jaki efekt przyniesie instalowanie oryginalnych sterowników Windows do tych urządzeń. Logi debug z tych prób lądowały u Arta Yerkesa i Camerona Gutmana (odpowiednio arty i aicom), którzy dzięki ich analizie byli w stanie uzupełniać brakujące funkcje stosu sieci i poprawiać błędy. Testerzy otrzymywali od nich łatki do wypróbowania, nowe rozwiązania albo po prostu zbierające dodatkowe informacje i po przetestowaniu, zwracali znów kolejne logi. Ten zamknięty obieg doprowadził, po wielu miesiącach żmudnej pracy obu zespołów, do skompletowania ponad 10 unikalnych modeli kart sieciowych, które udało się uruchomić i z powodzeniem używać. Nadal istnieją niejasności, większość z tych kart wymaga sterownika z Windows 2000 a nie Windows XP, jednak po raz pierwszy ReactOS okazuje się spełniać wymagania kompatybilności z systemem Windows co do tak wrażliwych komponentów jakim są sterowniki. Grupa nie zamierza poprzestać i będzie kontynuować obraną strategię, tak więc mamy nadzieje na dłuższą listę działającego sprzętu przy okazji wersji 0.3.10 top0.3.9 i przyszłośćPodczas gdy 0.3.9 zdaje się przynosić całkiem obiecujące zmiany, nadal trapią ją istotne problemy. Wstępne wsparcie dla dźwięku jest dość wybredne, funkcjonując jedynie na określonych urządzeniach, stawiając Johannesa Anderwalda przed tytanicznym zadaniem zapewnienia wsparcia dla całej masy kart dźwiękowych. Do tego nawet dwie najpopularniejsze i najlepiej działające z ReactOS platformy, czyli QEMU i VirtualBox dotknięte są niezmiennie przez problemy wynikające z niewłaściwego zarządzana pamięcią (komponenty Cache Controller i Memory Manager) czy nadal prymitywnego sterownika FAT, które to przypadłości bardzo często potrafią zawiesić system podczas odtwarzania dźwięku. Wraz z wersją 0.3.10, deweloperzy mają zamiar przede wszystkim ustabilizować i poprawić istniejącą już funkcjonalność, a także możliwie ułatwić testowanie czy korzystanie z systemu. Poza planami wsparcia większej ilości kart sieciowych (w tym też nieśmiało – kart bezprzewodowych WIFI) czy dźwiękowych, możemy dostrzec próby podobnych działań wobec kart graficznych. Wstępnym krokiem było uruchomienie sterownika grafiki VBox, jednak osiągnięcie jakichkolwiek sukcesów z rzeczywistymi kartami graficznymi wymaga uprzednich zmian w podsystemie Win32, tak by sterowniki kart graficznych miały szanse ominąć rozliczne idiosynkrazje w kodzie systemu ReactOS. top |