2014의 게시물 표시

Build & Run Emulator for Tizen on Yocto Project (Tizen Distribution)

Tizen on Yocto를 Tizen Distribution으로 준비 중으로 보인다. 아래 사이트를 참조 - https://wiki.tizen.org/wiki/Build_Tizen_with_Yocto_Project#Fetch_the_source Tizen on Yocto 프로젝트 소스를 다운받아서 Emulator 용도로 빌드 후 실행해 보고자 한다 1. 소스 다운로드 - 아직 완성 단계는 아닌가 보다 - $ giit clone https://github.com/eurogiciel-oss/tizen-Distro.git - 아래 빌드 및 실행 테스트는 master branch의 아래 commit 상에서 진행하였다 -- commit 9c1557060ef6a49d474f07418c95099c33e8c907 -- Date:   Mon Dec 15 18:02:02 2014 +0100 2. 빌드 환경 구성 - $ cd tizen-Distro - $ source ./oe-init-build-env ./build_qemu - conf/local.conf 파일에서 Emulator용도로 빌드하기 위해서 MACHINE 부분을 아래와 같이 수정 -- MACHINE ??= "qemux86" 3. 빌드 - $ bitbake -k tizen-common-core-image-minimal-dev - 빌드 결과물은 아래와 같이 생성되었다. -- KERNEL: [tmp-glibc/deploy/images/qemux86/bzImage-qemux86.bin] -- ROOTFS: [/opt/tizen/tizen_dist/tizen-Distro/build_qemu/tmp-glibc/deploy/images/qemux86/tizen-common-core-image-minimal-dev-qemux86-20141228123222.rootfs.ext3 - 여기서 생성된 커널은 사용하지 않고 이미지만 사용한다 - 위 이미지를 아래와 같이

StarCraft (broodwar game) in Tizen smartphone emulator (using wine)

이미지
예전에 Youtube에 올린 wine으로 Tizen Emulator에서 StarCraft 돌린 영상이 생각나네 현재까지 한 11,000명 정도가 봤군... 이번 기회에 Tizen에 wine을 포팅이나 해볼까...? Tizen mailing list에 wine 포팅 할 사람 없나요? 라는 글을 보니....함 할까 고민중....

[Tizen] Common Emulator

이미지
Tizen Common Emulator에 대해서 간단히 정리하고자 한다 아래 사항은 Tizen wiki를 기준으로 작성을 할 예정이다. 1. Tizen Common Profile이란? - https://wiki.tizen.org/wiki/Common - Tizen common은 Mobile, IVI 등의 common base 이다, vertial profile은 아니다 2. 빌드 - https://wiki.tizen.org/wiki/Emulator 참조 1)  최신 이미지 다운로드 - http://download.tizen.org/releases/daily/tizen/common/latest/images/emulator32-wayland/common-emulator-wayland-mbr-i586/ - 이미지를  다운 받아서 압축을 풀면 "tizen-common.img"이 생성된다 2)  커널을 빌드한다 - $ git clone git://review.tizen.org/sdk/emulator/emulator-kernel - $ cd emulator-kernel - $ git checkout tizen - $ build_x86.sh 3). swap 파티션을 만든다 - $ truncate -s 1024 ./swap.x86 4). qemu를 빌드한다. - $ git clone git://review.tizen.org/sdk/emulator/qemu - $  cd qemu - $ git checkout tizen -$ ./configure \ --target-list=i386-softmmu \ --enable-werror --disable-gtk \ --audio-drv-list=alsa \ --disable-vnc --disable-pie \ --enable-sdl --with-sdlabi=1.2 \ --enable-vigs --enable-yagl \ --en

Open webOS 빌드 및 실행 (LG에 인수된 webOS)

