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


::: MV4412-LCD 보드 Q & A :::

1. “make menuconfig” 에러 해결 방법
2. MV4412-LCD Linux Rootfs 사이즈 수정 방법
3. MV4412-LCD 해상도 수정 방법
4. MV4412-LCD Linux NFS 부팅 방법
5. MV4412-LCD SD 부팅 Card만드는 방법
6. MV4412-LCD eMMC erase 방법
7. MV4412-LCD RTC 적용 방법
8. MV4412-LCD Android 문자 수정 방법
9. MV4412-LCD Android SD booting 방법
10. MV4412-LCD Android Busybox 적용 방법
11. MV4412-LCD 첫 부팅 시 도움말 제거 방법
12. MV4412-LCD USB 드라이버 설치 방법



::: 1. “make menuconfig” 에러 :::

# make menuconfig
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 ***
 *** Install ncurses (ncurses-devel) and try again.
 ***
make[1]: *** [scripts/kconfig/dochecklxdialog] 오류 1
make: *** [menuconfig] 오류 2
#

Kernel 에서를 새롭게 모듈을 적용하기 위하여 ”make menuconfig”를 실행할 때 위와 같이 에러가 발생한 경우는 “ncurses”커서제어 라이브러리가 없기 때문에 문제가 발생한 것이다 . 아래 명령어를 실행하여” libncurses-dev”를 설치한 후에 다시 “ make menuconfig”를 실행하면 된다 .

#sudo apt-get install libncurses5-dev

 




::: 2. MV4412-LCD Linux Rootfs 사이즈 수정 방법 :::

Rootfs 컴파일시 아래와 같이 “CP” 오류가 발생하는 것은 Rootfs사이즈 문제로 인하여 발생 .

cp: cannot create directory `tmp/sdcard\': No space left on device
cp: cannot create directory `tmp/share\': No space left on device!
cp: cannot create directory `tmp/sys\': No space left on d! evice
cp: cannot create directory `tmp/tmp\': No space left on device
cp: cannot create directory `tmp/usr\': No space left on device
cp: cannot create directory `tmp/var\': No space left on device

Rootfs 에 포함되어 있는 내용이 스트립트에 설정되어 있는 사이즈보다 크기 때문에 “CP”오류가 발생하는 것이다 . 사이즈 수정 시 mkoot파일과 kernel을 수정해야 한다 .

# vi mkoot

[ 수정 전 ]

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

[ 수정 후 ]

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

Kernel 수정 .

#make menuconfig

           Device Drivers  --->

                     [*] Block devices  --->

                                ( 13000 ) Default RAM disk size (kbytes)

“( xxxxx ) Default RAM disk size (kbytes)” Rootfs 에 적용한 사이즈로 입력



::: 3. MV4412-LCD 해상도 수정 방법 :::

해상도 수정방법 .

Kernel 에 LCD관련 드라이버가 있으며 그 드라이버에서 해상도를 수정하여 테스트를 진행하면 된다 .

PATH: /mv4412-kernel-3.0.15/drivers/video/Samsung

File: s3cfb_wa101s.c

# vi s3cfb_wa101s.c

static struct s3cfb_lcd wa101 = {

//      .width  = 1366,

        .width  = 1024,

        .height = 600,

        .bpp    = 24,

.freq   = 60



::: 4. MV4412-LCD Linux NFS 부팅 방법 :::

Linux NFS 부팅 .

  • Kernel 설정 .

#make menuconfig

[*] Networking support  --->

           Networking options  --->

                     [*]   IP: kernel level autoconfiguration

File systems  --->

           [*] Network File Systems  --->

                     [*]   Root file system on NFS

