레이블이 raspberry인 게시물을 표시합니다. 모든 게시물 표시
레이블이 raspberry인 게시물을 표시합니다. 모든 게시물 표시

2019년 3월 11일 월요일

omvp, 라즈베리파이(raspberry)

일반적으로 집에서 TV(IPTV)를 시청할때는 보통,
SK, KT, LG 에서 제공하는 셋톱박스(set-top box)를 사용해서 시청을 한다.

푹(pooq),옥수수(oksusu),티빙(tving),뷰잉(viewing) 등 서비스들이 나타나면서,
셋톱박스(set-top box)로  TV(IPTV)를 시청해야 한다는 공식이 무너지긴 했지만,
아직도 많은 사람들이 SK,KT,LG 에서 제공하는 TV(IPTV)를 시청하고 있다.

셋톱박스(set-top box)는 인터넷을 통해 들어오는 영상신호를
TV로 보내주는 역할을 한다.

(원리에 대해 자세히 나와있다.)
(https://www.netmanias.com/ko/?m=view&id=blog&no=7515)

인터넷을 통해 영상신호가 들어오기 때문에,
그 영상신호를 인터넷에 연결되어 있는 일반PC에서 받아서 시청할 수 있다.

예를 들어,
채널5는 100.100.100.5 로 들어오고,
일반PC에서 채널5를 보고 싶다면,
카카오팟플레이어 혹은 VLC플레이어 같은걸로 ,
100.100.100.5 에 접속하면 채널5를 시청할 수 있다.

문제는 영상신호가 인터넷을 통해 들어오기 때문에,
인터넷주소(IP주소)를 알아야 한다는 것이다.

omvp
이 프로그램은 영상신호가 들어오는 인터넷 주소를 알아낸다.

만약 내가 LG 인터넷을 사용하고 있다면,
LG 인터넷에 PC를 연결하고,
omvp 프로그램을 실행하면,
omvp 프로그램이 인터넷주소(IP주소)를 스켄(scan)한다.
그래서 영상신호가 들어오는 인터넷주소(IP주소)를 찾아준다.

만약 KT 인터넷을 사용하고 있다면,
KT 영상신호 주소를 찾게 될테고,
SK 인터넷을 사용하고 있다면,
SK 영상신호 주소를 찾게 될것이다.

당연한 이야기겠지만,
내가 LG 인터넷을 사용하고 있다면,
KT 영상신호 주소 혹은 SK 영상신호 주소를 스켄(scan) 할 수 없다. (찾을 수 없다.)

omvp를 다운로드 하자.
http://ohhara.sarang.net/omvp/bin
이곳에서 배포하고 있다.


자신에게 맞는 OS 를 선택해서 다운로드 하면 된다.

혹, 다운로드가 되지 않는다면, 아래 링크에서 다운로드 가능하다.
https://drive.google.com/open?id=1yVvGZ5hZB21LznOwjbX9ubJaSF0o1j-e

windows_7 라고 표현되어 있긴 하나,
windows_10 에서도 잘 동작한다.
ubuntu_14.04 라고 표현되어 있긴 하나,
ubuntu_16.04 에서도 잘 동작한다는 인터넷 글들이 있다.

설치 방법은 간단하다.
해당 OS에 해당하는 파일 다운로드 후, 압축을 해제하면 된다.

windows에서는 압축 해제 후,
setup.bat를 실행해 줘야 한다. (관리자 권한으로)

그리고 WinPcap.exe를 설치해 줘야 한다.
(압축 해제 하고 나면, 해제된 파일들 중에 존재한다.)

설치 완료 후, 반드시 방화벽을 해제해 줘야 한다.
(제어판 - 시스템 및 보안 - Windows 방화벽 - 설정 사용자 지정)

ubuntu에서는 압축 해제 후,
아래와 같이 추가적인 패키지 파일을 설치해 줘야 한다.

% sudo apt-get update

% sudo apt-get -y install libclutter-gst-2.0-0 libpcap0.8 libgstreamer1.0-0 gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

나는 라즈베리파이(Raspberry Pi 3)를 갖고 있어서,
라즈베리파이(Raspberry Pi 3)에서 시도해 봤다.
아래 명령어를 순차적으로 실행하면 된다.

% sudo apt-get update

% sudo apt-get -y install git libpcap-dev libgstreamer1.0-dev gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav

% git clone https://bitbucket.org/ohhara/ohmulticastvideoscanner.git

% cd ohmulticastvideoscanner

% sudo ./configure

% sudo make

% sudo make install

혹, git clone이 되지 않는다면, 아래 링크에서 다운로드 가능하다.
ohmulticastvideoscanner.tar.gz
https://drive.google.com/open?id=1yVvGZ5hZB21LznOwjbX9ubJaSF0o1j-e

설치가 완료되었다면,
영상신호 인터넷주소(IP주소)를 스켄(scan)해야 한다.

0.0.0.0 ~ 255.255.255.255 이런식으로,
모든 주소를 스켄(scan)하기에는 시간이 너무 오래 걸린다.

다행히도 구글에 검색해 보면,
능력자들이 인터넷주소(IP주소) 대역(범위)를 찾아놨다.

LG
233.14.202.0/24
233.18.145.0/24
233.69.194.0/24

SK
239.192.47.0/24
239.192.40.0/24

KT
233.13.231.0/24
233.14.173.0/24
233.15.200.0/24
233.18.158.0/24
233.19.187.0/24
233.115.200.0/24


구글링을 더 해보니, 자료를 더 찾을 수 있었다.

 통신사
Protocol
IP 
ETC 
LG
RTP
233.18.145.0

 233.14.202.0

 233.69.194.0

 233.14.202.41:60000

SK
UDP 
239.192.47.7:49220 

 239.192.40.26:49220

KT 
RTP 
233.18.158.78:5000 

 233.13.231.18

 233.15.200.19

 233.115.200.19

 233.14.173.109


나는 LG 통신사를 사용하고 있으므로,
LG 통신사 기준으로 실행해 봤다.

스켄(scan)할 랜카드(NIC)를 찾아야 한다.
모든 디바이스(device) 중에 찾아야 하기 때문이다.

% sudo ./omvs -l
dev_idx(0) dev_name(eth0) dev_desc((null))
dev_idx(1) dev_name(any) dev_desc(Pseudo-device that captures on all interfaces)
dev_idx(2) dev_name(lo) dev_desc((null))
dev_idx(3) dev_name(wlan0) dev_desc((null))
dev_idx(4) dev_name(docker0) dev_desc((null))
dev_idx(5) dev_name(bluetooth0) dev_desc(Bluetooth adapter number 0)
dev_idx(6) dev_name(nflog) dev_desc(Linux netfilter log (NFLOG) interface)
dev_idx(7) dev_name(nfqueue) dev_desc(Linux netfilter queue (NFQUEUE) interface)
dev_idx(8) dev_name(usbmon1) dev_desc(USB bus number 1)

dev_idx 0번에 eth0 가 있으므로 나는 0번이다.

스켄(scan)해 보자.

% sudo ./omvs -i 0 -j 4 XXX.XX.XXX.0/24

-i 는 dev_idx 번호를 넣으면 된다.
-j 는 동시에 4개씩 스켄(scan) 하겠다는 의미다.
XXX.XX.XXX.0/24 는 스켄(scan)해야 대역(범위)을 넣으면 된다.

나는 LG 통신사를 사용하고 있으므로,
아래와 같이 하면 된다.

% sudo ./omvs -i 0 -j 4 233.14.202.0/24
% sudo ./omvs -i 0 -j 4 233.18.145.0/24
% sudo ./omvs -i 0 -j 4 233.69.194.0/24

아래처럼 뭔가 주루룩 나온다.
아래처럼 나온다면 잘되고 있는것이다.

openning omvs_out/omvs_1551975701350842.m3u
[0xbd8430] start scanning 233.14.202.64
[0xbd8460] start scanning 233.14.202.128
[0xbd8400] start scanning 233.14.202.0
[0xbd8490] start scanning 233.14.202.192
[0xbd8430] trying to save rtp://233.14.202.64:60000 to omvs_out/233.14.202.64-60000.png
[0xbd8460] finish scanning 233.14.202.128
[0xbd8400] finish scanning 233.14.202.0
[0xbd8430] finish scanning 233.14.202.64
[0xbd8490] finish scanning 233.14.202.192
[0xbd8400] start scanning 233.14.202.1
[0xbd8460] start scanning 233.14.202.129
[0xbd8430] start scanning 233.14.202.65
[0xbd8400] trying to save rtp://233.14.202.1:60000 to omvs_out/233.14.202.1-60000.png
[0xbd8430] trying to save rtp://233.14.202.65:60000 to omvs_out/233.14.202.65-60000.png
[0xbd8490] start scanning 233.14.202.193
[0xbd8490] trying to save rtp://233.14.202.193:60000 to omvs_out/233.14.202.193-60000.png

omvs_out 디렉토리가 생성되면서 그곳에 결과가 저장된다.
만약 영상신호가 잡히는 인터넷주소(IP주소)가 발견되면, 해당 화면을 캡쳐해서,
이렇게 그림파일로 저장해 준다.
그림파일은 나중에 해당 인터넷주소(IP주소)가 어떤 채널인지 판단하는데 사용된다.


이런식으로 결과 파일도 같이 생성된다.
omvs_1545804662441012.m3u
omvs_1545805449343925.m3u
omvs_1545806043127642.m3u

이 파일들을 메모장, 혹은 vi 편집기 같은 걸로 열어보면,
인터넷주소(IP주소)가 적혀있다.

#EXTM3U
#EXTINF:1,1
udp://233.14.202.56:60000
#EXTINF:2,2
udp://233.14.202.57:60000
#EXTINF:3,3
udp://233.14.202.58:60000
#EXTINF:4,4
udp://233.14.202.59:60000
#EXTINF:5,5
udp://233.14.202.60:60000
#EXTINF:6,6
udp://233.14.202.161:60000
#EXTINF:7,7
udp://233.14.202.162:60000
#EXTINF:8,8
udp://233.14.202.167:60000

이것이 바로 영상신호 인터넷주소(IP주소)이다.
그 중에 하나를 VLC 로 play 해보자.

VLC 미디어 재생기 실행 후,
"미디어 - 네트워크 스트림 열기" 클릭


네트워크 주소 입력 후,
"재생(P)" 클릭



인터넷주소(IP주소)에 해당하는 채널이 잘 나올것이다.




출처
http://ohhara.sarang.net/omvp/bin
https://moordev.tistory.com/archive/20170313
http://sky-world.org/wp/2017/08/28/raspberry-pi-3-iptv-extract
https://x86.co.kr/gigi/1748161
https://clien78.tistory.com/125
https://cozy-ho.github.io/server/2018/07/05/IPTV_ip주소-스캔하기.html
https://www.clien.net/service/board/lecture/9739308
https://pastimelife.com/1612
https://lightinglife.tistory.com/138
https://irona.tistory.com/16
https://www.netmanias.com/ko/?m=view&id=blog&no=7515

2018년 7월 27일 금요일

Atlassian Confluence 6.10.1 구매

예전에는 뭔가를 기록할 일이 생기면, 노트에 기록을 하곤 했었다.
아날로그 세대 답게, 샤프로 쓱싹쓱싹......

그 후,
디지털 세대로 급변하는 격동기(激動期) 시대를 맞이하게 되어서.....
디지털 인(人) 답게 기록의 형태를 디지털 형태로 변경하기로 하였다.

스마트폰, 데스크탑, 노트북을 사용하여 이것저것 기록하기 시작했다.
기록하는 형태의 서비스를 제공하는 프로그램 종류는 엄청 많았다.
그 중, 사용해 본 프로그램은 아래 리스트 정도.

에버노트(Ever Note), 원노트(One Note), 킵(Keep), 페이퍼(Dropbox Paper), 솜노트(Som Note), 큅(Quip)......  (더 있을텐데 기억이 잘 안 남)

위 제품들은 일반적으로 개인용으로 사용하기에 잘 되어 있다.
물론 공유 기능을 사용해서 여러 사람들과 협업적으로 사용 가능하다.
실제로 위 제품들을 사용하는 회사, 단체, 집단 등도 있다고 한다.

그렇긴 한데,
위 제품보다 좀 더 회사에서 사용하는 용도로 특화된 제품도 있다.

바로,
Atlassian 회사에서 만든 Confluence 라는 제품이다.

회사에서는 여러 사람들과 서로 문서를 공유하고, 작성할 수 있도록 특화된 제품이라고 해야 하나? (협업 제품)
아님 plugin 이 많아서 기능은 무한대로 추가할 수 있는 제품이라고 해야 하나?
암튼, 좋긴 좋다.

수 많은 회사에서 Confluence 를 사용한다고 알려져 있다.

Confluence 가 많이 알려지면서, 회사 뿐만 아니라 개인적으로 사용하는 사람들도 많이 생겼다.

혼자 사용하기도 하고, 친구들과 같이 정보 공유를 위해 사용하기도 하고, 작은 단체에서 사용하기도 하고, 다양하게 사용되는 같다.

원래는 비쌌었는데, 나처럼 돈도 빽도 없는 사람들을 위해 $10 에 판매한다는 소문을 들었다.
(2016년 9월 부터 인듯)

진짜? 레알? 리얼리?


소규모 단체를 위해 저렴하게 내 놓은거라고 한다.
그리고 $10 는 기부를 한다고 한다. (그러므로 환불은 안된다)
누이좋고 매부좋고.

자세한 내용은 아래 링크를 보면 된다.
https://www.facebook.com/notes/atlassian-korea-아틀라시안-한국/10달러로-시작하는-비지니스-효율화/1307770519246999

이번 기회에 나도 구매해 보기로 했다.
홈페이지에 방문해 보자.
https://ko.atlassian.com


Atlassian 회사에서는 Confluence 뿐만 아니라, 다양한 여러 제품이 많다.
나는 Confluence 제품만 구매할 것이다.


가격을 클릭해 보자.


클라우드와, 셀프호스팅 2가지 형태가 존재한다.
클라우드는 말 그대로, "Atlassian 에서 제공하는 서버를 사용하겠다. ID 만 부여해 달라" 라는 형태이다.
"셀프호스팅은 내 서버에 직접 설치하고 운영하겠다" 라는 형태이다.


셀프 호스팅 방식으로 사용할 것이므로, 셀프호스팅을 클릭하자.
오~ 진짜 $10


추가적으로 Add-on 을 선택하고 싶음 해도 된다.


체크아웃을 클릭하고, 신용카드(체크카드) 번호를 입력하고,
집 주소를 입력하면 결제가 완료된다.


이메일에 invoice 가 도착해 있다.
"Get your product license" 를 클릭하자.


"Confluence (Server) 10 Users: Starter License" 가 새롭게 추가되었다.


"Download Confluence (Server)" 를 클릭하자.


자신의 OS 에 맞는 파일을 다운로드 하면 된다.


혹시나 해서 URL 을 기록한다.

OS Xhttps://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.1.tar.gz
Linux 64 Bithttps://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.1-x64.bin
TAR.GZ Archivehttps://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.1.tar.gz
Windows 64 Bithttps://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.1-x64.exe
ZIP Archivehttps://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-6.10.1.zip

다운을 받았으니 실행을 해야 하는데,
실행하기 전에 DATA 디렉토리를 지정해 줘야 한다.

Confluence 가 실행되면서 필요한 파일들을 이것저것 기록해 놔야 하는데,
그 디렉토리를 설정해 줘야 한다.

문서 편집기를 사용해서, 아래 파일을 열어보자.
atlassian-confluence-6.10.1/confluence/WEB-INF/classes/confluence-init.properties
맨 밑에 "confluence.home" 항목의 주석을 제거하고, 디렉토리를 입력하자.

실행은 백그라운드로 해야 하므로, -fg 옵션을 주도록 하자.
% atlassian-confluence-6.10.1/bin/start-confluence.sh -fg

뭔가 주룩룩 뜨면서 마구 실행되는 모습을 확인할 수 있다.

접속해 보자.
http://127.0.0.1:8090

잘 뜬다면 성공적으로 설치, 실행이 된것이다.
안된다면?
열심히 구글링을 해보면 된다.
구매 사용자 이므로, "Production Installation" 을 클릭하면 된다.


참고로,
"라즈베리파이 PI 3" 에 설치 했었는데,
처음에 "oracle-jdk-7" 을 사용해서 설치를 했는데, (jdk-7 사용중이라서)
뭔가 에러를 빼액~~~~ 하고 뿜어냈었다.

Tomcat Issue: Unsupported major.minor version 52.0
뭐 대충 이런 메세지.

해결은 간단했다.
open-jdk-8 로 업그레이드 하니까 잘 되었다.

"Production Installation" 을 클릭하면,
Add-on 이 나오는데, 더 구매한 것이 없으므로 그냥 Next 한다.


드디어! License Key 를 입력하는 단계.
화면에 표기된, Server ID 를 복사한다.


위에 나온 그림들중에 "View License" 가 있었다.
그것을 클릭한다.


처음 설치자 인지, 기존 설치자 인지 선택해야 한다.
기존에 Confluence 를 사용중이라면, 아래 안내 절차대로 수행하면 된다.

처음 사용자 이므로, "not installed yet" 을 선택하자.
그리고 아까 복사한 "Server ID" 를 붙여넣기 한다.


License Key 가 생성되었다.


License Key 를 이곳에 붙여넣기 한다.


Confluence 에서 글을 작성하면, 그 데이터를 어디에 저장할지 물어보는 단계이다.

"My own database" 는 외부 Database 를 사용하는 것이다.
MySQL, PostgreSQL, Oracle, MS-SQL

"Built in" 은 내부적으로 관리하는 방식이다.

외부 Database 를 사용하는 것이 여러모로 좋다.


DB 정보를 입력하자.
"Simple", "By connection string" 두 가지 중에 아무거나 해도 상관없다.



Test connection 이 성공적으로 잘되는지도 확인한다.
Next 를 클릭하면, 초기 Data 설정이 진행된다.
서버 상태에 따라 몇 분 소요될 수 있다.


근데 .... 한 20분 지났나?
에러가 걷잡을 수 없이 마구마구 뜨기 시작했다.

java.lang.Throwable

WARNING [ContainerBackgroundProcessor[StandardEngine[Standalone]]] org.apache.catalina.valves.StuckThreadDetectionValve.notifyStuckThreadDetected Thread [http-nio-8090-exec-6] (id=[43]) has been active for [68,417] milliseconds (since [7/26/18 1:34 PM]) to serve the same request for [.....] and may be stuck (configured threshold for this StuckThreadDetectionValve is [60] seconds). There is/are [1] thread(s) in total that are monitored by this Valve and may be stuck.

헐....
급기야 나중에는, 메모리가 부족하다는 메세지와 함께, 프로그램이 사망했다.

OpenJDK Client VM warning: INFO: os::commit_memory(0x563b4000, 119504896, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 119504896 bytes for committing reserved memory.
# An error report file with more information is saved as:

아~~ 어쩌지?
"라즈베리파이 PI 3" 라서..... 메모리가 1G 뿐인데..... ㅠㅠ

할 수 없이, 아래 URL 을 참고해서 Swap File 을 1G 추가했다.
http://faq.hostway.co.kr/?mid=Linux_ETC&page=7&document_srl=1443

현재 Swap 상태를 확인한다.
% swapon -s, free

임시파일 1G 를 생성한다.
% dd if=/dev/zero of=/home/pi/swapfile bs=1024 count=1000000

Swap File 형태로 만든다.
% mkswap /home/pi/swapfile

Swap File 로 지정한다.
% sudo swapon /home/pi/swapfile

나중에 해지할때는 아래처럼 하면 된다.
% sudo swapoff /home/pi/swapfile
% rm /home/pi/swapfile

그리고 다시 재시도 한다.

"라즈베리파이 PI 3" 라서 그런가?
20분 넘게 걸린거 같았다.

먹통된 줄....
더 좋은 서버에서 돌렸으면 좋았을텐데..... 가난이 죄다. ㅠㅠ

출처 : https://www.hooni.net/xe/?mid=media&document_srl=87518&order_type=asc&sort_index=readed_count&listStyle=viewer&page=30

후하~~
드디어 화면이 떴다.

썰렁한 화면 보다는 뭔가 있는게 나을거 같으니,
Example Site 를 클릭하자.


Jira 없이 Confluence 단독으로 사용할 것이므로,
"Manage users and groups within Confluence" 를 클릭하자.


Username : 사용하고 싶은 ID 를 입력한다.
Name : 화면에 표기될 자신의 Full Name 을 입력한다.


만세!!!!
Start 를 클릭하고, 즐겁게 사용하면 된다.


..... 라고 생각했는데,


완전~~~ 느려서 못 쓸거 같다.
저 뱅글뱅글 도는 그림이 없어지지 않고 있다. 어휴....


$11 가 사라지는 순간이었다.
기부했다 셈 치지 뭐~~ ^^


이상 삽질 끝.

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...