Yocto를 혼자 가지고 놀던 중 아래 사이트를 보게 되었다 http://www.openwebosproject.org/docs/build_guide/ LG에 인수된 Open webOS.... 한번 빌드 하고 실행해 봐야지...ㅋㅋ 우선 소스를 받는다 $ git clone https://github.com/openwebos/build-webos.git 아래와 같이 빌드 전에 미리 환경 설정하는 것을 스크립트로 잘 짜여 놓았다. Ubuntu 14.04 64bit 에서 빌드 및 테스트를 수행해나갔다. 공식 지원되지 않지만 스크립트를 수정해서 빌드를 진행하였다. $ sudo scripts/prerequisites.sh qemux86 emulator로 테스트해보기 위해서 아래와 같이 소스를 fetch한다 $ ./mcf -p 0 -b 0 qemux86 이제 전체 소스를 빌드 한다 $ make webos-image 아래와 같은 에러가 출력 된다. WARNING: Host distribution "Ubuntu-14.04" has not been validated with this version of the build system; you may possibly experience unexpected failures. It is recommended that you use a tested distribution. 12.04가 아니라고 투덜.... 실행 가이드에는 아래와 같이 쓰여 있다 $ cd BUILD-qemux86 $ source bitbake.rc $ runqemu webos-image qemux86 qemuparams="-m 512" kvm serial 하지만 뭔가 이상하다 BUILD-qemux86 디렉터리도 없고 bitbake.rc 파일도 없다 우선 아래와 같이 진행한다 $ cd BUILD $ source oe-init-build-env 이제 다시 실행해 본다 $ r

Android TV Emulator 사용기

이미지
설치 adt-bundle-linux-x86_64-20140702 Android SDK Manager sdk/tools/android 실행  디폴트 추가 설치 (17 packages 설치됨) 설치된 TV 이미지 확인 Android TV ARM EABI v7a System Image Android TV Intel x86 Atom System Image Android Virtual Device(AVD) Manager eclipse를 통해 실행 (프로세스명은 뭐지?) Template 확인 Android TV (1080p) by Google Screen 55.0'', 1920x1080, X-Large xhdpi RAM: 2GiB Android TV (720p) by Google Screen 55.0'', 1280x720, X-Large tvdpi RAM: 2GiB Virtual Device에 설정 가능한 옵션 Device: template 선택 가능 Target: API 레벨 선택 CPU/ABI: x86, ARM 선택 Keyboard: Hardware keyboad present 선택 Skin: 여러 스킨 선택 (TV 스킨 없음) Memory: 사이즈 선택 및 VM heap 사이즈 선택 Internal storage: 사이즈 선택 SD card: 사이즈 등 선택 Emulator options: snapshot, gpu 가속 선택 Emulator 실행 화면 GPU 가속을 사용하지 않으면 화면 출력이 되지 않음 (부팅 실패?) GPU 가속을 선택할 경우 snapshot은 사용 불가 마우스 wheel 사용 가능 IP 설정 ? 대부분의 App 실행이 안됨 adb 접속 # cd sdk/platform-tools/ # ./adb devices List of devices attached  emulator-5554 device #

Usage of repo

0. repo 란?   -Git repository 관리 툴 1. repo 준비   - $ curl https://android.git.kernel.org/repo > repo   - $ chmod a+x repo 2. repo 사용   - $ repo init -u [manifest git url] -g [group] -b [branch] 3. 자주 사용하는 명령어   - $ repo help list   - $ reop sync -j3     -  $ repo sync [PROJECT_LIST]     -  $ repo sync [dir]/*    - $ repo list   - $ repo start [branch명] --all   - $ repo abandon [branch명]   - $ repo diff [PROJECT_LIST]   - $ repo upload [PROJECT_LIST]   - $ repo forall -c "git config user.email dkyun77@gmail.com"

Android(java) 개발 코드 리뷰 팁 하나

울 회사의 어떤분이 정리한 자료를 참조하여 요약 정리 ========================================================= Step #1 -------------- FileInputStream fin = null; try {     fin =  new FileInputStream("testfile");     fin.read()...       fin.close(); // 뭐가 문제? } catch(IOException e) {     e.printStackTrace(); } ========================================================= Step #2 -------------- FileInputStream fin = null; try {     fin =  new FileInputStream("testfile");     fin.read()...     } catch(IOException e) {     e.printStackTrace(); }finally {      fin.close(); // finally를 통해 어떤 상황에서도 호출 보장 } ========================================================= Step #3 -------------- FileInputStream fin1 = null, fin2 = null; try {     fin1 =  new FileInputStream("testfile");     fin1.read()...         fin2 =  new FileInputStream("testfile2"); // FileNotFoundException     fin2.read()...     } catch(IOExce

