CertNote/ 출퇴근 학습 노트
로드맵
KOEN
리눅스마스터 2급 · 2급리눅스마스터 2급
  • Week 1
    • 1.운영체제와 커널: 리눅스가 하는 일
    • 2.리눅스의 탄생: 유닉스에서 리누스까지
    • 3.자유 소프트웨어와 오픈소스: 라이선스가 정하는 것
    • 4.배포판: 커널과 도구를 하나로 묶어 파는 단위
    • 5.Week 1 종합 복습: 리눅스라는 이름의 정체
  • Week 2
  • Week 3
  • Week 4
  • Week 5
  • Week 6
  • Week 7
    • 1.패키지 관리 (1): RPM과 YUM
    • 2.패키지 관리 (2): DEB·APT와 소스 설치
    • 3.장치 파일과 /dev
    • 4.주변장치 활용: 프린터 · 사운드 · 스캐너
    • 5.Week 7 종합 복습: 패키지와 장치
  • Week 8
  • Week 9
  • Week 10
  • Week 11
리눅스마스터 1급 · 1급리눅스마스터 1급
합격 후기

© CertNote · 주간랩스

  • 소개
  • 수정 기록
  • 문의
  • 이용약관
  • 개인정보처리방침
← 리눅스마스터 2급/Week 7/Day 4

기준: 리눅스마스터 2급 출제 기준·오류 제보

리눅스마스터 2급· AssociateWeek 7 · Day 4읽기 약 10분
핵심 정리
  • 세 이름의 풀네임을 그대로 묻는다 — CUPS(프린터) · ALSA(사운드) · SANE(스캐너).
  • CUPS는 Common Unix Printing System. IPP 프로토콜을 쓰고 웹 관리 화면이 631 포트에 있다.
  • 프린터 명령은 두 계열이다 — BSD(lpr lpq lprm) 와 System V(lp lpstat cancel).
  • 사운드는 OSS에서 ALSA로 넘어왔다. 지금 리눅스의 표준은 ALSA 다.
  • 스캐너는 SANE, 명령은 scanimage, 그래픽 도구는 xsane 이다.

Day 4 - 주변장치 활용: 프린터 · 사운드 · 스캐너

프린터 — CUPS

시스템뜻
LPD / LPRng예전의 유닉스 인쇄 시스템
CUPSCommon Unix Printing System — 현재 표준
  • 애플이 개발에 참여했고 macOS의 인쇄 시스템이기도 하다.
  • IPP(Internet Printing Protocol) 를 기본 프로토콜로 쓴다. 네트워크 프린터를 표준 방식으로 다루기 위해서다.
항목값
웹 관리 화면http://localhost:631
설정 파일/etc/cups/cupsd.conf
프린터 목록/etc/cups/printers.conf
데몬cupsd
스풀 디렉터리/var/spool/cups

631 포트와 /etc/cups/cupsd.conf 는 값 그대로 출제된다.

인쇄 한 건이 지나가는 길

   lpr report.txt
        │  인쇄 요청
        ▼
   cupsd (스케줄러)  ──►  /var/spool/cups 에 작업 저장, 번호 부여
        │
        ▼
   필터              ──►  문서를 그 프린터가 알아듣는 형식으로 변환 (PPD 참고)
        │
        ▼
   백엔드            ──►  usb · ipp · lpd · socket 중 맞는 길로 전송
        │
        ▼
   프린터
  • lpr은 작업을 맡기고 바로 끝난다. 실제 인쇄는 데몬 cupsd가 순서대로 처리한다. 프린터가 꺼져 있어도 명령이 성공하고 작업이 대기열에 남는 이유다.
  • PPD(PostScript Printer Description) 는 그 프린터의 용지·해상도·기능을 적어 둔 파일로 /etc/cups/ppd/에 놓인다. 프린터를 등록할 때 모델을 고르는 것이 곧 PPD를 고르는 일이다.
  • 기록은 /var/log/cups/ 아래 access_log·error_log에 남는다.
파일담는 것누가 고치나
cupsd.conf데몬의 동작 — 어느 주소·포트에서 받을지, 누가 접근할 수 있는지관리자가 직접
printers.conf등록된 프린터 목록과 각 프린터의 장치 주소웹 화면·lpadmin이 대신 쓴다
/etc/printcap예전 LPD 방식의 프린터 목록. CUPS는 옛 프로그램과의 호환용으로만 만들어 둔다—
  • 기본 설정의 cupsd.conf는 localhost:631만 연다. 그래서 웹 관리 화면도 그 컴퓨터에서 http://localhost:631로 들어간다.
  • 프린터 등록은 웹 화면 말고 명령으로도 한다.
