운영체제 깨알지식 웹핵






#Raspberry Pi #라즈비안 #Raspbian #MiniDLNA #외장하드 #미디어 서버 #DLNA 서버

[2020년 02월 02일]

라즈베리파이 3B에 외장하드 물려서 DLNA로 음악감상하기

요약

  • USB 외장하드 꽂고 mount
  • sudo apt update && sudo apt dist-upgrade
  • sudo apt install mindlna
  • /etc/minidlna.conf 파일 설정
  • sudo service minidlna start
  • sudo update-rc.d minidlna defaults
  • 휴대전화나 노트북에 DLNA를 지원하는 앱을 설치하고 음악/영화/사진을 즐긴다.

본문

Beelink N41에 리눅스 설치하려다가 벽돌이 되었다. 다시 살릴 수 있을 지는 모르겠다. ㅠㅠ
어쨌던 블프에 30달러에 사서 비링크의 외장으로 사용하던 Kingston SSD 256GB를 Raspberry Pi 3B에 USB로 꼽았다 (비링크에서는 USB 3.0이었는 데 USB 2.0으로 격하). Raspbian에 Min-DLNA 설치하여 집에서 음악감상에 사용할 예정이다.

저장장치 목록을 보기 위해 블록 디바이스(block device) 정보를 출력하는 lsblk 명령어를 실행한다.

pi@raspbian:~ $ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 223.6G  0 disk 
├─sda1        8:1    0    16M  0 part 
└─sda2        8:2    0 223.6G  0 part 
mmcblk0     179:0    0  60.4G  0 disk 
├─mmcblk0p1 179:1    0    63M  0 part /boot
└─mmcblk0p2 179:2    0  60.3G  0 part /
pi@raspbian:~ $ 

디스크 파티션(disk partion) 정보를 보여주는 fdisk 명령어를 사용하면 좀 더 자세한 USB SSD의 정보를 볼 수 있다.

pi@raspbian:~ $ sudo fdisk -l /dev/sda
Disk /dev/sda: 223.6 GiB, 240057409536 bytes, 468862128 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: E0660819-CCAA-46FB-B655-9DC6D3A40F26

Device     Start       End   Sectors   Size Type
/dev/sda1     34     32767     32734    16M Microsoft reserved
/dev/sda2  32768 468858879 468826112 223.6G Microsoft basic data
pi@raspbian:~ $ 

/dev/sda2 파티션이 데이타 저장소로 사용한 파티션이다. 이 파티션을 다음과 같이 mount한다.

pi@raspbian:~ $ sudo mkdir /mnt/ssd256
pi@raspbian:~ $ sudo mount /dev/sda2 /mnt/ssd256/
pi@raspbian:~ $ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/root       62196688 10925768  48689544  19% /
devtmpfs          492444        0    492444   0% /dev
tmpfs             497052        0    497052   0% /dev/shm
tmpfs             497052    13204    483848   3% /run
tmpfs               5120        4      5116   1% /run/lock
tmpfs             497052        0    497052   0% /sys/fs/cgroup
/dev/mmcblk0p1     64456    23472     40984  37% /boot
tmpfs              99408       12     99396   1% /run/user/1000
tmpfs              99408        4     99404   1% /run/user/109
/dev/sda2      234413052 97822588 136590464  42% /mnt/ssd256
pi@raspbian:~ $ 

df 명령어에서 /dev/sda2/mnt/ssd256에 올려진 것을 알 수 있다.

시스템이 재시작될 경우에도 /mnt/ssd256/에서 /dev/sda2 파티션을 접근할 수 있도록 /etc/fstab 파일을 수정한다.

pi@raspbian:~ $ sudo blkid /dev/sda2
/dev/sda2: LABEL="Data" UUID="14C6F2A3C6F28470" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c3074147-b99f-44af-a86a-ebd3a592dec3"
pi@raspbian:~ $ sudo vi /etc/fstab
pi@raspbian:~ $ cat /etc/fstab
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

UUID=14C6F2A3C6F28470  /mnt/ssd256     ntfs    defaults   0       0
pi@raspbian:~ $ 

DLNA 설정을 하기 전에 운영체제를 최신화한다.

pi@raspbian:~ $ sudo apt update && sudo apt dist-upgrade
기존:1 http://archive.raspberrypi.org/debian jessie InRelease                                      
기존:2 http://mirrordirector.raspbian.org/raspbian stretch InRelease                                   
패키지 목록을 읽는 중입니다... 완료     
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
All packages are up to date.
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
업그레이드를 계산하는 중입니다... 완료
0개 업그레이드, 0개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
pi@raspbian:~ $ 

