
준비물 : EDISON, BREAKOUTBOARD, 무선 인터넷 공유기(인터넷되야됨)
Linux UVC driver 지원하는 web cam, otg cable
(UVC 지원 카메라 싸이트 : http://www.ideasonboard.org/uvc/)
준비작업
● Breakout board j21 -> 7 ~ 15v 전원 인가
● Breakout board j3 -> PC 연결
● INTEL EDISON BOARD 드라이버 설치
● Yocto 1.6.1 이상 확인 ( Platform Flash Tool Lite 사용 최신폼으로 펌업)
보드접속
● PUTTY 실행해서 설치된 COMPORT 접속 (bps: 115200)
● 계정명 root, 비번은 없음
● Internet 되는 공유기에 접속
configure_edison --wifi
UVC 드라이버 및 페키지 다운및 설치
vi /etc/opkg/base-feeds.conf
(수정할 파일)
● LINUX 명령을 이용해서 찾아서 수정(ls,cd,pwd, vi)
● 아래와 같이 내용을 추가 (vi base-feed.con) I 수정, : wq 저장종료
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
● 내용 추가후 실행
opkg update
결과
Downloading http://repo.opkg.net/edison/repo/all/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/all/Packages.gz.
Updated list of available packages in /var/lib/opkg/all.
Downloading http://repo.opkg.net/edison/repo/edison/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/edison/Packages.gz.
Updated list of available packages in /var/lib/opkg/edison.
Downloading http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Updated list of available packages in /var/lib/opkg/core2-32.
● git 설치
opkg install git
결과
Installing git (2.0.1-r0) on root.
Downloading http://repo.opkg.net/edison/repo/core2-32/git_2.0.1-r0_core2-32.ipk.
Configuring git.
● WEB SERVER 프로그램 복사
git clone https://github.com/drejkim/edi-cam
결과
Cloning into 'edi-cam'...
remote: Counting objects: 93, done.
remote: Total 93 (delta 0), reused 0 (delta 0), pack-reused 93
Unpacking objects: 100% (93/93), done.
Checking connectivity... done.
● UVC driver 설치
find /lib/modules/* -name 'uvc'
드라이버가 설치되어있음 아래 내용이 출력
/lib/modules/3.10.17-poky-edison+/kernel/drivers/media/usb/uvc
위 내용일 출력 되지 않으면
opkg install kernel-module-uvcvideo
● UVC 카메라 j16 삽입
root@myedison:~# lsmod | grep uvc
uvcvideo 71516 0
videobuf2_vmalloc 13003 1 uvcvideo
videobuf2_core 37707 1 uvcvideo
● 비디오 장치 노드 확인
root@myedison:~# ls -l /dev/video0
crw-rw---- 1 root video 81, 0 Nov 10 15:57 /dev/video0
● FFMPEG 설치
cd /home/root/edi-cam/bin
./install_ffmpeg.sh
FFMPEG 설치결과
Creating ~/bin directory if it doesn't exist...
Removing old versions of ffmpeg...
Downloading ffmpeg...
--2016-02-11 08:12:53-- http://johnvansickle.com/ffmpeg/releases/ffmpeg-release-32bit-static.tar.xz
Resolving johnvansickle.com... 199.79.62.21
Connecting to johnvansickle.com|199.79.62.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14387580 (14M) [application/x-tar]
Saving to: '/home/root/bin/ffmpeg-release-32bit-static.tar.xz'
100%[======================================>] 14,387,580 922KB/s in 30s
2016-02-11 08:13:27 (472 KB/s) - '/home/root/bin/ffmpeg-release-32bit-static.tar.xz' saved [14387580/14387580]
Unpacking...
Cleaning up.
다운로드 에러시 vi edtor install_ffmpeg.sh 파일 열어서
vi install_ffmpeg.sh
echo "Downloading ffmpeg..."
wget --no-check-certificate -P /home/root/bin http://johnvansickle.com/ffmpeg/re
--no-check-certificate 추가
● node.js packages 설치
cd /home/root/edi-cam/web/server
npm install
● Stream server 실행
node server.js
.
결과
WebSocket server listening on port 8084
HTTP server listening on port 8080
Listening for video stream on port 8082
Stream Connected: 127.0.0.1:52995 size: 320x240
● Stream client vier
http://myedison.local:8080
● 해상도 및 프레임 변경 ( 해상도를 높이면 속도에 영향을 미침)
cd /home/root/edi-cam/bin
vi 에디터 do_ffmpeg.sh 변경
/home/root/bin/ffmpeg/ffmpeg -s 1280x720 -f video4linux2 -i /dev/video0 -f mpeg1
-b 1000k -r 20 http://127.0.0.1:8082
cd /home/root/edi-cam/web/client
index.html 화면 width, height 수정
● 부팅후 자동실행
cd /etc
cd init.d
vi start_stream_server.sh
// start_stream_server.sh 내용
#!/bin/sh
cd /home/root/edi-cam/web/server
node server.js
chmod a+x start_stream_server.sh
update-rc.d start_stream_server.sh defaults
결과
Adding system startup for /etc/init.d/start_stream_server.sh
● 부팅후 자동실행 삭제
update-rc.d -f start_stream_server.sh remove
● 고정 ip 할당방법
$ vi /etc/wpa_supplicant/wpa_cli-actions.sh
if [ "$CMD" = "CONNECTED" ]; then
kill_daemon udhcpc /var/run/udhcpc-$IFNAME.pid
# udhcpc -i $IFNAME -p /var/run/udhcpc-$IFNAME.pid -S
ifconfig $IFNAME 192.168.0.222 netmask 255.255.255.0
route add default gw 192.168.0.1
fi