lpadmin -p printer1 -E -v ipp://192.168.0.50/ipp/print -m everywhere   # 등록
lpadmin -d printer1                                                    # 기본 프린터로 지정
lpadmin -x printer1                                                    # 삭제
lpadmin 옵션뜻
-p다룰 프린터 이름
-E등록하면서 바로 사용 가능 상태로
-v프린터가 있는 곳 — 장치 주소(URI)
-m모델(드라이버·PPD)
-d기본 프린터 지정
-x프린터 삭제

인쇄 명령 두 계열

하는 일BSD 계열System V 계열
출력lprlp
대기열 확인lpqlpstat
취소lprmcancel
제어lpc—
lpr -P printer1 report.txt     # 지정한 프린터로 출력
lpr -# 3 report.txt            # 3부 출력
lpq                            # 대기열 확인
lpq -P printer1
lprm 12                        # 12번 작업 취소
lprm -                         # 내 작업 전부 취소
lpstat -p                      # 프린터 상태 (System V)
cancel 12                      # 취소 (System V)
  • lpr은 출력, lpq는 큐 조회, lprm은 취소 — 세 개가 한 묶음이다.
  • 두 계열의 대응 관계를 묻는 문제가 나온다. lpr↔lp, lpq↔lpstat, lprm↔cancel.
  • 대기 중인 인쇄 작업을 스풀(spool) 이라 하고 /var/spool/cups에 쌓인다.

대기열을 보고 취소하기

$ lpr -P printer1 report.txt
$ lpq -P printer1
printer1 is ready and printing
Rank    Owner   Job     File(s)                         Total Size
active  alice   12      report.txt                      2048 bytes
1st     bob     13      memo.txt                        1024 bytes
$ lprm 12
$ lpq -P printer1
printer1 is ready and printing
Rank    Owner   Job     File(s)                         Total Size
active  bob     13      memo.txt                        1024 bytes
열뜻
Rank순서. active가 지금 인쇄 중, 1st·2nd가 그 뒤 차례
Owner작업을 맡긴 사용자
Job작업 번호 — lprm과 cancel에 주는 값
  • lprm에 주는 숫자는 작업 번호(Job) 다. 파일 이름이나 프린터 이름이 아니다.
  • 일반 사용자는 자기 작업만 취소할 수 있다. 위에서 alice는 12번은 지울 수 있지만 bob의 13번은 못 지운다. root는 모두 가능하다.

같은 일, 다른 옵션 글자

하는 일BSDSystem V
프린터 지정lpr -P printer1lp -d printer1
여러 부 출력lpr -# 3lp -n 3
한 작업 취소lprm 12cancel 12 또는 cancel printer1-12
내 작업 전부 취소lprm -cancel -a
lpstat 옵션보여 주는 것
-p프린터의 상태 (사용 가능한지, 인쇄 중인지)
-o대기 중인 작업 목록
-d기본 프린터
-a대기열이 작업을 받고 있는지
-t위 정보를 전부
  • lpr -P의 P는 대문자다. System V에서는 같은 일을 -d(destination)가 한다. 두 계열의 옵션을 섞은 lpr -d·lp -P 같은 보기는 틀린 것이다.
  • System V 쪽은 작업을 프린터이름-번호(printer1-12)로 부른다.
  • lpc는 프린터와 대기열을 제어하는 BSD 명령이다. CUPS에서는 lpc status로 상태를 보는 정도만 쓴다.
인쇄가 안 될 때볼 곳
작업이 대기열에 들어갔는지lpq · lpstat -o
프린터가 멈춤 상태인지lpstat -p
데몬이 떠 있는지systemctl status cups
무슨 오류였는지/var/log/cups/error_log
구분LPD · LPRngCUPS
데몬lpdcupsd
프로토콜 · 포트LPD · 515IPP · 631
프린터 목록 파일/etc/printcap/etc/cups/printers.conf
관리 방법설정 파일을 직접 편집웹 화면, lpadmin
  • LPRng는 LPR Next Generation, 곧 옛 LPD를 고쳐 만든 것이다. CUPS는 이 둘의 명령(lpr·lpq·lprm)을 그대로 쓸 수 있게 흉내 내 주기 때문에 시스템이 바뀌었어도 명령은 그대로다.

사운드 — ALSA

시스템뜻
OSSOpen Sound System — 예전 방식
ALSAAdvanced Linux Sound Architecture — 현재 표준
  • 커널 2.6부터 ALSA가 기본이 되었고 OSS는 호환 계층으로 남았다.
  • ALSA는 여러 프로그램이 동시에 소리를 내는 것, 여러 사운드 카드를 다루는 것을 지원한다.
