Create TOC

2016년 3월 17일

Debian/UltraNav 스크롤 버튼 활성화

UltraNav의 가운데 버튼(파란 버튼)을 누른 상태에서 스틱을 움직이면 스크롤이 되도록 하려면 아래와 같이 설정한다.

우선 장치 이름을 알아야 한다.

$ xinput --list
⎡ Virtual core pointer                     id=2 [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft Wireless Optical Mouse® 1.00 id=8 [slave  pointer  (2)]
⎜   ↳ Synaptics Inc. Composite TouchPad / TrackPoint id=11 [slave  pointer  (2)]
⎜   ↳ Synaptics Inc. Composite TouchPad / TrackPoint (Stick) id=12 [slave  pointer  (2)]
⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
    ↳ Power Button                             id=6 [slave  keyboard (3)]
    ↳ Power Button                             id=7 [slave  keyboard (3)]
    ↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=9 [slave  keyboard (3)]
    ↳ Lite-On Tech IBM USB Travel Keyboard with UltraNav id=10 [slave  keyboard (3)]

이름 확인 후 ~/.xinputrc파일에 아래 내용을 추가한다.

tpset() { xinput set-prop "Synaptics Inc. Composite TouchPad / TrackPoint (Stick)" "$@"; }

tpset "Evdev Wheel Emulation" 1
tpset "Evdev Wheel Emulation Button" 2
tpset "Evdev Wheel Emulation Timeout" 200
tpset "Evdev Wheel Emulation Axes" 7 6 4 5
tpset "Device Accel Constant Deceleration" 0.95

2016년 3월 7일

Raspberry Pi/Tvheadend 설정

현재 소유중인 USB TV 수신 카드(Dvico FusionHDTV5 USB Gold)를 Raspberry Pi에 연결하고, Tvheadend를 설정해서 다른 PC에서 TV 방송을 볼 수 있게 설정한다.

TV 수신 카드 설정

firmware 설치

$ sudo wget http://www.linuxtv.org/download/dvb/firmware/dvb-usb-bluebird-01.fw /lib/firmware

펌웨어 설치 후 USB TV 수신 카드를 다시 연결한다.

채널 검색

dvb-apps 패키지를 설치한다.

$ sudo apt-get install dvb-apps

아래와 같이 파일을 복사한다.

$ cp /usr/share/dvb/dvb-legacy/atsc/us-Cable-Standard-center-frequencies-QAM256 ~/kr-Cable-Standard-center-frequencies-8VSB

편집기로 kr-Cable-Standard-center-frequencies-8VSB파일을 열어서 QAM256을 8VSB로 변경한다.

변경이 끝나면 아래와 같은 방법으로 채널을 검색한다.

$ scan /usr/share/dvb/dvb-legacy/atsc/us-ATSC-center-frequencies-8VSB >> ~/channels.conf
$ scan ~/kr-Cable-Standard-center-frequencies-8VSB >> ~/channels.conf

검색 후 ~/channel.conf을 열어보면 아래와 비슷하게 채널 정보가 들어와 있다.

MBC:123012500:8VSB:17:20:1
:129012500:8VSB:33:36:2
:135012500:8VSB:17:20:1

"채널이름:주파수:나머지 정보" 형식을 가지고 있는데 이 중 주파수를 나중에 Tvheadend 설정시 사용한다.

Tvheadend 설정

저장소 추가

저장소에 대한 자세한 설명은 Tvheadend 사이트를 참고한다.

/etc/apt/sources.list.d 디렉토리에 아래와 같은 내용으로 tvheadend.list파일을 생성한다.
deb http://dl.bintray.com/tvheadend/deb jessie release

설정이 끝나면 package 정보를 업데이트 한다.

$ sudo apt-get update

설치

$ sudo apt-get install tvheadend

패키지를 설치할 때 관리자 id와 비밀번호를 입력해야 하는데, 원하는 값을 입력하면 된다. 나중에 다시 바꾸길 원하면 아래와 같은 명령을 입력하면 된다.

$ sudo dpkg-reconfigure tvheadend

설정

http://127.0.0.1:9981 로 접속해서 관리자 id와 비밀번호를 입력하면 관리 페이지를 볼 수 있다. 페이지 접속 후 Configuration 탭을 선택해서 필요한 설정을 해야 한다.

계정 설정

관리자 외에 TV를 시청할 계정을 추가한다.

iOS 기기에서 시청하기 위해서는

  • Web Interface
  • Streaming
  • Advanced Streaming
설정을 check 해주고 Streaming Profile을 matroska로 설정해줘야 한다.

그리고 kodi를 위해서 HTSP Streaming 설정도 check 해준다.

TV adapters 설정

TV adapters 설정에 들어가서 LG Electronics LGDT3303 VSB/QAM Frontend: ATSC #0을 선택하고 Enabled을 check 해준다.

Networks 설정

Networks 설정에 들어가서 Add을 누르고 ATSC Network을 추가한다.

Muxes/Services 설정

Network 추가 후 Muxes 설정으로 자동으로 Mux가 추가되어 있고 Scan 결과가 나오는데 대부분 실패했다. 자동으로 추가된 Mux를 정리하고 위에서 검색한 주파수를 이용해 Mux를 등록한다.

등록한 Mux의 Scan 결과가 OK가 나오면 Services 탭에서 검색된 채널이 표시되는 것을 확인해야 한다. Services 에 추가된 것을 확인하면 EPG 설정을 해야 한다.

EPG 설정

https://nas.moe/archives/1010를 참고해서 설정한다.

우선 Tvheadend 설정 페이지에서 EGP Grabber 설정을 들어가 XMLTV 설정을 check 해준다.

그다음 n2xml.py 파일을 받아온다. 파일을 받아온 후 아래와 같이 /usr/local/bin에 복사한다.

$ sudo cp n2xml.py /usr/local/bin
$ sudo chmod +x /usr/local/bin/n2xml.py

파일 복사 후 하루에 한번 실행하도록 /etc/cron.daily/n2xml 파일을 만든다.

#!/bin/sh

N2XML=/usr/local/bin/n2xml.py
CHANLIST=/usr/local/etc/chanlist.json
XMLTVSOCK=/home/hts/.hts/tvheadend/epggrab/xmltv.sock

if [ -x $N2XML ]; then
        if [ ! -f $CHANLIST ]; then
                $N2XML -u 1 -e 1 --chanlist $CHANLIST > /dev/null 2>&1
        fi
        if [ -S $XMLTVSOCK ]; then
                $N2XML -a --chanlist $CHANLIST -s $XMLTVSOCK > /dev/null 2>&1
        fi
fi

파일을 만든 후 실행 속성을 부과한다.

$ sudo chmod +x /etc/cron.daily/n2xml

속성 부과 후 한번 실행해준다.

$ sudo /etc/cron.daily/n2xml

그 후에 Tvheadend 설정 페이지에서 logout 후 다시 login 한다. 그 다음 Channel 페이지에 가서 Channel을 추가하면 된다.

Tvheadend 클라이언트 설정

iOS

TvhClient앱을 설치하면 된다.

설치 후 Tvheadend 서버를 추가하면 아래와 같이 채널 목록이 표시된다.

채널을 선택하면 해당 채널에 대한 상세한 방송 정보가 표시된다.

Play을 선택하면 메뉴가 하나 뜨는데 내장된 VLC로 볼 수도 있고 외부 플레이어 (NPlayer)로 링크를 넘겨서 재생할 수도 있다.

내장 VLC로도 재생이 잘 된다.

Kodi

Windows, OS/X, Linux 에서는 Kodi를 설정해서 시청하는 것이 제일 편하다.

설정 - 애드온 - PVR 클라이언트 에서 Tvheadend HTSP Client을 설치하고 설정한다.

설정 - TV - 일반사용함으로 설정한다.

설정이 끝나면 첫 화면에 TV 관련 메뉴가 표시된다.

채널 목록을 보고 시청이 가능하다.

방송 정보도 한번에 볼 수 있다.

2016년 3월 2일

raspbian/docker/node.js

docker 설치

raspbian에 포함된 docker.io 패키지를 설치하고 이미지를 받아보려고 하면 "Could not reach any registry endpoint" 오류가 나면서 이미지를 받아올 수 없다. docker.io가 버전이 너무 낮아서 발생한 문제이다.

docker.io 패키지 대신 http://blog.hypriot.com/downloads/ 에서 deb 파일을 받아서 설치한다.

$ sudo apt-get purge docker.io
$ wget http://downloads.hypriot.com/docker-hypriot_1.10.1-1_armhf.deb
$ sudo dpkg -i docker-hypriot_1.10.1-1_armhf.deb

참고로 docker.io 패키지를 삭제할 때 sudo apt-get purge docker.io으로 완전 삭제하지 않으면 충돌이 발생할 수 있다.

계정 설정

docker 설치 후 docker를 사용할 계정을 docker그룹에 추가한다.

$ sudo adduser 사용하는id docker

그룹 추가 후 다시 로그인 한다.

node.js

$ docker pull hypriot/rpi-node