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

7/02/2015

LG-IPTV NAS Server 와 UPNP/DLNA 구성

원래는 ODROID로 NAS를 구성하고 Kodi도 설치하고 필요한 것들을 넣었으나, 일단 개발보드라서 집에서 사용하기가 불편하다.
항상 주의해서 사용해야하고, 케이스라도 샀어야하는데, 최근 위사항들을 LG에서 제공해주는 IPTV로 전부 변경했다.
일단 LG IPTV는 안드로이드 기반이다보니, 필요한 앱만 구해서 설치하면되고 없다면 강제로 apk를 설치해보자.

우선 NAS의 용어부터 알아보면, NAS (Network-Attached Storage)로 Network에 붙어 있는 저장장치이다.
흔히 Multimedia Server로 사용하며 각 외부에서 Storage를 접근이 가능하게 한다.
Linux에서 이미 사용되는 Network File System으로는 SAMBA, NFS 등이 있으며,현재 UPNP/DLNA에 적용하여 구성할 수 있다.

  https://en.wikipedia.org/wiki/Network-attached_storage
  http://news.egloos.com/4024211

1. 홈 네트워크 기본구성

본인의 LG IPTV의 Android Version과 Device Name을 확인하자.

  • 설정->TV 정보 확인 
  1. 디바이스 이름:         TI320-DU
  2. Android Verions:      4.2.2           
Jellybean 까지 Update가 되었으며, TI320의 ARM version을 확인해보자. 

  • 아래에서 본인의 Android Version 확인 
  https://en.wikipedia.org/wiki/Android_version_history
  https://ko.wikipedia.org/wiki/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C_%EB%B2%84%EC%A0%84_%EC%97%AD%EC%82%AC


  • TI320-DU관련 Deivce 내용 
  1. CPU: Marvell Berlin SoC  ARMv7 rev1   (Dual-Core ARMv7)
  2. GPU: GC1000 core , OPENGL ES 2.0
  3. RAM:  578MB
  4. 내장스토리지  1GB
Kodi에서 위 내용 확인가능
  http://www.getdeal.co.kr/bbs/board.php?bo_table=forum_lgtv&wr_id=126
  http://www.100mb.kr/bbs/board.php?bo_table=information&wr_id=5636

  • U+ Settopbox 관련내용 
  https://namu.wiki/w/U%2BtvG


현재 나의 홈 네트워크 기본 구성사항은 아래와 같다.

1.1  DLNA 기본구성

이제 각각의 안드로이드 앱을 설치하여 구성을 해보자.

A.  LG U+IP TV 설정
  • U+TV            :  LG-IPTV에서 DLNA 기본제공
  • Play 스토어를 통하여 설치가능한 DLNA Programs 
  1. AirPin(LITE)  ( DLNA 이외 에도 , Airplay도 가능
  2. BubbleUPnp  설치 가능.
    설치후, 설정->애플리케이션->실행중 에서 동작 중인 확인 

B.   PHONE의 구성 
  1. Phone에서 기본으로 제공하는 DLNA 프로그램     
  2. iMediahouse :  탐색기에서 U+TV Server 에 연결용도 사용
  3. BubbleUPnp  : vvServer & Media 기능 사용가능

C.  컴퓨터 구성
           
     1.아래사항 확인
        제어판\네트워크 및 인터넷\네트워크 및 공유 센터
        홈그룹: 가입됨
        제어판\네트워크 및 인터넷\네트워크 및 공유 센터\미디어 스트리밍 옵션
 
     2. Window Media Player
                   구성 -> 라이브러리 관리 -> 비디오  :  폴더를 추가

https://us.en.kb.sony.com/app/answers/detail/a_id/31351/~/how-to-use-windows-media-player-as-a-dlna-server-to-connect-your-computer-to
http://pcwinvista.tistory.com/663


2.  DLNA 사용방법

DLNA를 이용하여 기본 비디오 재생이 쉬우며, 스마트 TV에서도  기본 재생지원가능하다.

2.1  PHONE 에서 LG IPTV로 재생

사실 아래의 두 프로그램을 이용하는 방법이 쉬어 어렵지 않게 이용이 가능할 것이다.
이외에도 DLNA 프로그램이 있으며, 이를 이용하여 재생이 가능하다.

        A. iMediahouse
        B. BubbleUpnp

2.1 DLNA 한계
  1. 코덱문제로 재생불가능 발생
  2. 자막지원 문제발생 

3. FTP를 이용한 LG IPTV에 설치 가능한 APPs

ES 탐색기를 설치를 하면 자동으로 많은 부가적인 기능들이 제공된다.
뿐만아니라 USB Harddisk에도 맘대로 접근이 가능해진다. 

DLNA의 기본 문제의 한계인 자막지원 문제를 극복하고자, 원격으로 ES 탐색기
FTP로 연결하여 사용하는 방법이며, 원격으로 동영상 재생 및 파일 복사가 가능하다.
이를 이용하여, LG-IPTV에 외장하드가 장착이 되었다면 복사도 가능하다.

3.1 기본준비사항 

LG IPTV와 PHONE에 ES 탐색기 설치
LG IPTV에 MX플레이어 설치

ES 탐색기는 기본적으로 FTP Server기능을 가지고 있음,
이를 이용하여 원격관리함
외장 USB 하드디스크 연결 (옵션)

A. PHONE

FTP Server를 작동시킴 (원격관리)
원격관리 설정시 기본주소도 설정가능

B. LG-IPTV

네트워크->FTP 에서 IP주소와 Port 번호를 등록하고 설정함
설정후 이를 접근하면, 탐색기처럼 사용가능하고, 기존에 설치한 MX플레이어로 이를 재생하여,
바로 스트림으로 영화재생이 가능하다.

4. 기타 프로그램 설치 

  • KODI 설치  ( TV 시청가능 )
기존에 ODROID에서 많이 사용하여, NAS의 주 Main System 이였으나,  현재는 인터넷 TV로 시청 용도로만 사용. 

다 아시다시피,  PVR 기능 부터, 인터넷 TV, DLNA, Airplay 거의 모든 기능이 다 지원이 된다. 그리고, 이 곳에 DVD Player라는 동영상플레이어가 있는데, 거의 모든 동영상이 재생이 가능하지만,성능이 많이 떨어진다. (DTS나 AC3도 재생가능)
플레이스토어에서 쉽게 설치가능
폰트: Arial based 

KODI 설명은 다른 곳을 참조하시길 

  • MX 플레이어 설치 (1.7.40)
일반적으로 많이 사용이 되는 동영상 플레이어로 현재 LG-IPTV는 1.7.40 Version은
플레이스토어에서 쉽게 설치 가능
음성코덱 AC3기본지원
이버전은 NEON Codec 기능이 포함 되어있는 것 같음

음성코덱 DTS 일경우 설정 
libffmpeg.mx.so.neon.1.7.32 만 주고 설정->디코더->외부코덱 설정
DTS 동영상 재생마다, Audio Track을 변경.

  http://eteris.tistory.com/594
  https://sites.google.com/site/mxvpen/download


5. 결론 

나의 TV는 스마트 TV가 아니라서, LG에서 제공하는 IPTV를 유용하게 잘 이용하고 있으며, 스마트폰/컴퓨터의 토렌트를 이용하여 FTP or DLNA로 쉽게 시청을 하고 있다.
FTP로 전송하여, LG-IPTV에 연결된 외부 하드디스크 쉽게 저장하여 시청도 가능하다.
개인적인 생각으로는 아주 최적의 NAS 시스템이라고 생각한다.

그 전에는 ODROID 이용했지만, ODROID의 필요성이 없어지고, LGIPTV는 외부 APK설치도 가능하여,
동영상 보는 외부 APK도 잘 동작해서 사용해봤는데 잘 동작되고, 다른 프로그램도 잘 동작된다.
주의해야할 것은 LG IPTV의 앱호환성이 문제가 될수 있으니, 잘동작하면 쓰고 동작되지 않는다면 유사프로그램을 설치해보고, 버전을 낮춰 다운받아 설치해보자. 

9/01/2014

uPnP/DNLA/Avahi/Bonjour

1. Zero Configuration Networking(ZeroConf) 

zeroconf는 TCP/IP기반에서 사용가능한 network를 자동으로 만들어주는 기술의 집합을 말하며, 3가지의 핵심기술은 다음과 같다.
  1. automatic assignment of numeric network addresses for networked devices
  2. automatic distribution and resolution of computer hostnames
  3. automatic location of network services, such as printing devices.
상위내용을 간단히 번역하면 다음과 같다.
  1. network address의 주소 자동할당
  2. 컴퓨터호스트이름을 배포와 해석 
  3. 네트워크서비스의 자동위치 (프린터서버 처럼 자동검색) 

자세한 내용은 아래 참고
  https://en.wikipedia.org/wiki/Zero-configuration_networking


2. Window의 UPnP(Universal Plug and Play)

UPnP에서 사용되는 SSDP는 Window XP에서 사용되었다고 하며, 상위 Zeroconf를 보면 대충 구성의 흐름을 알수가 있다.
SSDP기반으로 간단한 프로토콜이지만 DDOS 공격 등 문제점으로 현재 다른 Zeroconf기능을 사용하는 추세이다.

TCP기반으로 HTTP기반으로 XML와 SOAP/HTML등 구성을 볼수 있다.

UDP기반이며 Multicast를 이용하여 이를 구성하고 통신한다.

  • HTTPMU ( HTTP Multicast)
  • HTTPU ( HTTP UDP)

  • Protocol 구성 
1. addressing
2. discovery
3. description
4. control
5. eventing
6. presentation


  https://en.wikipedia.org/wiki/Universal_Plug_and_Play
  https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
  https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol
  https://hackaday.com/tag/upnp/

UPNP Spec
  http://www.upnp.org/upnp-resources/upnp
  https://openconnectivity.org/developer/specifications/upnp-resources/upnp

UPNP 한글설명 및 자료
  http://onecellboy.tistory.com/2
  http://talag.blog.me/70032091293

UPNP구조
  https://www.slideshare.net/701vivek/upnp-f

UPNP의 PTP 와 Multicast
  https://embeddedinn.wordpress.com/tutorials/upnp-device-architecture/

UPNP관련 자료
  https://blog.naver.com/kittenjun/18249127

UPNP 관련 다이어그램
  https://www.artima.com/spontaneous/upnp_digihome2.html

UPNP 사용법
  https://blog.djjproject.com/85
  https://blog.djjproject.com/309
  https://superuser.com/questions/1240504/upnp-device-detection
  https://stackoverflow.com/questions/18363833/how-can-i-list-upnp-server-renderer-in-command-line-console-mode-on-linux

2.1 SSDP(Simple Service Discovery Protocol)

UPNP의 한 종류로 아래와 Multicast 기반의  두가지 메소드를 볼수가 있다.
  1. NOTIFY/HTTP :  multicast group에  서비스정보를 설정 or 철수 
  2. M-SEARCH/HTTP:  Client는 가능한 서비스를 찾기 원해  찾음 

항상 주의해서 봐야할 곳은 멀티캐스트 주소포트 UDP/TCP
  • IPv4 Multicast Address: 239.255.255.250
  • UDP Port: 1900
2번 후 multicast가 아닌 unicast로 HTTP로 응답

sudo apt install minissdpd

  https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol
  https://wiki.wireshark.org/SSDP
  https://en.wikipedia.org/wiki/Internet_Gateway_Device_Protocol
  https://onecellboy.tistory.com/287


SSDP (Upnp)
  http://www.packetinside.com/2010/06/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%ED%8A%B8%EB%9E%98%ED%94%BD%EC%97%90%EC%84%9C-%EB%A7%8E%EC%9D%B4-%EB%B3%B4%EC%9D%B4%EB%8A%94-ssdp-%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C%EC%9D%98-%EC%A0%95%EC%B2%B4%EB%8A%94.html

2.2 DLNA

minidlna 사용법
  https://help.ubuntu.com/community/MiniDLNA
  https://blog.djjproject.com/257

  https://www.cnx-software.com/2016/08/16/setup-a-dlna-upnp-server-in-linux-for-smoother-videos-streaming-with-kodi/

추후 다시 DLNA 하게 된다면 그때 다시 정리

  http://rakuraku.tistory.com/46
  http://blog.naver.com/PostView.nhn?blogId=bit4rain&logNo=40149727745&parentCategoryNo=&categoryNo=&viewDate=&isShowPopularPosts=false&from=postView

2.3 WS-Discovery

Multicast Address: 239.255.255.250
Port: 3702


3. Zeroconf의 주요 구현물 


3.1 Linux의 Avahi 

현재 Avahi가 UPNP를 지원하지는 않으며, UPNP가 가지고 있는 문제점으로 인하여 mDNS기술에 집중하고 있다고 한다.

  https://www.avahi.org/
  https://en.wikipedia.org/wiki/Avahi_(software)

Avashi 기본사용법
  https://onecellboy.tistory.com/287

나중에 자세히 안 다면 추후 추가

mDNS(multicast DNS)
  https://en.wikipedia.org/wiki/Multicast_DNS
  https://tools.ietf.org/html/rfc6762

3.2 Apple의 Bonjour 

추후 추가


4. 동작기능 확인 

 $ cat /etc/services |grep dns
mdns  5353/tcp   # Multicast DNS
mdns  5353/udp

$ cat /etc/services |grep 1900
ssdp            1900/tcp                # SSDP
ssdp            1900/udp                # SSDP


AVAHI 와 SSDP 서비스 확인
  https://www.gabrielemerli.com/?p=1807



3/03/2014

WIFI P2P/ WIFI Direct 구조 on Android

1. WIFI P2P File 구조 (Android 4.2) 

GO : Group Owner
GC : Group Client 


WIFI Direct API Guide

  http://developer.android.com/guide/topics/connectivity/wifip2p.html

WIFI SDK 

ㆍaddr: frameworks/base/wifi/java/android/net/wifi/p2p/

  files: WifiP2pConfig.java , WifiP2pDevice.java, WifiP2pDeviceList.java ,
         WifiP2pGroup.java ,  WifiP2pInfo.java ,WifiP2pManager.java,
         WifiP2pServiceInfo.java, WifiP2pServiceRequest.java

ㆍaddr: frameworks/base/wifi/java/android/net/wifi/p2p/nsd/

  files: WifiP2pDnsSdServiceInfo.java , WifiP2pDnsSdServiceRequest.java 
         WifiP2pUpnpServiceInfo.java,WifiP2pUpnpServiceRequest.java


  http://developer.android.com/reference/android/net/wifi/p2p/package-summary.html
  http://developer.android.com/reference/android/net/wifi/p2p/nsd/package-summary.html

WIFI Service

  file: frameworks/base/wifi/java/android/net/wifi/p2p/WifiP2pService.java

WIFI JNI

  file: frameworks/base/core/jni/android_net_wifi_Wifi.cpp
  or
  file: frameworks/base/core/jni/android_net_wifi_WifiNative.cpp

WIFI HAL

  file: hardware/libhardware_legacy/wifi/wifi.c  (driver load & control)

WPA_Supplicant Controller

  file: external/wpa_supplicant_8/src/common/wpa_ctrl.c

WPA_Supplicant (wpa_supplicant)

ㆍaddr: external/wpa_supplicant_8/

- Socket control (wlan0)      

  file: wpa_supplicant/ctrl_iface_unix.c

- Network Driver control
  
  file: src/l2_packet/l2_packet_linux.c
                 
- Driver wrapper by using socket

  file: src/drivers/driver_nl80211.c
  file: src/drivers/driver_wext.c
            ......


2. WIFI P2P Android의 전체구조도




그림출처
  http://blog.chinaunix.net/uid-22415790-id-3651048.html



3. Wifi Direct 기본설명 

Wifi Direct , 초기에는 WI-FI P2P라고 불리었으며, 현재 개인들 뿐만 아니라 여러장비들과 서로 통신을 제공을 하고 있습니다
그리고, 여기에 확장 기능들이 들어가고 있습니다.

  • Automated setup
  1. Universal Plug and Play (UPnP), 
  2. Devices Profile for Web Services (DPWS), 
  3. Zero Configuration Networking (ZeroConf)


http://www.wi-fi.org/news-events/newsroom/wi-fi-certified-wi-fi-direct-now-included-in-dlna-interoperability-guidelines

New uses 
위에서 설명했듯이, 개인들과 통신 뿐만아니라 여러장비를 제공을 위해서 새로운 App을 지속적으로 개발 중입니다.

Ref
  http://en.wikipedia.org/wiki/Wi-Fi_Direct

  http://wireless.kernel.org/en/developers/p2p

WIFI Direct Demo
  http://www.androidside.com/docs/resources/samples/WiFiDirectDemo/index.html
  http://hackerj.tistory.com/33

Other Ref. (Spec)
  http://www.wi-fi.org/discover-wi-fi/wi-fi-direct
 


4. RealTek WIFI Direct 



출처:http://dishingtech.blogspot.kr/2012/01/realtek-wi-fi-direct-programming-guide.html


출처:http://dishingtech.blogspot.kr/2012/01/realtek-wi-fi-direct-programming-guide.html


https://5ebe640fc109686c84adf909d706d596a18b3ce0.googledrive.com/host/0B6hvW6XtZ2CdZFlLcjZObjl2YXM/linux/document/RTK_P2P_WFD_Programming_guide.pdf


아래와 같이 one to one or one to multiple 도 가능하다.



출처: http://www.digikey.com/US/EN/techzone/wireless/resources/articles/Wi-Fi-Direct-adds-Peer-to-Peer-Capabilities.html