7.5. 장치 노드 만들기

커널에 있는 거의 모든 장치들은 그에 대응하는 "노드"를 /dev디렉토리 내에 가지고 있습니다. 이러한 노드들은 보통의 파일처럼 보이지만, 실제로는 프로그램이 해당 장치를 사용하기 위해 커널에 접근할 수 있도록 하는 특별한 입구입니다. /dev/MAKEDEV은 쉘 스크립트로, 운영체제를 처음 설치할 때 수행되면서 지원되는 거의 모든 장치 노드를 생성합니다. 그렇지만, 모든것을 생성하는 것은 아닙니다. 그렇기 때문에 새로운 장치에 대한 지원을 추가하려면 이 디렉토리 안에 적절한 장치 노드가 있는지를 확인한 후에, 없다면 그것을 생성해 주어야 합니다. 여기에 간단한 예제가 있습니다.

IDE CD-ROM 에 대한 지원을 커널에 추가한다고 할 때, 다음과 같은 행을 구성 파일에 추가해 주어야 합니다.

    device acd0

이는 acd0으로 시작하는 항목을 /dev디렉토리에서 찾아보아야 한다는 것을 의미합니다. 아마, 그 항목들은 뒤에 c가 붙거나 "raw"를 의미하는 r이 앞에 붙는 항목들일 것입니다. 그러한 파일들이 없으면 /dev디렉토리로 바꾸고 다음과 같이 입력합니다.

    # sh MAKEDEV acd0

이 스크립트가 다 실행되면 이제 /dev디렉토리 안에 acd0c와 racd0c항목이 생성된 것을 볼 수 있습니다. 이 항목이 생성되었으면 스크립트는 제대로 수행된 것입니다.

사운드 카드인 경우에는 다음과 같은 명령으로 적절한 항목을 만들어야 합니다.

    # sh MAKEDEV snd0

Note: 사운드 카드와 같은 장치에 대한 노드를 만들 때, 다른 사람들이 해당 머신에 접근할 수 있는 경우에는 다른 사람들이 외부로부터 이 장치에 접근하지 못하도록 하는 것이 좋습니다. 이는 /etc/fbtab에 그러한 장비들을 추가하면 됩니다. 상세한 사항에 대해서는 fbtab(5) 를 참조하십시오.

GENERIC에 없고, 노드도 없는 장치에 대해서는 여기서 언급한 간단한 과정을 밟으세요.

Note: 모든 SCSI컨트롤러는 같은 /dev 항목들을 사용합니다. 그렇기 때문에 이러한 것들을 생성해 줄 필요가 없습니다. 또한, 네트웍 카드와 SLIP/PPP 가상 장치들은 /dev에 전혀 항목을 가지지 않기 때문에 신경쓸 필요가 없습니다.