홈 > 고객/기술지원 > 기술지원자료
Exynos8895 | Exynos8890 | Exynos7420 | Exynos5422 | Exynos5260 | Exynos5410 | Exynos4412 | S5PV310 | S5PV210 | S5PC110 | S5PC100 | S3C6410 | S3C2450 | iMX6Q | AM3358
 


::: MV V210-LCD 보드 Q & A :::

1. 일정시간 경과 후 LCD 커지는 현상 수정
2. Yaffs 사용 방법
3. RAMDISK Size 변경 방법
4. SD booting card 생성 방법
5. UART 를 이용한 다운로드 방법
6. DVI / HDMI 테스트 방법
7. Froyo 에서 USB storage 사용
8. “ANDROID” log 변경방법
9. Wi-Fi 적용 시 수정사항
10. MiPi 참고 사항
11. MFC 동장 테스트
12. Camera 캡처 후 멈춤 현상 수정방법
13. 마우스 적용하는 방법




::: 1. 일정시간 경과 후 LCD 커지는 현상 수정 :::

kernel_2.6.32_v210\drivers\char 에서 vt.c 이 파일에서 표시한 아래 부분을 수정 합니다 .

수정 전

static int vesa_blank_mode; /* 0:none 1:suspendV 2:suspendH 3:powerdown */

static int vesa_off_interval;

static int blankinterval = 10*60 ;

core_param(consoleblank, blankinterval, int, 0444);

수정 후

static int vesa_blank_mode; /* 0:none 1:suspendV 2:suspendH 3:powerdown */

static int vesa_off_interval;

static int blankinterval = 0 ;

core_param(consoleblank, blankinterval, int, 0444);

위와 같이 수정하신 후에 새롭게 이미지를 컴파일하여 보드에 write하여 테스트를 진행하시길바랍니다 .

 






::: 2. Yaffs 사용 방법 :::

커널엔 이미 “<*> YAFFS2 file system support” 이렇게 yaffs2로 되어있기 때문에 특정 폴더에 mount 해주시면 됩니다 .

경로는 다음을 확인해 보시길 바랍니다 .

#make menuconfig



File systems --->



[*] Miscellaneous filesystems --->



<*> YAFFS2 file system support



위와 같이 설정을 저장 종료하신 후에 새롭게 이미지를 생성한 후에 보드에 write합니다 .

보드 부팅 후 다음과 같이 명령어를 실행하시면 됩니다 .

/ # mount -t yaffs2 /dev/mtdblock5 /opt/

yaffs: dev is 32505861 name is "mtdblock5"

yaffs: passed flags ""

yaffs: Attempting MTD mount on 31.5, "mtdblock5"

yaffs: restored from checkpoint

yaffs_read_super: isCheckpointed 1

/ # cd opt/

/opt # ls

lost+found

/opt #

/opt # vi a.c

djdjdjdjm

skdkd

kdkdk

/opt # ls

a.c         lost+found

/opt #

위처럼 마운트한 후에 파일을 생성하여 저장이 가능한 것을 확인 하실 수 있습니다 .




::: 3. RAMDISK Size 변경 방법 :::

파일 시스템의 size를 수정하기 위해선 두 부분을 수정하면 됩니다

1. 파일시스템 수정

제공해 드린 파일시스템에서 “ mkroot”를 확인하시면 아래 부분을 확인 할 수 있습니다 .

dd if=/dev/zero of=ramdisk.img bs=1k count=32k

여기서 count=32k를 원하시는 size로 수정을 한 후에 파일시스템을 생성하면 됩니다 .


2. 커널 수정

#make menuconfig

Device Drivers  --->

           [*] Block devices  --->

                     (32768) Default RAM disk size (kbytes)


위 설정 부분에 수정 사이즈를 입력하면 됩니다 .





::: 4. SD booting card 생성 방법 :::

SD 부팅을 하기 위해서 따로 tool이나 소스가 필요한 것은 아닙니다 .

아래 방법을 참고하여 작업을 진행하시길 바랍니다 .


1. uboot 소스에서 make를 실행한 후에 다시 ./mkmovi를 실행하시면 u-boot-movi.bin파일이 생성되는 것을 확인 하실 수 있습니다 .



