Pierwsze kłopoty
Posted on Mon 21 November 2005 in SGI O2 z OpenBSD • 3 min read
Zainstalowanie OpenBSD na Siliconowym O2 nie jest sprawą tak do końca trywialną, jak chcieliby ją przedstawić deweloprzy tego systemu. Właściwie mogę powiedzieć, że więcej pomógł mi przypadek i jedno krótkie zdanie niż dokumentacja.
Przygotowania do instalacji zacząłem od wypalenia płytki z obrazem ISO OpenBSD 3.8 dla platformy MIPS64. Zajęło mi to kilka minut bo obraz ma jakieś 8MB, za co należy się chwała deweloperom. Przy pierwszej próbie nauczyłem się, żeby nie oszczędzać i nie wypalać płytki na CD-RW bo stary CD z O2-ki nie czyta takich "dziwnych" wynalazków.
Wysmażyłem więc drugą płytkę już jak pan Bóg przykazał na normalnym CD i na najniższej, jaką się dało włączyć, prędkości. Po uruchominiu sprzętu, nacisnąłem Esc przy pierwszych komunikatach PROM i wybrałem opcję 2 czyli instalację oprogramowania z nośnika:
From the System Maintenance Menu, select '2' (or click on the appropriate icon if in graphics console) to Install System Software.
następnie instalkę z CD-ROM. System zbootował się i rozpocząłem instalację. Jedną z kilkunastu.
Nie ma to jak dokładne czytanie dokumentacji w pliku INSTALL.sgi znajduje się bardzo ważna sekcja, którą tu zacytuję:
Disk numbering
SGI numbers their disks 1-n depending on their position in the backplane. For example, on the O2, the slot closest to the CPU is numbered 1 and the next 2 if the CPU is a R5000. On R1x000 models, slot 1 is lost due to the larger heatsink on the CPU. Normally the kernel translates the slot numbers to disk numbers by subtracting 1 from the slot number, eg slot 1 becomes sd0. However on an O2 with a R1x000 cpu, 2 is subtracted from the slot number to compensate for the lost slot. When the kernel searches for the boot device it uses the ARCBios environment variable OsLoadPartition. Since the disk number in the variable is the absolute number, in contrast to the kernels relative numbers, the kernel will not be able to find the boot device if the disk slots are not filled from the lowest and up. An empty slot before the boot device will confuse the lookup.
Wyposażony w informację o problemach z numeracją dysków pomyślnie zainstalowałem OpenBSD. Gdy przyszło do pierwszego restartu okazało się, że nie tak znów pomyślnie. System zaiweszął się z następującym komunikatem:
Starting up the system... Exception: Status register: 0x34050082 Cause register: 0x8008 Exception PC: 0x0, Exception RA: 0x800103a8 Read TLB miss exception, bad address: 0x0 Saved user regs in hex (&gpda 0x81060d78, &_regs 0x81060f78): arg: 81070000 0 81054780 8105ff60 tmp: 81070000 a13fb1ba a13fb0d4 7 a13fb0d0 1 2 3 sve: 81070000 409b2dfc 0 4604ae8d 0 40c987e5 0 3f3f7d8e t8 81070000 t9 0 at 0 v0 40a3b3a4 v1 0 k1 1 gp 81070000 fp 0 sp 0 ra 0 PANIC: Unexpected exception
Z początku sądziłem, że przyczyną jest właśnie ta cholerna numeracja dysku. Zacząłem więc próbować różnych ustawień zmiennych OSLoadPartition i SystemPartition w PROM-ie. Nic to nie dawało.
I bet you've deleted the default p partition in disklabel. Don't do that.Bernd
# size offset fstype p: 3135 0 unknown # Cyl 0 - 5*
czyli 5 cylindrów.
Ponownie skonfigurowałem dysk tworząc odpowiednie partycje, doprowadziłem instalację do końca i po restarcie wszystko zadziałało!
Do zapamiętania!
- Nie usuwaj partycji "p" stworzonej przez disklabel!
- Zawsze dodaj partycję "swap"!
- Instaluj system na pierwszym dysku pierwszego kontrolera SCSI, unikniesz grzebania w zmiennych ARCS (w PROM-ie)!