Basic Rules


udev는 매우 정확하게 장치와 매칭되는 규칙을 작성하는데 사용할 수 있는 여러 match key를 제공합니다. 여러 key 중 가장 흔히 사용되는 key들을 아래 소개 할텐데요, 그 외 다른 key는 이 문서 뒤 쪽에 설명할 예정이며 전체 key 리스트를 보고 싶으시다면 udev man 페이지에서 확인하시기 바랍니다.


  • KERNEL - 디바이스가 커널 이름에 대해 일치하는지 확인

  • SUBSYSTEM - 디바이스의 서브 시스템에 대해 일치하는지 확인

  • DRIVER - 디바이스를 백업 드라이버의 이름에 대해 일치하는지 확인


여러분이 디바이스와 정확히 매치되는 일련의 match key를 사용한 후, udev는 다양한 assignment key들을 통해 다음에 실행할 동작을 여러분이 제어할 수 있게 해줍니다. 여러분이 사용 가능한 전체 assignment key 리스트는 man 페이지를 참고해 주시기 바랍니다. 아래는 가장 기본적으로 자주 사용되는 assignment key들을 소개하고 그 외의 assignment key들은 문서 후반부에서 설명 드리겠습니다.


  • NAME - 디바이스 노드에 사용하려는 이름

  • SYMLINK - 디바이스 노드를 대체하여 동작할 수 있는 심볼릭 링크 리스트

위 설명처럼 udev는 오직 하나의 디바이스를 위한 하나의 디바이스 노드를 생성합니다. 만약 여러분이 디바이스 노드에 대해 대체할 수 있는 이름을 사용하고 싶다면 심볼릭 링크 기능을 이용하면 됩니다. 여러분은 실제로 SYMLINK assignment key를 사용하여 심볼릭 링크를 생성 할 수 있습니다. 이 모든 것들이 실제 디바이스와 연결되어 있습니다. 위와 같은 링크들을 다루기 위해 우리는 새로운 operator(연산자)를 이용하여 심볼릭 링크 목록에 추가합니다. 그 operator는 ‘+=’입니다. 여러분은 생성할 심볼릭 링크를 공백으로 구분함으로써 하나의 규칙에 여러 개의 심볼릭 링크를 생성할 수 있습니다.

그럼 아래 예시들을 보시죠.


KERNEL=="hdb", NAME="my_spare_disk"


위의 규칙에 대해 설명하자면 “hdb”로 커널에 의해 명명된 디바이스를 매치하고 “hdb”를 호출하는 “my_spare_disk”라는 이름의 디바이스 노드를 만들어 매치시킵니다. 그리하여 디바이스 노드는 /dev/my_spare_disk로 나타내게 됩니다.


KERNEL=="hdb", DRIVER=="ide-disk", SYMLINK+="sparedisk"


다음으로 위의 예시를 보겠습니다. 위의 규칙은 커널에 의해 “hdb”란 이름으로 명명되어 있고 드라이버가 “ide-disk”인 디바이스를 매치합니다. 해당 디바이스는 NAME key가 없으므로 커널에 의해 명명된 기본 이름을 가지며 디바이스 노드는 “sparedisk”란 이름으로 심볼릭 링크가 생성됩니다. 우리가 디바이스 노드의 이름을 지정하지 않는다면 udev는 default name을 사용하게 됩니다. 표준 /dev 레이아웃을 유지하기 위해 여러분들의 규칙들은 일반적으로 NAME을 사용하지 않고 SYMLINK를 사용하여 심볼릭 링크를 생성하고 다른 작업을 수행합니다.


KERNEL=="hdc", SYMLINK+="cdrom cdrom0"


위의 rule은 아마도 여러분이 작성하려는 규칙의 일반적인 형태일 것입니다. 위의 규칙은 “/dev/cdrom”과 “/dev/cdrom0”란 두 개의 심볼릭 링크를 생성할텐데요, 두 링크 모두 “/dev/hdc”를 연결하고 있습니다. 위처럼 NAME key가 지정되지 않았다면 default kernel name(hdc)으로 지정됩니다.