u-boot-movi.bin 을 tftp경로에 복사를 합니다 .(tftp명령어을 이용하여 보드에 write할 폴더에 복사를 하면 됩니다 .)

2. 보드에 SD(mmc0 사용할 것 )카드 삽입한 후에 부팅을 하고 u-boot모드로 진입합니다 .

여기서 SD Card는 사용전에 포맷을 한 후에 사용을 해야 후에 SD 부팅을 실행했을 때 상적으로 동작을 합니다 . 이점 참고하시길 바랍니다 .

u-boot 모드에서 아래 명령어를 실행합니다 .

#tftp 21000000 u-boot-movi.bin

#movi write u-boot 21000000

위와 같이 실행을 하면 작업은 완료가 됩니다 .

3. dip switch(CFG1) 설정

NAND 부팅 : 100001

SD 부팅        : 011001

SD 부팅으로 설정을 한 후에 전원을 인가하시면 u-boot가 실행되는 것을 확인 할 수 있습니다 .







::: 5. UART 를 이용한 다운로드 방법 :::

보드를 부팅하여 u-boot모드로 진입을 합니다 .
u-boot에서 “ ? / help”명령어를 실행하시면 아래와 같은 메시지가 출력됩니다 .

V210 # ?

?       - alias for 'help'

autoscr - run script from memory

base     - print or set address offset

bdinfo  - print Board Info structure

boot    - boot default, i.e., run 'bootcmd'

bootd   - boot default, i.e., run 'bootcmd'

bootelf - Boot from an ELF image in memory

bootm   - boot application image from memory

bootp   - boot image via network using BootP/TFTP protocol

bootvx  - Boot vxWorks from an ELF image

cmp      - memory compare

coninfo - print console devices and information

cp       - memory copy

crc32    - checksum calculation

dcache  - enable or disable data cache

dhcp    - invoke DHCP client to obtain IP/boot params

dnw     - initialize USB device and ready to receive for Windows server (specific)

echo    - echo args to console

erase   - erase FLASH memory

exit    - exit script

flinfo  - print FLASH memory information

go      - start application at address 'addr'

help    - print online help

icache  - enable or disable instruction cache

iminfo  - print header information for application image

imls    - list all images found in flash

imxtract- extract a part of a multi-image

itest   - return true/false on integer compare

test pattern

loadb   - load binary file over serial line (kermit mode)

loads   - load S-Record file over serial line

loady   - load binary file over serial line (ymodem mode)

loop     - infinite loop on address range

md       - memory display

mm       - memory modify (auto-incrementing)

MMC sub systemprint MMC informationmovi - sd/mmc r/w sub system for SMDK board

mtest    - simple RAM test

mw       - memory write (fill)

nand    - NAND sub-system

nboot   - boot from NAND device

nfs     - boot image via network using NFS protocol

nm       - memory modify (constant address)

ping    - send ICMP ECHO_REQUEST to network host

printenv- print environment variables

protect - enable or disable FLASH write protection

rarpboot- boot image via network using RARP/TFTP protocol

reset   - Perform RESET of the CPU

reginfo - print register information

reset   - Perform RESET of the CPU

run     - run commands in an environment variable

saveenv - save environment variables to persistent storage

setenv  - set environment variables

sleep   - delay execution for some time

test    - minimal test like /bin/sh

tftpboot- boot image via network using TFTP protocol

version - print monitor version

V210 #

출력된 메시지 중에서 loadb / loady를 확인 하실 수 있습니다 . 이 명령어를 이용하시면 이미지 다운로드를 serial로 할 수 가 있습니다 .

당사에서는 loadb를 이용하여 이미지 다운로드를 테스트하였습니다 . 테스트한 이미지는 u-boot / zImage입니다 .

아래와 같이 명령어를 실행한 다음 파일을 불러옵니다 .

V210 # loadb 24000000

## Ready for binary (kermit) download to 0x24000000 at 115200 bps...



하이퍼터미널에서 전송 ? 파일 보내기를 클릭합니다 .



“찾아보기”를 클릭하여 파일이 있는 폴더로 이동 다운로드 할 이미지를 클릭합니다 .



