3.6. 설치하기 전에 하드웨어 및 운영 체제 설정

여기서는 데비안을 설치하기 전에 해야 할 하드웨어 설정에 대해 (설정이 따로 필요하다면) 다룹니다. 보통 시스템의 펌웨어 설정을 확인하고 필요하다면 설정을 바꾸는 일들입니다. “펌웨어”는 하드웨어가 사용하는 주요 소프트웨어로, 전원을 켠 다음에 부트스트랩 과정에서 반드시 동작합니다. 여러분 시스템에서의 Debian GNU/Linux 안정성과 관련된 하드웨어 문제들도 다룹니다.

3.6.1. OpenBoot 실행

OpenBoot에는 SPARC 아키텍처 부팅에 필요한 기능이 들어 있습니다. 이 기능은 x86 아키텍처의 BIOS와 비슷하지만, 훨씬 더 훌륭합니다. Sun boot PROM에는 fourth 인터프리터가 들어 있어서, 진단 기능이나 간단한 스크립트와 같은 여러 가지 일을 할 수 있습니다.

부팅 프롬프트로 들어가려면 Stop 키를 누르고 있다가 (옛날 type 4 키보드에서는 L1 키를 사용하고, PC 키보드 어댑터를 쓰면 Break 키 사용), A 키를 누릅니다. boot PROM에서 ok 혹은 >라는 프롬프트가 나옵니다. ok 프롬프트가 좋습니다. 옛날 방식의 프롬프트가 나타난다면, n키를 누르면 새로운 방식의 프롬프트가 나옵니다.

시리얼 콘솔을 사용한다면, break 신호를 보내십시오. minicom에서는 Ctrl-A F을 누르고, cu에서는 Enter 다음에 %~break을 입력합니다. 다른 프로그램을 사용한다면 그 터미널 에뮬레이터의 문서를 참고하십시오.

3.6.2. 부팅 장치 선택

OpenBoot를 사용해 특정 장치에서 부팅할 수 있고, 기본 부팅 장치를 바꿀 수도 있습니다. 하지만 OpenBoot의 장치 명명법에 대해 좀 자세히 알아야 합니다. 리눅스 장치 명명법과는 많이 다른데 B.4절. “리눅스에서의 디바이스 이름”에 보면 설명되어 있습니다. 또, 명령어도 어떤 OpenBoot 버전을 쓰느냐에 따라 많이 다릅니다. OpenBoot에 대한 더 많은 정보는 Sun OpenBoot Reference에서 볼 수 있습니다.

최근 버전에서는, OpenBoot 장치를 “floppy”, “cdrom”, “net”, “disk” 혹은 “disk2”와 같이 쓸 수 있습니다. 각각은 분명한 의미가 있습니다. “net”은 네트워크에서 부팅합니다. 또 장치 이름에서 디스크의 특정 파티션을 지정할 수도 있습니다. “disk2:a”와 같이 하면 disk2의 첫번째 파티션에서 부팅하는 것입니다. 완전한 OpenBoot 장치 이름의 형식은 다음과 같습니다:

드라이버-이름@
유닛-주소:
드라이버-인수

과거 버전의 OpenBoot에서는 장치 명명법이 약간 다릅니다: 플로피 장치는 “/fd”라고 하고, SCSI 디스크는 “sd(컨트롤러, 디스크-타겟-ID, 디스크-LUN)” 형식입니다. 최근 OpenBoot 버전에서는 show-devs 명령으로 현재 설정되어 있는 장치의 목록을 볼 수 있습니다. 버전에 대한 더 자세한 정보는 Sun OpenBoot Reference를 참고하십시오.

특정 장치에서 부팅하려면, boot 장치 명령을 사용합니다. setenv 명령을 사용하면 이걸 기본값으로 만들 수 있습니다. 하지만 변수의 이름은 OpenBoot 버전마다 다릅니다. OpenBoot 1.x에서는 setenv boot-from 장치 명령을 사용하십시오. 그 후의 OpenBoot 버전에서는, setenv boot-device 장치 명령을 사용하십시오. Solaris에서 eeprom 명령을 이용하거나, /proc/openprom/options/의 파일을 고쳐서 설정할 수 있습니다. 예를 들어 리눅스에서는:

# echo disk1:1 > /proc/openprom/options/boot-device

그리고 Solaris에서는:

eeprom boot-device=disk1:1

3.6.3. 주의해야 할 하드웨어 이슈

많은 사람들이 CPU를 90 MHz를 100 MHz와 같이 오버클록킹해서 돌리고 있습니다. 이렇게 해도 동작하기도 하지만, 온도 및 그 밖의 요인에 민감하고 시스템이 망가질 수도 있습니다. 이 문서의 저자중의 한 명은 1년동안 시스템을 오버클록킹해서 써 왔는데 gcc 프로그램으로 운영 체제 커널을 컴파일할 때마다 gcc가 예상치 못한 시그널로 이상 종료하곤 했습니다. CPU 속도를 원래대로 돌려 놓으니까 문제가 해결되었습니다.

메모리 모듈에 문제가 있을 때 (아니면 데이터를 교환할 때 하드웨어 문제가 있을 때) 처음으로 죽는 프로그램은 보통 gcc 컴파일러입니다. gcc는 커다란 데이터 구조를 만들고 그 사이를 계속해서 왔다갔다 하기 때문입니다. 이 데이터 구조에 문제가 생기면 존재하지 않는 주소에 접근해서 잘못된 인스트럭션이 되어 버립니다. 증상은 gcc가 예상치 못한 시그널로 죽는 것입니다.

3.6.3.1. 64 MB RAM 이상

리눅스 커널에서 RAM의 용량을 항상 정확히 알아내는 건 아닙니다. 그런 경우, 5.2절. “부팅 파라미터”에 있는 내용을 참고하십시오.