강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

리눅스마스터1급 : 이더넷 설정

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

리눅스마스터1: 이더넷 설정






1) 장치 드라이버

최근의 리눅스 운영체제는 자동 설정 프로그램에 의해 이더넷 카드, 즉 랜카드를 자동으로 확인하여 이를 위한 커널 장치 드라이버의 모듈을 실행하여 커널에 인식시킨다.

 

 

 

그렇지만 직접 이더넷 카드에 대한 장치 드라이버의 모듈을 컴파일 하여 실행하거나 이미 컴파일되어 제공되는 커널 모듈을 실행해야 하는 경우가 있다(커널 컴파일 시에 장치 드라이버를 커널에 넣는 방법과 모듈로 컴파일 하는 방법이 있지만, 네트워크 카드 등은 모듈로 컴파일 하는 것을 권장한다.

 

 

 

커널은 지정된 모듈만 인식한다.

 

 

 

커널 컴파일에 관하여는 이후의 장에서 상세히 다루도록 한다).

 

이렇게 자동으로 이더넷 카드에 대한 커널의 장치 모듈이 실행되지 않는 경우에는 먼저 네트워크 카드를 위한 커널 모듈을 실행해야 한다.

 

 

 

모듈로 컴파일된 네트워크 카드의 모듈은 /lib/modules/<kernel-version>/kernel/drivers/net 에 위치한다.

 

 

 

만약 해당되는 네트워크 카드의 모듈이 있으면 modprobe 또는 insmod 명령으로 바로 해당 모듈을 커널이 인식할 수 있도록 활성화시킬 수 있다.

 

 

 

 

2) 커널에 모듈로 랜 카드 인식

수동으로 해당 랜 카드의 모듈을 커널에 적재하는 방법과 자동으로 부팅 시에 적재하는 방법이 있다.

 

 

 

 

수동으로 모듈 적재하기네트워크와 관련된 모듈은 /lib/modules/<kernel-version>/kernel/drivers/net 아래에 존재하는데, 이 디렉토리에 존재하는 장치 드라이버 모듈을 수동으로 커널에 적재하고 내릴 수 있다.

 

 

 

커널에 모듈을 다루는 명령어는 다음과 같다.

 

 

 

 

 

/sbin/modprobe : 모듈을 검색하여 적재한다.

 

 

 

 

/sbin/modprobe r(또는 remove) : 모듈을 제거한다.

 

 

 

 

/sbin/lsmod : 적재되어 있는 모듈의 정보를 보여준다.

 

 

 

 

/sbin/insmod : 모듈을 커널에 인식시킨다.

 

 

 

 

/sbin/rmmod : 적재되어 있는 모듈을 제거한다.

 

 

 

 

 

다음은 3com 3c509계열의 랜카드를 직접 모듈로 올리는 예이다(insmod 명령의 경우에는 모듈의 전체 경로와 정확한 이름을 기재해야 한다).

 

 

 

 

 

# modprobe 3c59x

 

 

 

 

 

또는

 

 

 

 

 

# insmod /lib/modules/<kernel-version>/kernel/drivers/net/3c59x.ko

 

 

 

 

 

제대로 모듈이 적재되었는지 확인하려면 lsmod 명령어를 이용한다.

 

 

 

 

 

 

 

 

 

# lsmod

Module Size Used by

3c59x 79989 1

....

 

 

 

 

 

적재된 모듈을 제거하려면 다음과 같이 한다.

 

 

 

 

 

 

 

 

 

# modprobe r 3c59x

 

 

 

 

 

또는

 

 

 

 

 

# rmmod 3c59x

 

 

 

 

 

부팅 시 자동으로 모듈 적재리눅스 시스템이 부팅할 때에는 커널이 RAM에 적재되면서 미리 설정된 모듈들이 함께 적재된다.

 

 

 

, 커널 모듈들은 원칙적으로 모듈 적재를 위한 명령을 내려 RAM에 적재할 수 있지만, /etc/modprobe.conf에 설정을 해 두면 시스템이 시작할 때 모듈을 자동으로 RAM에 적재한다.

 

 

 

 

 

/etc/modprobe.confalias, options, install, remove, include blacklist를 사용하여 설정한다.

 

 

 

자주 사용하는 옵션은 aliasoptions이다.

 

 

 

aliasmodprobe 명령에 대해 원래의 모듈명 대신에 다른 이름을 사용할 수 있도록 한 것이고, options는 모듈을 적재할 때 해당 모듈에 대해 특정한 정보를 설정할 수 있도록 하는 것이다.

 

 

 

 

다음은 /etc/modprobe.conf3com 계열의 랜카드의 드라이버 모듈을 추가한 예이다.

 

 

 

이 예에서는 3c59x에 대해서 eth0에 별칭을 설정한 것이다.

 

 

 

따라서 modprobe는 둘 중 어떤 것에 대해서도 동일한 결과가 나타난다.

 

 

 

 

 

 

 

 

 

# vi /etc/modprobe.conf

alias eth0 3c59x

 

 

 

 

 

/etc/modprobe.conf에 두 개 이상의 네트워크 카드를 설정할 수도 있다.

 

 

 

다음 예는 시스템에서 3com 계열 랜카드의 네트워크 드라이버와 인텔 PRO/1000 네트워크 드라이버에 대한 모듈을 동시에 적재하도록 설정한 것이다(물론, 이 파일에는 사운드 카드 등 다른 종류의 하드웨어에 대한 모듈도 함께 설정할 수 있다).

 

 

 

 

 

# vi /etc/modules.conf

alias eth0 3c59x

alias eth1 e1000e

 

 

 

 

 

다음은 options에 대한 예시이다.

 

 

 

구형 ISA 형식의 카드인 3COM ISA 3c509 Etherlink III에 대해 io=300, irq=10으로 옵션을 명시했다.

 

 

 

대부분의 PCI 카드는 자동으로 잘 인식하므로 위와 같이 특별한 옵션을 명시해 주지 않아도 되겠지만, 경우에 따라서 자동으로 인식되지 않는 경우도 있고 구형 하드웨어의 경우에는 PnP 기능이 지원되지 않을 수 있다.

 

 

 

따라서 이 경우에는 아래와 같이 옵션을 지정해 줄 필요가 있다.

 

 

 

 

 

 

 

 

 

# vi /etc/modules.conf

alias eth0 3c509

options 3c509 io=0x300 irq=10

 

 

 

 

 

리눅스에서 PCI 장치에 대한 정보는 /proc/pci 파일에서 확인할 수 있다.

 

 

 

, “cat /proc/pci” 명령으로 PCI 장치에 대한 정보를 얻을 수 있다.

 

 

 

이를 통해 랜 카드명, IRQ, IO 주소 등의 정보를 알 수 있다

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,810 개
  • 현재 접속자 :  88 명