Gentoo/Alpha, często zadawane pytania
1.
Kilka słów o tym dokumencie
Wstęp
Odpowiedzi na najczęstsze pytania dotyczące projektów Gentoo/Alpha oraz
Linux/Alpha.
O projekcie Gentoo/Alpha
Architektura Alpha
Sprzęt
Flagi kompilatorów specyficzne dla Alphy
Uruchamianie Alphy i jej programy ładujące
Oprogramowanie
Jądro w Alphie
Pomoc dla projektu Gentoo/Alpha
Problemy
Dodatkowe informacje
2.
O projekcie Gentoo/Alpha
Czym jest Gentoo/Alpha?
Projekt Gentoo/Alpha jest odpowiedzialny za utrzymywanie aktualności
dystrybucji Gentoo na platformie Alpha. W pierwszej kolejności zaliczają się do
tego nowe wydania Gentoo oraz oznaczanie ebuildów odpowiednimi, związanymi z
Alpha słowami kluczowymi. Projekt Gentoo/Alpha ma na celu dostarczenie łatwego
w użyciu środowiska, zarówno na stacje robocze jak i dla zastosowań
serwerowych.
Jaki jest aktualny postęp prac nad projektem?
Informacje na temat aktualnego postępu prac nad projektem Gentoo/Alpha można
znaleźć w specjalnych raportach. Planujemy je wydawać raz na 6 miesięcy.
Aktualny raport możemy znaleźć tutaj.
3.
Architektura Alpha
Czy architektura Alpha jeszcze żyje?
Nie do końca! HP zaptrzestało przyjmować oferty na nowe komputery Alha 27
kwietnia 2007 roku. Zamówienia na aktualizacje i dodatkowe części do 25
kwietnia 2008 roku. Więcej informacji na ich stronie
z planami.
Czy mogę uruchomić 32 bitowe aplikacje?
Nie, wszystkie komputery Alpha używają całkowicie 64 bitowych kerneli oraz
całkowicie 64 bitowych przestrzeni użytkownika. Nie można nawet zmusić GCC do
wykonywania 32 bitowych programów używając flagi -m32.
Alpha jest architekturą big-endian czy może little-endian?
Wszystkie systemy Alphy wspierają zarówno little jak i big endian. Jednakże
Linux używa tylko i wyłącznie little-endian.
Czy można uruchomić aplikacje Linux/x86 na Alphie?
Nie. W celu uruchomienia aplikacji z x86 musimy wyposażyć się w emulator x86
taki jak bochs. Dawniej
DEC/Compaq/HP utrzymywały program em86, który umożliwiał uruchamianie
aplikacji Linux/x86 na systemach Linux/Alpha. Jednakże program ten nie ma
otwartego kodu i nie jest już utrzymywany. Nie ma także binarek em86
kompatybilnych z ABI gcc3.
Po co instalować Gentoo na Alphie?
Są szybsze 64 bitowe platformy - jak chociażby amd64. Jednakże nie oznacza to,
że Alpha jest bezużyteczna. Poniżej znajduje się kilka dobrych powodów dla
których warto zainstalować Linuksa na tym sprzęcie:
-
Można zrobić pożytek ze starego komputera. Starsze Alphy doskonale nadają
się na routery i serwery, a ich przystosowanie do pełnienia roli
stacji roboczej również nie jest złe.
- Można nauczyć się obsługi niszowego sprzętu
-
To fajne. Jak dużo ludzi może powiedzieć, że ma Linuksa na Alphie? ;-)
Gdzie mogę kupić sprzęt Alphy?
Sprzęt Alphy z reguły nie jest dostępny w lokalnych sklepach komputerowych.
Aby kupić nową Alphę, należy się skontaktować z HP. Jeśli natomiast chce się
kupić używaną Alphę (rozwiązanie bardziej ekonomiczne), eBay powinien być dobrym rozwiązaniem, zwłaszcza,
że kupowanie tam nie jest kosztowne. Ostatnim rozwiązaniem są dealerzy sprzętu
Alphy, których możemy znaleźć za pośrednictwem google, jednak większość z nich
ma bardzo wysokie ceny.
4.
Sprzęt
Otwierałem obudowę serwera Alpha, a teraz on nie chce się uruchomić, co robić?
Należy się upewnić, że panel górny obudowy znajduje się na miejscu. Jego środek
posiada kawałek metalu skierowany do dołu. Jeśli panel jest zamontowany
prawidłowo, ten kawałek naciska przycisk. Jeśli ten przycisk nie jest
naciśnięty, komputer się nie uruchomi.
5.
Flagi kompilatorów specyficzne dla Alphy
Czy zalecane jest używanie specyficznych dla Alphy flag?
Tak jak w przypadku wszystkich optymalizacji związanych z kompilatorami, należy
uważać, aby nie przesadzić. Ostrożne używanie da nam stabilny i szybki system,
zbyt ostre może nieźle w nim namieszać. Jeżeli mamy wątpliwości, zostawmy te
flagi w spokoju. W celu dokładniejszych wyjaśnień należy zajrzeć do manuala
gcc
W jaki sposób ustawić optymalizację dla określonego zestawu instrukcji i modelu
planowania?
Aby ustawić optymalizację dla określonego zestawu instrukcji oraz modelu
planowania należy skorzystać z opcji -mcpu=XXX gdzie XXX jest typem
naszego procesora. Dopuszczalnymi typami są ev4, ev45, ev5,
ev56, pca56, ev6 oraz ev67. Jeżeli flaga
-mcpu=XXXX nie zostanie ustawiona, gcc będzie korzystać z
domyślnego ustawiania, czyli typu procesora na jakim zostało skompilowane.
-mcpu= jest odpowiednikiem flagi -march= znanej z x86.
Uwaga:
Użytkownicy AlphaServer 800 powinni ustawić ev5. Ustawienie ev56
może powodować wiele problemów, szczególnie zawieszanie się serwera X.
|
W jaki sposób wybrać model planowania bez zmiany zestawu instrukcji?
Aby wybrać model planowania bez zmiany zestawu instrukcji, należy skorzystać z
opcji -mtune=XXX, gdzie XXX jest typem naszego procesora. Dopuszczalnymi
typami są ev4, ev45, ev5, ev56, pca56,
ev6 oraz ev67. -mtune= jest automatycznie ustawiane do
-mcpu=, więc jeżeli ustawiliśmy flagę -mcpu= nie musimy już
ustawiać -mtune=. -mtune= jest odpowiednikiem flagi
-mcpu=z x86.
W jaki sposób odblokować programowe wsparcie dla liczb
zmiennoprzecinkowych?
Aby odblokować programowe wsparcie dla liczb zmiennoprzecinkowych należy użyć
flagi -mieee. Flaga ta odblokowuje programowe wspomaganie dla prawidłowej
obsługi "denormalized numbers" i specjalnych wartości IEEE, takich jak
"not-a-number" i plus/minus nieskończoności.
Opcje te powinny zostać umieszczone w globalnych ustawieniach CFLAGS.
W jaki sposób mogę ustawić opóźnienia pamięci w systemie?
Aby ustawić opóźnienia pamięci, należy odpowiednio ustawić flagę
-mmemory-latency=XXX, gdzie XXX jest liczbą cykli zegara. Ustawia to
opóźnienia które scheduler powinien przyjąć "for memory references". gcc
ma kilka predefiniowanych "typowych" wartości, które również są akceptowane
przez -mmemory-latency=XXX. Te wartości to L1 dla Dcache,
L2 dla Scache, L3 dla Bcache oraz main dla pamięci
głównej.
Ta flaga nie powinna być użyta w globalnych CFLAGS, ponieważ wartość tej
zmiennej ma duże znaczenie dla dostępu do pamięci przez skompilowane aplikacje.
W jaki sposób ustawić, aby dane statyczne były umieszczane w małym segmencie
danych?
Należy odpowiednio ustawić flagę -msmall-data. Oznacza to, że gcc
spróbuje wykorzystać wykorzystać wszystkie cechu architektury Alpha, przez
umieszczanie często używanych fragmentów danych w specyficznych sekcjach
zwanych małymi segmentami pamięci. Segmenty te są ograniczane do 64kb, co
oznacza, że dostęp do nich może odbywać się przy użyciu tylko jednej
instrukcji.
-fPIC może nadpisać ustawienia -msmall-data, więc rekomendowane
jest używanie opcji -fpic jeżeli nie chcemy aby -msmall-data było
nadpisane
Ta flaga nie powinna być użyta w globalnych CFLAGS, ponieważ niektóre
obiekty wymagają więcej niż 64kb i w takim przypadku zakończy się to błędem ld:
gp_overflow
W jaki sposób ustawić, aby "object code" był umieszczany w małym segmencie
kodu?
Aby "object code" był umieszczany w małym segmencie kodu należy odpowiednio
ustawić flagę -msmall-text. Oznacza to, iż gcc zmieści program w
4MB, więc będzie on osiągalny przy użyciu instrukcji rozgałęziania. Zmniejsza
to liczbę koniecznych instrukcji dla każdego wywołania funkcji z czterech do
jednej.
Ta flaga również nie powinna znajdować się w globalnych CFLAGS, ponieważ
niektóre programy (lub biblioteki) są większe niż 4MB i mogą powodować błędy.
Co zrobić, jeżeli którakolwiek z tych flag powoduje błąd w czasie kompilacji,
linkowania lub uruchomienia?
Jak już zostało powiedziane, należy ostrożnie ustawiać
CFLAGS, ponieważ nieodpowiednie ustawienia mogą zakończyć się awarią
systemu. Jeżeli mamy poważne problemy, spróbujmy najpierw użyć nieco mniej
wygórowanych ustawień CFLAGS, zanim zgłosimy
błąd.
6.
Uruchamianie Alphy i jej programy ładujące
Czym jest SRM?
SRM bazuje na specyfikacji "Alpha Console Subsystem", która dostarcza środowiska
operacyjne dla OpenVMS, Tru64 UNIX-a oraz systemów operacyjnych Linux. Po
więcej informacji należy zajrzeć do SRM Howto
Czym jest ARC?
ARC bazuje na specyfikacji "Advanced RISC Computing (ARC)", która dostarcza
środowiska operacyjne dla Windows NT.
W jaki sposób sprawdzić czy Alpha ma firmware ARC czy SRM?
Jeżeli podczas uruchamiania naszego komputera widzimy biały tekst na niebieskim
tle oznacza to, iż mamy SRM. Jeżeli natomiast mamy ARC, ukaże się nam graficzny
system ładowania.
Jakiego programu ładującego użyć?
Jeżeli Alpha ma wsparcie dla SRM, należy użyć aboot. Jeżeli wpiera SRM i linie
ARC (ARC, AlphaBIOS, ARCBIOS), należy zajrzeć do SRM Firmware Howto aby
dowiedzieć się jak przełączyć się do SRM i użyć aboota. Jeżeli natomiast
wspiera jedynie linię ARC (Ruffian, nautilus, xl, itd.) prawidłowym wyborem
będzie milo.
Czy aboot potrafi uruchomić jądra z partycji xfs, reiserfs lub jfs?
Nie, aboot potrafi uruchomić jądro tylko z partycji ext2i
ext3. Można jednak zmienić system plików na partycji głównej, tworząc
osobną partycję /boot na ext2 lub ext3 i przenosząc
tam jądra z partycji głównej.
Planowana jest obsługa reiserfs i xfs. Są już nawet patche, które taką obsługę
zapewniają. Nie są one jednak oficjalnie wspierane.
7.
Oprogramowanie
Jak wspierana jest Java w Gentoo/Alpha?
Dawniej jedyną opcją dla Java VM i Java SDK w Gentoo/Alpha była instalacja
pakietów compaq-jre i compaq-jdk. Niestety Compaq przestał je
wydawać w październiku 2006.
Czy kiedyś będzie działające wsparcie dla javy?
Mamy taką nadzieję. Kontynuujemy rozwój jdk z SableVM. Nie jest ono jeszcze gotowe, ale mamy
nadzieję, że z czasem będzie pełnym zamiennikiem jdk.
Jak na Alpha wygląda obsługa .NET?
Żaden z opartych na otwartym oprogramowaniu projektów takich jak mono czy DotGNU nie współpracuje z architekturą
Alpha.
Co jest potrzebne do obsługi .NET?
.NET na Alpha to nie jest prosta sprawa. Wymaga napisania kodu kompilatora JIT
i specyficznych dla architektury funkcji.
8.
Jądro w Alphie
Których źródeł kernela powinienem użyć?
Dla architektury Alpha polecamy źródła gentoo-sources, ale wspieramy
również vanilla-sources. Ich dokładny opis znajduje się w Omówieniu źródeł jądra dostępnych w
Gentoo.
Mój system nie chce współpracować z jądrem 2.6. Czy mogę używać systemu opartego
o jądro 2.4?
Profil i jądro 2.4 nie są wspierane przez Gentoo/Alpha od stycznia 2008.
Technicznie wciąż możliwa jest instalacja systemu opartego na jądrze 2.4, gdyż
znajduje się ono w drzewie Portage. W tym celu konieczne będzie jednak ręczne
zamaskowanie przez użytkownika wszystkich pakietów opartych na jądrze 2.6.
Pomoc deweloperów dla użytkowników jądra 2.4 jest również mocno ograniczona.
Naszą główną sferą działalności jest teraz jądro 2.6 i na pomocy w rozwiązywaniu
problemów związanych z tym jądrem jest teraz skupiona cała nasza uwaga.
Czy jest wsparcie dla hardened-sources?
Nie ma. Kiedyś je wspieraliśmy, ale nie jesteśmy już w posiadaniu sprzętu, na
którym je testowaliśmy, odszedł od nas także główny deweloper tego projektu.
Czekamy na zgłosznia chętnych, którzy chcieliby pomóc we wskrzeszeniu tego
projektu.
Czy jądra 2.6 wspiera technologię Alpha SMP?
Bardzo często w przeszłości SMP na jądrach 2.6 było zepsute dla Alpha. Teraz
jednak to się zmieniło, jądra 2.6.15.1 i 2.6.16.19 dobrze
obsługują SMP. Jeśli jednak obsługa ta nie zadziała, należy wrócić na jądro
2.4. Jeśli 2.6 jest niezbędne, trzeba będzie się pogodzić z tym, że będzie
działał tylko jeden procesor.
9.
Pomoc dla projektu Gentoo/Alpha
W jaki sposób zgłaszać błędy?
Jeżeli użytkownik znajdzie jakiś błąd lub zechce wysłać jakiś patch, musi
zgłosić buga. Zajmuje to tylko kilka chwil, a może okazać się nieocenioną
pomocą. W razie problemów należy zajrzeć do tekstu Zgłaszanie błędów w Gentoo.
W jaki sposób mogę pomóc projektowi Gentoo/Alpha?
Użytkownicy mogą pomóc przez:
-
Zgłaszanie i dokładne opisywanie wszystkich błędów
- Testowe aplikacje nie mają jeszcze maski ~alpha.
-
Odpowiadając na pytania na listach
mailingowych, orum oraz na
IRC-u.
- Wysyłanie patchy
-
Dołączenie do zespołu AT
Czy istnieje projekt Alpha Arch Testerów?
Szczegóły dotyczące projektu znajdują się na stronie Gentoo Linux Alpha
Arch Testers Project/
10.
Problemy
Czemu serwer X zawiesza się na Alpha?
Może to być związane ze złym ustawieniem flagi -mcpu. Na przykład
AlphaServer 800 wymaga ustawienia ev5 dla Xorg i glibc. Jeśli się
tego nie zrobi, należy spodziewać się kłopotów.
11.
Dodatkowe informacje
Dlaczego nie istnieje forum "Gentoo on Alpha"?
Na forum Gentoo jest wyznaczonych
kilka kategorii, takich jak "Gentoo on PPC" "Gentoo on Sparc".
Kategorii "Gentoo on Alpha" nie ma, ponieważ nie ma odpowiednio dużej aktywności
w tym temacie, aby tworzyć osobne forum. Wszystkie posty odnośnie Alphy powinny
być umieszczane w "Gentoo on Alternative
Architectures".
Gdzie mogę znaleźć pomoc oraz więcej informacji na temat projektu
Gentoo/Alpha?
Jeżeli na jakiekolwiek nie było tu odpowiedzi na któreś z pytań, warto
spróbować poszukiwań w innych źródłach, takich jak np. Podręcznik Gentoo/Alpha lub
strona domowa projektu. Można również
zadać pytanie na #gentoo-alpha w sieci irc.freenode.net, na forum
Gentoo on Alternative
Architectures lub na liście mailingowej
gentoo-alpha@lists.gentoo.org.
Gdzie mogę znaleźć pomoc oraz więcej informacji na temat projektu Alpha/Linux?
AlphaLinux.org jest centralnym
miejscem dla wszystkich spraw związanych z Alpha/Linux.
Zawartość tego dokumentu jest rozpowszechniana na podstawie licencji Creative Commons -
Attribution / Share Alike.
|