파일이 전송되는 모습입니다 .




이미지다운로드가 완료가 된 후에 아래 명령어를 이용하여 NAND Flash에 이미지를 write합니다 .

완료된 후 출력된 메시지

## Ready for binary (kermit) download to 0x24000000 at 115200 bps...

## Total Size      = 0x0028de48 = 2678344 Bytes

## Start Addr      = 0x24000000

V210 #

write 명령어

V210 # nand write 24000000 0 40000                         ? u-boot

V210 # nand write 24000000 00600000 00300000       ? zIamge

파일 시스템은 이미지 size가 커서 다운로드 테스트는 하지 않았습니다 . 방법은 위와 동일합니다





::: 6. DVI / HDMI 테스트 방법 :::

HDMI 테스트 방법

보드와 모니터간에 HDMI케이블을 연결하신 후에 보드를 부팅하시면 자동적으로 모니터에 출력되는 것을 확인 하실 수있습니다 .

DVI 테스트 방법

커널에서 DVI를 추가하시길 바랍니다

#make meunconfig


Device Drivers --->


Graphics support --->


<*> Support for frame buffer devices --->

<*> Sil9134 DVI HDMI device support

위와 같이 설정을 하신 후에 새롭게 이미지를 생성하여 보드에 write하여 테스트를 하시길 바랍니다 .

MVV210-LCD Linux 에서는 DVI만 구현이 되어 있습니다 . 확인 방법의 Android DVI테스트 방법과 동일합니다 .







::: 7. Froyo 에서 USB storage 사용 :::

다음 경로의 파일에 아래 내용을 추가하여 이미지를 다시 새롭게 생성합니다 .

file : vendor/sec/smdkv210/conf/vold.fstab 파일에 다음 내용을 추가합니다 .

dit => dev_mount sda /mnt/sdcard auto /devices/platform/s5pv210-ehci/usb1/1-1/1- 1:1.0/host1/target1: 0:0/ 1:0:0:0/block/sda






::: 8. “ANDROID” log 변경방법 :::

froyo 에서 다음 경로의 파일의 내용을 확인 하시면 log에 관련된 부분을 확인 하실 수 있습니다

File: froyo/system/core/init/init.c

un: static int console_init_action(int nargs, char **args)







::: 9. Wi-Fi 적용 시 수정사항 :::

Linux 에서 검색프로그램인 cscope를 이용하여 “SDKIM”을 검색하시면 수정한 부분을 찾으실 수 있습니다 . 이점 참고하시길 바랍니다 .

Ralink 을 사용하기 위해 당사에서 수정한 파일 위치 .

1) external/dhcpcd/config.h

2) external/quake/quake/src/WinQuake/net_udp.cpp

3) external/wpa_supplicant/Android.mk

4) external/wpa_supplicant/driver.h

5) external/wpa_supplicant/driver_ralink.c

6) external/wpa_supplicant/wpa.h

7) external/wpa_supplicant/wpa_supplicant.c

8) frameworks/base/wifi/java/android/net/wifi/WifiStateTracker.java

9) hardware/libhardware_legacy/wifi/wifi.c

10) system/core/include/private/android_filesystem_config.h

11) system/core/libnetutils/dhcp_utils.c

12) vendor/sec/smdkc110/BoardConfig.mk

그외 init.rc 등 수정을 하시길 바랍니다 .

RT73 WLAN Install 부분

1. Module compole

             1) kernel 수정 .

                           i. include/linux/bounds.h 파일이 있는지 확인합니다 .

                                        헤더파일이 없다면 , 아래 내용으로 파일을 만듭니다 .

                                        #ifndef __LINUX_BOUNDS_H__

                                        #define __LINUX_BOUNDS_H__

                                        #define NR_PAGEFLAGS 22 /* __NR_PAGEFLAGS   @ */

                                        #define MAX_NR_ZONES 2 /* __MAX_NR_ZONES    @ */

                                        #endif

                           ii. make menuconfig 에서 USB Host Enable 합니다 .

2. Driver compile

             1) Makefile 수정

                           i.  LINUX_SRC 에 해당 커널 위치를 명시합니다 .

             2) make 하여 컴파일 합니다 .

             3) 생성된 rt73.ko, rt73.bin, rt73sta.dat 를 root filesystem 의 적당 위치에 복사합니다 .

