Handbook:MIPS/Installation/Media/ko
하드웨어 요구 사항
CPU (빅 엔디안) | MIPS3, MIPS4, MIPS5 or MIPS64-class CPU |
---|---|
CPU (리틀 엔디안) | MIPS4, MIPS5 or MIPS64-class CPU |
메모리 | 128 MB |
디스크 공간 | 3.0 GB (스왑 영역 제외) |
스왑 공간 | 최소 256 MB |
자세한 내용은 MIPS 하드웨어 요구사항en을 확인하십시오.
설치 참고
여러 아키텍처의 프로세서는 다양한 세대를 거쳐갔습니다. 각각의 최근 세대는 이전 세대를 기초로 만들었습니다. MIPS도 예외는 아닙니다. MIPS 아키텍처에서 다루는 CPU에 여러세대가 있습니다. 적절한 넷부트 이미지 스테이지 타르볼과 CFLAGS를 선택하려면 시스템의 CPU가 어떤 계열에 속해있는지 알아야합니다. 이 계열은 명령셋 아키텍처로 참조합니다.
MIPS ISA | 32/64-bit | 해당 CPU |
---|---|---|
MIPS 1 | 32-bit | R2000, R3000 |
MIPS 2 | 32-bit | R6000 |
MIPS 3 | 64-bit | R4000, R4400, R4600, R4700 |
MIPS 4 | 64-bit | R5000, RM5000, RM7000 R8000, R9000, R10000, R12000, R14000, R16000 |
MIPS 5 | 4-bit | 아직 없음 |
MIPS32 | 32-bit | AMD Alchemy 계열, 4kc, 4km, 등... MIPS32 ISA의 몇가지 리비전 존재. |
MIPS64 | 64-bit | Broadcom SiByte SB1, 5kc 등... MIPS64 ISA의 몇가지 리비전 존재. |
MIPS5 ISA 레벨은 1994년 실리콘 그래픽스가 설계했지만 실제 CPU 에서는 거의 사용하지 않습니다. 이 부분은 MIPS64 ISA의 일부로 남아있습니다.
MIPS32 ISA와 MIPS64 ISA는 혼란을 주는 일반적인 요인입니다. MIPS64 ISA 레벨은 실제로 MIPS5 ISA의 상위 셋이므로 MIPS5와 이전 ISA의 명령어를 포함합니다. MIPS32는 MIPS64의 32비트 명령 하위셋이며, 대부분의 프로그램이 32비트 처리만 필요하기 때문에 MIPS32가 존재합니다.
또한, 알아두어야 할 다른 중요한 개념은 엔디안의 개념입니다. 엔디안 개념은 CPU가 메모리에서 워드 단위의 데이터를 읽는 방식입니다. 워드 단위는 빅 엔디안(최상위 바이트 먼저 읽음)과 리틀 엔디안(최하위 바이트 먼저 읽음)방식으로 읽을 수 있습니다. 인텔 x86 머신은 보통 리틀 엔디안 방식이며, 애플 머신과 스팍 머신은 빅 엔디안 방식입니다. MIPS에서는 두가지 방식을 다 사용합니다. 이를 구분하기 위해 리틀 엔디안을 아키텍처 이름에 표시하려 뒤에 "el"을 붙입니다.
아키텍처 | 32/64비트 | 엔디안 | 해당 머신 |
---|---|---|---|
mips | 32비트 | 빅 엔디안 | 실리콘 그래픽스 |
mipsel | 32비트 | 리틀 엔디안 | 코발트 서버 |
mips64 | 64비트 | 빅 엔디안 | 실리콘 그래픽스 |
mips64el | 64비트 | 리틀 엔디안 | 코발트 서버 |
ISA에 대해 더 많은 내용을 알아보려 한다면, 다음 웹사이트가 도움이 될 수도 있습니다.
Netbooting 간단히 살펴보기
이 절에서는, 실리콘 그래픽스 워크스테이션 또는 코발트 서버 제품에서 성공적으로 네트워크 부팅을 수행하는데 필요한 내용을 다루겠습니다. 간단한 정리 안내서이며 완벽을 의도하지 않았으므로, 더 많은 내용은 무(無)디스크 노드 게시물을 읽어보십시오.
머신에 따라, 넷부트와 리눅스 설치를 제대로 하는데 필요한 하드웨어가 있습니다.
- 보통:
- DHCP/BOAMD Alchemy 계열, 4kc, 4km, 등... MIPS32 ISA.OTP 서버에 몇가지 리비전이 있습니다 (ISC DHCPd 필수)
- 인내를 요함 -- 그리고 많은 준비물
- 실리콘 그래픽스 워크스테이션용:
- TFTP 서버 (tftp-hpa 필수)
- 직렬 콘솔이 필요할 때:
- MiniDIN8 --> RS-232 직렬 케이블 (IP22 와 IP28 시스템에서만 필요)
- 널 모뎀 케이블
- VT100 또는 9600 보 레이트 지원 ANSI 호환 터미널
- 코발트 서버용 (초기 Qube 아님):
- NFS 서버
- 널 모뎀 케이블
- VT100 또는 115200 보 레이트 지원 ANSI 호환 터미널
SGI 머신은 직렬 포트에 MiniDIN 8 커넥터를 사용합니다. 현재 애플 모뎀 케이블은 직렬 케이블로 제대로 동작하지만, 존재하는 애플 머신에는 USB 및 내부 모뎀이 붙어있어 찾기 어려워지고 있습니다. 결선 다이어그램은 Linux/MIPS 위키에 있으며, 필요한 플러그 부품이 전자 매장의 재고로 남아있어야 합니다.
터미널은 실제 VT100/ANSI 터미널이 될 수도 있거나 터미널 에뮬레이션 프로그램이 동작(하이퍼터미널, 미니콤, 세용, 텔렉스, xc, screen, 취향에 따라 어떤 것이든)중인 PC가 될 수도 있습니다. 이 머신에서 동작중인 플랫폼이 무엇이냐는 상관없습니다. RS-232 직렬 포트와 적당한 프로그램이 남아있으면됩니다.
이 안내서는 초기 Qube 머신을 다루지 않습니다. 초기 Qube 서버 장비는 기본 설정에서 직렬 포트가 빠져있기 때문에 스크류 드라이버와 대리 머신 없이는 젠투를 설치할 수 없습니다.
TFTP와 DHCP 설정
앞서 언급한바와 같이 이 안내서는 완전하지 않습니다. 단지 동작하게만 하는 기본 구성 설정일 뿐입니다. 처음부터 설정을 시작하거나 넷부팅 지원 기능을 추가하려 기존 설정을 고칠 때 제안 사항으로 활용하십시오.
사용중인 서버에서 FreeBSD 또는 유닉스 계열 플랫폼을 사용하는 편이 더 좋을 수 있다면 젠투 리눅스를 가동할 필요가 없다는 점도 상당히 참고할만합니다. 그러나 이 안내서에서는 젠투 리눅스를 사용할 상황을 가정합니다. 원한다면 다른 머신에서 DHCP 서버로 TFTP와 NFS 서비스를 실행할 수도 있습니다.
젠투/MIPS 팀에서는 다른 운영체제의 넷부트 서버 설정을 도와드리지 못합니다.
첫 단계 -- DHCP를 설정하십시오. ISC DHCP 데몬이 BOOTP 요청에 응답하려면(SGI와 코발트 BOOTROM에서 요청함), 우선 동적 BOOTP를 사용할 주소 범위내로 활성화하십시오. 그 다음 각각의 클라이언트 항목으로 부팅 이미지를 가리키도록 설정하십시오.
root #
emerge --ask net-misc/dhcp
설치가 끝나면 /etc/dhcp/dhcpd.conf 파일을 만드십시오. 시작할 때 기본 구성으로 사용할 설정은 아래와 같습니다.
# Tell dhcpd to disable dynamic DNS.
# dhcpd will refuse to start without this.
ddns-update-style none;
# Create a subnet:
subnet 192.168.10.0 netmask 255.255.255.0 {
# Address pool for our booting clients. Don't forget the 'dynamic-bootp' bit!
pool {
range dynamic-bootp 192.168.10.1 192.168.10.254;
}
# DNS servers and default gateway -- substitute as appropriate
option domain-name-servers 203.1.72.96, 202.47.56.17;
option routers 192.168.10.1;
# Tell the DHCP server it's authoritative for this subnet.
authoritative;
# Allow BOOTP to be used on this subnet.
allow bootp;
}
위 설정을 통해 subnet 절에서 여러대의 클라이언트를 추가할 수 있습니다. 어떤 클라이언트를 설정할지는 이 안내서의 뒷부분에서 다룹니다.
그 다음 단계. TFTP 서버를 설정하십시오. 잘 동작한다고 알려진 tftp-hpa를 TFTP 데몬으로 쓰는것이 좋습니다. 다음과 같이 설치를 계속 진행하십시오.
root #
emerge --ask net-ftp/tftp-hpa
이 과정을 통해 넷부트 이미지를 저장할 /tftproot를 만듭니다. 필요한 경우 다른 곳으로 옮기십시오. 이 안내서의 목적에 따르면 기본 위치를 그대로 둡니다.
SGI 스테이션 넷부팅
netboot 이미지 다운로드
설치하려는 시스템에 따라, 다운로드할 수 있는 몇가지 이미지가 있습니다. 컴파일 하려는 시스템 형식과 CPU에 따라 이름이 붙어있습니다. 해당 머신 형식은 아래와 같습니다:
코드명 | 머신 |
---|---|
IP22 | Indy, *Indigo 2, Challenge S |
IP26 | *Indigo 2 Power |
IP27 | Origin 200, Origin 2000 |
IP28 | *Indigo 2 Impact |
IP30 | Octane |
IP32 | O2 |
Indigo 2는 IRIS Indigo (IP12 w/ R3000 CPU, R4000 CPU를 장착한 IP20, 둘 다 리눅스가 동작하지 않음), Indigo 2 (리눅스가 잘 돌아가는 IP22), R8000 기반 Indigo 2 Power (모든 기종에서 리눅스가 동작하지 않음), the R10000 기반 Indigo 2 Impact (완전히 실험적인 IP28)를 합쳐부른 작명 실수의 결과입니다. 이들 머신이 각기 다름을 참고하십시오.
파일이름에서도 r4k는 R4000 프로세서 기종을 참조하며, r5k는 R5000계열 프로세서를, rm5k는 RM5200계열 프로세서를, r10k는 R10000계열 프로세서를 참조합니다. 이미지는 젠투 미러en에 있습니다.
SGI 클라이언트 DHCP 설정
파일을 다운로드하고 나면 /tftproot/ 디렉터리에 압축해제한 이미지 파일을 넣으십시오(bzip2 -d 명령으로 압축 해제). 그 다음 /etc/dhcp/dhcpd.conf 파일을 편집하여 SGI 클라이언트에 맞게 적당한 항목을 추가하십시오.
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
# ... usual stuff here ...
# SGI Workstation... change 'sgi' to your SGI machine's hostname.
host sgi {
# MAC Address of SGI Machine. Normally this is written on the back
# or base of the machine.
hardware ethernet 08:00:69:08:db:77;
# TFTP Server to download from (by default, same as DHCP server)
next-server 192.168.10.1;
# IP address to give to the SGI machine
fixed-address 192.168.10.3;
# Filename for the PROM to download and boot
filename "/gentoo-r4k.img";
}
}
커널 옵션
거의 끝났지만 몇가지 이리저리 설정해야 할 건수가 남았습니다. 루트 권한으로 콘솔을 띄우십시오.
"Path Maximum Transfer Unit"를 활성화하십시오. 그렇지 않으면 SGI PROM에서 커널을 찾지 못합니다.
root #
echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc
SGI PROM에서 쓸 포트 범위를 설정하십시오:
root #
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
root #
echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range
SGI PROM에서 리눅스 서버가 잘 동작할 수 있게 충분히 부여해야합니다.
데몬 시작
이제 데몬을 시작하십시오.
root #
/etc/init.d/dhcp start
root #
/etc/init.d/in.tftpd start
마지막 단계에서 문제가 생기지 않았다면 워크스테이션에 전원을 인가할 모든 설정이 끝났으며 이 안내서의 내용을 계속 진행할 차례입니다. DHCP 서버가 어떤 문제로 인해 동작하지 않으면, dhcpd를 명령줄에서 실행하여 어떤 메시지를 출력하는지 살펴보십시오. 모든 동작에 문제가 없다면, 백그라운드로 포킹해야 합니다. 그렇지 않으면 화면 바로 아래에 'exiting.'을 표시하여 항의합니다.
tftp 데몬이 동작중인지 확인하는 쉬운 방법은 다음 명령을 입력하고 출력 내용을 확인하는 것입니다:
root #
netstat -al | grep ^udp
udp 0 0 *:bootpc *:* udp 0 0 *:631 *:* udp 0 0 *:xdmcp *:* udp 0 0 *:tftp *:* <-- (look for this line)
SGI 스테이션 넷부팅
좋습니다. 모든 사항을 설정했고 DHCP가 TFTP와 함께 동작합니다. 이제 SGI 머신을 가동할 차례입니다. 유닛의 전원을 인가하십시오 - "Running power-on diagnostics" 메시지가 화면에 뜨면 "Stop for Maintenance"를 누르거나 Esc를 누르십시오. 다음과 같은 메뉴가 나타납니다.
Running power-on diagnostics
System Maintenance Menu (1) Start System (2) Install System Software (3) Run Diagnostics (4) Recover System (5) Enter Command Monitor Option?
명령 모니터로 들어가려면 5를 입력하십시오. 모니터에서 BootP 프로세스를 시작하십시오:
>>
bootp(): root=/dev/ram0
이 시점에서, 머신에서 이미지 다운로드를 시작해야합니다. 과정이 끝나면 거의 20초 후에 리눅스 부팅을 시작합니다. 모든 과정이 잘 진행됐다면, 아래와 같이 busybox ash 쉘을 시작하며, 젠투 리눅스 설치를 계속 진행할 수 있습니다.
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Silicon Graphics Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
문제 해결
머신이 계속 멈춰있고, 이미지 다운로드를 거부한다면, 둘 중 하나의 문제일 수도 있습니다
- 절차를 제대로 따르지 않았거나(유불)
- 약간 달래야 합니다(망치는 좀 내려놓으시죠...)
확인해야 할 요소가 몇가지 있습니다:
- dhcpd는 SGI 머신에 IP 주소를 부여합니다. 시스템 로그에서 BOOTP 요청이 나타날 경우 메시지를 살펴보십시오. tcpdump도 쓸만합니다
- /nfsboot/ 폴더의 권한을 제대로 설정하지 않았습니다(모두가 읽을 수 있어야합니다).
- tftp 서버에서 나타내는(아마도 오류) 시스템 로그를 확인하십시오
SGI 머신에서 모든 사항을 확인했음에도 불구하고, 시간초과 오류가 뜨거나, 다른 오류가 나타난다면, 다음 명령을 콘솔에 입력해보십시오.
>>
resetenv
>>
unsetenv netaddr
>>
unsetenv dlserver
>>
init
>>
bootp(): root=/dev/ram0
Cobalt 스테이션의 넷부팅
netboot 진행과정 간단히 살펴보기
SGI 머신과는 달리 Cobalt 서버에서는 부팅과정에서 커널을 보내는 목적으로 NFS를 사용합니다. 전원을 인가하는 과정에서 좌우 화살표 방향 버튼을 누른채로 기다려 머신을 부팅하십시오. 그러면 머신에서 BOOTP로 IP 번호를 받고 NFS를 통해 서버의 /nfsroot/ 디렉터리를 마운트하며, 표준 ELF 바이너리로 간주하는 vmlinux_raq-2800.gz(모델에 따라 다름) 파일을 다운로드하고 부팅합니다.
Cobalt netbook 이미지 다운로드
http://distfiles.gentoo.org/experimental/mips/historical/netboot/cobalt/에 Cobalt 머신을 띄우는데 필요한 부트 이미지가 있습니다. 해당 파일의 이름은 nfsroot-KERNEL-COLO-DATE-cobalt.tar입니다. 최근 파일을 선택하시고 아래와 같이 / 에 언팩하십시오:
root #
tar -C / -xvf nfsroot-2.6.13.4-1.19-20051122-cobalt.tar
NFS 서버 설정
이 머신에서 이미지를 다운로드할 때 NFS를 사용하므로 서버의 /nfsroot/ 디렉터리를 공유로 내보내야 합니다. net-fs/nfs-utils 꾸러미를 설치하십시오:
root #
emerge --ask net-fs/nfs-utils
이 과정이 끝나면 다음 내용을 /etc/exports 파일에 넣으십시오.
/nfsroot *(ro,sync)
이 과정이 끝나면 NFS 서버를 시작하십시오:
root #
/etc/init.d/nfs start
NFS 서버가 이미 동작중이라면 exportfs 명령으로 공유로 내보내는 파일이 무엇인지 살펴보십시오.
root #
exportfs -av
Cobalt 머신 DHCP 설정
이제 DHCP 부분은 상대적으로 간단합니다. 다음 줄을 /etc/dhcp/dhcpd.conf 파일에 추가하십시오.
subnet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx {
# ... usual stuff here ...
# Configuration for a Cobalt Server
# Set the hostname here:
host qube {
# Path to the nfsroot directory.
# This is mainly for when using the TFTP boot option on CoLo
# You shouldn't need to change this.
option root-path "/nfsroot";
# Cobalt server's ethernet MAC address
hardware ethernet 00:10:e0:00:86:3d;
# Server to download image from
next-server 192.168.10.1;
# IP address of Cobalt server
fixed-address 192.168.10.2;
# Location of the default.colo file relative to /nfsroot
# You shouldn't need to change this.
filename "default.colo";
}
}
데몬 시작
이제 데몬을 시작하십시오. 다음 명령을 입력하십시오:
root #
/etc/init.d/dhcp start
root #
/etc/init.d/nfs start
문제가 생기지 않았다면 마지막 단계에서는 워크스테이션에 전원을 인가할 모든 설정이 끝났으며 이 안내서의 내용을 계속 진행할 차례입니다. DHCP 서버가 어떤 문제로 인해 동작하지 않으면, dhcpd를 명령줄에서 실행하여 어떤 메시지를 출력하는지 살펴보십시오. 모든 동작에 문제가 없다면, 백그라운드로 포킹해야 합니다. 그렇지 않으면 화면 바로 아래에 'exiting.'을 표시하여 항의합니다.
Cobalt 머신 넷부팅
이제 코발드 머신을 가동할 차례입니다. 널 모뎀 케이블을 꼽고, 직렬 터미널을 115200 보 레이트, 8비트, 패리티 없음, 스톱 비트 1, VT100 에뮬레이션 설정을 사용하도록 설정하십시오. 과정이 끝나면 유닛의 전원을 인가하는 동안 왼쪽 오른쪽 화살표 버튼을 누른채로 기다리십시오.
후면 패널에 "Net Booting"이라고 떠야하며, CoLo가 뜰 것 같은 네트워크 활동이 나타나야합니다. 전면 패널에는 "네트워크(NFS)" 옵션이 나타날때까지 스크롤을 내리시고 Enter를 누르십시오. 직렬 콘솔에서 머신 부팅을 시작하는지 확인하십시오.
...
elf: 80080000 <-- 00001000 6586368t + 192624t elf: entry 80328040 net: interface down CPU revision is: 000028a0 FPU revision is: 000028a0 Primary instruction cache 32kB, physically tagged, 2-way, linesize 32 bytes. Primary data cache 32kB 2-way, linesize 32 bytes. Linux version 2.4.26-mipscvs-20040415 (root@khazad-dum) (gcc version 3.3.3...) Determined physical RAM map: memory: 08000000 @ 00000000 (usable) Initial ramdisk at: 0x80392000 (3366912 bytes) On node 0 totalpages: 32768 zone(0): 32768 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,115200 root=/dev/ram0 Calibrating delay loop... 249.85 BogoMIPS Memory: 122512k/131072k available (2708k kernel code, 8560k reserved, 3424k dat)
busybox ash 쉘이 아래와 같이 뜨면 젠투 리눅스 설치를 계속할 수 있습니다.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 280k freed
init started: BusyBox v1.00-pre10 (2004.04.27-02:55+0000) multi-call binary
Gentoo Linux; http://www.gentoo.org/
Copyright 2001-2004 Gentoo Technologies, Inc.; Distributed under the GPL
Gentoo/MIPS Netboot for Cobalt Microserver Machines
Build Date: April 26th, 2004
* To configure networking, do the following:
* For Static IP:
* /bin/net-setup <IP Address> <Gateway Address> [telnet]
* For Dynamic IP:
* /bin/net-setup dhcp [telnet]
* If you would like a telnetd daemon loaded as well, pass "telnet"
* As the final argument to /bin/net-setup.
Please press Enter to activate this console.
문제 해결
머신이 계속 멈춰있고, 이미지 다운로드를 거부한다면, 둘 중 하나의 문제일 수도 있습니다:
- 절차를 제대로 따르지 않았거나(유불)
- 약간 달래야 합니다(망치는 좀 내려놓으시죠...)
확인해야 할 요소가 몇가지 있습니다:
- dhcpd는 코발트 머신에게 IP 주소를 부여합니다. 시스템 로그에서 BOOTP 요청이 나타날 경우 메시지를 살펴보십시오. tcpdump도 쓸만합니다
- /nfsboot/ 폴더의 권한을 제대로 설정하지 않았습니다(모두가 읽을 수 있어야합니다).
- NFS 서버가 실행중이며 /nfsroot/ 디렉터리 공유를 내보내고 있는지 확인하십시오. 서버에서 exportfs -v 명령으로 확인하십시오.
설치 CD 사용
실리콘 그래픽스 머신에서는, 운영체제를 설치할 떄 CD로 부팅할 수 있습니다(IRIX 머신에 설치하는 방법의 예입니다). 최근에는 부팅용 CD 이미지로도 젠투 설치가 가능해졌습니다. 이 CD는 동일한 방식으로 동작하도록 설계했습니다.
잠시 기간동안 Gentoo/MIPS 라이브 CD가 SGI 인디, 인디고 2, R4000 및 R5000 계열 CPU를 장착한 O2 워크스테이션 머신에서만 동작했으나, 앞으로는 다른 플랫폼에서도 가능합니다.
라이브 CD 이미지는 젠투 미러의 experimental/mips/livecd/ 디렉터리에서 찾을 수 있습니다.
이 CD는 현재 상당한 실험 수준에 있습니다. 동작을 할지 안 할지 모릅니다. 어떤 경우에든 버그질라, 이 포럼 스레드(en), #gentoo-mips IRC 채널에 알려주십시오.