Android Monkey Test 사용

0. 레퍼런스 안드로이드 레퍼런스 :  http://developer.android.com/guide/developing/tools/monkey.html    1. Monkey Test란? - Monkey는  Android SDK에서 제공하는 Command Line Tool (java) - Emulator나 Device에 random한 event 를 발생 - Event로는 click, touch, gesture, system level event 등이 포함 2. 기본 사용법    - adb shell에서 monkey tool을 실행 - 예 1: $ monkey 200 -- 200개의 이벤트를 발생 3. 이벤트 구분 옵션 - 예 2: $ monkey --pct-touch 20 --pct-motion 60 --pct-syskeys 10 --pct-appswitch 10 1000 --pct-touch <percent>   터치 이벤트 발생 비율을 조정한다.  (터치 이벤트는 화면의 한 곳을 눌렀다 떼는 신호를 말한다) --pct-motion <percent>   모션 이벤트의 발생 비율을 조정한다.  (모션 이벤트는 화면 한 지점을 누르고 무작위로 다른 지점으로 이동 후 떼는 것을 말한다)  --pct-trackball <percent>   트랙 볼 이벤트의 발생 비율을 조정한다.   (하나 이상의 무작위 이동 이벤트를 말하며 가끔씩 한번의 클릭이 올 수 있다)  --pct-nav <percent>  "basic"네비게이션 이벤트의 발생 비율을 조정한다. (네비게이션 이벤트란 H/W(폰)의 상하좌우 방향키 입력을 말한다.)  --pct-majornav <percent>  "major"네비게이션 이벤트의 발생 비율을 조정한다. (백 키나 메뉴 키, 방향키의 가운데 키와 같은 이벤트를

Ubuntu on the Nexus 7

1. 설치 과정 -  https://wiki.ubuntu.com/Nexus7/Installation -  http://thdev.net/363 - 기본적으로 unlock하고 ubuntu-nexus7-installer (in ubuntu desktop pc)를 이용해서  설치하면 아주 쉽게 설치된다. - unlocking 과정 - 1). power  off 상태에서 power 키와 volume down 키를 동시에 누르면  fastboot mode 진입 - 2). 아래와 같은 순서로 진행 - $ sudo fastboot devices - $ sudo fastboot oem unlock - $ sudo fastboot reboot-bootloader - installer를 통한 ubuntu 설치 - $ sudo add-apt-repository ppa:ubuntu-nexus7/ubuntu-nexus7-installer - $ sudo apt-get update - $ sudo apt-get install ubuntu-nexus7-installer - or 이미지 다운로드 받아서  ubuntu 설치 - 다운로드 이미지:  http://cdimage.ubuntu.com/daily-preinstalled/current/ -  $sudo fastboot erase boot -  $sudo fastboot erase userdata -  $sudo fastboot flash boot xxx.bootimg -  $sudo fastboot flash userdata xxx.img -  $sudo fastboot reboot 2. 설치 후기 - wifi는 지원한다. - back/home 등의 버튼이 없어서 불편하다. - Rotation이 동작한다. - 화면 resolution이 nexus 7에 맞지 않다. - 기본 설치 App이 적다. - 화면

qcow2의 encryption 사용해 보기

- qcow/qcow2는 Encryption 지원 - 참고 사이트:  http://blog.bodhizazen.net/linux/kvm-how-to-use-encrypted-images/ 1. Create an encrypted disk (empty password) - $ qemu-img create -o encryption -f qcow2 image.qcow2 10G 2. "set a password" or "convert an encrypted qcow2" - $ qemu-img convert -o encryption -O qcow2 image.qcow2 encrypted.qcow2 3. Determine if you qcow image is encrypted - $ qemu-img info encrypted.qcow2 4. Using the images - rootfs를 암호화 해서 부팅해 보면  - Step1: Ctrl-Alt-2 to access the qemu monitor. - Step2: (qemu monitor) cont [입력] - Step3: password 입력 - Step4: 다시 화면으로 돌아오기 위해 Ctrl-Alt-1 5. 미리 입력된 password로 부팅 시키기 - 위의 4번과 같이 password를 monitor 세션에서 주는 방식이 아니라  임시로 qemu 소스를 수정해서 password를 미리 주려면 어떻게? - block/qcow2.c 파일의 qcow2_open 함수에서 bdrv_set_key로 미리 password 전달되도록 수정 - if (s->crypt_method_header) { - bs->encrypted = 1; - bdrv_set_key(bs, "testpwd"); // 추가된 라인 - }