3. Driver Insertion

             1) File system 의 해당위치에서 , insmod rt73.ko 하고 , 아래 메세지를 확인합니다 .

                           idVendor = 0x148f, idProduct = 0x2573

                           usbcore: registered new interface driver rt73

             2) # ifconfig rausb0 up 하고 ifconfig 하면 , 아래와 같이 나오는지 확인하시길 바랍니다 .

                           rausb0  Link encap:Ethernet  HWaddr D8:5D:4C:92:CA:5D 

                           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

                           RX packets:56 errors:0 dropped:0 overruns:0 frame:0

                           TX packets:13 errors:0 dropped:0 overruns:0 carrier:0

                           collisions:0 txqueuelen:1000

                           RX bytes:5926 (5.7 KiB)  TX bytes:858 (858.0 B)

4. wireless_tools compile

             1) Makefile 수정

                           i. APP_DIR( 실행파일 위치 ) 수정

                           ii. CROSS_COMPILE 수정

             2) make 하여 원하는 경로로 실행파일들이 카피 되는지 확인합니다 .

5. Wireless Network 설정

             1) # ifconfig rausb0 up

             2) # iwlist rausb0 scanning 하면 , 연결 가능한 모든 AP(Access Point) 들이 리스트 됩니다 .

             3) # iwconfig rausb0 essid mvision // 연결할 AP 설정

             4) # iwconfig rausb0 key s:microvision01 //AP 의 WEP Key

???????????? 5) # udhcpc -i rausb0







::: 10. MiPi 참고 사항 :::

MV210-LCD 에서 MiPi관련 사항은 아래를 참고하여 작업을 진행하시길 바랍니다 .

Make menuconfig 에서 아래 사항을 체크합니다 .

make menuconfig

Device Drivers --->

<*> Multimedia support --->

[*] Video capture adapters --->

[*] MIPI-CSI2 Slave Interface support

위 사항을 체크한 후에 종료합니다 .

 

소스 위치

1. File: kernel_2.6.32_v210/arch/arm/mach-s5pv210/mach-smdkv210.c

Fun: struct s3c_platform_camera 에 MIPI CSI를 등록합니다 .

2. File: kernel_2.6.32_v210/drivers/media/video/samsung/fimc/csis.c MIPI CSI 드라이버 입니다 .

3. camera 이니셜을 위한 드라이버를 구현합니다







::: 11. MFC 동작 테스트 :::

아래 명령어를 실행한 후에 mfc-demo를 실행하면 동작하는 것을 확인 하실 수 있습니다 .

당사에서는 컴파일된 이미지를 SD Card에 저장한 후에 실행하였습니다 .

/opt # ls -l /dev/s3c*

ls: /dev/s3c*: No such file or directory

/opt # mdev -s

/opt # ls -l /dev/s3c*

crw-rw----    1 0        0          10, 254 Jan  1 00:00 /dev/s3c-jpg

crw-rw----    1 0        0           1,  13 Jan  1 00:00 /dev/s3c-mem

crw-rw----    1 0        0          10, 252 Jan  1 00:00 /dev/s3c-mfc

crw-rw----    1 0        0         204,  64 Jan  1 00:00 /dev/s3c2410_serial0

crw-rw----    1 0        0         204,  65 Jan  1 00:00 /dev/s3c2410_serial1

crw-rw----    1 0        0         204,  66 Jan  1 00:00 /dev/s3c2410_serial2

crw-rw----    1 0        0         204,  67 Jan  1 00:00 /dev/s3c2410_serial3

/opt # ./mfc-demo

SsbSipMfcEncInit: Encode Init start

SsbSipMfcEncInit: H264 Encode

s3c-fimc: FIMC0 1 opened.

Capture drivers3c-fimc: fimc_qbuf_capture: invalid memory type

 buffer 0 at physical address 0x48970000 mapped to offses3c-fimc: fimc_qbuf_capture:

invalid memory type

t 0 size:462848

VIODIOC_QBUF failed on /ds3c-fimc: fimc_qbuf_capture: invalid memory type

