Handbook:MIPS/Blocks/Bootloader/ko

실리콘 그래픽스 머신용 arcload
arcload는 64비트 커널이 필요하여 arcboot(64비트 바이너리로 쉽게 컴파일할 수 없음)를 쓸 수 없는 머신용으로 작성했습니다. 볼륨 헤더에서 커널을 직접 불러올 때 일어나는 특이한 현상을 처리할 수 있습니다. 이제 설치 과정을 진행해보겠습니다:

과정이 끝나면 에서 arcload 바이너리를 찾아보십시오. 이제 두 파일을 찾아보실 수 있습니다:
 * : Indy, Indigo2 (R4k), Challenge S, O2 시스템용 32비트 바이너리
 * : Octane/Octane2, Origin 200/2000, Indigo2 Impact 시스템용 64비트 바이너리

볼륨 헤더에 적당한 시스템 바이너리를 설지하려면 을 사용하십시오:

Indy/Indigo2/Challenge S/O2 사용자라면:

Indigo2 Impact/Octane/Octane2/Origin 200/Origin 2000 사용자라면:

이제   명령을 사용하여 바이너리가 볼륨 헤더에 있는지 확인해보겠습니다:

파일의 문법은 C와 비슷합니다. 이 파일을 설정하는 전체 세부 내용은 Linux/MIPS 위키의 arcload 페이지를 살펴보십시오. 간단하게 말해, OSLoadFilename 변수를 활용하여 부팅시 활성/비활성화 할 여러가지 옵션을 지정하십시오.

arcload-0.5부터는 볼륨 헤더 또는 파티션에 arc.cf와 커널을 함께 넣어야 합니다. 새 기능을 활용하려면 파티션(또는 부팅 파티션을 따로 나누어놓지 않았다면 )에 파일을 넣으십시오. arcload는 잘 알려진 grub 부트로더의 파일 시스템 드라이버 코드를 사용하기 때문에 grub과 동일하게 다양한 파일 시스템을 지원합니다.

CoLo 설치
Cobalt server에서는 칩에 설치한 펌웨어의 기능이 상당히 빈약합니다. Cobalt BOOTROM은 SGI PROM에 비교했을 때, 원시적이며, 여러가지 중요한 제한 사항이 있습니다.
 * 커널 크기는 675kB(평균)로 제한합니다. 리눅스 2.4의 현재 크기로는 이 커널 크기에 맞추기란 거의 불가능합니다. 리눅스 2.6과 3.x는 뭐 말할 것도 없습니다.
 * 64비트 커널은 내장 펌웨어에서 지원하지 않습니다(현재 Cobalt 머신에서 상당히 시험수준이긴 합니다만).
 * 최선의 기본은 쉘입니다

이 제한을 극복하려고 대체 펌웨어인 CoLo(Cobalt Loader)를 개발했습니다. CoLo는 Cobalt 서버의 플래시 칩에 굽거나 기존 펌웨어에서 불러올 수 있는 BOOTROM 이미지입니다.

이제 CoLo 설치를 진행하겠습니다. 꾸러미 이머지로 시작하십시오.

With that installed, take a look inside the directory to find two files:
 * (the "kernel" for the stock firmware to load), and
 * (a ROM image for flashing into the BOOTROM)

We start by mounting and dumping a compressed copy of  in  where the system expects it.

CoLo 설정
Now, when the system first boots up, it'll load CoLo which will spit up a menu on the back LCD. The first option (and default that is assumed after roughly 5 seconds) is to boot to the hard disk. The system would then attempt to mount the first Linux partition it finds, and run the script default.colo. The syntax is fully documented in the CoLo documentation (have a peek at -- where X.YY is the version installed), and is very simple.

It is also possible to ask a question, such as which kernel & configuration to boot, with a default timeout. The following configuration does exactly this, asks the user which kernel they wish to use, and executes the chosen image. vmlinux.gz.new and vmlinux.gz.working may be actual kernel images, or just symlinks pointing to the kernel images on that disk. The 50 argument to select specifies that it should proceed with the first option ("Working") after 50/10 seconds.

더 자세한 내용은 의 문서를 살펴보십시오.

시리얼 콘솔 설정
Okay, the Linux installation as it stands now, would boot fine, but assumes the user will be logged in at a physical terminal. On Cobalt machines, this is particularly bad -- there's no such thing as a physical terminal.

First, pull up an editor and hack away at. Further down in the file, notice the following:

First, uncomment the c0 line. By default, it's set to use a terminal baud rate of 9600 bps. On Cobalt servers, this may be changed to 115200 to match the baud rate decided by the BOOT ROM. The following is how that section looks then. On a headless machine (e.g. Cobalt servers), we also recommend commenting out the local terminal lines (c1 through to c6) as these have a habit of misbehaving when they can't open.

Now, lastly... we have to tell the system, that the local serial port can be trusted as a secure terminal. The file we need to poke at is. It contains a list of terminals that the system trusts. We simply stick in two more lines, permitting the serial line to be used for root logins.

마지막으로 리눅스에서 /dev/tts/0도 호출합니다. 따라서 이 부분도 추가하겠습니다:

일반 PROM 설정
부트로더를 설치하고 다시 부팅하면(잠시 후에 진행합니다), 시스템 관리 메뉴로 진입 후 시스템을 넷부팅할 때 처음 했던것과 마찬가지로 명령 모니터(5)를 선택하십시오.

부팅 진행 후 메뉴

볼륨 헤더 위치를 입력하십시오:

젠투를 자동으로 부팅하십시오:

시간대를 설정하십시오:

시리얼 콘솔을 사용하십시오 - 그래픽 어댑터 사용자는 "d1"(하나) 대신 "g"를 넣어야 합니다:

시리얼 보 레이트를 설정하십시오. 9600 값이 기본값이며, 원한다면 38400까지 사용할 수도 있겠지만, 설정 안해도 그만입니다:

이제 시스템을 부팅하는 방법에 따라 다음 설정을 계속 진행하겠습니다.

직접 볼륨 헤더 부팅 설정
루트 장치를 와 같은 젠투 루트 파티션으로 지정하십시오:

존재하는 커널을 보려면 "ls"를 입력하십시오.

전달할 커널 매개변수를 선언하십시오:

커널 매개변수를 넣지 않고 커널을 사용하려면 boot -f PROM 명령을 사용하십시오:

arcload 설정
arcload uses the OSLoadFilename option to specify which options to set from. The configuration file is essentially a script, with the top-level blocks defining boot images for different systems, and inside that, optional settings. Thus, setting OSLoadFilename=mysys(serial) pulls in the settings for the mysys block, then sets further options overridden in serial.

위의 예제 파일에서, 시스템 블록을 정의했고 동작하는 ip28, 새로운 옵션과 디버그 옵션을 확보했습니다. 다음과 같이 PROM 변수를 정의하겠습니다:

arcload를 부트로더로 선택하십시오:- sash64 또는 sashARCS:

arc.cf의 "ip28" 섹션에 나타난 "동작하는" 커널 이미지를 사용하십시오:

Starting with arcload-0.5, files no longer need to be placed in the volume header -- they may be placed in a partition instead. To tell arcload where to look for its configuration file and kernels, one must set the OSLoadPartition PROM variable. The exact value here will depend on where the disk resides on the SCSI bus. Use the SystemPartition PROM variable as a guide -- only the partition number should need to change.

볼륨 헤더에서 불러오려면 8번 파티션을 활용하십시오:

그렇지 않으면 파티션과 파일 시스템 형식을 지정하십시오: