Tuesday, October 24, 2017

SNP 3120 네트워크 카메라 설정하기

SNP 3120 Network Camera @Ubuntu 16.04

장치 초기화

  • 기존 설정된 네트워크 카메라의 IP주소를 모르기 때문에, 장치 초기화(Reset) 필요. 
    • 하단부의 버튼을 10초 정도 누르고 있으면, 초록색 LED가 빠르게 깜빡이면서, 뭔가 재작동 하는 듯한 동작을 한다. 
    • 초기 암호
      • admin: 4321
    • 초기 IP주소
      • 192.168.1.100

네트워크 환경 설정

  • 해당 카메라와의 네트워크 통신을 위해, 클라이언트의 IP 환경 바꾸기
$ sudo ifconfig enp0s31f6 192.168.1.200 netmask 255.255.255.0 broadcast 192.168.1.1
$ ping 192.168.1.100
  • 웹브라우저에서 캡처 영상을 보거나 카메라 설정을 위한 관리 페이지 접근을 위해서, Micorsoft Silverlight 설치 필요. 
    • 하지만, MS Silverlight 가 더이상 개발 중단되면서 우분투 OS 자체를 지원하지 않음. 이에 대한 대안으로 pipelight라는 패키지를 설치해서 호환성을 이용하도록 함.
$ sudo add-apt-repository ppa:pipelight/stable
$ apt-get update
$ sudo apt-get install --install-recommends pipelight-multi
$ sudo pipelight-plugin --update
$ pipelight-plugin --enable silverlight
    • Plugin silverlight5.1 is now enabled
    • (혹시 5.0 버전을 사용한다면) $ pipelight-plugin --disable silverlight --enable silverlight5.0
      • 현재 시점에서 크롬 및 파이어폭스 최신 버전에서 더이상 Silverlight를 지원하지 않는다. 
        • 즉, 최신 버전의 브라우저에서는 User Agent Overrrider 또는 Switcher 플러그인 모두 소용 없음. 해결 방안으로는 Firefox v52 ESR 버전을 다운로드 받아서 강제 실행해야 한다. 
        • 이제, 브라우저 주소창에 다음 명령을 입력하여 설치된 플러그인 목록을 확인해 보자. 
          • about:plugins
        • Firefox를 구동하여, Silverlight의 동작을 확인할 수 있는 TEST 페이지 방문.
        • http://192.168.1.100 접근시 카메라 설정 가능함.

      RTSP 스트림 확인

        • RTSP 환경으로 스트림 영상 받아보기
          • VLC Media Player로, 네트워크 카메라로부터의 스트림 영상을 확인해 볼 수 도 있다.
            • rtsp://admin:4321@192.168.1.100/profile1/media.smp
          • python 환경에서 받아보기 위해서는, OpenCV 라이브러리 설치가 필요함.
            • 일단, python에서 다음의 명령으로 현재 설치된 OpenCV가 지원하는 라이브러리를 확인해 본다.
              • import cv2
              • print(cv2.getBuildInformation())
            • $ sudo apt-get install ffmpeg libavresample-dev libavutil-dev libavcodec-dev libavformat-dev libswscale-dev
            • 그러나, conda의 opencv, conda menpo 채널의 opencv3, apt-get을 통한 libopencv 라이브러리 설치 모두 OpenCV에 연동된 FFmpeg이 같이 컴파일되어 있지 않아 실시간 영상을 받아오거나 화면에 뿌릴 수 없음. 이에 OpenCV 소스를 직접 다운로드 받아 빌드한 뒤 cv2.so 파일을 만들어서 이용해야 함.

        Monday, October 23, 2017

        분산 파일 시스템 다루기 @CentOS

        배경

        • CentOS 환경에서 복수의 하드디스크로 DFS(분산 파일 시스템) 환경 구성하기

        HDD 설정

        • HDD 확인
          • $ vi /proc/partitions
            • 가용한 모든 파티션을 확인
          • $ df -T
            • 현재 마운트된 파티션 및 종류 확인
          • $ ls /dev/disk/by-id/
            • 가용한 모든 디스크 확인
          • $ sudo fdisk -l
            • 현재 디스크 상태 확인
            • 또는 $ sudo fdisk -l /dev/sdb
        • partitioning 
          • 2TB 이상 디스크는 fdisk에서 파티셔닝 불가; parted 사용 필요
          • $ yum install parted
            • parted 설치
          • $ parted -l
            • 현재 파티션 정보 확인
          • $ parted /dev/sdb
            • 파티션 설정
            • $$ mklabel
              • gpt
            • $$ print
            • $$ unit TB
            • $$ mkpart primary 0.0TB 4.0TB
            • $$ print
            • $$ quit
        • 디스크 타입 포맷
          • $ sudo mkfs.ext4 /dev/sdb
            • mkfs.ext4는 root 권한에서(sudo -i 또는 /sbin을 path에 설정하여) 수행 가능.
        • 포맷된 디스크를 리눅스 특정 위치(=mounting point)에 마운트
          • 디스크를 마운트 시킬 때 noatime, nodirtime 방식으로 처리하는 것이 성능 개선.
            • 파일 access가 발생하는 시간(atime)을 매번 기록하면 성능 저하되므로.
          • $ cd /
          • $ sudo mkdir -p data/1
          • $ sudo mount /dev/sdb /data/1
          • $ sudo mkdir -p /data/1/dfs/dn
          • $ sudo chown -R ksb:ksb /data/1/dfs/dn
          • $ df -kh
            • 마운트된 상태 및 사용량 확인
          • (부팅 시 자동 로딩) $ blkid 
            • (디스크 확인) $ ls -l /dev/disk/by-uuid
        • 최종 결과 확인
          • $ cat /etc/fstab
            • 마운트된 상태 확인
              • 마운트가 되어있지 않다면 UUID 확인해서 추가해야함.
          • $ reboot

          참고

          • 파일시스템
            • ex3
              • Red Hat Enterprise Linux 5 기본 파일 시스템
              • 2.3TB 이상을 지원하지 않음.
              • 서브 디렉토리 최대 개수 32,000
            • ex4
              • Red Hat Enterprise Linux 6 기본 파일 시스템
              • 최대 16TB 지원
            • xfs
              • 16TB 이상의 파일도 지원
          • 여러개 디스크 하나로 묶기
            • LVM(Local Volumn Management)
              • 각 디스크별로 LVM 물리 볼륨 설정한 뒤
              • 볼륨 그룹 생성해서 LVM 물리 볼륨 선택
              • LVM 논리 볼륨 생성한 뒤 마운트 지점 설정
          • Hadoop
            • 64MB 블록 단위로 파일 보관
            • HDFS2.0부터는 Active-Standby 지원
            • Name Node의 경우, 자체적인 3배수 복제를 통해 고가용성 지원 --> 물리적 Disk 백업 불필요
            • 리눅스의 LVM 사용 금지
            • JBOD (just bunch of disks) vs RAID
            • RAID 구성
              • Name Node는 RAID 5 (또는 여유가 된다면 10)
              • Data Node는 JBOD >> RAID 0
          • RAID
            • 0 = Striping
              • 단점: 한쪽 디스크가 깨지면, 전체 데이터를 사용하지 못하게 됨. 
              • 참고 블로그1
              • $ mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
                • 2개의 하드 디스크를 raid level 0으로 md0이라는 이름으로 생성.
              • (확인) $ mdadm -D /dev/md0
                • (RAID 비활성화) $ madam -S /dev/md0
              • (포맷) $ mkfs.ext4 /dev/md0
              • (마운트) $ mkdir /mp | mount /dev/md0 /mp
              • (적절한 접근 권한 설정) $ sudo chmod -R 755 /media/New/hdfs/data
              • (적절한 접근 권한 설정) $ sudo chown -R user:user /media/New/hdfs/data
              • (부팅시 자동 마운트) $ mdadm -D -s /dev/md0 > /etc/mdadm.conf
              • (fstab에 정보 추가) $ vi /etc/fstab
          • 하둡에 새로운 하드 디스크 추가시
            • hdfs-site.xml 파일에 dfs.data.dir 부분에 새로운 마운트를 콤마로 구분하여 입력하기.
              • 예: /data/1/dfs/dn, /data/2/dfs/dn
            • 특정 data node만 사용하는 하드디스크라면 해당 data node 만 재시작. 만약, 전체 클러스터가 공유하는 하드디스크라면, dfs 자체를 재시작.

          Friday, October 20, 2017

          Narrowband-IoT (NB-IoT) 개념

          NB-IoT

          • 개념
            • = Narrowband-IoT = 협대역 사물인터넷
              • 한번 충전해서 몇 년 정도는 꾸준히 데이터를 보내줄 수 있도록.
              • (이미, GSM/LTE 망에서 수백 kbps 이하의 데이터 전송 속도와 10km 이상의 광역 서비스를 지원하지만) 더 넓은 지역을 더 오래 커버하기 위해.
            • 기존 이동통신망을 통해 저전력 광역망(Low Power Wide Area Network, LPWAN)을 지원하는 협대역 사물 인터넷 표준
          • 특징
            • 에릭슨에 따르면, NB-IoT는 단 200kHz 대역폭으로 IoT 기기 20만 대를 지원.
            • 기존 통신망의 틈새 대역으로도 충분하니 통신망 가용/충돌 걱정 필요 적음.
            • 배터리 교환 없이 최대 10년간 작동하는 IoT 모듈을 만들 수 있다고 함.
            • 유사 경쟁 기술에 비해 장점: 2016년 표준 제정 완료.
              • 저전력 IoT 기술은 NB-IoT 외에도 LoRaWAN, 시그폭스(Sigfox) 등이 있지만 이들은 호환성이나 표준 인증 관련해서 논란에 휩싸여 있음.
            • 통신업체 상용화 움직임 시작.
              • 미국 버라이즌과 T모바일, AT&T 등이 NB-IoT를 지원하는 것으로 알려져 있음.
          • 응용
            • 기존 네트워크를 활용해 넓은 지역을 커버하고 전력 소비가 적기 때문에 수도 검침, 위치 추적용 기기 등 넓은 지역에 걸쳐 다수의 기기를 설치하는 초저전력 IoT 사업 모델에 적합.
              • 스마트 주차 미터기나 이동수단 트래킹, 스마트 도둑 알리미 서비스
          • 저전력 장거리(LPWA) 네트워크 기술 비교
            • NB-IoT (3GPP)
              • 전파도달 15km; 면허대역; 150kbps; 배터리 10년
              • KT, LG유플러스
            • LoRa (비표준)
              • 전파도달 11km; 비면허대역; 10kbps; 배터리 10년
              • SKT
            • Wi-SUN (IEEE 802.15)
              • 전파도달 8~10km; 비면허대역; 300kbps; 배터리 15년
              • 짧은 시간내에, 데이터 전송량이 많고 측정 주기가 짧은 경우(예: 검침 분야)에 유용
              • 지자체 자가망 구축에 유리.
            • Sigfox

          Windows 10 High DPI 에서 Java application의 Font 조절

          Reference:  How do I run Java apps upscaled on a high-DPI display?  @superuser.com Summarize 1) Find java.exe you installed.  2) Righ...