명령 · 파일하는 일
alsamixer텍스트 화면 볼륨 조절기
amixer명령줄 볼륨 조절
aplay / arecord재생 / 녹음
alsactl설정 저장·복원
/proc/asound/인식된 사운드 카드 정보
/dev/dsp, /dev/mixerOSS 시절의 장치 파일
alsamixer            # 볼륨 조절 (M 키로 음소거 해제)
aplay test.wav       # 재생
cat /proc/asound/cards   # 인식된 사운드 카드
lspci | grep -i audio    # 사운드 카드 하드웨어 확인
  • 소리가 안 날 때는 음소거(mute)부터 확인한다. alsamixer에서 MM 표시가 음소거 상태이며 M 키로 푼다.
  • 그 위에 PulseAudio(그리고 최근의 PipeWire)가 얹혀 프로그램별 볼륨을 관리한다.

소리가 나기까지의 층

   응용 프로그램 (음악 재생기 · 브라우저)
        │
   사운드 서버     PulseAudio · PipeWire     여러 프로그램의 소리를 섞고 프로그램별로 조절
        │
   ALSA           커널의 사운드 드라이버 + 라이브러리 + 도구(alsamixer · aplay)
        │
   사운드 카드
  • ALSA는 커널에 들어 있는 드라이버 층이다. CUPS의 cupsd 같은 데몬이 따로 없다. 그래서 포트 번호도 없다.
  • PulseAudio는 ALSA를 대체한 것이 아니라 그 위에 얹힌 것이다. "현재 리눅스의 표준 사운드 시스템"을 물으면 답은 여전히 ALSA 다.
구분OSSALSA
풀네임Open Sound SystemAdvanced Linux Sound Architecture
대상여러 유닉스 계열리눅스 전용
장치 파일/dev/dsp, /dev/mixer, /dev/audio/dev/snd/ 아래
설정 파일—/etc/asound.conf(전체), ~/.asoundrc(개인)
옛 프로그램 지원—OSS 호환 계층을 제공해 옛 프로그램도 돌린다

ALSA 도구 넷

도구성격예
alsamixer화면을 띄워 방향키로 조절alsamixer
amixer명령 한 줄로 조절 — 스크립트에 넣기 좋다amixer set Master 80%, amixer set Master unmute
aplay · arecord재생 · 녹음aplay -l (재생 장치 목록), arecord -d 5 test.wav (5초 녹음)
alsactl지금의 볼륨 설정을 저장·복원alsactl store, alsactl restore
alsamixer 키하는 일
← →조절할 채널(Master, PCM, Mic …) 고르기
↑ ↓볼륨 올리기 · 내리기
M음소거 켜기·끄기 — 아래 표시가 MM이면 음소거, OO이면 켜진 상태
Esc종료
  • alsamixer와 amixer는 하는 일이 같고 화면이 있느냐만 다르다. aplay는 WAV 같은 압축하지 않은 소리 파일을 재생한다.
  • alsactl store를 하지 않으면 조절한 볼륨이 재부팅 뒤에 유지되지 않을 수 있다.
소리가 안 날 때확인
카드가 인식됐나cat /proc/asound/cards, aplay -l, lspci에서 audio 찾기
음소거인가alsamixer에서 MM 표시
볼륨이 0인가alsamixer의 Master·PCM 막대
드라이버 모듈이 올라왔나lsmod에서 snd로 시작하는 모듈

스캐너 — SANE

항목값
SANEScanner Access Now Easy
성격스캐너를 다루는 표준 API와 도구 모음
명령scanimage
그래픽 도구xsane
장치 검색sane-find-scanner, scanimage -L
네트워크 공유saned (데몬)
sane-find-scanner        # 연결된 스캐너 찾기
scanimage -L             # 인식된 스캐너 목록
scanimage > out.pnm      # 스캔해서 파일로
xsane                    # 그래픽 스캔 프로그램
  • SANE은 스캐너, CUPS는 프린터 — 이름을 바꿔 놓은 보기가 오답으로 쓰이기 쉽다.
  • 스캔 결과의 기본 형식은 PNM 계열이며 필요하면 다른 형식으로 변환한다.

프런트엔드와 백엔드

   프런트엔드   scanimage(명령줄) · xsane(그래픽)     사용자가 다루는 프로그램
        │
      SANE API
        │
   백엔드       스캐너 제조사·모델별 드라이버           장치와 직접 대화
        │
   스캐너
  • SANE은 화면(프런트엔드)과 드라이버(백엔드)를 떼어 놓은 구조다. 그래서 프런트엔드 하나로 여러 회사의 스캐너를 다루고, saned 데몬을 거쳐 다른 컴퓨터에 달린 스캐너도 쓸 수 있다.
  • 백엔드 설정은 /etc/sane.d/ 에 모여 있다. 그 안의 dll.conf가 어떤 백엔드를 불러올지 정한다.