ev/video/fimc0 (Invalid argument)

Capture driver buffer 1 at physical address 0x489s3c-fimc: no external camera device

e1000 mapped to offset 0x1000 size:462848

VIODIOC_QBUF failed on /dev/video/fimc0 (Invalid argument)

Capture driver buffer 2 at physical address 0x48a52000 mapped to offset 0x2000 size:4

62848

VIODIOC_QBUF failed on /dev/video/fimc0 (Invalid argument)

Display width [640], Display height [480]

mfc_wait_for_done: Decode Error Returned Disp Error Status(0), Dec Error Status(124)

mfc_decode_one_frame: MFCINST_ERR_DEC_DONE_FAIL.......(interrupt_flag: 32), (ERR Code

: 124)

SsbSipMfcDecExe: IOCTL_MFC_DEC_EXE failed(ret : -2005)

SsbSipMfcDecExe fail: m_cMfcBuffSize is [30]

SsbSipMfcDecGetOutBuf status is not MFC_GETOUTBUF_DISPLAYABLE (1)

SsbSipMfcDecGetOutBuf status is not MFC_GETOUTBUF_DISPLAYABLE (1)

SsbSipMfcDecGetOutBuf status is not MFC_GETOUTBUF_DISPLAYABLE (1)

SsbSipMfcDecGetOutBuf status is not MFC_GETOUTBUF_DISPLAYABLE (1)

컴파일한 실행파일로 실행할 때 로드가 안되어 있기 때문에 동작이 안 되는 것이라고 합니다 .
이점 참고하시길 바랍니다







::: 12. Camera 캡처 후 멈춤 현상 수정방법 :::

MVV210-LCD Android 2.2 에서 카메라 캡처 후 동작이 멈추는 현상을 아래와 같이 수정을 하시면 해결 할 수 있습니다 . 아래 경로의 파일을 수정하시길 바랍니다 .

\kernel_2.6.32_v210\arch\arm\plat-s5p 폴더에 있는 ‘bootmem.c’ 파일을 아래와 같이 수정을 하시길 바랍니다 .

수정 전

#ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG

{

.id = S3C_MDEV_JPEG,

.name = "jpeg",

. bank = 1,

.memsize = CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG * SZ_1K,

.paddr = 0,

},

#endif

수정 후

#ifdef CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG

{

.id = S3C_MDEV_JPEG,

.name = "jpeg",

.bank = 0,

.memsize = CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG * SZ_1K,

.paddr = 0,

},

#endif

위와 같이 수정을 하신 후에 새롭게 이미지를 생성하여 테스트를 진행하시길 바랍니다 .






::: 13. 마우스 적용하는 방법 :::

Kernel 에서 “make menuconfig”를 실행합니다 .

 

#make menuconfig

Device Drivers --->

[*] HID Devices --->

[*] USB support --->

<*> OHCI HCD support

위와 같이 설정을 한 후에 저장 / 종료를 하고 컴파일을 하여 새롭게 이미지를 생성합니다 .
이미지를 보드에 write하여 테스트하여 동작을 확인하시면 됩니다 .


 
    79 / 1,678,216
서울특별시 구로구 구로3동 235번지 한신IT타워 1004호 TEL. 02-3283-0101 FAX. 02-3283-0160
사업자등록번호 : 116-81-51889 대표자 : 이현재 E-MAIL : sale@microvision.co.kr
COPYRIGHT 2004 (주)마이크로비젼 ALL RIGHTS RESERVED.
%3Cul+class%3D%22Klocation%22%3E%3Cli+class%3D%22first%22%3E%3Ca+href%3D%22..%2Fhome%2F%22%3EHOME%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%22%3E%EA%B3%A0%EA%B0%9D%2F%EA%B8%B0%EC%88%A0%EC%A7%80%EC%9B%90%3C%2Fa%3E%3C%2Fli%3E%3Cli%3E%3Ca+href%3D%22..%2Fhome%2Fsub03.php%3Fmid%3D52%22%3E%EA%B8%B0%EC%88%A0%EC%A7%80%EC%9B%90%EC%9E%90%EB%A3%8C%3C%2Fa%3E%3C%2Fli%3E%3C%2Ful%3E