2014년 1월 25일 토요일

안드로이드 ICS 에서 마우스 우측 키 클릭 시 BACK Key가 되지 않는 문제

http://www.mangoboard.com
http://http://cafe.naver.com/embeddedcrazyboys

안드로이드 ICS 에서 마우스 우측 키 클릭 시 BACK Key가 되지 않는 문제

아래와 같이 수정하면 됩니다. 


망고210,망고310,망고220, 망고520 모두 적용하면 됩니다. 

W/InputDispatcher( 2249): Dropping split motion event because the pointer count is 1 but we expected there to be 2 pointers.  This probably means we received a broken sequence of pointer ids from the input device.
frameworks\base\services\input\InputReader.cpp 파일에서
아래와 같이 수정하면 된다.
void CursorButtonAccumulator::process(const RawEvent* rawEvent) {
    if (rawEvent->type == EV_KEY) {
        switch (rawEvent->scanCode) {
        case BTN_LEFT:
            mBtnLeft = rawEvent->value;
            break;
        case BTN_RIGHT:
                                //crazyboys 2014/01/26
            //mBtnRight = rawEvent->value;
            mBtnBack = rawEvent->value;
            break;
        case BTN_MIDDLE:
            mBtnMiddle = rawEvent->value;
            break;
        case BTN_BACK:
            mBtnBack = rawEvent->value;
            break;
        case BTN_SIDE:
            mBtnSide = rawEvent->value;
            break;
        case BTN_FORWARD:
            mBtnForward = rawEvent->value;
            break;
        case BTN_EXTRA:
            mBtnExtra = rawEvent->value;
            break;
        case BTN_TASK:
            mBtnTask = rawEvent->value;
            break;
        }
    }
}

감사합니다. 

2014년 1월 13일 월요일

[Exynos4412 Mango220] Android Jellybean 4.1.1 소스 릴리즈 2014-01-14

http://cafe.naver.com/embeddedcrazyboys
http://www.mangoboard.com/

릴리즈 수정 사항 

1. 3축 가속도,자이로센서 포팅 완료 (가속도 확인 필요)
2. Android 테스트 어플 추가(Gyro,Accel,Touch)
3. MAC address 설정 Patch (u-boot)
4. dual camera 지원 (커널)
5. dual camera지원, Capture 안되는 문제 수정 (Android)
6. 안드로이드 마켓 포팅

소스 다운로드

## Mango220 build and boot
# Environment
http://cafe.naver.com/embeddedcrazyboys/22475

#Compile
[ u-boot compile ]

./build_uboot clean
./build_uboot config
./build_uboot

[ kernel compile ]
---------SD/MMC Kernel Config ---------------
#sdmmc boot and 7inch cap touch 1024x600 , 5M CAM
./build_kernel clean
[CAM_A]
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_mt9p111_5M_CAM_A_defconfig
[CAM_B] 
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_mt9p111_5M_CAM_B_defconfig
./build_kernel

#sdmmc boot and 7inch cap touch 1024x600 , TVP5150
./build_kernel clean

[CAM_A]
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_tvp5150_CAM_A_defconfig
[CAM_B]
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_tvp5150_CAM_B_defconfig


./build_kernel


#sdmmc boot and 7inch cap touch 1024x600 , SR130PC10 1.3M 
./build_kernel clean

[CAM_A]
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_sr130pc10_1_3M_CAM_A_defconfig
[CAM_B]
./build_kernel defconfig mango220_android_sdmmc_7inch_1024_600_sr130pc10_1_3M_CAM_B_defconfig


./build_kernel
  
----------eMMC Kernel Config ----------------------------

#eMMC boot and 7inch cap touch 1024x600 , 5M CAM
./build_kernel clean
[CAM_A]
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_mt9p111_5M_CAM_A_defconfig
[CAM_B] 
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_mt9p111_5M_CAM_B_defconfig
./build_kernel

#eMMC boot and 7inch cap touch 1024x600 , TVP5150
./build_kernel clean

[CAM_A]
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_tvp5150_CAM_A_defconfig
[CAM_B]
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_tvp5150_CAM_B_defconfig


./build_kernel


#eMMC boot and 7inch cap touch 1024x600 , SR130PC10 1.3M 
./build_kernel clean

[CAM_A]
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_SR130PC10_1_3M_CAM_A_defconfig
[CAM_B]
./build_kernel defconfig mango220_android_emmc_7inch_1024_600_SR130PC10_1_3M_CAM_B_defconfig


./build_kernel

[ android compile ]
tar xf android-jb411-xxx.tgz
tar xf android-jb411-xxx-prebuilts.tgz

[SDMMC boot ]
$ cd android-jb411
$ vi device/crazyboys/mango220/BoardConfig.mk
BOARD_USES_EMMC := false
#BOARD_USES_EMMC := true

수정 후 컴파일 

[EMMC boot ]
$ cd android-jb411
$ vi device/crazyboys/mango220/BoardConfig.mk
#BOARD_USES_EMMC := false
BOARD_USES_EMMC := true

수정 후 컴파일 

How to compile

./build_android.sh


