Mdev/ko

이 페이지를 작성한 목적은 리눅스의 udev 를 mdev로 바꾸는 방법을 문서로 남겨, initramfs 없이도 별도의 분할 영역을 만들 수 있게 하는데 있습니다. 작성자는 IceWM을 창 관리자로 하는 젠투 리눅스 배포판을 사용합니다. 여기 나와있는 설명에는 설정 조정 방법과 다른 배포판에 적용하는 방법도 들어있습니다.

시스템에서 mdev가 동작할까요?
프로그램은 완전한 구색을 갖춘 데스크톱 환경을 사용하지 않는 시스템 같은 곳에 알맞습니다. 참고로 데스크톱 환경에서는 아비워드, 파이어폭스, 김프, 그뉴메릭, 등을 꼭 실행할 필요는 없습니다. 그러나 KMail 같은 KOffice 프로그램은 KDE에 붙어 나옵니다. 일반적으로 KDE나 그놈을 사용할 때 는 적합하지 않습니다. 또한 LVM을 함께 사용하면 문제가 생길 수도 있습니다.

기본 젠투 프로파일을 활용하면 매우 잘 동작합니다:


 * default/linux/x86/13.0
 * default/linux/amd64/13.0

다음 명령으로 현재 사용하는 프로파일을 확인하십시오:

젠투 사용자가 udev에 의존하여 시스템을 사용할 수 있는지 확인할 목적으로 한가지 이상의 무결성 검사 진행 사항이 있습니다.

무결성 검사
어떤 꾸러미가 udev에 의존하는지 대략적인 일반 정보를 확인하십시오. 출력 내용은 다음과 비슷해야합니다:

다음 줄을 (아직 없다면 만들 수 있음) 파일에 추가하십시오:

에서  USE 플래그를 전체적으로 비활성화하십시오:

USE 플래그를 넣어 모든 꾸러미를 다시 빌드하십시오.

에서 요구하여 포티지에서 udev를 설치할 수 없는 오류만 뜬다면 다음 단계로 진행하십시오. 그렇지 않으면, 시스템에 설치한 하나 이상의 꾸러미에서 에 강 의존성이 걸려있을 수도 있습니다.

ATI/AMD 바이너리 블롭
일부 ATI/AMD 라데온 카드에는 바이너리 블롭이 필요합니다. 젠투  꾸러미에서는 여러가지 각각의 모델을 지원하는 http://people.freedesktop.org/~ag5f/radeon_ucode/ 사이트에서 모든 바이너리 블롭을 끌어옵니다.

모든 바이너리 블롭을 라이브러리 디렉터리에 넣고 나면, 커널에서 udev에 어떤 바이너리 블롭을 불러올 지 발견하도록 지시해야합니다. 바이너리 블롭 전체 중 하나라도 제거하면, 제대로 된 바이너리 블롭만 라이브러리 디렉터리에 남겨두고 바이너리 블롭을 자동으로 불러옵니다.

devtmpfs 커널 설정
devtmpfs 파일 시스템을 에서 지원하고 자동으로 마운트하도록 설정하십시오:

설정을 바꾸고 나면 커널을 다시 빌드하십시오 아직 다시 부팅하지 마십시오.

busybox 이머지
꾸러미에  USE 플래그를 설정했는지 확인하십시오. USE 플래그를 설정하시는 것도 좋습니다. 파일에 다음 줄을 추가하십시오:

이제 busybox를 (다시)설치하십시오:

devpts 마운트
devpts 파일 시스템은 비표준 동작을 막습니다. 부팅할 때 또는 명령으로 자동 마운트를 진행하지 않습니다. 분명하게 명령을 실행해야 합니다. udev 기반 표준 해결책은 루트 권한으로 명령을 실행하고 시스템 시동 시 udev-mount 스크립트에 마운트 동작을 진행하도록 하는 방법입니다. mdev 기반 시스템에서는 udev를 설치하지 않겠죠. 그래서 대신, 에 셸 스크립트로 명령을 넣습니다. 이 예제에서는 파일을 활용합니다.

udev-mount를 사용하지 않아 발생하는 또다른 문제점은 을 루트 계정으로만 기록할 수 있다는 점입니다. 기본 동작을 복원하려면 명령을 내려야합니다. 이 명령은 시작 스크립트에서도 실행합니다.

udev 서비스 교체
서비스 목록에서 udev를 제거하고 mdev로 바꾸십시오:

재부팅
새 커널로 다시 부팅하십시오. 시스템은 mdev로 동작해야합니다.

정리
시스템에서 udev를 제거하십시오:

파일(또는 이 디렉터리의 파일)에 를 추가하십시오.

이제 udev가 완전히 사라진 머신이 됐습니다.

커널 다시 빌드
USB 포트를 살펴볼 libusb(와 CUPS)를 활용하려면, 커널 설정에서  옵션과   옵션을 설정하십시오. 또한 cups-1.5.2 이빌드에서   옵션을 비활성화하라고 경고하더라도 활성화하십시오. 명령을 활용할 경우 아래 항목을 찾을 수 있습니다:

새 장치 노드 출현 검증
장치 노드 계층은 에 나타나야합니다. 프린터를 켜면 프린터 노드가 에 나타나야합니다. 명령은 제대로 동작해야 하며 프린터 세부 정보를 표시해야합니다.

CUPS에서 프린터 설정
일반적인 방식으로 CUPS를 설정하십시오. CUPS에서 프린터를 찾고 과 같은 URI를 나타내야합니다.

부팅 과정에서 리눅스 모듈 빠짐
mdev로 옮겨간 후 리눅스 모듈이 필요한데 불러오지 않으면 다음 해결책 중 하나 이상을 실행해보십시오:


 * 에 리눅스 모듈을 추가하십시오


 * 리눅스 커널에 모듈을 넣어 컴파일 하시고 요청할 때 불러오지 않게 하십시오.


 * 개별 모듈 로더를 작성하십시오:

mdev 대신 hotplug 처리자로 설치하십시오. 참고로 hotplug를 실행하는게 좋습니다. 의 기본값이 이므로, 이 스크립트 이름을 로 붙이는걸 고려하십시오(또는 커널 설정에서 기본 값을 바꾸십시오).

기타

 * udev와는 달리 mdev는 자동 모듈 불러오기를 지원하지 않습니다. 파일을 활용하시고 불러와야 할 모든 모듈 항목(nvidia, wl, 등)을 넣으십시오. 또한, 를 지원하지 않으므로 에 자체   변수를 넣으십시오. 모듈 설정을 이 위치로 넣어야 할지도 모릅니다.


 * 에서는 노드를 만들지 않습니다. 직접 만들든지, lvm2의  명령을 활용핫비시오. 초기화 스크립트에서  다음에 추가하는 방법도 좋습니다.


 * xorg 입력시 활용할 마우스 및 키보드 드라이버를 활용하십시오. evdev를 빌드하려면 udev가 필요합니다. mousedrv(마우스 드라이버용)는 시냅틱스 드라이버를 불러오면 불러오지 못하고 멈춥니다.


 * CONFIG_INPUT_EVDEV 커널 설정 옵션은 키보드 및 마우스를 입력 장치 이벤트로 제공할 뿐만 아니라, 랩톱 덮개와 단추 이벤트를 acpid로 전달하기도 합니다.

추가 참조

 * Mdev/Automount USB‎

외부 자료

 * mdev like a boss project.