Android의 desktop 모드

스마트폰을 PC로 사용하자 - 스마트폰의 성능이 좋아지고 스마트폰을 B2B용도로 사용하고자 하는 요구사항이 늘어남 - 스마트폰 운영체제를 PC 처럼 사용하고자 하는 요구사항이 많이 도출되고 있음 - 스마트폰을 docking or hdmi 연결 등을 통해 desktop mode로 전환  - 이전에 모토롤라의 아트릭스가 webtop 이라는 기능을 선보인 적이 있음 - Motorola confirms death of Webtop, laptop accessories  -  http://news.cnet.com/8301-1035_3-57527168-94/motorola-confirms-death-of-webtop-laptop-accessories/) 1. Android - Android 5.0 (jelly bean) 이 desktop mode를 포함할 가능성 높은 (Android 4.2 Multi-user 지원) - 멀티 윈도우 기능  - Multiscreen Multitasking 2000원에 판매 - WINDOWED ANDROID UI  -  http://www.ixonos.com/showcases/concept-multi-window-solution-for-android-tablets/ -  http://hothardware.com/News/Ixonos-Creates-MultiWindow-Solution-For-Android/

Ubuntu for Android 조사

0. 배경 상황   - 현재 관련 자료는 해당 사이트와 인터뷰 및 전시 발표회 동영상 정도 1. Ubuntu for phone - 새로운 모바일 OS - Native QT, OpenGL/GLES and HTML5 App 지원 - Same codebase as the desktop version of Ubuntu - Standard Android drivers 사용 (Android hardware으로 포팅 용이) - Low-end hardware에서도 좋은 성능 발휘 - 2014년 초 릴리즈 계획 - OEM partners에게만 제공  2. Ubuntu for Android - Android/Ubuntu(full pc desktop)가 동시에 동작하는 구조 (커널은 공유) - Docking하면서 Ubuntu OS 부팅 - Android service layer와 tight하게 연동되어 있음 - OEM partners에게만 제공  - 2013년말 쯤 릴리즈 예상 3. Why add anything to Android? - Touch interface vs Pointer-driven experience - Android는 멀티 윈도우 미 지원 (아래 현재 관련 업체 존재) - WINDOWED ANDROID UI  -  http://www.ixonos.com/showcases/concept-multi-window-solution-for-android-1tablets/ -  http://hothardware.com/News/Ixonos-Creates-MultiWindow-Solution-For-Android/ - Full range of desktop applications - web-top, or web only desktop ? - Desktop is a high-productivity mode 3. Features - Web browser - Ch

Survey for Ubuntu ARM Project

1. Introduction   - Ubuntu arm team deal with arm specific build failures, crashes, and general port tasks.  - Both for ARMel and upcoming ARMhf archives - https://wiki.ubuntu.com/ARM 2. Ubuntu 12.04 버전 지원 리스트 - OMAP: Texas Instruments OMAP page - Tegra (AC100): Toshiba AC100 Nvidia Tegra 2 page - IMX53: Freescale IMX53 QuickStart Board Page - ARM Server: ARM Server Page 3. ISO 이미지 다운로드 - Ubuntu Server and Ubuntu Desktop for ARM are a general purpose OS for ARM-based systems only.  - Calxeda ECX-1000 (Server only), Marvell Armada-XP (Server only), TI Panda development boards. -  http://www.ubuntu.com/download/arm 3. qemu Emulator를 이용한 테스트 - pre-built 버전으로 테스트 수행 (karmic: 9.10 버전) - WM는 미포함 (ID/PW = ubuntu/temppwd) - $  qemu-system-arm -M  versatilepb   -cpu cortex-a8  -kernel ./vmlinuz  -hda ubuntu-arm.img  -m 256  -append "root=/dev/sda mem=256M devtmpfs.mount=0 rw" - wget -c  http://w3.impa.br/~gabrield/data/ubuntu-a

