집에 있는 구형(??) iRiver N10 mp3 player를 사용하기 위해서 Ubuntu에서 삽질을 좀 했습니다.

별 어려움 없이 쉽게 잘 인식하는 군요. Ubuntu에서 iRiver mp3 player를 사용하려면 다음과 같이 하시면 됩니다.


Step 1. Driver와 Tool설치


libifp는 iRiver mp3 player의 Linux용 비공식 open source driver입니다. (정확히 말한다면, Userspace에서 iRiver에 접근할 수 있도록 만든 library입니다.)


libifp는 아래와 같은 iRiver 기종을 지원합니다.


iFP-1xx,3xx,5xx,7xx,8xx,9xx and N10
iRiver 기종 중 UMS firmware를 사용하는 기종은 Linux kernel의 mass storage driver를 통해 iRiver에 접근할 수 있습니다.


libifp를 설치하기 위해서 terminal에서 다음을 입력합니다. (또는, Synaptic package 관리자를 통해서 설치할 수도 있습니다.)

$ sudo apt-get install libifp4


이제 libifp를 이용한 tool을 설치해 봅시다.


여러가지 tool이 있지만 그 중에서 가장 괜찮은 program으로 ifpgui를 추천합니다.


ifpgui는 Qt를 기반으로 만들어졌으며 Drag&Drop으로 mp3 추가, battery 용량과 남은 저장 용량 표시, firmware upgrade, 라디오 수신이 가능한 경우 channel 편집 등을 지원합니다.


ifpgui Screenshot


Ubuntu에서의 ifpgui는 KDE관련 library가 load되지 않도록 compact하게 build되어 있어서 Gnome 사용자도 부담없이 사용할 수 있습니다.


설치를 위해서 terminal에서 다음을 입력합니다. (또는, Synaptic package 관리자를 통해서 설치할 수도 있습니다.)

$ sudo apt-get install ifpgui


설치 후, 프로그램 -> 음악과 비디오 -> ifpgui를 실행하면 ifpgui로 iRiver mp3 player를 사용할 수 있습니다.


Step 2. Device에 권한 설정


이것으로 끝이라고 생각했는데 문제가 한가지 있군요. ifpgui를 실행하면 device를 찾을 수 없다는 error가 발생합니다. 하지만 root권한을 사용해서 ifpgui를 실행하면 정상적으로 동작합니다. 어떻게 하면 일반 계정도 ifpgui를 사용할 수 있을까요?


해답은 udev의 rules.d에 설정을 추가하는 것입니다. udev는 인식된 device를 기본적으로 root권한으로 접근하도록 권한을 설정합니다. rules.d에 iRiver가 인식되었을 때 해당 group에 속하는 user에게만 접근할 수 있도록 허가해 주고 그 group에 iRiver를 사용할 user를 추가시켜주면 문제 끝입니다. 🙂
(열심히 Googling한 결과 겨우 찾아냈습니다.. 참고한 원문)


먼저, root권한으로 /etc/udev/rules.d에 50-ifpdev.rules를 생성하고 다음과 같이 내용을 적습니다.

$ sudo vi /etc/udev/rules.d/50-ifpdev.rules
(또는)
$ sudo gedit /etc/udev/rules.d/50-ifpdev.rules


# udev rules file for supported ifp devices
#
# To add an USB ifp device, add a rule to the list below between the SUBSYSTEM…
# and LABEL… lines.
#
# To run a script when your ifp is plugged in, add RUN="/path/to/script"
# to the appropriate rule.
#
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="libifp_rules_end"
# ifp-1xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1001", GROUP="plugdev"
# ifp-3xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1003", GROUP="plugdev"
# ifp-5xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1005", GROUP="plugdev"
# ifp-7xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1007", GROUP="plugdev"
# ifp-8xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1008", GROUP="plugdev"
# ifp-9xx
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1009", GROUP="plugdev"
# ifpdev
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1010", GROUP="plugdev"
# The N10
SYSFS{idVendor}=="4102", SYSFS{idProduct}=="1011", GROUP="plugdev"
#
LABEL="libifp_rules_end"


그 다음, udev를 다시 시작하면 device의 permission이 바뀝니다.

$ sudo /etc/init.d/udev restart


plugdev group에 현재 사용하고 있는 user가 등록되어 있지 않다면, 다음과 같이 입력하여 user를 plugdev group에 등록합니다. (시스템 -> 관리 -> 사용자와 그룹을 통해서 추가할 수도 있습니다.)

$ sudo gpasswd -a [추가할 user] plugdev

Group에 추가했다면 logout을 한 후, 다시 login합니다.

이제 ifpgui를 실행해 보세요. 일반 계정에서도 잘 동작할 것입니다.

udev

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다