이미 한번 진행한 작업이라 이 라즈베리파이의 운영체제는 최신으로 갱신된 상태라는 것을 알 수 있다. 이제 가벼운 미디어서버인 MiniDLNA를 설치한다.

pi@raspbian:~ $ sudo apt install minidlna
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다       
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
  minidlna
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
128 k바이트 아카이브를 받아야 합니다.
이 작업 후 362 k바이트의 디스크 공간을 더 사용하게 됩니다.
받기:1 http://ftp.harukasan.org/raspbian/raspbian stretch/main armhf minidlna armhf 1.1.6+dfsg-1 [128 kB]
내려받기 128 k바이트, 소요시간 1초 (75.3 k바이트/초)
Selecting previously unselected package minidlna.
(데이터베이스 읽는중 ...현재 111076개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../minidlna_1.1.6+dfsg-1_armhf.deb ...
Unpacking minidlna (1.1.6+dfsg-1) ...
Processing triggers for systemd (232-25+deb9u12) ...
Processing triggers for man-db (2.7.6.1-2) ...
minidlna (1.1.6+dfsg-1) 설정하는 중입니다 ...
Processing triggers for systemd (232-25+deb9u12) ...
pi@raspbian:~ $ 

이제 /etc/minidlna.conf 파일을 수정한다.

pi@raspbian:~ $ sudo vi /etc/minidlna.conf
pi@raspbian:~ $ grep ^inotify /etc/minidlna.conf
inotify=yes
pi@raspbian:~ $ grep ^media_dir /etc/minidlna.conf
media_dir=A,/mnt/ssd256/Music
media_dir=V,/mnt/ssd256/Movies
pi@raspbian:~ $ grep ^friendly_name /etc/minidlna.conf
friendly_name=Raspberry Pi
pi@raspbian:~ $ 

inotify=yesmedia_dir에 새로 들어오는 항목이 자동으로 목록에 나타나도록 하는 기능이라고 한다. friendly_name은 DLNA 서버가 네트워크에서 표시되는 이름이다.

service 명령어를 이용해서 minidlna 서비스를 개시할 수 있다. update-rc.d 명령어를 이용해서 라즈베리 파이가 재시작되어도 minidlna 서비스가 자동으로 시작되도록 설정할 수 있다.

pi@raspbian:~ $ sudo service minidlna start
pi@raspbian:~ $ sudo update-rc.d minidlna defaults
pi@raspbian:~ $ 

다음은 안드로이드의 Hi-Fi Cast 앱으로 라즈베리파이의 DLNA 서버에 접근한 모습이다. (Hi-Fi Cast 무료버전에서는 영화감상을 지원하지 않으나 음악감상은 잘됨).

Android Hi-Fi Cast to Raspberry Pi MiniDLNA server
안드로이드 스마트폰의 Hi-Fi Cast 앱에서 raspbian:minidlna 서버에 접속한 모습

DLNA 서버 이름은 raspbian: minidlna라고 나온다. 이유는 아직 찾아보지 않았는 데, friendly_name이 적용되지 않았다. "Justin Maggard Windows Media Connect compatible (MiniDLNA) 1.1.6"라는 설명이 붙어있다.

이제는 DLNA 플레이어들을 찾아볼 시간이다.

참고

외장 디스크에 음악이나 영화가 많으면 DLNA 서버가 색인을 만드는 데 약간의 시간이 걸릴 수 있다. 오랜 시간이 흘렀는 데도 영화나 음악 목록이 안나오면 다음과 같은 명령어를 한번 실행해보면 도움이 될 수 있다고 한다.

pi@raspbian:~ $ sudo minidlnad -R
pi@raspbian:~ $ sudo service minidlna restart
pi@raspbian:~ $ 

[처음 작성한 날: 2020.02.02]    [마지막으로 고친 날: 2020.02.02] 


< 이전 글 : 맥북프로 맥OS 카탈리나가 대기상태에서 전력소모량이 클 때의 조치방법 - 잠자기 방전 완화하기 (2020.02.04)

> 다음 글 : Offensive Security, Kali Linux 2020.1 배포판 발표 - 범용 리눅스로의 전환 시도? (2020.01.29)


크리에이티브 커먼즈 라이선스 이 저작물은 크리에이티브 커먼즈 저작자표시 4.0 국제 라이선스에 따라 이용할 수 있습니다.
잘못된 내용, 오탈자 및 기타 문의사항은 j1n5uk{at}daum.net으로 연락주시기 바랍니다.
웹핵.다이누.넷 대문 깨알지식 대문