IPX 라고 불리는 NVR 을 개발하기 위해서 필요한 내용을 기술했다.
Telnet 이용하기
로컬 시리얼 상에서는 실시간으로 로그가 출력되기 때문에, 쉘 상에서 작업이 어렵다. 먼저 텔넷 포트를 열어야 한다.
- '네트워크 → 이메일 → 테스트 이메일 주소' 항목에 'choissi@debug.com' 을 입력하고 적용한다.
- 원격의 PC 에서 IPX 쪽으로 텔넷을 접속한다.
- ID/Password 각각, 'root/itxipx3398' 을 입력한다.
- ADMIN 계정에 대한 패스워드는 '1234 또는 ~qaz1wsx' 이다.
개발 환경 꾸미기
SVN 서버로부터 몇가지 필요한 파일들을 체크아웃해야 한다.
- application - http://consus.intellix.co.kr/svn/dvr/ipx/ipx_host/trunk
빌드하기
#sh make_host.sh
툴체인
#arm-none-linux-gcc
NFS 여부 확인하기
root@c6a816x-evm:~# uname -a Linux c6a816x-evm 2.6.37+ #1 PREEMPT Thu Jun 27 17:39:29 KST 2013 armv7l unknown root@c6a816x-evm:~# df Filesystem 1K-blocks Used Available Use% Mounted on 192.168.100.14:/home/wjkim/filesys_ipx 2836957472 2603406848 87116992 97% / devtmpfs 1024 68 956 7% /dev tmpfs 40 0 40 0% /mnt/.splash none 1024 68 956 7% /dev tmpfs 16384 48 16336 0% /var/volatile tmpfs 166608 0 166608 0% /dev/shm tmpfs 16384 0 16384 0% /media/ram root@c6a816x-evm:~#
NFS 에서 application 실행하기
root@c6a816x-evm:/NFDVR# sh run_ipx.sh
부트로더 환경변수 설정
TI8168_EVM#pri baudrate=115200 autoload=no ethact=88E6095F m3video_fil=dsp_file summer/ipx/ipx_dsp_debug.xe674 debug_console=1 uname=evm uid=79 ipbase=192.168.100 ethbase=00:11:60:ff:00 mkethaddr=setenv ethaddr $ethbase:$uid mkipaddr=setenv ipaddr $ipbase.$uid mkipaddr1=setenv ipaddr $ipbase.1$uid mkipaddr2=setenv ipaddr $ipbase.2$uid mkrootpath=setenv rootpath /home/$uname/filesys_ipx mkinfo=run mkethaddr mkipaddr mkrootpath hostname=ipxdvr set69=setenv uid 69; setenv uname jykim ; run mkinfo set70=setenv uid 70; setenv uname ugie ; run mkinfo set71=setenv uid 71; setenv uname mspark ; run mkinfo set72=setenv uid 72; setenv uname cultfactory ; run mkinfo set73=setenv uid 73; setenv uname choissi ; run mkinfo set74=setenv uid 74; setenv uname jongbina ; run mkinfo set75=setenv uid 75; setenv uname reodi ; run mkinfo set76=setenv uid 76; setenv uname okssi ; run mkinfo set77=setenv uid 77; setenv uname seongho ; run mkinfo set78=setenv uid 78; setenv uname sungho ; run mkinfo set79=setenv uid 79; setenv uname evm ; run mkinfo set98=setenv uid 98; setenv uname jimook98 ; run mkinfo set92=setenv uid 92; setenv uname yesing ; run mkinfo set80=setenv uid 80; setenv uname captainnn ; run mkinfo set81=setenv uid 81; setenv uname hakeya ; run mkinfo set82=setenv uid 82; setenv uname hosik ; run mkinfo set83=setenv uid 83; setenv uname pakkhman ; run mkinfo set84=setenv uid 84; setenv uname choi81 ; run mkinfo set85=setenv uid 85; setenv uname hmkong ; run mkinfo set86=setenv uid 86; setenv uname emitest ; run mkinfo set23=setenv uid 23; setenv uname theweak ; run mkinfo mkipaddr2 set31=setenv uid 31; setenv uname etazeus ; run mkinfo mkipaddr2 set32=setenv uid 32; setenv uname mybusisi ; run mkinfo mkipaddr2 set33=setenv uid 33; setenv uname kbulls ; run mkinfo mkipaddr2 set34=setenv uid 34; setenv uname wiggls ; run mkinfo mkipaddr2 set35=setenv uid 35; setenv uname lady0319 ; run mkinfo mkipaddr2 set36=setenv uid 36; setenv uname asm ; run mkinfo mkipaddr2 set37=setenv uid 37; setenv uname khj776 ; run mkinfo mkipaddr2 set38=setenv uid 38; setenv uname null ; run mkinfo mkipaddr2 set39=setenv uid 39; setenv uname null ; run mkinfo mkipaddr2 param1=setenv bootargs console=ttyO2,115200n8 noinitrd rw param2=setenv bootargs $bootargs ip=$ipaddr:$serverip:$gatewayip:$netmask:IPXNVR:eth0:on,::::IPXNVR:eth1:off param2_noip=setenv bootargs $bootargs ip=::::IPXNVR:eth0:off,::::IPXNVR:eth1:off param3=setenv bootargs $bootargs root=/dev/nfs nfsroot=$serverip:$rootpath,nolock param3_yaffs2=setenv bootargs $bootargs root=/dev/mtdblock9 rootfstype=yaffs2 param4=setenv bootargs $bootargs mem=352M vram=16M earlyprintk eth=$ethaddr param4_m3=setenv bootargs $bootargs mem=352M vram=16M earlyprintk eth=$ethaddr m3vpss_addr=$m3vpss_load_addr m3vpss_max_size=$m3vpss_max_size m3video_addr=$m3video_load_addr m3video_max_size=$m3video_max_size dsp_addr=$dsp_load_addr dsp_max_size=$dsp_max_size mkparam=run param1 param2 param3 param4 mkparam_yaffs2=run param1 param2 param3_yaffs2 param4 mkparam_yaffs2_noip=run param1 param2_noip param3_yaffs2 param4 mkparam_m3=run param1 param2 param3 param4_m3 bootnand=nboot.i $tmp_addr 0 $nand_ker_base boottftp=tftp $tmp_addr $bootfile bootcmd0=run mkparam; tftp $tmp_addr $bootfile; bootm $tmp_addr; bootcmd1=run mkparam_yaffs2 bootnand;bootm bootcmd2=fwup_boot; run mkparam_yaffs2_noip bootnand;bootm bootcmd3=run mkparam_yaffs2_noip boottftp;bootm bootcmd4=run mkparam_m3;tftp $tmp_addr $bootfile; run ul_m3vpss_img ul_m3video_img ul_dsp_img; bootm $tmp_addr; bmode0=setenv bootcmd $bootcmd0 bmode1=setenv bootcmd $bootcmd1 bmode2=setenv bootcmd $bootcmd2 bmode3=setenv bootcmd $bootcmd3 bmode4=setenv bootcmd $bootcmd4 m3vpss_load_addr=0xd0000000 m3video_load_addr=0xd2000000 dsp_load_addr=0xd4000000 ul_m3vpss_img=tftp $m3vpss_load_addr $m3vpss_file ul_m3video_img=tftp $m3video_load_addr $m3video_file ul_dsp_img=tftp $dsp_load_addr $dsp_file m3vpss_file=pakkhman/netra/ipx1648p_m3vpss_debug.xem3 m3video_file=pakkhman/netra/ipx1648p_m3video_debug.xem3 dsp_file=pakkhman/netra/ipx1648p_dsp_debug.xe674 m3vpss_max_size=0x01500000 m3video_max_size=0x01500000 dsp_max_size=0x01500000 tmp_addr=0x81000000 ubootfile=pakkhman/u-boot.noxip.bin ubootfile_loader=pakkhman/u-boot.noxip_loader.bin uur=tftp $tmp_addr $ubootfile; nand erase 0xc0000 0x120000; nand write.i $tmp_addr 0xc0000 120000 uur_loader=tftp $tmp_addr $ubootfile_loader; nand erase 0x0 0xc0000; nandecc hw 2;nand write.i $tmp_addr 0x0 80000;nandecc hw 0 nand_ker_len=0x500000 nand_ker_base=0x800000 ulkerimg=tftp $tmp_addr $bootfile nand_ker_up=run ulkerimg nand_ker_er nand_ker_wr nand_ker_wr=nand write.i $tmp_addr $nand_ker_base $nand_ker_len nand_ker_er=nand erase $nand_ker_base $nand_ker_len nand_ker_rd=nand read.i $tmp_addr $nand_ker_base $nand_ker_len filesize=AAD01 fileaddr=D4000000 gatewayip=192.168.100.1 netmask=255.255.255.0 serverip=192.168.100.14 bootargs=console=ttyO2,115200n8 noinitrd rw ip=192.168.100.46:192.168.100.14:192.168.100.1:255.255.255.0:IPXNVR:eth0:on,::::IPXNVR:eth1:off root=/dev/nfs nfsroot=192.168.100.14:/home/summer/filesys_ipx,nolock mem=352M vram=16M earlyprintk eth=00:11:5f:f0:98:2f m3vpss_addr=0xd0000000 m3vpss_max_size=0x01500000 m3video0 ipaddr=192.168.100.68 // 수정할 것 bootfile=realizing/IPX/ipx1648p_giga_uImage // 수정할 것 rootpath=/home/wjkim/filesys_ipx // 수정할 것 bootcmd=run mkparam_m3;tftp $tmp_addr $bootfile; run ul_m3vpss_img ul_m3video_img ul_dsp_img; bootm $tmp_addr; stdin=serial stdout=serial stderr=serial ethaddr=00:11:5f:f0:98:2f output_mode=hdmi res=1080p-60 res_hdmi=1080p-60 res_vga=UNKOWN bootdelay=1 ver=U-Boot 2010.06-svn51350 (Aug 22 2013 - 09:19:47) Environment size: 5833/131068 bytes TI8168_EVM#
부팅모드 설정
bmode 2 | nand |
bmode 4 | nfs |
현재 filesystem 사용량
Filesystem Size Used Available Use% Mounted on /dev/root 233.0M 207.0M 26.0M 89% / devtmpfs 1.0M 68.0K 956.0K 7% /dev none 1.0M 68.0K 956.0K 7% /dev tmpfs 16.0M 80.0K 15.9M 0% /var/volatile tmpfs 162.7M 0 162.7M 0% /dev/shm tmpfs 16.0M 0 16.0M 0% /media/ram