  • Kernel 설정을 완료한 후에 이미지 생성 .

#make

생성된 이미지를 보드에 write한 후에 u-boot모드에서 아래와 같이 설정 .

# setenv bootargs root=/dev/nfs init=/linuxrc rw nfsroot= HOST PC IP : filesystem 위치 nfsaddrs= TARGET IP:HOST PC IP :192.168.1.1:255.255.255.0::eth0:off console=ttySAC1,115200 ethaddr=00:40:5c:26:0a:5b

# saveenv

설정을 완료한 후에 부팅



::: 5. MV4412-LCD SD 부팅 Card만드는 방법 :::

SD card 로 SD 부팅 card만들기 .

작업을 진행하기 전에 먼저 사용할 SD card를 format을 한 후에 진행을 해야 이미지를 SD Card에 write하여도 문제가 발생하지 않고 정상적으로 올라간다 .

▶ u-boot 소스에서 다음 경로로 진입 .

# cd u-boot-mv4412-dev/sd_fuse/smdk4412



제공한 이미지 (bl2_12000MHz…. / E4412_S.bl1… / tzsw.bin / u-boot.bin)를 위 경로의 폴더에 복사 .

# cp u-boot.bin u-boot-mv4412-dev/sd_fuse/smdk4412

( 나머지 이미지도 동일하게 복사 .)




▶명령어 실행 .

#sudo ./sd_fusing.sh /dev/sdb E4412_S.bl1.bin



위와 같이 정상적으로 성공을 하면 보드에서 부팅이 되는지 확인 .



▶ 보드 스위치 설정 .



SD card 를 아래 SD port에 삽입 후에 전원 ON.

[ 출력 메시지 ]

U-Boot 2010.12 (Oct 17 2012 - 09:34:16) for SMDK4412

CPU: S5PC220 [Samsung SOC on SMP Platform Base on ARM CortexA9]

APLL = 1200MHz, MPLL = 800MHz

DRAM:  1023 MiB

vdd_arm: 1200

.

.

.

MMC read: dev # 0, block # 1063, count 8192 ... 8192 blocks read: OK

completed

reading RFS..device 0 Count 9255, Start 2048

MMC read: dev # 0, block # 9255, count 2048 ... 2048 blocks read: OK

completed

Wrong Image Format for bootm command

ERROR: can't get kernel image!

SMDK4412 #



::: 6. MV4412-LCD eMMC erase 방법 :::

eMMC 에 write되어 있는 이미지를 erase하는 방법 .

이미지를 write할 때 기본적을 erase가 되지만 잘 지워지지 않을 때가 있다 . 이럴 때에는 전체적을 eMMC를 지운 후에 다시 작업을 진행하는 것이 좋다 .

여기서 주의 할 점은 부팅 모드에 따라서 MMC 인식 드라이버 번호가 다르다는 것이다 .

eMMC 부팅일 때 : eMMC 번호는 “ 0 ”

SD 부팅일 때 : eMMC 번호는 “ 1 ”

아래 테스트는 “eMMC부팅 ”에서 진행 .

  • u-boot 모드 진입 .

MV4412 # help mmc

mmc read <device num> addr blk# cnt

mmc write <device num> addr blk# cnt

mmc rescan <device num>

mmc erase <boot | user> <device num> <start block> <block count>

mmc list - lists available devices

MV4412 #

  • eMMC Erase 하기 .

MV4412 # mmc erase boot 0 0 0

Erase all from 0 block

START: 0 BLOCK: 2047

high_capacity: 1

Capacity: 7634944

Erase

....................

                        *** NOTICE ***

*** High Capacity(higher than 2GB) MMC's erase minimum size is 512KB ***

1.0 MB erase Done

MMC erase Success.!!

MV4412 # mmc erase user 0 0 0

Erase all from 0 block

START: 0 BLOCK: 7634943

high_capacity: 1

Capacity: 7634944

Erase

........................................

........................................

.

.

.

........................................

........................................