#SD Boot 최초 한번 
SD card를 linux pc에 삽입
#df 
명령으로 디바이스 확인
# cd image
#How To Fusing
$ dmesg | tail
[12403.632015] usb 2-5: new high-speed USB device number 25 using ehci_hcd
[12403.856263] hub 2-0:1.0: unable to enumerate USB device on port 5
[12483.752014] usb 2-5: new high-speed USB device number 26 using ehci_hcd
[12483.976252] hub 2-0:1.0: unable to enumerate USB device on port 5
[12513.801490] sd 9:0:0:0: [sdd] 15644672 512-byte logical blocks: (8.01 GB/7.45 GiB)
[12513.802983] sd 9:0:0:0: [sdd] No Caching mode page present
[12513.802986] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[12513.807109] sd 9:0:0:0: [sdd] No Caching mode page present
[12513.807113] sd 9:0:0:0: [sdd] Assuming drive cache: write through
[12513.808249]  sdd: sdd1 sdd2 sdd3 sdd4

#image 

sudo ./sdwriter sdd 220 bin

#Boot mode
SD CH2  : Off[1], ON, Off, Off, Off, Off[6]
eMMC CH4: Off[1], Off, On, Off, On, Off[6]




[Linux host pc ubuntu 12.0.4 ] 
[icanjji@icanjji-pc image]$ lsusb 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 05e3:0716 Genesys Logic, Inc. USB 2.0 Multislot Card Reader/Writer
Bus 002 Device 005: ID 18d1:0002 Google Inc. 

Mango220 <-> usb otg <-> Linux PC 연결 후 

"lsusb" 명령으로 드라이버 인식을 확인 합니다. 

[SD/MMC and eMMC fusing command ]
## 8GB 
fdisk -c 0 500 1000 300
fatformat mmc 0:1
fastboot

## Host PC 
sudo ./fastboot flash fwbl1 E4412_S.bl1.SMDK.MR3.bin
sudo ./fastboot flash bl2 E4412_S.bl2.SMDK.MR3.bin.signed
sudo ./fastboot flash bootloader u-boot.bin
sudo ./fastboot flash tzsw E4412_S.tzsw.SMDK.MR3.bin.signed

sudo ./fastboot flash kernel zImage
sudo ./fastboot flash ramdisk ramdisk-uboot.img
sudo ./fastboot -w
sudo ./fastboot flash system system.img


sudo ./fastboot flash kernel zImage;sudo ./fastboot flash ramdisk ramdisk-uboot.img;sudo ./fastboot -w;sudo ./fastboot flash system system.img

[env]
setenv bootcmd "movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 40008000 41000000"




## Window PC only

드라이버 설치 image 디렉토리 )

adb_usb_driver 디렉토리 
mango220-how-to-adb-driver.pdf

[eMMC only start ]
Boot switch : 3, 5 ON
SD/MMC card insert
## u-boot

emmc partition 0 1 0
mmc erase boot 0 0 0; mmc erase user 0 0 0
[eMMC only end ]


[SD/MMC and eMMC fusing command ]
## 8GB 
fdisk -c 0 500 1000 300
fatformat mmc 0:1
fastboot


image 디렉토리에서 dos command 실행

## Host PC 
fastboot flash fwbl1 E4412_S.bl1.SMDK.MR3.bin
fastboot flash bl2 E4412_S.bl2.SMDK.MR3.bin.signed
fastboot flash bootloader u-boot.bin
fastboot flash tzsw E4412_S.tzsw.SMDK.MR3.bin.signed

fastboot flash kernel zImage
fastboot flash ramdisk ramdisk-uboot.img
fastboot -w
fastboot flash system system.img




# u-boot ethernet 

eth1addr 변수를 꼭 지정하고 해야합니다.
ex) setenv eth1addr 00:40:5c:26:0a:5c

인터페이스는 다음과 같이 선택합니다.
0번 포트 선택: setenv ethact smc911x-0

## fusing via tftp 
[ u-boot ip ]
setenv ipaddr 192.168.3.20; setenv serverip 192.168.3.9; setenv gatewayip 192.168.3.1; setenv netmask 255.255.255.0

[ bootloader fusing ]
==> set boot mode to eMMC CH0
tftp 41000000 E4412_S.bl1.SMDK.MR3.bin; emmc open 0; movi write zero fwbl1 0 41000000; emmc close 0
tftp 41000000 E4412_S.bl2.SMDK.MR3.bin.signed; emmc open 0; movi write zero bl2 0 41000000; emmc close 0
tftp 41000000 u-boot.bin; emmc open 0; movi write zero u-boot 0 41000000; emmc close 0
tftp 42000000 E4412_S.tzsw.SMDK.MR3.bin.signed; emmc open 0; movi write zero tzsw 0 42000000; emmc close 0

[ Kernel fusing ]
tftp 41000000 zImage; movi write kernel 0 41000000


[tftp boot]
setenv bootcmd "tftp  40008000 zImage ;movi read rootfs 0 41000000 100000;bootm 40008000 41000000"

[ SD Env ]
setenv bootcmd "movi read kernel 0 40008000;movi read rootfs 0 41000000 100000;bootm 40008000 41000000"