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 설치를 진행하겠습니다. 꾸러미 이머지로 시작하십시오.

설치가 끝나면 디렉터리에서 다음 두개의 파일을 찾아보십시오:
 * (불러올 저장 펌웨어용 "커널")
 * (BOOT 롬에 구워넣을 ROM 이미지)

를 마운트하고 시스템에서 찾을 위치에서 의 압축 사본을 덤핑하여 과정을 시작하겠습니다.

CoLo 설정
이제 시스템을 처음 부팅하면 LCD 배경에 메뉴를 띄우는 CoLo를 불러옵니다. 첫번째 옵션(그리고 5초간 기본값으로 대기)은 하드디스크로 부팅합니다. 시스템에서는 첫번째 리눅스 파티션을 찾아 마운트를 시도하고 default.colo를 실행합니다. 문법은 CoLo 문서( 에서 고르면 되며 X.YY는 설치 버전임)에 다 있으며 매우 간단합니다.

어떤 커널과 설정을 부팅에 사용하고 기본 제한 시간을 어떻게 할지 물어볼 수 있습니다. 다음 설정에서는 어떤 커널을 쓸지, 어떤 이미지를 선택해서 실행할 지 물어보는 동작을 정확히 수행합니다. vmlinux.gz.new와 vmlinux.gz.working이 실제 커널이미지겠지만 디스크에 심볼릭 링크로 링크 걸어놓은 커널 이미지일 수도 있습니다. 50이라는 매개변수 값은 50/10 초 후 첫번째 옵션("Working")으로 과정을 진행하도록 설정합니다.

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

직렬 콘솔 설정
좋습니다. 이제 리눅스 설치 과정에서 부팅은 잘 진행이 되고 있습니다만, 실제 터미널에 사용자가 로그인 할 수도 있습니다. Cobalt 머신이라면 특히 바람직한 상황이 아닙니다. 실제 터미널에는 아무것도 없기 때문입니다.

먼저 편집기를 띄우고 를 뜯어고치겠습니다. 이 파일을 쭉 살펴보면 다음과 같은 내용이 나타납니다:

먼저 c0 줄의 주석을 제거하십시오. 기본적으로 Cobalt 서버에서는 9600bps 보 레이트로 터미널을 사용합니다. BOOT ROM에서 결정한 보 레이트에 일치하려면 115200으로 맞춰야 합니다. 다음 내용은 조치 사항을 이행한 후의 해당 섹션의 모습을 나타냅니다. 헤드리스 머신(예: Cobalt 서버)에서는 로컬 터미널 라인(c1부터 c6)의 줄을 열 수 없을 경우 동작이 잘못될 수 있으므로, 해당 줄의 주석 처리를 권합니다.

이제 마지막으로 ... 보안 터미널 처럼 신뢰할 수 있는 로컬 시리얼 포트로 시스템을 불러와야 합니다. 건드려야 할 파일은 입니다. 믿을만한 시스템의 터미널 목록이 여기에 있습니다. 단순히 루트 로그인에 사용할 직렬라인만 허용하도록, 두 줄의 내용만 더 넣겠습니다.

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

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

부팅 진행 후 메뉴

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

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

시간대를 설정하십시오:

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

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

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

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

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

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

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

arcload 설정
arcload는 OSLoadFilename 옵션을 사용하여 에서 어떤 옵션을 설정할지 지정합니다. 설정 파일은 본질적으로 스크립트이며 최상위 레벨 블록에서는 각각의 시스템에서 사용할 부팅 이미지를 정의하고, 해당 내용을 뒤져보면 추가 설정이 있습니다. 따라서 OSLoadFilename=mysys(sefial) 설정으로 mysys 블록의 설정을 가져온 후, 직렬 연결상에서 그 밖의 옵션을 중복 적용합니다.

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

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

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

arcload-0.5부터 볼륨 헤더에 파일을 더이상 놓을 필요가 없습니다 -- 대신 파이션에 넣으면 됩니다. 설정 파일과 커널을 어디에서 찾아야 하는지 arcload에 알려주려면 OSLoadPartition PROM 변수를 반드시 설정해야 합니다. 어떤 SCSI 버스에 디스크를 붙였느냐에 따라 정확한 값이 달라집니다. SystemPartition PROM 변수를 보조 안내용도로 사용하십시오 -- 파티션 번호만 바꿔야합니다.

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

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