명령무엇을 찾나
sane-find-scannerUSB·SCSI에 스캐너로 보이는 장치가 연결됐는지 — 지원 여부와 무관하게 찾는다
scanimage -LSANE 백엔드가 실제로 쓸 수 있는 스캐너 목록
$ scanimage -L
device `epson2:libusb:001:004' is a Epson GT-1500 flatbed scanner
$ scanimage -d epson2:libusb:001:004 --resolution 300 > page1.pnm
  • 앞의 명령에서는 보이는데 뒤의 명령에서 안 보이면 연결은 됐지만 맞는 백엔드가 없다는 뜻이다.
  • scanimage는 결과를 화면(표준 출력)으로 내보낸다. 그래서 >로 파일에 받는다. -d로 장치를 고르며, 해상도 같은 세부 옵션은 스캐너마다 다르다.
  • xsane은 미리보기를 보며 영역을 잡는 그래픽 프런트엔드로, 이미지 편집기 GIMP 안에서 불러 쓸 수도 있다.

세 가지 한눈에

장치시스템풀네임대표 명령
프린터CUPSCommon Unix Printing Systemlpr lpq lprm
사운드ALSAAdvanced Linux Sound Architecturealsamixer aplay
스캐너SANEScanner Access Now Easyscanimage xsane
옛것새것
LPD / LPRngCUPS
OSSALSA
구분CUPSALSASANE
정체인쇄 서버(데몬)커널 드라이버 층스캐너 API와 도구
데몬cupsd없음saned (네트워크 공유할 때만)
설정 위치/etc/cups//etc/asound.conf/etc/sane.d/
그래픽·화면 도구웹 화면(631)alsamixerxsane
명령줄 도구lpr lpq lprmamixer aplay arecordscanimage
인식 확인lpstat -p/proc/asound/cardsscanimage -L
  • 이름의 머리글자가 대상을 알려 준다 — CUPS의 P는 Printing, ALSA의 S는 Sound, SANE의 S는 Scanner다. ALSA와 SANE이 둘 다 S라 헷갈리면 ALSA에는 Linux Sound가, SANE에는 Scanner가 통째로 들어 있다고 풀어서 본다.

내일은 이번 주의 패키지와 장치를 한 장으로 묶어 정리한다.

📖 용어

  • CUPS : Common Unix Printing System. 현재 리눅스의 표준 인쇄 시스템.
  • IPP : Internet Printing Protocol. CUPS가 사용하는 네트워크 인쇄 프로토콜.
  • 스풀(spool) : 인쇄 대기열에 쌓인 작업. /var/spool/cups에 저장된다.
  • lpr / lpq / lprm : BSD 계열의 출력 / 대기열 확인 / 취소 명령.
  • OSS : Open Sound System. ALSA 이전에 쓰이던 사운드 시스템.
  • ALSA : Advanced Linux Sound Architecture. 현재 리눅스의 표준 사운드 시스템.
  • alsamixer : 텍스트 화면에서 볼륨을 조절하는 ALSA 도구.
  • SANE : Scanner Access Now Easy. 리눅스의 표준 스캐너 인터페이스.

📝 연습 문제

선택지를 클릭하면 정답·해설이 펼쳐집니다.

문제 1

다음 중 CUPS의 웹 기반 관리 화면에 접속할 때 사용하는 포트 번호로 알맞은 것은?

문제 2

다음 중 ALSA의 풀네임으로 알맞은 것은?

문제 3

다음 중 리눅스에서 스캐너를 다루기 위한 표준 인터페이스로 알맞은 것은?

문제 4

다음 중 BSD 계열에서 인쇄 대기열의 목록을 확인하는 명령으로 알맞은 것은?

문제 5

다음 중 CUPS의 주 설정 파일로 알맞은 것은?

이전장치 파일과 /devWeek 7 · Day 3다음 Week 7 종합 복습: 패키지와 장치Week 7 · Day 5

참고 공식 자료

  • 리눅스마스터 2급 공식 출제 기준(새 탭에서 열림)

이 페이지

  • 프린터 — CUPS
  • 인쇄 한 건이 지나가는 길
  • 인쇄 명령 두 계열
  • 대기열을 보고 취소하기
  • 같은 일, 다른 옵션 글자
  • 사운드 — ALSA
  • 소리가 나기까지의 층
  • ALSA 도구 넷
  • 스캐너 — SANE
  • 프런트엔드와 백엔드
  • 세 가지 한눈에
  • 용어
  • 연습 문제