장치의 설치 및 관리
장치의 설치 및 관리
모듈
- 프로그램이나 하드웨어 기능단위, 교환 가능한 구성부분.
- 보통 모듈이 로드되었다는 것은 커널 밖에 존재하던 해당 드라이버가 커널의 일부로 되었다는 뜻이고, 언로드하면 다시 커널과 별도로 존재.
- 리눅스 커널 모듈은 C 컴파일러로 만들어진 오브젝트 파일로서 '*.ko' 형태로 생성
- 각 시스템에서 가능한 모듈은 '/lib/modules/커널버전/kernel' 디렉터리 안에 생성
모듈관련 명령어
lsmod
리눅스 커널에 적재된 모듈 정보를 출력하는 명령
insmod
커널에 모듈을 적재하는 명령. 해당 모듈 파일이 존재하는 디렉터리까지 이동, 의존성이 있는 모듈인 경우에는 적재 못함.
[사용법]
$ insmod 모듈_파일명
rmmod
커널에서 모듈을 제거하는 명령.
[사용법]
$ rmmod 모듈
modprobe
리눅스 커널에 모듈을 적재하거나 제거하는 명령. 단일모듈, 의존성이 있는 여러 모듈, 특정 디렉터리의 모든 모듈들을 적재할 수 있음.
[사용법]
$ modprobe [option] 모듈 [기호=값]
옵션
- -l : 사용 가능한 모듈 정보
- -r : 의존성있는 모듈들을 찾아 사용안하면 제거
- -c : 모듈 관련 환경 설정 파일의 내용을 전부 출력
modinfo
모듈 파일에 대한 정보 출력
모듈 관련 설정 파일
부팅 시에 특정 모듈을 커널에 적재할 때 /etc/modprobe.d 디렉터리안에 '.conf'로 끝나는 모든 파일 인식
모듈 의존성 파일 : modules.dep
- 모듈 간의 의존성을 기록해둔 파일로 '/lib/modules/커널버전' 디렉터리 안에 위치.
- 이 파일 갱신하고 관리해주는 명령은 depmod
커널
- 시스템 자원을 소유하고 관리하는 역할
- 하드웨어, 메모리, 프로세스 스케줄링을 담당하고 프로그램이 하드웨어 자원을 간접적으로 접근할 수 있도록 해줌.
- 'uname -r' 명령으로 커널 버전 확인 가능
커널 컴파일
커널 컴파일은 커널 소스를 다운로드하여 사용하는 시스템에 최적화된 커널을 만드는 과정.
커널 컴파일 순서
- 커널 소스파일 압축해제
- 커널 소스의 설정 값 초기화(make mrproper)
- 커널 컴파일 옵션 설정 작업(make menuconfig)
- 커널 이미지 파일 생성 작업(make bzImage) : bzip2로 압축함.
- 커널 모듈 생성을 위한 컴파일 작업(make modules)
- 커널 모듈 설치 작업(make modules_install) : '/lib/modules/커널버전' 디렉터리 안에 복사.
- grub.conf 파일 수정(make install)
- 새로운 커널 사용을 위한 시스템 재부팅
Make Cleaning Target
- make clean : 생성된 오브젝트 파일을 제거하고 다시 configure할 때 사용
- make mrproper : configure 작업을 통해 생성된 오브젝트 파일 뿐만 아니라 config 파일, 다양한 백업 파일 등도 제거. 주로 사용하는 명령어.
- make distclean : mrproper 작업과 더불어 편집된 백업 및 패치 파일도 모두 제거
커널 컴파일 주요 도구
- make config : 텍스트 기반 설정 도구. y, m, n으로 설정
- make menuconfig : 컬러 메뉴 제공, 커서 이용. 가장 많이 사용.
- make nconfig : 컬러 메뉴, F1~9 기능키 제공.
- make xconfig : X 윈도 환경의 Qt 기반의 설정 도구
- make gconfig : X 윈도 환경의 Gtk+ 기반의 설정 도구
주변장치 관리
주변장치 설정
디스크 확장
디스크 장착 후에 작업
- 디스크 인식 여부 확인 : fdisk -l
- 파티션 작업 : fdisk 장치명
- 시스템 재부팅 : reboot
- 파일 시스템 생성 : mkfs.ext4 /deb/sdb1
- 디렉터리 생성 : mkdir /backup
- 마운트 작업 : mount -t ext4 /dev/sdb1 /backup
- 마운트 및 용량 확인 : mount, df -h
- 부팅 시에 자동 마운트 되도록 /etc/fstab 파일에 등록
$ vi /etc/fstab
/dev/sdb1 /backup ext4 defaults 1 1
프린터
LPRng
- 초기에 사용
- 버클리 프린팅 시스템으로 BSD계열에서 사용하기 위해 개발
- 라인 프린터 데몬 프로토콜을 사용하여 스풀링과 네트워크 프린터 서버를 지원
- lpr, lpq, lprm의 BSD 계열 명령, lp, lpstat, cancel과 같은 System V 명령도 지원
- printtool, printconf 도구를 사용하여 관련 설정을 하고, 설정한 정보는 /etc/printcap 파일에 저장
CUPS
- 애플이 개발
- 시판되는 대부분의 프린트를 유닉스 계열 운영체제에서 사용할 수 있도록 지원
- HTTP 기반의 IPP(Internet Printing Protocol)을 사용. SMB 프로토콜도 부분적 지원.
- BSD, System V 명령어 지원
- 사용자 및 호스트 기반의 인증 제공
- 웹 서버의 Common Log Format 형태의 로그 파일을 제공
- lpadmin 명령을 이용해 웹상에서도 제어 가능
CUPS 관련 파일
- /etc/cups/cupsd.conf : 데몬의 환경 설정 파일
- /etc/cups/printers.conf : 프린터 큐 관련 환경 설정 파일. lpadmin 명령 이용 or 웹을 통해 가능.
- /etc/cups/classes.conf : 데몬의 클래스 설정 파일
- cupsd : 데몬
프린터 설정
최근 버전으로 system-config-printer를 사용. CUPS 사용시 로컬에 직접 연결한 프린터를 http://localhost:631과 같이 접속하여 네트워크 프린터처럼 설정 가능
네트워크 프린터 메뉴
- AppSocket/HP JetDirect : 직접 네트워크에 연결된 경우
- Internet Printing Protocol(ipp) : IPP 프로토콜 기반
- Internet Printing Protocol(https)
- LPD/LPR Host or Printer : LPRng와 같은 LPD 프로토콜 기반
- Windows Printer via SAMBA : 윈도우 시스템에 연결된 프린터 설정 시. SMB 프로토콜 사용.
프린터 관련 명령어
lpr
프린터 작업 요청
[사용법]
$ lpr [option] 파일명
옵션
- -# 값 : 인쇄할 매수 지정
- -m : 메일 보냄
- -P 프린터명 : 다른 프린터 지정
- -T : 타이틀명 설정
- -r : 출력 후 지정 파일 삭제
- -l : 필터링 없이 직접 보냄
lpq
프린터 큐에 있는 작업의 목록 출력
[사용법]
$ lpq [option]
옵션
- -a : 모든 프린터의 작업 정보
- -l : 자세한 출력 결과
- -P 프린터명 : 특정 프린터 지정
lprm
프린터 큐에 대기 중인 작업을 삭제
[사용법]
$ lprm [option] 작업번호
옵션
- - : 프린터 큐에 있는 모든 작업을 취소
- -U 사용자명 : 지정한 사용자의 인쇄 작업 취소
- -P 프린터명 : 지정 프린터 작업 취소
- -h 서버[:port] : 지정 서버 작업 취소
lpc
라인 프린터 컨트롤 프로그램. 프린터나 프린트 큐를 제어할 때 사용
lp
System V 계열에서 사용하는 인쇄 명령. lpr
옵션
- -d : 다른 프린터를 지정
- -n : 인쇄할 매수 지정
lpstat
프린터 큐의 상태
옵션
- -p : 프린터의 인쇄 가능 여부
- -t : 프린터의 상태 정보
- -a : 받아들이는 요청들의 상태
cancel
프린트 작업 취소. lpstat를 이용하여 먼저 요청 ID를 확인.
[사용법]
$ cancel 요청아이디
옵션
- -a : 모든 인쇈 작업 취소
사운드카드
고급 리눅스 사운드 아키텍처(ALSA)
- 사운드 카드용 장치 드라이버를 제공하기 위한 리눅스 커널의 요소.
- GPS, LGPL 라이선스
- OSS의 지원을 받아 다양한 기능 지원
오픈 사운드 시스템(OSS)
- 리눅스 및 유닉스 계열 운영체제에서 사운드를 만들고 캡처하는 인터페이스로 표준 유닉스 장치 시스템 콜에 기반을 둠
사운드 관련 명령어
alsactl
ALSA 사운드카드 제어 명령
[사용법]
$ alsactl [option] command
옵션
- -d : 디버그 모드
- -f : 환경 설정 파일 선택. 기본 파일 /etc/asound.state
alsamixer
커서 라이브러리 기반의 ALSA 사운드카드 오디오 믹서 프로그램
cdparanoia
오디오 CD에서 음악 파일 추출할 때 사용.
[사용법]
$ cdparanoia [option]
옵션
- -w : wav 파일로 추출(기본옵션)
- -a : Apple AIFF-C 포맷으로 추출
- -B : 모든 트랙의 음악을 Cdda2wav 스타일로 추출
스캐너
SANE(Scanner Access Now Easy)
- 이미지 관련 하드웨어를 사용할 수 있도록 해주는 API
- GPL 라이선스. 리눅스, 유닉스, OS/2, Microsoft Windows까지 지원
- sane-backends, sane-frontends 등 2개의 패키지로 배포
XSANE(X based interface for the SANE)
- X-Window 기반으로 만든 프로그램
- GTK + 라이브러리로 만듬
- 이미지 수정도 가능
스캐너 관련 명령어
sane-find -scanner
스캐너와 관련 장치 파일을 찾아주는 명령
[사용법]
$ sane-hind-scanner [option] 장치_파일명
옵션
- -q : 스캐너 장치만 출력
- -v : 자세한 정보 출력
- -p : 병령 포트에 연결된 스캐너만 찾음
scanimage
이미지 스캔
[사용법]
$ scanimage [option]
옵션
- -h : 도움말 옵션
- -d : SANE의 장치 파일명을 적는 옵션(--device-name=DEVICE)
- -format : 이미지 형식을 지정하는 옵션. pnm. tiff
- -L : 사용 가능한 스캐너 장치 목록 출력
scanadf
자동 문서 공급 장치(ADF;Automatic Document Feeder)가 장착된 스캐너에서 여러 개의 사진을 스캔할 때 사용
옵션
- -h : 도움말
- -d : SANE의 장치 파일명을 적는 옵션
- -L : 사용 가능한 스캐너 장치 목록을 출력
xcam
GUI 기반으로 평판 스캐너나 카메라로부터 이미지를 스캔
lspci
설치된 PCL 관련 장치의 목록을 확인하는 명령