                        *** NOTICE ***

*** High Capacity(higher than 2GB) MMC's erase minimum size is 512KB ***

3.640 GB erase Done

MMC erase Success.!!

MV4412 #



::: 7. MV4412-LCD RTC 적용방법 :::

RTC 를 사용하기 위해선 현재 설정되어 있는 CPU RTC를 사용하면 안되고 PIMC RTC를 사용해
야 한다 . kernel에서 아래와 같이 설정을 한 후에 다시 컴파일을 진행하여 이미지를 생성하고
보드에 write하여 RTC동작 테스트를 진행하시면 됩니다 .

#make menuconfig

[ 수정 전 ]

Device Drivers --->

[*] Real Time Clock --->

< > Samsung S5M series

<*> Samsung S3C series SoC RTC

[ 수정 후 ]

Device Drivers --->

[*] Real Time Clock --->

<*> Samsung S5M series

< > Samsung S3C series SoC RTC



::: 8. MV4412-LCD Android 문자 수정 방법 :::

아래 경로에서 파일에서 원하는 문자로 설정을 한 후에 새롭게 적용하여 문자 변경 확인 .

PATH: /ics-mv4412-4.0.3_0815/system/core/init

FILE: init.c

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

{

int fd;

char tmp[PROP_VALUE_MAX];

……………………

if( load_565rle_image(INIT_IMAGE_FILE) ) {

fd = open("/dev/tty0", O_WRONLY);

if (fd >= 0) {

const char *msg;

msg = "\n"

"\n"

"\n"

"\n" // console is 40 cols x 30 lines

"\n"

"\n"

" A N D R O I D ";

write(fd, msg, strlen(msg));

close(fd);

}

}

return 0;



::: 9. MV4412-LCD Android SD booting 방법 :::

kernel 수정 .

#make menuconfig

Device Drivers  --->

           <*> MMC/SD/SDIO card support  --->

                     < >   Mobile Storage Host Controller Interface support

ICS 수정

PATH: ics-mv4412-4.0.3_0815/device/samsung/smdk4x12/conf

File: init.smdk4x12.rc

[ 수정 전 ]

on fs

    mount ext4 /dev/block/ platform/dw_mmc/by-num/p2 /system ro wait

    mount ext4 /dev/block/ platform/dw_mmc/by-num/p3 /data wait nosuid nodev noatime nomblk_io_submit

    mount ext4 /dev/block/ platform/dw_mmc/by-num/p4 /cache wait nosuid nodev noatime nomblk_io_submit

[ 수정 후 ]

on fs

    mount ext4 /dev/block/ mmcblk0p2 /system ro wait

    mount ext4 /dev/block/ mmcblk0p3 /data wait nosuid nodev noatime nomblk_io_submit

    mount ext4 /dev/block/ mmcblk0p4 /cache wait nosuid nodev noatime nomblk_io_submit

PATH: /ics-mv4412-4.0.3_0815/device/samsung/smdk4x12

File: BoardConfig.mk

[ 수정 전 ]

BOARD_EMMC_BSP := true

BOARD_HAS_TWOSTORAGES := true

TARGET_USERIMAGES_USE_EXT4 := true

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 314572800

BOARD_USERDATAIMAGE_PARTITION_SIZE := 14994636800

BOARD_FLASH_BLOCK_SIZE := 4096

[ 수정 후 ]

BOARD_EMMC_BSP := false

BOARD_HAS_TWOSTORAGES := true

TARGET_USERIMAGES_USE_EXT4 := true

BOARD_SYSTEMIMAGE_PARTITION_SIZE := 314572800

BOARD_USERDATAIMAGE_PARTITION_SIZE := 14994636800

BOARD_FLASH_BLOCK_SIZE := 4096



::: 10. MV4412-LCD Android Busybox 적용 방법 :::

#Busybox

busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, for GNU/Linux 2.6.16, stripped

위와 같이 컴파일이 되어야 android에서 정상적으로 동작을 함 .

#make menuconfig

Busybox Settings --->

Build Options --->

[*] Build BusyBox as a static binary (no shared libs)

[ ] Force NOMMU build

[*] Build with Large File Support (for accessing files > 2 GB)

위와 같이 busybox를 설정한 후에 컴파일을 진행한다 . 컴파일하여 생성된 폴더를 ICS로 복사한다 .

PATH: /out/target/product/smdk4x12/system/busybox (busybox 폴더는 새롭게 생성 .)

*ICS

스크립트 파일 수정 .

Path: /ics-mv4412-4.0.3_0815/device/samsung/smdk4x12/conf

File: init.smdk4x12.rc

아래 위치에서 경로설정 .

on early-init

export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin:/system/busybox/bin:/system/busybox/sbin

export LD_LIBRARY_PATH /vendor/lib:/system/lib

폴더 권한 설정 .

# For MV TBC Combo module

insmod /system/lib/modules/mlan.ko

insmod /system/lib/modules/bt8xxx.ko

chmod 0777 /system/busybox/bin

chmod 0777 /system/busybox/sbin

Path: /ics-mv4412-4.0.3_0815/system/core/rootdir

File: init.rc

아래 위치에서 경로 설정 .

# setup the global environment

export PATH /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin:/system/busybox/bin:/system/busybox/sbin



::: 11. MV4412-LCD 첫 부팅 시 도움말 제거 방법 :::

아래 경로의 파일을 수정하여 테스트를 진행해 보시길 바랍니다 .

ics/packages/apps/Launcher2/src/com/android/launcher2 폴더에서 “ Launcher.java”파일을 아래와 같이 수정 .

[ 수정 전 ]

     /* Cling related */

     private static final String PREFS_KEY = "com.android.launcher2.prefs";

     private boolean isClingsEnabled() {

         // disable clings when running in a test harness

         if(ActivityManager.isRunningInTestHarness()) return false;

         return true;

[ 수정 후 ]

     /* Cling related */

     private static final String PREFS_KEY = "com.android.launcher2.prefs";

     private boolean isClingsEnabled() {

         // disable clings when running in a test harness

         if(ActivityManager.isRunningInTestHarness()) return false;

return false ;



::: 12. MV4412-LCD USB 드라이버 설치 방법 :::

장치 관리자에서 ID를 확인 .

속성에서 “하드웨어 ID” 선택하면 값에서 ID를 확인 할 수 있다 .




확인한 ID값을 USB 드라이버 .inf파일에 추가 한다 .

[Google.NTx86]

; HTC Dream

%SingleAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C01

%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01

%SingleBootLoaderInterface% = USB_Install, USB\VID_0BB4&PID_0FFF

; HTC Magic

%CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C03&MI_01

;

;Moto Sholes

%SingleAdbInterface% = USB_Install, USB\VID_22B8&PID_41DB

%CompositeAdbInterface% = USB_Install, USB\VID_22B8&PID_41DB&MI_01

;

;Google NexusOne

%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_0D02&MI_01

%SingleAdbInterface% = USB_Install, USB\VID_18D1&PID_4E11

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E12&MI_01

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E22&MI_01

%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_0002

;Samsung SMDK

%SingleBootLoaderInterface% = USB_Install, USB\VID_18D1&PID_4E26

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E26&MI_01

추가한 후에 “드라이버 소프트웨어 업데이트 ”를 선택하여 설치한다 . 이때 수동으로 수정한 파일 위치를 지정하여 설치를 진행해야 한다 .



 
    52 / 1,654,312
서울특별시 구로구 구로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