MILO HOWTO Autor: David A. Rusling david.rusling@reo.mts.dec.com v0.84, 6 Grudnia 1996 WWeerrssjjaa ppoollsskkaa:: LLeesszzeekk UUrrbbaaññsskkii ttyyggrryyss@@ffiiddoonneett..oorrgg..ppll v1.0, 24 Lipca 1998 Ten dokument opisuje Miniloader (Mini³adowacz), program dla komputerów opartych na procesorze Alpha, który mo¿e byæ u¿ywany do inicjalizacji maszyny i ³adowania Linuxa. Alpha Linux Miniloader (jest to jego pe³na nazwa) jest te¿ znany jako MILO. Dokument ten zosta³ napisany w stan dardzie ISO-8859-2. Orygina³ tego dokumentu znajduje siê pod adresem ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader/docs. ______________________________________________________________________ Table of Contents: 1. Wprowadzenie 1.1. Prawa autorskie 1.2. Nowe wersje tego dokumentu 2. Co to jest MILO? 3. Standardowe, pre-kompilowane obrazy MILO 4. Kompilacja MILO 5. £adowanie MILO 5.1. £adowanie MILO z firmware'u Windows NT ARC 5.2. £adowanie MILO z ,,Evaluation Board Debug Monitor'' 5.3. £adowanie MILO z ,,bezpiecznej dyskietki startowej'' 5.4. £adowanie MILO z pamiêci Flash 5.5. £adowanie MILO z konsoli SRM 5.6. Informacje o p³ytach g³ównych 5.6.1. AXPPCI33 (NoName) 5.6.2. AlphaPC64 (Cabriolet) 5.6.3. EB66+ 5.6.4. EB64+/Aspen Alpine 5.6.5. Universal Desktop Box (Multia) 5.6.6. EB164 5.6.7. PC164 5.6.8. XL266 5.6.9. Platform2000 6. Interfejs u¿ytkownika MILO 6.1. Komenda ,,help'' 6.2. £adowanie Linuxa 6.3. Resetowanie Linuxa 6.4. Komenda ,,bootopt'' 7. U¿ywanie programu zarz±dzaj±cego pamiêci± flash 7.1. Komenda ,,help'' 7.2. Komenda ,,list'' 7.3. Komenda ,,program'' 7.4. Komenda ,,environment'' 7.5. Komenda ,,bootopt'' 7.6. Komenda ,,quit'' 8. Ograniczenia 9. Rozwi±zywanie problemów 10. Podziêkowania 11. Od t³umacza ______________________________________________________________________ 11.. WWpprroowwaaddzzeenniiee Ten dokument opisuje Mini³adowacz (Miniloader) dla Linuxa na Alphê AXP (MILO). To firmware jest u¿ywane do inicjalizacji systemów Alpha AXP, za³adowania oraz startowania Linuxa i w koñcu do zapewnienia kodu PAL (PALcode) dla Linuxa. 11..11.. PPrraawwaa aauuttoorrsskkiiee Prawa autorskie Alpha Miniloader (MILO) HOWTO: Copyright (C) 1995, 1996 David A. Rusling. PPrraawwaa aauuttoorrsskkiiee. Jak wszystkie Linuxowe dokumenty HOWTO, mo¿e byæ powielane i rozpowszechniane w ca³o¶ci lub w czê¶ci, za pomoc± ka¿dego ¶rodka przekazu, fizycznego lub elektronicznego, je¿eli uwaga o prawach autorskich zosta³a zachowana na wszystkich kopiach. Komercyjna redystrybucja jest dozwolona i zalecana; jednak¿e autor _c_h_c_i_a_³_b_y byæ powiadomiony o takich dystrybucjach. Mo¿esz te¿ przet³umaczyæ to HOWTO na dowolny jêzyk, je¿eli zostawisz wypowied¼ o prawach autorskich oraz o¶wiadczenie niezmienione, oraz dodasz notatkê o t³umaczu. OO¶¶wwiiaaddcczzeenniiee. Próbowa³em umie¶ciæ tu najpoprawniejsze i najnowsze informacje, które s± mi dostêpne, nie mogê jednak zagwarantowaæ, ¿e ich u¿ycie nie spowoduje utraty danych lub sprzêtu. NIE ZAPEWNIAM ¯ADNEJ GWARANCJI dotycz±cej informacji w tym HOWTO, nie mogê byæ wiêc odpowiedzialny za jakiekolwiek skutki u¿ycia danych z niego. 11..22.. NNoowwee wweerrssjjee tteeggoo ddookkuummeennttuu Naj¶wie¿sza wersja tego dokumentu znajduje siê pod adresem ftp://gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader/docs, a David Mosberger-Tang by³ uprzejmy umie¶ciæ go w formacie HTML na jego znakomitej stronie o Linux-Alpha http://www.azstarnet.com/~axplinux/. 22.. CCoo ttoo jjeesstt MMIILLOO?? Na systemach PC opartych na procesorach Intel, firmware zwane BIOSem uruchamia komputer i ³aduje obraz (image) do uruchomienia z bloku startowego systemu plików DOSu. Jest to mniej wiêcej to samo, co wykonuje MILO na systemach Alpha, jednak¿e istnieje kilka interesuj±cych ró¿nic pomiêdzy BIOSem a MILO, jedn± z nich jest u¿ywanie przez MILO niezmodyfikowanych standardowych sterowników urz±dzeñ Linuxa. MILO jest firmware'em, inaczej ni¿ LILO, który jest ³adowany przez BIOS. G³ówne funkcjonalne czê¶ci MILO to: 1. PALcode, 2. Kod uruchamiania pamiêci (buduje tablice stronicowania i w³±cza adresowanie wirtualne), 3. Kod grafiki (emulacja BIOSu i TGA (21030)), 4. Kod j±dra Linuxa. Na niego sk³ada siê prawdziwy kod (np. obs³uga przerwañ) i pseudo-j±dro, 5. Sterowniki urz±dzeñ blokowych Linuxa (np. sterownik stacji dysków), 6. Obs³uga systemu plików (ext2, MS-DOS i ISO9660), 7. Kod interfejsu u¿ytkownika (MILO) 8. Kod interfejsu j±dra (uruchamia HWRPB i mapê pamiêci dla Linuxa), 9. Kod NVRAM do zarz±dzania zmiennymi ¶rodowiskowymi Dalsze akapity dok³adnie opisuj± funkcjonalne czê¶ci MILO. PALcode jest cienk± warstw± oprogramowania dostosowuj±c± procesor do konkretnego systemu operacyjnego. Dzia³a w specjalnym trybie (PALmode), który posiada kilka ograniczeñ, ale u¿ywa standardowego zestawu instrukcji Alphy i tylko piêciu dodatkowych instrukcji. W ten sposób, na procesorze Alpha mog± byæ uruchamiane systemy tak ró¿ne, jak np. Windows NT, OpenVMS, Digital UNIX i oczywi¶cie Linux. PALcode, którego u¿ywa MILO (i przez to sam Linux) jest, jak reszta MILO, darmowa. Pochodzi z przyk³adu ewaluacyjnych p³yt g³ównych (Evaluation Boards, EB) dla Digital UNIXa. Ró¿nice pomiêdzy kodami PAL wynikaj± z ró¿nic w sposobach obs³ugi przerwañ w procesorach Alpha (p³yty g³ówne do 21066 maj± inn± mapê I/O ni¿ systemy 21064+2107x (2107x to APECS, chipset do 21064 - przyp. t³um.)), oraz z liczby dostêpnych p³yt g³ównych. ¯eby MILO dzia³a³ poprawnie, musi znaæ ilo¶æ dostêpnej pamiêci i miejsce, w którym Linux bêdzie dzia³a³, musi te¿ byæ w stanie przydzieliæ tymczasow± pamiêæ dla sterowników urz±dzeñ Linuxa. Kod utrzymuje mapê pamiêci, która posiada rekordy dla permanentnie i tymczasowo przydzielonych stron. W czasie uruchamiania MILO dekompresuje siê w poprawne miejsce pamiêci fizycznej. Kiedy przekazuje kontrolê j±dru Linuxa, zarezerwowywuje pamiêæ dla skompresowanej wersji samego siebie, kodu PAL (który jest potrzebny j±dru) i trochê struktur danych. To zostawia _w_i_ê_k_s_z_o_¶_æ pamiêci w systemie dla samego Linuxa. Ostatnia czê¶æ kodu pamiêci to ustawienie i w³±czenie adresowania wirtualnego w celu zapewnienia poprawnego miejsca w wirtualnej pamiêci dla struktur danych, które Linux spodziewa siê tam zobaczyæ. MILO zawiera kod grafiki, który inicjalizuje i u¿ywa urz±dzenia graficznego dla systemu. Wykryje i bêdzie u¿ywaæ urz±dzenie VGA, je¶li takie istnieje, je¿eli nie, bêdzie próbowa³ u¿yæ urz±dzenia TGA (21030). Gdy i to siê nie powiedzie, przyjmie, ¿e nie istnieje urz±dzenie graficzne (tylko np. terminale szeregowe - przyp. t³um.). Emulacja BIOSu, któr± posiadaj± standardowe, skompilowane obrazy MILO, to emulacja Digitala, która obs³uguje wiêkszo¶æ, je¿eli nie wszystkie dostêpne standardowe urz±dzenia graficzne. Sterowniki urz±dzeñ Linuxa ,,¿yj±'' wewn±trz j±dra i spodziewaj± siê od niego konkretnych us³ug. Niektóre z nich s± zapewniane bezpo¶rednio przez kod Linuxa, np. obs³uga przerwañ, a inne dzia³aj± dziêki specjalnym procedurom wygl±daj±cym dla sterowników jak procedury j±dra. Najsilniejsza cecha MILO, to mo¿liwo¶æ osadzenia w nim niezmienionych sterowników urz±dzeñ Linuxa. Daje to potencja³ obs³ugi ka¿dego urz±dzenia, które obs³uguje Linux. MILO zawiera wszystkie urz±dzenia blokowe wkompilowane w jadro, które zostaje przy nim zbudowane, a tak¿e du¿o kodu urz±dzeñ (np. ll_rw_blk()). MILO ³aduje j±dro Linuxa z prawdziwych systemów plików, a nie z bloków startowych i innych dziwnych miejsc. Potrafi czytaæ systemy plików MSDOS, EXT2 i ISO9660. Pliki spakowane gzipem s± obs³ugiwane i rekomendowane, zw³aszcza je¿eli ³adujesz system z dyskietki, co jest dosyæ wolne. MILO rozpoznaje je po rozszerzeniu W MILO zawiera prosty sterownik klawiatury, który razem z równie prostym sterownikiem grafiki pozwala posiadaæ mu spartañski interfejs u¿ytkownika. Interfejs ten pozwala poznaæ systemy plików na skonfigurowanych urz±dzeniach, ³adowaæ Linuxa, uruchamiaæ programy do uaktualniania pamiêci flash, oraz ustawiaæ zmienne ¶rodowiskowe kontroluj±ce ³adowanie systemu. Tak jak w LILO, mo¿esz przekazywaæ parametry do j±dra. MILO musi powiedzieæ j±dru Linuxa na jakim dzia³a systemie, ile pamiêci posiada i ile z tej pamiêci jest wolne. Robi to u¿ywaj±c struktury danych HWRPB (blok parametrów restartowania sprzêtu) i skojarzonych z ni± opisów czê¶ci pamiêci. S± one umiejscawiane w odpowiednim miejscu pamiêci wirtualnej zaraz przed przekazaniem kontroli j±dru Linuxa. 33.. SSttaannddaarrddoowwee,, pprree--kkoommppiilloowwaannee oobbrraazzyy MMIILLOO Je¿eli bêdziesz chcia³ uruchamiaæ Linuxa na standardowych p³ytach g³ównych Alphy, mo¿esz u¿yæ pre-kompilowanych, ,,standardowych'' obrazów (images) MILO. (notka od t³umacza: radzê zabootowaæ Alphê ze standardowych obrazów, a potem zbudowaæ w³asny, gdy Linux bêdzie ju¿ dzia³a³) Obrazy te (razem ze ¼ród³ami i innymi ciekawymi rzeczami) znajduj± siê na ftp://gatekeeper.dec.com/pub/Digital/Linux- Alpha/Miniloader Podkatalog images zawiera po jednym podkatalogu na ka¿dy system (np. AlphaPC64), a obrazy MILO s± nazywane w nastêpuj±cy sposób: 1. MILO - wykonywalny obraz MILO, mo¿e on byæ ³adowany na wiele sposobów, 2. fmu.gz - Program zarz±dzania pamiêci± flash, 3. MILO.dd - Obraz dla dyskietki startowej. Powinien byæ zapisany programem rawrite.exe lub dd pod Linuxem. Katalog test-images zawiera, tak jak images po jednym katalogu na standardowy system. Obrazy znajduj±ce siê w tym katalogu s± raczej eksperymentalne, ale zawieraj± najnowsze opcje. 44.. KKoommppiillaaccjjaa MMIILLOO (Uwaga: pamiêtaj, ¿e nie mo¿esz zbudowaæ MILO i j±dra dla Alphy na Intel'u! Musisz dysponowaæ drug± Alph±, albo zbudowaæ j±dro po uruchomieniu Linuxa ze standardowych obrazów MILO. Na Intelu j±dro nawet siê nie zacznie kompilowaæ - spróbuj zbudowaæ j±dro na Alphê na pececie - w pliku Makefile zamieñ ARCH=i386 na ARCH=alpha... - przyp. t³um.) MILO kompiluje siê oddzielnie, nie razem z j±drem. Poniewa¿ MILO potrzebuje czê¶ci j±dra do poprawnego funkcjonowania (np. obs³ugi przerwañ), musisz najpierw skonfigurowaæ i skompilowaæ j±dro, odpowiadaj±ce MILO, który chcesz skompilowaæ. Zazwyczaj znaczy to, ¿e powiniene¶ kompilowaæ j±dro z t± sam± wersj± co MILO. A wiêc MILO-2.0.25.tar.gz bêdzie kompilowaæ siê z linux-2.0.25.tar.gz. MILO _m_o_¿_e skompilowaæ siê z nowsz± wersj± j±dra, ale nie musi. Dodatkowo teraz, kiedy biblioteki dzielone ELF s± w pe³ni obs³ugiwane, istniej± dwie wersje ¼róde³ MILO. ¯eby zbudowaæ je w systemie ELF, musisz najpierw rozpakowaæ standardowe ¼ród³a, a potem na³o¿yæ ³atê (patch) ELF na te ¼ród³a (musi mieæ ten sam numer wersji). Przyjmê teraz, ¿e ¼ród³a j±dra oraz skompilowane obiekty (.o) znajduj± siê w katalogu /usr/src/linux, a j±dro zosta³o w pe³ni skompilowane komend± make boot. (pamiêtaj o ustawieniu ARCH=alpha w pliku Makefile j±dra _P_R_Z_E_D wydaniem polecenia make (menu)(x)config!!! - przyp. t³um.) ¯eby skompilowaæ MILO, zmieñ katalog na zawieraj±cy ¼ród³a MILO i przywo³aj make komend±: $ make KSRC=/usr/src/linux config Tak jak podczas kompilacji j±dra, zadane zostanie kilka pytañ. Echo output to the serial port (MINI_SERIAL_ECHO) [y] Przesy³aæ wyj¶cie do portu szeregowego (MINI_SERIAL_ECHO) [y] Dobrym pomys³em jest w³±czenie przesy³ania wiadomo¶ci printk j±dra do /dev/ttyS0, je¿eli mo¿na to zrobiæ. Je¿eli mo¿esz (i chcesz), napisz ,,y'', je¿eli nie, ,,n''. Wszystkie standardowe, pre-kompilowane obrazy MILO posiadaj± wej¶cie/wyj¶cie na port szeregowy COM1. Use Digital's BIOS emulation code (not free) (MINI_DIGITAL_BIOS_EMU) [y] U¿yæ kodu emulacji BIOSu Digitala (nie jest darmowy) (MINI_DIGITAL_BIOS_EMU) [y] Ten kod jest za³±czony jako biblioteka, która jest darmowa dopóki u¿ywa siê jej w systemie opartym na procesorze Alpha. ¬rod³a nie s± dostêpne. Je¿eli odpowiesz n, zbudowana zostanie alternatywna darmowa emulacja BIOSu. Jej ¼ród³a s± do³±czone do MILO. Pamiêtaj, ¿e obecnie nie mo¿esz wybraæ emulacji Digitala w systemach ELF (biblioteka nie jest jeszcze gotowa), musisz wiêc odpowiedzieæ ,,nie'' na to pytanie. Build PALcode from sources (Warning this is dangerous) (MINI_BUILD_PALCODE_FROM_SOURCES) [n] Zbudowaæ PALcode ze ¼róde³ (Uwaga to jest niebezpieczne) (MINI_BUILD_PALCODE_FROM_SOURCES) [n] Powiniene¶ zrobiæ to tylko je¿eli modyfikowa³e¶ ¼ród³a kodu PAL, je¿eli nie, u¿yj standardowego, pre-kompilowanego kodu PAL do³±czonego do MILO. Teraz jeste¶ gotowy do zbudowania obrazu MILO: $ make KSRC=/usr/src/linux Kiedy kompilacja zostanie zakoñczona, obraz MILO znajduje siê w pliku o nazwie milo. Bêdzie siê tam te¿ znajdowaæ wiele obrazów o nazwach milo.*, które powinny byæ zignorowane. 55.. ££aaddoowwaanniiee MMIILLOO Najlepiej obs³ugiwany sposób ³adowania MILO to ³adowanie z firmware'u Windows NT ARC, poniewa¿ wiêkszo¶æ systemów zawiera t± metodê. Jednak¿e istnieje wiele ró¿nych sposobów ³adowania MILO. Mo¿e on byæ za³adowany z: · dyskietki startowej (failsafe boot block floppy), · firmware'u Windows NT ARC · konsoli SRM Digitala · ,,Alpha Evaluation Board Debug Monitor'' - programu monitoruj±cego p³yt ewaluacyjnych, · pamiêci flash ROM 55..11.. ££aaddoowwaanniiee MMIILLOO zz ffiirrmmwwaarree''uu WWiinnddoowwss NNTT AARRCC Wiêkszo¶æ, je¿eli nie wszystkie systemy oparte na Alfie AXP posiadaj± Windows NT ARC firmware i jest to preferowana metoda inicjalizowania MILO i Linuxa. Kiedy firmware Windows NT dzia³a i posiadasz poprawny dla twojego systemu obraz MILO, metoda ta jest bardzo ³atwa do u¿ywania. Windows NT ARC firmware jest ¶rodowiskiem, w którym mog± dzia³aæ programy, wykonuj±c odwo³ania do firmware'u w celu wykonywania ró¿nych akcji. Windows NT OSloader jest programem, który spe³nia t± funkcjê. Linload.exe jest znacznie prostszym programem, który jedynie wczytuje i uruchamia MILO. £aduje on poprawny plik z obrazem do pamiêci pod adres 0x00000000 i wtedy wykonuje odwo³anie PAL ,,swap-PAL'' (zamieñ PAL) do niego. MILO, tak jak Linux, u¿ywa innego kodu PAL ni¿ Windows NT i dlatego musi przeprowadziæ zamianê. Nastêpnie MILO przenosi siê do 0x200000 i kontynuuje resetowanie kodu PAL. Zanim dodasz opcjê ³adowania Linuxa, bêdziesz musia³ skopiowaæ linload.exe oraz MILO, którego chcesz za³adowaæ w miejsce, z którego Windows NT ARC bêdzie móg³ go odczytaæ. W poni¿szym przyk³adzie przyjmujê, ¿e ³adujesz MILO z dyskietki w formacie DOS'a: 1. W menu ³adowania (boot menu) wybierz ,,Supplementary menu...'' (menu dodatkowe) 2. W menu ,,Supplementary menu'' wybierz opcjê ,,Set up the system...'' (ustaw system) 3. W Setup menu wybierz ,,Manage boot selection menu...'' (menu zarz±dzania opcjami ³adowania) 4. W ,,Boot selections menu'' wybierz ,,Add a boot selection'' (dodaj opcjê ³adowania) 5. Wybierz ,,Floppy Disk 0'' 6. Wprowad¼ ,,linload.exe'' jako katalog i nazwê pliku ³adowacza systemu (osloader) 7. Odpowiedz ,,tak'' na pytanie czy system operacyjny znajduje siê na tej samej partycji co ³adowacz systemu 8. Wprowad¼ ,,\fR'' jako katalog g³ówny systemu operacyjnego 9. Zazwyczaj wpisujê ,,Linux'' jako nazwê tej opcji ³adowania 10. Odpowiedz ,,nie'' na pytanie o inicjalizacjê debuggera podczas ³adowania 11. Powiniene¶ wróciæ do ,,Boot selections menu'', wybierz w nim opcjê ,,Change a boot selection option'', a w niej opcjê, któr± w³a¶nie stworzy³e¶ 12. U¿yj strza³ki w dó³, aby dostaæ siê do rekordu ,,OSLOADFILENAME'', wpisz w nim nazwê obrazu MILO, którego chcesz u¿ywaæ, np. ,,noname.arc, nastêpnie naci¶nij return (enter). 13. Nasi¶nij ESC ¿eby wróciæ do ,,Boot selections menu'' 14. Wybierz ,,Setup Menu'' (lub naci¶nij jeszcze raz ESC), a w nim ,,Supplementary menu'' i ,,Save Changes'' 15. ESC cofnie ciê do ,,Boot menu'', mo¿esz ju¿ spróbowaæ inicjalizowaæ MILO. Je¿eli nie chcesz, ¿eby Linux by³ pierwsz± opcj± ³adowania, mo¿esz zmieniæ kolejno¶æ opcji w ,,Boot selections menu''. Na koñcu tych czynno¶ci powiniene¶ otrzymaæ opcjê ³adowania wygl±daj±c± podobnie do tej: LOADIDENTIFIER=Linux SYSTEMPARTITION=multi(0)disk(0)fdisk(0) OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe OSLOADPARTITION=multi(0)disk(0)fdisk(0) OSLOADFILENAME=\noname.arc OSLOADOPTIONS= Mo¿esz teraz uruchomiæ MILO (i Linuxa). Mo¿esz za³adowaæ linload.exe i MILO bezpo¶rednio z systemu plików, który rozumie Windows NT, takiego jak NTFS lub DOS na twardym dysku. Linia OSLOADOPTIONS zawiera opcje, które zostan± przekazane do MILO. Je¿eli chcesz za³adowaæ Linuxa bezpo¶rednio z Windows NT ARC nie pauzuj±c przy MILO, powiniene¶ wpisaæ nastêpuj±c± komendê w OSLOADOPTIONS: boot sda2:vmlinux.gz root=/dev/sda2 Przeczytaj rozdzia³ ``Interfejs u¿ytkowwnika MILO'', ¿eby uzyskaæ wiêcej informacji o komendach MILO. Inna (ale jest to obej¶cie :( ) metoda ³adowania MILO przez WNT ARC, to umieszczenie MILO na dyskietce MS-DOS, nazwanie go fwupdate.exe i uruchomienie opcji ,,Upgrade Firmware''. 55..22.. ££aaddoowwaanniiee MMIILLOO zz ,,,,EEvvaalluuaattiioonn BBooaarrdd DDeebbuugg MMoonniittoorr'''' P³yty ewaluacyjne (i czêsto ich klony) posiadaj± obs³ugê Monitora p³yt ewaluacyjnych (Alpha Evaluation Board Debug Monitor). Przeczytaj dokumentacjê twojego systemu przed rozpatrywaniem u¿ycia tej metody ³adowania MILO. Nastêpuj±ce systemy _n_a_p_e_w_n_o obs³uguj± Monitor: · AlphaPC64 (Sekcja ``AlphaPC64'') · EB64+ (Sekcja ``EB64+'') · EB66+ (Sekcja ``EB66+'') · EB164 (Sekcja ``EB164'') · PC164 (Sekcja ``PC164'') Zanim u¿yjesz tej metody, pamiêtaj, ¿e wczesne wersje Monitora Ewaluacyjnego nie posiada³y sterowników grafiki i klawiatury, musisz wiêc pod³±czyæ inny komputer przez port szeregowy, ¿eby¶ móg³ u¿ywaæ Monitora. Jego interfejs jest bardzo prosty, a komenda help pokazuje mnóstwo dostêpnych komend. Najbardziej nas interesuj±ce zawieraj± s³owo boot albo load. Monitor P³yt Ewaluacyjnych mo¿e za³adowaæ obraz przez sieæ (netboot) albo z dyskietki (flboot). W obu przypadkach, ustaw adres ³adowania na 0x200000 (> bootadr 200000) przed uruchomieniem obrazu. Je¿eli obraz znajduje siê na dyskietce (zauwa¿ ¿e obs³ugiwane s± tylko dyskietki w formacie DOS), bêdziesz musia³ wpisaæ nastêpuj±c± komendê: AlphaPC64> flboot <nazwa-obrazu-MILO> 55..33.. ££aaddoowwaanniiee MMIILLOO zz ,,,,bbeezzppiieecczznneejj ddyysskkiieettkkii ssttaarrttoowweejj'''' Tylko AXPPCI33 _n_a_p_e_w_n_o obs³uguje ,,bezpieczn± dyskietkê startow±'' (Sekcja ``NoName''). Je¿eli nie u¿ywasz standardowego, pre-kompilowanego obrazu .dd MILO, bêdziesz musia³ zbudowaæ dyskietkê startow± SRM. Kiedy ju¿ skompilowa³e¶ MILO, musisz wykonaæ nastêpuj±ce komendy w Digital Unix'ie: fddisk -fmt /dev/rfd0a cat mboot bootm > /dev/rfd0a disklabel -rw rfd0a 'rx23' mboot bootm Lub w Linuxie: cat mboot bootm > /dev/fd0 Je¿eli masz standardowy obraz MILO (powiedzmy MILO.dd), mo¿esz stworzyæ dyskietkê startow±, u¿ywaj±c nastêpuj±cej komendy: dd if=MILO.dd of=/dev/fd0 (radzê jednak zapisywaæ programem rawrite.exe spod DOS'a - ale poeksperymentowaæ z dd mo¿na - przyp. t³um.) 55..44.. ££aaddoowwaanniiee MMIILLOO zz ppaammiiêêccii FFllaasshh Istnieje kilka systemów, gdzie MILO mo¿e byæ wypalone we flash'u i ³adowane bezpo¶rednio (a nie przez firmware Windows NT ARC): · AlphaPC64 (Sekcja ``AlphaPC64'') · NoName (Sekcja ``NoName'') · EB66+ (Sekcja ``EB66+'') · EB164 (Sekcja ``EB164'') · PC164 (Sekcja ``PC164'') 55..55.. ££aaddoowwaanniiee MMIILLOO zz kkoonnssoollii SSRRMM Konsola SRM (skrót od System Reference Manual, podrêcznik systemowy (? - przyp. tygrys)) nie wie nic o systemach plików b±d¼ partycjach dyskowych, oczekuje po prostu na zajêcie odpowiedniego przedzia³u kolejnych sektorów dysku przez drugorzêdny ³adowacz, zaczynaj±c od danego offsetu. Informacja opisuj±ca drugorzêdny ³adowacz (jego rozmiar i offset) znajduje siê w pierwszym 512-bajtowym bloku. ¯eby za³adowaæ MILO z konsoli SRM, musisz wygenerowaæ tak± strukturê w urz±dzeniu, do którego SRM ma dostêp (np. dyskietka). Do tego s³u¿y mboot i bootm, mboot jest pierwszym, opisuj±cym blokiem, a bootm jest obrazem MILO zaokr±glonym do 512-bajtowego bloku. ¯eby za³adowaæ MILO z urz±dzenia zawieraj±cego blok startowy, zbuduj mboot oraz bootm i nagraj je na urz±dzenie startowe nastêpuj±c± komend±: $ cat mboot bootm > /dev/fd0 Mo¿esz te¿ ¶ci±gn±æ odpowiedni plik MILO.dd i nagraæ go u¿ywaj±c RAWRITE.EXE lub dd. Kiedy ju¿ to zrobi³e¶, mo¿esz uruchomiæ konsolê SRM i u¿yæ jednej z jej wielu komend do za³adowania MILO. Na przyk³ad, je¿eli chcesz za³adowaæ MILO z dyskietki startowej, powiniene¶ u¿yæ nastêpuj±cej komendy: >>>boot dva0 (boot dva0.0.0.0.1 -flags 0) block 0 of dva0.0.0.0.1 is a valid boot block reading 621 blocks from dva0.0.0.0.1 bootstrap code read in base = 112000, image_start = 0, image_bytes = 4da00 initializing HWRPB at 2000 initializing page table at 10400 initializing machine state setting afinity to the primary CPU jumping to bootstrap code MILO Stub: V1.1 Unzipping MILO into position Allocating memory for unzip ####... Nastêpuj±ce systemy _n_a_p_e_w_n_o posiadaj± konsolê SRM: · NoName (Sekcja ``NoName'') · AlphaPC64 (Sekcja ``AlphaPC64'') · EB164 (Sekcja ``EB164'') · PC164 (Sekcja ``PC164'') 55..66.. IInnffoorrmmaaccjjee oo pp³³yyttaacchh gg³³óówwnnyycchh 55..66..11.. AAXXPPPPCCII3333 ((NNooNNaammee)) P³yta NoName mo¿e ³adowaæ MILO z firmware'u Windows NT ARC (Sekcja ``³adowanie MILO z Windows NT ARC''), z konsoli SRM (Sekcja ``£adowanie MILO z konsoli SRM''), oraz z dyskietki startowej (Sekcja ``£adowanie z dyskietki startowej''). Mo¿na te¿, u¿ywaj±c programu zarz±dzaj±cego pamiêci± flash, dostarczanego z MILO, mo¿esz po za³adowaniu Miniloadera wypaliæ jego obraz w tak± pamiêæ (Sekcja ``korzystanie z programu zarz±dzaj±cego pamiêci± flash''). Jednak¿e musisz pamiêtaæ, ¿e kiedy to zrobisz, stracisz poprzedni obraz tam zapisany, poniewa¿ p³yta posiada miejsce tylko na jeden. Sposób, w jaki NoName uruchamia system jest kontrolowany zestawem zworek na p³ycie, J29 i J28. Wygl±daj± one nastêpuj±co: 4 J29 2 x x x 6 1 x x x 5 J28 2 x x x 6 1 x x x 5 3 Dwie opcje, które nas interesuj±, to piny 1-3 zworki J28, które ³aduj± konsolê/³adowacz z pamiêci flash, oraz piny 1-3 zworki J29, które uruchamiaj± konsolê lub ³adowacz z dyskietki startowej. Pierwsze za³adowanie MILO musi byæ przeprowadzone przy u¿yciu drugiej opcji. Kiedy ju¿ wybierzesz ³adowanie systemu z dyskietki ustawiaj±c odpowiedni± zworkê, w³ó¿ dyskietkê startow± SRM zawieraj±c± MILO do stacji i zresetuj komputer. Za parê sekund (po zga¶niêciu lampki stacji dysków) ekran powinien zrobiæ siê bia³y, a MILO bêdzie mówi³ ci co siê dzieje. Je¿eli interesuj± ciê tematy techniczne, wiedz, ¿e NoName ³aduje obrazy z dyskietki pod fizyczny adres 0x104000, a obrazy z pamiêci flash pod adres 0x100000. Z tego powodu PALcode MILO zaaczyna siê na 0x200000. Kiedy jest ju¿ za³adowany, przenosi siê w poprawne miejsce (zobacz relocate.S). 55..66..22.. AAllpphhaaPPCC6644 ((CCaabbrriioolleett)) AlphaPC64 mo¿e ³adowaæ MILO z firmware'u Windows NT ARC (Sekcja ``£adowanie z Windows NT ARC''), konsoli SRM (Sekcja ``£adowanie MILO z konsoli SRM''), oraz z Monitora Ewaluacyjnego (Sekcja ``£adowanie z Monitora P³yt Ewaluacyjnych''). Wszystkie te funkcjê znajduj± siê w pamieci flash, w której znajduje siê jeszcze miejsce na dodanie MILO, w celu ³adowania go bezpo¶rednio. Mo¿na u¿yæ programu zarz±dzania pamiêci± flash, uruchamianego z MILO, a wiêc kiedy jest on uruchomiony, mo¿e byæ wczytany do pamiêci nieulotnej (Sekcja ``u¿ywanie programu zarz±dzania pamiêci± flash''). System obs³uguje zmienne ¶rodowiskowe MILO. Mo¿na wybraæ opcjê ³adowania (i MILO, kiedy znajduje siê w pamiêci flash) za pomoc± kombinacji zworek i opcji inicjalizacji, która jest zapisywana w NVRAM zegara TOY. Zworka s³u¿±ca do tego celu to J2, bity SP o numerach 6 i 7 maj± nastêpuj±ce znaczenie: · SP 6 powinien byæ zawsze wy³±czony. Je¿eli nie, w³±czy siê mini- debugger SROM, · Kiedy SP 7 jest w³±czony, system wybiera opcjê inicjalizacji umieszczon± w zegarze TOY, · Przy wy³±czonym SP 7 system ³aduje pierwszy obraz z pamiêci flash. A wiêc, je¿eli SP 7 jest wy³±czony, ³adowany bêdzie Monitor P³yt Ewaluacyjnych, poniewa¿ jest _z_a_w_s_z_e pierwsz± opcj± w pamiêci flash. Kiedy SP 7 jest w³±czony, wybrany zostanie obraz z zegara TOY. Zarówno Monitor, firmware Windows NT ARC, jak i MILO obs³uguj± wybór opcji inicjalizacyjnej, ale musisz byæ bardzo ostro¿ny u¿ywaj±c tej metody. Nie mo¿esz na przyk³ad ustawiæ opcji inicjalizacyjnej tak, ¿eby nastêpnym razem system ³adowa³ MILO, kiedy u¿ywasz Windows NT ARC, poniewa¿ pozwala on tylko na ustawienie Monitora Ewaluacyjnego lub NT ARC jako opcji ³adowania. W celu zapisania MILO w pamiêci flash za pomoc± Monitora P³yt Ewaluacyjnych, bêdziesz potrzebowa³ obrazu przystosowanego do tej metody ³adowania. Procedura kompilacji tworzy plik MILO.rom, ale równie dobrze mo¿esz stworzyæ taki plik jedn± z komend Monitora: > makerom -v -i7 -l200000 MILO -o mini.flash (napisz makerom, ¿eby dowiedzieæ siê, co znacz± poszczególne argumenty, powiem tylko, ¿e 7 to identyfikator obrazu u¿ywany przez SROM, a -l200000 ustawia adres ³adowania obrazu na 0x200000). Za³aduj ten obraz do pamiêci (komend± flload, netload itd. (_N_I_E fl/net boot tylko _l_o_a_d - przyp. t³um.)) pod adres 0x200000 i wypal we flash'u: AlphaPC64> flash 200000 8 (200000 to miejsce w pamiêci obrazu, który ma byæ wypalony, a 8 to segment, w którym umieszczasz obraz. Istnieje 16 1024*64 bajtowych segmentów w pamiêci flash, Debug Monitor znajduje siê w segmencie pierwszym, a Windows NT ARC w czwartym). Ustaw numer obrazu, który bêdzie ³adowany przez SROM poprzez zapisanie jego numeru w zegarze TOY. AlphaPC64> bootopt 131 (131 to trzeci obraz, 129 - pierwszy, 130 - drugi itd.) Wy³±cz zasilanie, zewrzyj siódm± zworkê i w³±cz komputer. Powiniene¶ zobaczyæ MILO budz±cego siê do ¿ycia. Je¿eli nie, wyjmij 7 zworkê i zresetuj Monitor Ewaluacyjny. 55..66..33.. EEBB6666++ EB66+, tak jak wszystkie P³yty Ewaluacyjne Alpha zbudowane przez Digitala, posiada ,,Evaluation Board Debug Monitor'', mo¿na wiêc uruchamiaæ MILO przez niego (Sekcja ``£adowanie z Monitora Ewaluacyjnego''). Dosyæ czêsto (choæ nie zawsze) p³yty, które wyeluowa³y z EB66+, równie¿ posiadaj± Monitor. Zazwyczaj p³yty te zawieraj± Windows NT ARC firmware (Sekcja ``£adowanie przez Windows NT ARC''). Mo¿na te¿ skorzystaæ z programu zarz±dzania pamiêci± flash, kiedy MILO jest uruchomiony (Sekcja ``u¿ywanie programu zarz±dzaj±cego pamiêci± flash''). System ten obs³uguje zmienne ¶rodowiskowe MILO. P³yta g³ówna posiada miejsce na kilka obrazów flash, s± one kontrolowane zworkami. Dwa banki zworek (J18 i J16) znajduj± siê na dole p³yty, po ¶rodku jej szeroko¶ci (je¿eli Alpha jest na górze). Mo¿esz wybraæ pomiêdzy opcjami ³adowania (i MILO, je¿eli zosta³ zapisany w pamiêci flash), u¿ywaj±c kombinacji zworek i opcji inicjalizacji zapisanej w NVRAM zegara TOY. Kiedy zworka 7-8 banku J18 jest w³±czona, obraz ³adowania jest opisany przez opcjê inicjalizacyjn±. Je¿eli s± one wy³±czone, za³adowany zostanie Monitor P³yt Ewaluacyjnych. Procedura wypalania obrazu w pamiêci flash przez Monitor Ewaluacyjny jest identyczna, jak w przypadku AlphaPC64 (Sekcja ``AlphaPC64''). 55..66..44.. EEBB6644++//AAssppeenn AAllppiinnee System ten jest podobny do AlphaPC64, nie posiada jednak pamiêci flash do nagrania MILO. EB64+ posiada dwa ROMy, z których jeden zawiera firmware Windows NT ARC (Sekcja ``£adowanie z firmware'u Windows NT ARC''), a drugi Monitor P³yt Ewaluacyjnych (Sekcja ``£adowanie z Monitora Ewaluacyjnego''). Aspen Alpine posiada tylko jeden ROM - Windows NT ARC. 55..66..55.. UUnniivveerrssaall DDeesskkttoopp BBooxx ((MMuullttiiaa)) Jest to system bardzo kompaktowy, sprzedawany jako ca³y komputer, oparty na 21066. Posiada on urz±dzenie graficzne TGA (21030). Chocia¿ mo¿na _w_e_p_c_h_n_±_æ do niego kartê graficzn± PCI o ma³ym rozmiarze, poczekaj lepiej na pe³n± obs³ugê TGA w XFree86. P³yta posiada firmware Windows NT ARC, z którego mo¿na ³adowaæ MILO (Sekcja (``£adowanie z firmware'u Windows NT ARC''). 55..66..66.. EEBB116644 EB164, tak jak wszystkie p³yty ewaluacyjne Digitala, posiada Monitor P³yt Ewaluacyjnych, mo¿na wiêc za jego pomoc± ³atwo ³adowaæ MILO (Sekcja ``£adowanie z Monitora Ewaluacyjnego''). Dosyæ czêsto (choæ nie zawsze) p³yty, które wyeluowa³y z EB164, tak¿e zawieraj± Monitor. Zazwyczaj, p³yty EB164 posiadaj± firmware Windows NT ARC (Sekcja ``£adowanie z firmware'u Windows NT ARC''). Dostêpna jest te¿ konsola SRM (Sekcja ``£adowanie MILO z konsoli SRM''). Dziêki programowi do zarz±dzania pamiêci± flash uruchamianemu z MILO, mo¿na zapisaæ jego obraz w pamiêci flash (kiedy MILO ju¿ dzia³a) (Sekcja ``U¿ywanie programu zarz±dzania pamiêci± flash''). System obs³uguje zmienne ¶rodowiskowe MILO. P³yty EB164 posiadaj± kilka obrazów ³aduj±cych, kontrolowanych zworkami. Dwuzworkowy bank nas interesuj±cy to J1, znajduje siê on w lewym, dolnym rogu p³yty (kiedy Alpha jest na górze). Miêdzy opcjami ³adowania (oraz MILO, je¿eli zosta³ zapisany w pamiêci flash) mo¿esz prze³±czaæ siê u¿ywaj±c kombinacji zworek i opcji inicjalizacyjnej, zapisanej w NVRAMie zegara TOY. Kiedy zworka SP-11 banku J1 jest zwarta, ³adowany bêdzie obraz opisany opcj± inicjalizacyjn±, a je¿eli jest rozwarta, ³adowany bêdzie Monitor P³yt Ewaluacyjnych. Wypalanie obrazu w pamiêci flash przeprowadza siê dok³adnie tak, jak w AlphaPC64 (Sekcja ``AlphaPC64''). 55..66..77.. PPCC116644 PC164, jak wszystkie P³yty Ewaluacyjne Alpha Digitala, posiada Monitor P³yt Ewaluacyjnych, jest to wiêc pierwsza mo¿liwo¶æ ³adowania MILO (Sekcja ``£adowanie z monitora ewaluacyjnego''). Dosyæ czêsto (choæ nie zawsze) p³yty, które wyeluowa³y z PC164, tak¿e posiadaj± Monitor. Zazwyczaj p³yty te posiadaj± firmware Windows NT ARC (Sekcja ``£adowanie z Windows NT ARC''). Jest te¿ dostêpna konsola SRM (Sekcja ``£adowanie MILO z konsoli SRM''). Mo¿na równie¿ u¿yæ programu do zarz±dzania pamiêci± flash, uruchamianego z MILO, a wiêc kiedy Miniloader dzia³a, mo¿e byæ zapisany w pamiêci flash (Sekcja ``u¿ywanie programu zarz±dzaj±cego pamiêci± flash''). System obs³uguje zmienne ¶rodowiskowe MILO. Systemy te posiadaj± kilka opcji ³adowania w pamiêci flash, kontrolowanych przez zworki. G³ówny blok zworek, J30, zawiera zworki konfiguracji systemu, oraz zworkê CF6, która, je¿eli w³±czona, uruchomi Monitor Ewaluacyjny. Standardowo zworka ta jest wy³±czona. Wypalanie obrazu do pamiêci flash za pomoc± Monitora P³yt Ewaluacyjnych przeprowadza siê identycznie, jak w przypadku AlphaPC64 (Sekcja ``AlphaPC64''). 55..66..88.. XXLL226666 XL266 jest jedn± z p³yt z rodziny systemów znanych jako Avanti. Posiada oddzieln± kartê zawieraj±c± procesor i pamiêæ cache, do³±czan± do p³yty pod prawid³owym k±tem. P³yta ta mo¿e zast±piæ swój odpowiednik - p³ytê do Pentium. Niektóre z tych systemów posiadaj± konsolê SRM, a inne, np. w³a¶nie XL266 posiadaj± jedynie firmware Windows NT ARC (Sekcja ``£adowanie z firmware'u Windows NT ARC''). Oto moja lista kompatybilnych systemów: · AlphaStation 400 (Avanti), · AlphaStation 250, · AlphaStation 200 (Mustang), · XL. Dostêpne s± dwa rodzaje, XL266 i XL233, jedyna ró¿nica pomiêdzy nimi to szybko¶æ procesora i rozmiar cache'u. UUwwaaggaa: System którego u¿ywa³em do rozwoju MILO, to XL266 i dlatego jest to jedyny system, którego dzia³anie mogê zagwarantowaæ. Jednak¿e technicznie wszystkie powy¿sze systemy s± odpowiednikami, maj± te same chipsety oraz mechanizmy obs³ugi przerwañ. 55..66..99.. PPllaattffoorrmm22000000 Jest to system oparty na 233MHz 21066. 66.. IInntteerrffeejjss uu¿¿yyttkkoowwnniikkaa MMIILLOO Kiedy poprawnie zainstalowa³e¶/za³adowa³e¶/uruchomi³e¶ MILO, zobaczysz znak zachêty MILO> (od MIniLOader, Mini³adowacz) wy¶wietlony na ekranie. Jest to bardzo prosty intefejs u¿ytkownika, którego musisz u¿yæ w celu uruchomienia obrazu j±dra Linuxa. Wpisanie ,,help'' jest dobrym pomys³em, poniewa¿ wy¶wietla przydatny opis komend. 66..11.. KKoommeennddaa ,,,,hheellpp'''' Jest to chyba najbardziej po¿yteczna komenda MILO: MILO> help MILO command summary: ls [-t fs] [dev:[dir]] - List files in directory on device boot [-t fs] [dev:file] [boot string] - Boot Linux from the specified device and file run [-t fs] dev:file - Run the standalone program dev:file show - Display all known devices and file systems set VAR VALUE - Set the variable VAR to the specified VALUE unset VAR - Delete the specified variable reset - Delete all variables print - Display current variable settings help [var] - Print this help text Devices are specified as: fd0, hda1, hda2, sda1... Use the '-t filesystem-name' option if you want to use anything but the default filesystem ('ext2'). Use the 'show' command to show known devices and filesystems. Type 'help var' for a list of variables. ------------------------------------------------------------------------------------ MILO> help Opis komend MILO: ls [-t fs] [urz±dzenie:[katalog]] - Lista plików w katalogu danego urz±dzenia boot [-t fs] [urz±dzenie:plik] [tekst ³adowania] - Za³aduj Linuxa z pliku na danym urz±dzeniu run [-t fs] [urz±dzenie:plik] - Uruchom oddzielny program z podanej ¶cie¿ki show - Poka¿ wszystkie znane urz±dzenia i systemy plików set ZMIENNA WARTOSC - Przypisuje zmiennej ZMIENNA wartosc WARTOSC unset ZMIENNA - Kasuje podan± zmienn± reset - Skasuj wszystkie zmienne print - Poka¿ obecne ustawienia zmiennych help [var] - Wy¶wietl ten tekst pomocy Urz±dzenia podaje siê jako: fd0, hda1, hda2, sda1... U¿yj opcji ,,-t nazwa-systemu-plików'', je¿eli chcesz u¿ywaæ czego¶ innego ni¿ standardowy system plików (,,ext2''). U¿yj komendy ,,show'', ¿eby wy¶wietliæ znane urz±dzenia i systemy plików. Wpisz ,,help var'', ¿eby uzyskaæ listê zmiennych. UUwwaaggaa:: komenda bootopt wystêpuje tylko w systemie AlphaPC64 (i podobnych). Odwo³aj siê do dokumentacji p³yty, ¿eby dowiedzieæ siê, co ona znaczy. UUrrzz±±ddzzeenniiaa. Dopóki nie u¿yjesz komendy, która musi u¿yæ urz±dzenia, nie bêdzie mia³a miejsca jego inicjalizacja. Pierwsze show, ls, boot lub run, zawsze spowoduj± inicjalizacjê urz±dzeñ w MILO. Urz±dzenia s± nazywane dok³adnie w ten sam sposób, co w Linuxie. A wiêc, pierwszy dysk IDE bêdzie nazywaæ siê ,,hda'', a pierwsza partycja ,,hda1''. U¿yj komendy ,,show'', ¿eby wy¶wietliæ dostêpne urz±dzenia. SSyysstteemmyy pplliikkóóww. MILO obs³uguje trzy systemy plików - MSDOS, EXT2 i ISO9660. Je¿eli urz±dzenie jest dostêpne w systemie, mo¿na wykonaæ komendy ls, boot i run na obrazie zapisanym na tych systemach plików. Standardowy system MILO to EXT2, dlatego bêdziesz musia³ powiedzieæ MILO, ¿e obecny jest inny system plików. Wszystkie komendy u¿ywaj±ce nazw plików pozwalaj± przekazaæ do nich typ systemu plików, u¿ywaj±c opcji -t [nazwa systemu plików]. A wiêc je¿eli chcesz wy¶wietliæ zawarto¶æ CD ROMu SCSI, mo¿esz napisaæ: MILO> -t iso9660 scd0: ZZmmiieennnnee.. MILO posiada kilka ustawialnych zmiennych, u³atwiaj±cych proces ³adowanie. Je¿eli ³adujesz MILO przez Windows NT ARC, MILO u¿ywa zmiennych ustawionych przez to firmware. W niektórych systemach (np. AlphaPC64), MILO tworzy w³asn± listê zmiennych, które nie zmieniaj± siê przy ka¿dym ³adowaniu. S± to: MILO> help var Variables that MILO cares about: MEMORY_SIZE - System memory size in megabytes BOOT_DEV - Specifies the default boot device BOOT_FILE - Specifies the default boot file BOOT_STRING - Specifies the boot string to pass to the kernel SCSIn_HOSTID - Specifies the host id of the n-th SCSI controller. AUTOBOOT - If set, MILO attempts to boot on powerup and enters command loop only on failure. AUTOBOOT_TIMEOUT - Seconds to wait before auto-booting on powerup. ------------------------------------------------------------------------------------ MILO> help var Zmienne, na które uwa¿a MILO: MEMORY_SIZE - Rozmiar pamiêci systemu w megabajtach BOOT_DEV - Definiuje domy¶lne urz±dzenie ³adowania BOOT_FILE - Definiuje domy¶lny plik ³adowania BOOT_STRING - Definiuje tekst przekazywany do j±dra podczas startu SCSIn_HOSTID - Definiuje identyfikator hosta n-tego kontrolera SCSI. AUTOBOOT - Je¿eli jest ustawiona, MILO próbuje ³adowaæ system po w³±czeniu zasilania i przechodzi do linii komend tylko w przypadku b³edu. AUTOBOOT_TIMEOUT - Ile sekund MILO ma czekaæ przed auto³adowaniem. 66..22.. ££aaddoowwaanniiee LLiinnuuxxaa Komenda boot ³aduje j±dro Linuxa. Musi siê ono znajdowaæ na dysku w formacie EXT2 (SCSI, IDE lub na dyskietce), lub na kompakcie w formacie ISO9660. Obraz mo¿e byæ spakowany gzipem, MILO rozpozna go wtedy po rozszerzeniu Zauwa¿, ¿e wersja MILO nie musi odpowiadaæ wersji j±dra, które ³adujesz. Linuxa ³aduje siê nastêpuj±c± komend±: MILO> boot [-t system-plików] urz±dzenie:nazwa-pliku [[opcja-³adowania] [opcja-³adowania] ...] Gdzie urz±dzenie jest nazw± pliku urz±dzenia, którego chcesz u¿ywaæ, a nazwa-pliku jest nazw± obrazu j±dra Linuxa. Wszystkie argumenty podane po nazwie pliku s± przekazywane bezpo¶rednio do j±dra. Je¿eli instalujesz Red Hat'a, bêdziesz musia³ podaæ urz±dzenie / i nie tylko. Powiniene¶ u¿yæ komendy MILO> boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1 MILO bêdzie automatycznie zawiera³ urz±dzenia wkompilowane w twój vmlinux. Testowa³em sterowniki do stacji dysków, IDE i kilka sterowników SCSI (np. NCR 810). Wszystkie dzia³aj± poprawnie. Wa¿ne jest te¿ poprawne ustawienie identyfikatora hosta SCSI. Domy¶lnie MILO zainicjalizuje go na najwy¿szej mo¿liwej warto¶ci (7), co powinno dzia³aæ poprawnie. Jednak¿e je¿eli chcesz, mo¿esz i tak ustawiæ identyfikator hosta _n-tego kontrolera SCSI w systemie, ustawiaj±c zmienn± ¶rodowiskow±SCSI_n_HOSTID na odpowiedni± warto¶æ. Na przyk³ad, ¿eby ustawiæ hostid pierwszego kontrolera na 7, powiniene¶ wpisaæ nastêpuj±ce polecenie w linii poleceñ MILO: setenv SCSI0_HOSTID 7 66..33.. RReesseettoowwaanniiee LLiinnuuxxaa Czasami bêdziesz chcia³ prze³adowaæ dzia³aj±cego Linuxa komend± shutdown -r now. W takim przypadku j±dro Linuxa oddaje kontrolê MILO (przez odwo³anie CallPAL HALT). Z tego powodu MILO zostawia skompresowan± kopiê samego siebie w pamiêci i wykrywa ¿e system jest prze³adowywany, korzystaj±c z informacji przetrzymywanych w HWRPB (Hardware Restart Parameter Block, Blok Parametrów Restartu Urz±dzenia). Zaczyna wtedy prze³adowanie, u¿ywaj±c dok³adnie tej samej komendy, która zosta³a u¿yta do ³adowania j±dra Linuxa ostatnim razem. MILO czeka przez 30 sekund przed ponownym za³adowaniem j±dra, co pozwala przerwaæ ten proces i za³adowaæ inne j±dro, w jakikolwiek sposób. 66..44.. KKoommeennddaa ,,,,bboooottoopptt'''' W systemach z pamiêci± flash, takich jak AlphaPC64, EB164 i EB66+ istnieje kilka opcji ³adowania. S± one zmieniane komend± bootopt. Posiada ona jeden argument, numer dziesiêtny, który jest typem obrazu do za³adowania po w³±czeniu zasilania/prze³adowaniu systemu. 00 £adowanie Monitora P³yt Ewaluacyjnych, 11 £adowanie firmware'u Windows NT ARC. W celu ³adowania MILO z pamiêci flash, potrzebna jest opcja inicjalizacyjna, znacz±ca ,,za³aduj N-ty obraz z pamiêci flash''. Jako argument, musisz podaæ 128 + N, wiêc je¿eli MILO jest trzecim obrazem, u¿yjesz komendy MILO> bootopt 131 UUwwaaggaa:: B±d¼ bardzo ostro¿ny z t± komend±. Nigdy nie ustawiaj bootopt na 0 (Monitor P³yt Ewaluacyjnych), zamiast tego u¿yj zworek na p³ycie g³ównej. 77.. UU¿¿yywwaanniiee pprrooggrraammuu zzaarrzz±±ddzzaajj±±cceeggoo ppaammiiêêccii±± ffllaasshh Komenda run jest u¿ywana do uruchamiania programu zarz±dzaj±cego pamiêci± flash (flash management utility, dalej bêdê nazywa³ go ,,fmu'' - przyp. t³um.). Zanim zaczniesz, bêdziesz potrzebowa³ urz±dzenia dostêpnego MILO i zawieraj±cego fmu. Mo¿e on byæ (tak jak vmlinux) spakowany gzipem. Fmu uruchamia siê nastêpuj±c± komend±: MILO> fd0:fmu.gz Kiedy program zostanie za³adowany i zainicjalizowany, fmu poda trochê informacji o urz±dzeniu flash, oraz wy¶wietli liniê poleceñ. Znowu, komenda help jest bardzo u¿yteczna. Linux MILO Flash Management Utility V1.0 Linux MILO Flash Management Utility V1.0 Flash device is an Intel 28f008SA Urz±dzenie flash to Intel 28f008SA 16 segments, each of 0x10000 (65536) bytes 16 segmentów, ka¿dy po 0x10000 (65536) bajtów Scanning Flash blocks for usage Wykrywam zajêto¶æ bloków Flash Block 12 contains environment variables Blok 12 zawiera zmienne ¶rodowiskowe FMU> FMU> UUwwaaggaa:: W systemach obs³uguj±cych zmienne ¶rodowiskowe, gdzie istnieje wiêcej ni¿ jeden blok flash (np. AlphaPC64), fmu bêdzie szuka³ bloku na zmienne ¶rodowiskowe MILO. Je¿eli taki blok istnieje, fmu powie, gdzie siê on znajduje. Je¶li nie, musisz u¿yæ komendy environment, ¿eby ustawiæ blok i go zainicjalizowaæ. W powy¿szym przyk³adzie, blok 12 zawiera zmienne ¶rodowiskowe MILO. 77..11.. KKoommeennddaa ,,,,hheellpp'''' FMU> help FMU command summary: list - List the contents of flash program - Program an image into flash quit - Quit environment - Set which block should contain the environment variables bootopt num - Select firmware type to use on next power up help - Print this help text FMU> ------------------------------------------------------------------------------------ FMU> help Opis komend FMU: list - Wy¶wietl zawarto¶æ pamiêci flash program - Zapisz obraz w pamiêci flash quit - Zakoñcz program environment - Ustaw blok, który powinien zawieraæ zmienne ¶rodowiskowe bootopt numer - Wybierz typ firmware'u do u¿ycia przy nastêpnym uruchomieniu help - Wy¶wietl ten tekst pomocy FMU> UUwwaaggaa:: Komendy environment i bootopt s± dostêpne tylko w p³ytach EB66+, AlphaPC64, EB164 i PC164 (i ich klonach). 77..22.. KKoommeennddaa ,,,,lliisstt'''' Komenda ,,list'' pokazuje zawarto¶æ pamiêci flash. Je¿eli istnieje wiêcej ni¿ jeden blok, pokazana jest zawarto¶æ ka¿dego. W poni¿szym przyk³adzie mo¿esz zobaczyæ, ¿e Windows NT ARC u¿ywa blok 4-7 i blok 15. FMU> list Flash block: 0:DBM 1:DBM 2:DBM 3:WNT 4:WNT 5:WNT 6:WNT 7:WNT 8:MILO 9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT Listing flash Images Flash image starting at block 0: Firmware Id: 0 (Alpha Evaluation Board Debug Monitor) Image size is 191248 bytes (3 blocks) Executing at 0x300000 Flash image starting at block 3: Firmware Id: 1 (Windows NT ARC) Image size is 277664 bytes (5 blocks) Executing at 0x300000 Flash image starting at block 8: Firmware Id: 7 (MILO/Linux) Image size is 217896 bytes (4 blocks) Executing at 0x200000 FMU> ------------------------------------------------------------------------------------ FMU> list Bloki Flash: 0:DBM 1:DBM 2:DBM 3:WNT 4:WNT 5:WNT 6:WNT 7:WNT 8:MILO 9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT Wy¶wietlam Obrazy Flash Obraz Flash (pocz±tek - blok 0) Firmware Id: 0 (Alpha Evaluation Board Debug Monitor) Rozmiar obrazu: 191248 bajtów (3 bloki) Wykonuje siê na 0x300000 Obraz Flash (pocz±tek - blok 3) Firmware Id: 1 (Windows NT ARC) Rozmiar obrazu: 277664 bajtów (5 bloków) Wykonuje siê na 0x300000 Obraz Flash (pocz±tek - blok 8) Firmware Id: 7 (MILO/Linux) Rozmiar obrazu: 217896 bajtów (4 bloki) Wykonuje siê na 0x200000 FMU> 77..33.. KKoommeennddaa ,,,,pprrooggrraamm'''' Fmu zawiera skompresowan± kopiê obrazu flash MILO. Komenda ,,program'' pozwala zapisaæ ten obraz w pamiêci flash. Komenda ta pozwoli ci wycofaæ siê, ale zanim j± uruchomisz, powiniene¶ u¿yæ komendy ,,list'', ¿eby zobaczyæ gdzie nagraæ MILO. Je¿eli MILO znajduje siê ju¿ w pamiêci flash, fmu zapyta siê, czy go skasowaæ. FMU> program Image is: Firmware Id: 7 (MILO/Linux) Image size is 217896 bytes (4 blocks) Executing at 0x200000 Found existing image at block 8 Overwrite existing image? (N/y)? y Do you really want to do this (y/N)? y Deleting blocks ready to program: 8 9 10 11 Programming image into flash Scanning Flash blocks for usage FMU> ------------------------------------------------------------------------------------ FMU> program Obraz: Firmware Id: 7 (MILO/Linux) Rozmiar obrazu: 217896 bajtów (4 bloki) Wykonuje siê na 0x200000 Znaleziono istniej±cy obraz w bloku 8 Nadpisaæ istniej±cy obraz? (N/y)? y Czy napewno chcesz to zrobiæ? (y/N)? y Kasowanie bloków do programowania: 8 9 10 11 Programowanie obrazu do pamiêci flash Szukanie zajêtych bloków Flash FMU> Poczekaj, a¿ proces zostanie zakoñczony przed wy³±czeniem systemu. UUwwaaggaa:: Nie mogê wyraziæ dostatecznie mocno, jak musisz byæ ostro¿ny, ¿eby nie nadpisaæ istniej±cego obrazu flash, który mo¿e byæ ci potrzebny, lub nie zniszczyæ swojej p³yty g³ównej. Dobr± zasad± jest niekasowanie Monitora Ewaluacyjnego. (!!! - przyp. t³um.) 77..44.. KKoommeennddaa ,,,,eennvviirroonnmmeenntt'''' Wybiera blok flash maj±cy zawieraæ zmienne ¶rodowiskowe MILO. 77..55.. KKoommeennddaa ,,,,bboooottoopptt'''' Jest to ta sama komenda, co istniej±ca w MILO, zobacz sekcjê (``Komenda ,,bootopt''''). 77..66.. KKoommeennddaa ,,,,qquuiitt'''' Jest to raczej bez znaczenia. Jedyna droga powrotna do MILO (lub czegokolwiek innego), kiedy fmu dzia³a, to restart systemu. 88.. OOggrraanniicczzeenniiaa Niestety, ¶wiat nie jest doskona³y, jest wiêc jak zawsze parê ograniczeñ, o których powiniene¶ wiedzieæ. MILO nie jest przeznaczony do ³adowania systemów operacyjnych innych ni¿ Linux, jednak¿e mo¿e ³adowaæ obrazy ³±czone do dzia³ania w tym samym miejscu pamiêci co Linux (czyli 0xFFFFFC0000310000). W ten sposób mo¿e dzia³aæ fmu. ¬ród³a kodu PAL za³±czone w miniboot/palcode/_c_o_¶_t_a_m s± poprawne, jednak¿e s± problemy, kiedy zostaj± zbudowane przy u¿yciu najnowszego gas (assembler GNU - przyp. t³um.). _M_o_¿_n_a kompilowaæ je, u¿ywaj±c bardzo starego gas'a za³±czonego w oprogramowanu do P³yt Ewaluacyjnych Alpha (i w ten sposób zosta³y zbudowane). Próbujê namówiæ kogo¶, ¿eby naprawi³ nowy gas. Obecnie jednak, jako obej¶cie, umie¶ci³em pre- kompilowany kod PAL dla obs³ugiwanych p³yt, a David Mosberger-Tang umie¶ci³ naprawiony gas na swoim serwerze ftp. 99.. RRoozzwwii±±zzyywwaanniiee pprroobblleemmóóww Oto kilka czêsto spotykanych problemów razem z rozwi±zaniami. CCzzyyttaanniiee ddyysskkiieetteekk MMSS--DDOOSS zz MMoonniittoorraa PP³³yytt EEwwaalluuaaccyyjjnnyycchh.. Niektóre starsze wersje Monitora P³yt Ewaluacyjnych (przed 2.0) mia³y problemy z odczytywaniem dyskietek w formacie DOS zapisanych pod Linuxem. Zazwyczaj Monitor mo¿e wczytaæ kilka pierwszych sektorów, ale po chwili wchodzi w nieskoñczon± pêtlê b³êdów o z³ych sektorach. Istnieje te¿ pewna niekompatybilno¶æ miêdzy formatem DOS oczekiwanym przez Monitor Ewaluacyjny, a Linuxow± implementacj± DOSFS. ¯eby skróciæ t± d³ug± historiê: je¿eli napotkasz ten problem, spróbuj u¿yæ DOS'a do zapisania dyskietki. Na przyk³ad je¿eli nie ³aduje siê plik MILO.cab, u¿yj komputera z DOSem - w³ó¿ dyskietkê i napisz: copy a:MILO.cab c: copy c:MILO.cab a: del c:MILO.cab Spróbuj ponownie wystartowaæ MILO z tej dyskietki. Powinno to rozwi±zaæ problem. MMIILLOO wwyy¶¶wwiieettllaa dd³³uugg±± sseekkwweennccjjêê zznnaakkóóww ,,,,oo>>'''' ii nniiee pprrzzyyjjmmuujjee ppoolleecceeññ.. Dzieje siê to zazwyczaj kiedy MILO zosta³ skompilowany z portem COM1 jako drugorzêdnym urz±dzeniem konsoli. W takim przypadku, MILO kopiuje wyj¶cie na port COM1 i akceptuje wej¶cie równie¿ z tego portu. Jest to ¶wietne do wykrywania b³êdów, ale nie tak ¶wietne je¿eli masz pod³±czone co¶ innego ni¿ terminal. Je¿eli to siê dzieje, od³±cz lub wy³±cz to urz±dzenie, do chwili uruchomienia j±dra Linuxa. Kiedy Linux dzia³a, wszystko bêdzie dzia³a³o tak jak powinno. MMIILLOO sskkaarr¿¿yy ssiiêê nnaa zz³³yy nnuummeerr mmaaggiicczznnyy oobbrraazzuu jj±±ddrraa Starsze wersje MILO nie obs³ugiwa³y formatu binarnego ELF, nie mog³y wiêc rozpoznaæ obrazu ELF. Je¿eli napotkasz ten problem, ¶ci±gnij najnowsz± wersjê MILO. Wszystkie wersje po 2.0.20 obs³uguj± ELF. Z drugiej strony, mo¿e to byæ wina zniszczonego obrazu. Powiniene¶ te¿ pamiêtaæ, ¿e MILO sam nie rozpoznaje jeszcze obrazów skompresowanych GZIP'em - musisz dodaæ rozszerzenie ,,.gz'' do nazwy pliku. MMIILLOO wwyy¶¶wwiieettllaa ,,,,......ttuurrnniinngg oonn vviirrttuuaall aaddddrreessssiinngg aanndd jjuummppiinngg ttoo tthhee LLiinnuuxx KKeerrnneell'''' ii nniicc ssiiêê nniiee ddzziieejjee Oczywisty problem, to to, ¿e j±dro jest ¼le skompilowane, albo skompilowane na inny system Alpha. Inny to kompilacja j±dra na urz±dzenie VGA, kiedy p³yta posiada TGA (Zlxp) (lub odwrotnie). Dobrze jest wbudowaæ w j±dro wyj¶cie na COM1 i pod³±czyæ terminal, lub spróbowaæ u¿yæ j±dro z dystrybucji Linuxa, któr± zainstalowa³e¶. MMIILLOO nniiee rroozzppoozznnaajjee ddyysskkuu SSCCSSII Standardowe obrazy MILO posiadaj± wszystkie stabilne (dla Alphy) sterowniki urz±dzeñ (na razie s± to NCR 810, QLOGIC ISP, Buslogic i Adaptec 2940/3940) (uwaga - jest to stare HOWTO, a wiêc du¿o siê zmieni³o - przyp. t³um.). Je¿eli twoja karta nie jest do³±czona, mo¿e to znaczyæ, ¿e sterownik dla Alphy nie jest jeszcze stabilny. Spróbuj u¿yæ najnowszych obrazów MILO. Mo¿esz dowiedzieæ siê, jakie urz±dzenia SCSI zosta³y wkompilowane w obraz MILO, u¿ywaj±c komendy ,,show''. 1100.. PPooddzziiêêkkoowwaanniiaa Chcia³bym podziêkowaæ: · Eric'owi Rasmussen'owi i Eillen Samberg - autorom PALcode, · Jim'owi Paradis'owi za sterownik klawiatury i oryginalny interfejs MILO, · Jay'owi Estabrook'owi za jego pomoc i poprawki, · David'owi Mosberger-Tang'owi za darmowy kod emulacji BIOS'u i jego pomoc, · i jako ostatniemu (ale _n_i_e najmniej wa¿nemu) Linus'owi Torvalds'owi za kod zegara i j±dro Linuxa. Jest jeszcze kilka rzeczy, które powinny byæ zrobione, wiêc je¿eli chcesz co¶ dodaæ, daj mi znaæ (david.rusling@reo.mts.dec.com), ¿eby¶my nie duplikowali swoich wysi³ków. Na koñcu, du¿e ,,dziêkujê'' dla Digitala, za produkowanie tak ¶wietnego procesora (i p³acenie mi za to). 1111.. OOdd tt³³uummaacczzaa Je¿eli znajdziesz jakie¶ b³êdy, daj mi znaæ.