  MILO HOWTO
  Autor: David A. Rusling david.rusling@reo.mts.dec.com
  v0.84, 6 Grudnia 1996
  Wersja polska: Leszek Urbański tygrys@fidonet.org.pl
  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



  ______________________________________________________________________

  1.  Wprowadzenie


  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.


  1.1.  Prawa autorskie


  Prawa autorskie Alpha Miniloader (MILO) HOWTO: Copyright (C) 1995,
  1996 David A.  Rusling.

  Prawa autorskie. 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 chciałby 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.

  Oświadczenie. 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.


  1.2.  Nowe wersje tego dokumentu


  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/.


  2.  Co to jest MILO?


  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 większość 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 .gz.

  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.


  3.  Standardowe, pre-kompilowane obrazy MILO


  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.


  4.  Kompilacja MILO


  (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
  moż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 PRZED
  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.




  5.  Ładowanie MILO


  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


  5.1.  Ładowanie MILO z firmware'u Windows NT ARC


  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ź ,,\'' 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''.


  5.2.  Ładowanie MILO z ,,Evaluation Board Debug Monitor''


  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 napewno 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>





  5.3.  Ładowanie MILO z ,,bezpiecznej dyskietki startowej''


  Tylko AXPPCI33 napewno 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.)


  5.4.  Ładowanie MILO z pamięci Flash


  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'')


  5.5.  Ładowanie MILO z konsoli SRM


  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 napewno posiadają konsolę SRM:


  ˇ  NoName (Sekcja ``NoName'')

  ˇ  AlphaPC64 (Sekcja ``AlphaPC64'')

  ˇ  EB164 (Sekcja ``EB164'')

  ˇ  PC164 (Sekcja ``PC164'')


  5.6.  Informacje o płytach głównych



  5.6.1.  AXPPCI33 (NoName)


  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).


  5.6.2.  AlphaPC64 (Cabriolet)


  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 zawsze 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.  (NIE
  fl/net boot tylko load - 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.


  5.6.3.  EB66+


  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'').


  5.6.4.  EB64+/Aspen Alpine


  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.


  5.6.5.  Universal Desktop Box (Multia)


  Jest to system bardzo kompaktowy, sprzedawany jako cały komputer,
  oparty na 21066.  Posiada on urządzenie graficzne TGA (21030). Chociaż
  można wepchnąć 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'').


  5.6.6.  EB164


  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'').
  5.6.7.  PC164


  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'').


  5.6.8.  XL266


  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.

  Uwaga: 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ń.


  5.6.9.  Platform2000


  Jest to system oparty na 233MHz 21066.


  6.  Interfejs użytkownika MILO


  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.


  6.1.  Komenda ,,help''


  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.




  Uwaga: komenda bootopt występuje tylko w systemie AlphaPC64 (i
  podobnych). Odwołaj się do dokumentacji płyty, żeby dowiedzieć się, co
  ona znaczy.


  Urządzenia. 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.

  Systemy plików. 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:




  Zmienne. 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.





  6.2.  Ładowanie Linuxa


  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 .gz.
  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ąSCSIn_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





  6.3.  Resetowanie Linuxa


  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.


  6.4.  Komenda ,,bootopt''


  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.
  0 Ładowanie Monitora Płyt Ewaluacyjnych,
  1 Ł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




  Uwaga: 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.


  7.  Używanie programu zarządzającego pamięcią flash


  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>




  Uwaga: 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.


  7.1.  Komenda ,,help''




  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>




  Uwaga: Komendy environment i bootopt są dostępne tylko w płytach
  EB66+, AlphaPC64, EB164 i PC164 (i ich klonach).


  7.2.  Komenda ,,list''


  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>





  7.3.  Komenda ,,program''


  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.

  Uwaga: 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.)


  7.4.  Komenda ,,environment''


  Wybiera blok flash mający zawierać zmienne środowiskowe MILO.


  7.5.  Komenda ,,bootopt''


  Jest to ta sama komenda, co istniejąca w MILO, zobacz sekcję
  (``Komenda ,,bootopt'''').


  7.6.  Komenda ,,quit''


  Jest to raczej bez znaczenia. Jedyna droga powrotna do MILO (lub
  czegokolwiek innego), kiedy fmu działa, to restart systemu.


  8.  Ograniczenia


  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/cośtam są poprawne,
  jednakże są problemy, kiedy zostają zbudowane przy użyciu najnowszego
  gas (assembler GNU - przyp. tłum.). Można 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.


  9.  Rozwiązywanie problemów


  Oto kilka często spotykanych problemów razem z rozwiązaniami.

  Czytanie dyskietek MS-DOS z Monitora Płyt Ewaluacyjnych.

  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.

  MILO wyświetla długą sekwencję znaków ,,o>'' i nie przyjmuje poleceń.

  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.

  MILO skarży się na zły numer magiczny obrazu jądra

  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.

  MILO wyświetla ,,...turning on virtual addressing and jumping to the
  Linux Kernel'' i nic się nie dzieje

  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ś.

  MILO nie rozpoznaje dysku SCSI

  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''.


  10.  Podziękowania


  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 nie 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).


  11.  Od tłumacza


  Jeżeli znajdziesz jakieś błędy, daj mi znać.


