dm-crypt에 의한 성능 저하가 얼마일까?

1. 준비 - Encrypted Disk - qemu-img create -f raw dm1.img 2G  - sudo losetup /dev/loop1 dm1.img - sudo cryptsetup luksFormat /dev/loop1  - sudo cryptsetup luksOpen /dev/loop1 encrypt-fs  - sudo mkfs.ext4 /dev/mapper/encrypt-fs - sudo mount /dev/mapper/encrypt-fs ./mount1   - Non-Encrypted Disk - qemu-img create -f raw dm2.img 2G  - sudo losetup /dev/loop2 dm2.img - sudo mkfs.ext4 /dev/loop2 - sudo mount /dev/loop2 ./mount2 2. 테스트 시나리오 - 각 Disk에 대해서 아래 테스트를 10회씩 진행 - sync  - echo 3 > /proc/sys/vm/drop_caches - dd if=/dev/zero of=1G_file_$i  bs=51200k count=20 conv=fsync 2>&1 | grep "MB" - echo 3 > /proc/sys/vm/drop_caches - dd if=1G_file_$i  of=/dev/zero  bs=51200k 2>&1 | grep "MB" - rm 1G_file_$i 3. 테스트 결과 - 10회 테스트중에서 write 값이 최저 제외 - Encrypted Disk - write: (98.2 + 89.6 + 113 + 111 + 84.9 + 99.2 + 110 + 113 + 105)/9 = 102.65 MB/s - read : (122 + 133 + 127 + 131 + 127 + 130 + 134 + 124 + 130)/

dd를 이용한 Disk IO 성능 측정

아래와 같은 스크립트로 성능 측정 자세한 설명은 추후 업데이트 예정  #!/bin/sh i=0 # test iteration LOOP=10 # 1G = 51200k * 20 # 1G = 1024k * 1024 BLOCK_SIZE=51200k COUNT=20 while [ $i -lt $LOOP ] do  #### initialization ##################################################################  i=`expr $i + 1`  echo "== $i iteration =="  # flush file system buffer  sync  #### write test     ##################################################################  # To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches  # cond=fsync: physically write output file data & metadata before finishing  dd if=/dev/zero of=1G_file_$i  bs=$BLOCK_SIZE count=$COUNT conv=fsync 2>&1 | grep "MB"  #### read test      ##################################################################  # To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches  dd if=1G_file_$i  of=/dev/zero  bs=$BLOCK_SIZE 2>&1 | grep "MB"  #### delete

Android Stack Source to Device

이미지
참고사이트:  http://marakana.com/s/post/1044/remixing_android

Android goldfish에서 dm-crypt with LUKS => Disk Encryption

1. 테스트 환경 - Android full source : android-4.2.1_r1 소스 - Android goldfish kernel   2. cryptsetup을 Android 로 포팅 - https://github.com/guardianproject/LUKS/wiki - 위 사이트에서 포팅 및 바이너리 다운로드 가능   3. losetup을 Android 로 포팅 - Android toolbox는 losetup을 지원하지 않음 -  http://benno.id.au/blog/2007/11/14/android-busybox - 위 사이트에서 busybox 바이너리 다운로드 가능   4. Encrypt Disk 생성 및 포멧     - $ qemu-img create -f raw dm.img 10M      - $ sudo losetup /dev/loop0 dm.img     - $ sudo cryptsetup luksFormat /dev/loop0      WARNING!     ========     This will overwrite data on /dev/loop0 irrevocably.       Are you sure? (Type uppercase yes): YES     Enter LUKS passphrase: testpwd     Verify passphrase: testpwd       - $ sudo cryptsetup luksOpen /dev/loop0 encrypt-fs     Enter passphrase for /dev/loop0: testpwd     - $ sudo mkfs.ext4 /dev/mapper/encrypt-fs     - $ sudo cryptsetup luksClose encrypt-fs     - $ sudo losetup -d /dev/loop0     - $ adb push dm.im