Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... ·...

90
SKKU Embedded Software Lab. 87 1 Tizen Porting on Odroid U3

Transcript of Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... ·...

Page 1: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

1

Tizen Porting on Odroid U3

Page 2: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

2

• Building a kernel

• Building a Tizen platform

• Bootloader

• Configuring Partitions & Platform Image Fusing

• Configure platform

• Working check

• Trouble shooting

Index

Page 3: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

3

Building a kernel

Page 4: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

4

• Setting for kernel build– Installing required libraries

• Enter the following command in terminal

• sudo apt-get install libncurses5-dev build-essential

Default Environment Setting

Page 5: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

5

• Source Code download– Gerrit (https://review.tizen.org/gerrit/#/)

Kernel Check

Page 6: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

6

• Gerrit

Kernel Download

Page 7: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

7

• Kernel source download– git clone tizen:platform/kernel/linux-3.10

• Set branch– Perform code version management

– Check version list

• “git branch –a” -> Run in target directory

– Checkout to Tizen barnch

• git checkout tizen

Kernel Download

Page 8: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

8

• Check cross toolchain– Arm architecture can be compiled in the X86 environment

– Automatically installed with Tizen SDK

• Path : ~/tizen-sdk/tools/arm-linux-gnueabi-gcc-4.5

Cross Compile Configure

Page 9: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

9

• Two Options1. Manual config – Export cross compile information

• export ARCH=arm

• export CROSS_COMPILE=/”SDK PATH”/tizen-sdk/tools/arm-linux-gnueabi-gcc-4.5/bin/arm-linux-gnueabi-

2. Edit makefile

• Various configuration options for compile or build

• Edit makefile in kernel directory “gedit Makefile”

• Edit ARCH & CROSS_COMPILE

Cross Compile Configure

Page 10: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

10

• Defconfig– Kernel configuration file

– Position in ./arch/arm/configs/

– Default tizen defconfig is “tizen_defconfig”

• Apply odroid defconfig– make tizen_odroid_defconfig

Apply Defconfig

Page 11: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

11

• Change kernel config using make menuconfig

Kernel Configuration

Page 12: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

12

• Temperature problem in tizen default config– The temperature is too high in performance governor

– Change governor from performance to ondemad– CPU Power Management -> CPU Frequency scaling -> Default CPUFreq

governor

Change CPU Governor

Page 13: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

13

• Support Odroid WiFi module (RTL8192)– Networking support -> Wireless

• Enable 80211 protocol support

– Device Driver -> Network device support -> Wireless LAN

• Wireless device driver config

WiFi Support

Page 14: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

14

• Enable Bluetooth support for tizen– Networking support > Bluetooth subsystem support

– Bluetooth device drivers

Bluetooth Support

Page 15: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

15

• Enable Rfkill– Amall userspace tool to query the state of the rfkill switches,

buttons and subsystem interfaces

– Networking support

Bluetooth Support 2

Page 16: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

16

• Current CPU Driver version does not match with DDK

• Default GPU driver version is changed in latest version– Change from R4P0 to R3P2 version

Change Default GPU Driver [1/3]

Page 17: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

17Change Default GPU Driver [2/3]

-Graphics support

-ARM GPU configuration

-Mali-400 support

Page 18: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

18Change Default GPU Driver [3/3]

Change to R3P2 version

-Select MALI Ver

Page 19: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

19

• Make zImage– sudo make zImage –j 4

– Set number of thread “-j 4”

• Typically set about 1.5 times the number of CPU threads

Kernel Build

Page 20: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

20

• What is device tree– Data structure for describing hardware

– Can be described in a data structure that is passed to the operating system at boot time

– Data structure itself is a simple tree of named nodes and properties

– File organization

• dtsi : platform common

• dts : board specific

• dtb : binary file

Device Tree

Page 21: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

21

• Make Device Tree– make exynos4412-odroidu3.dtb

• Make final zIamge– cat arch/arm/boot/zImage arch/arm/boot/dts/exynos4412-

odroidu3.dtb > ./zImage

– Created zImage in the root directory of the kernel

Kernel Build

Page 22: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

22

Building a Tizen platform

Page 23: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

23

• Three image files– platform.img

– data.img

– ums.img

• • Refer to “Tizen-Platform-Build” (Previous class)

Tizen Platform Image

Page 24: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

24

Bootloader

Page 25: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

25

• Download Rpm package– u-boot-2014.10-16.1.armv7l.rpm

http://download.tizen.org/live/Tizen:/Common/arm-wayland/armv7l/u-boot-2015.01-19.3.armv7l.rpm

• Decompress Rpm pakage– rpm2cpio u-boot-2014.07-9.3.armv7l.rpm | cpio –idmv

• Copy u-boot-mmc.bin from ./var/tmp/u-boot to current directory

Tizen u-boot Binary Download

Page 26: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

26

• U-boot bootloader– Boot process

• Rom(In SOC) -> bl1 -> bl2(->uboot.bin)

Additional Binary Download

Need Bl1.bin / bl2.bin

Page 27: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

27

• Download binary & script – Only signed file can be executed for odroid

• $ wget -q https://github.com/hardkernel/U-Boot/raw/odroid-v2010.12/sd_fuse/bl1.HardKernel

• $ wget -q https://github.com/hardkernel/U-Boot/raw/odroid-v2010.12/sd_fuse/bl2.HardKernel

• $ wget -q https://github.com/hardkernel/U-Boot/raw/odroid-v2010.12/sd_fuse/tzsw.HardKernel

• $ wget -q https://github.com/hardkernel/U-Boot/raw/odroid-v2010.12/sd_fuse/sd_fusing.sh

• Edit sd_fusing.sh – vi sd_fusing.sh

Additional Binary Download

if=../u-boot.bin

Page 28: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

28

• Check device node after connecting sd reader– ls /dev/sd*

– In general, node is set to sdb

• Set execute permission– chmod +x sd_fusing.sh

• Fusing – sudo ./sd_fusing.sh /dev/sdb

Fusing

Page 29: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

29

Configuring Partitions & Platform Image Fusing

Page 30: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

30

• Tizen partition configuration– 7 partitions : mmcblk0p1 ~ mmcblk0p7

– MBR(Master Boot Record) is only supports up to four partitions

Partition Information

Page 31: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

31

• Use important partitions– Boot, platform, data, ums

Partition Information

PartitionMountPoint

Option Description

/dev/mmcblk0p1 /csa Rw Configuration Saved Area

/dev/mmcblk0p2 /boot Ro Kernel image

/dev/mmcblk0p3 - - Reserved

/dev/mmcblk0p4 /mnt/csc RwCustomer Software Configuration , default language, time, etc.

/dev/mmcblk0p5 / Ro Platform

/dev/mmcblk0p6 /opt Rw Data, App, etc

/dev/mmcblk0p7 /opt/media rw User space

Page 32: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

32

• Manually set partition by gparted– Install gparted

• sudo apt-get install gparted

– Create partition except first 2mb space

• Space bootloader & MBR

Partition Configuration 1

Page 33: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

33Partition Configuration 1

Sapce for Uboot

Page 34: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

34

• Automatic partition setup by using scripts– Create mkpar.sh file

Partition Configuration 2

#!/bin/bash

DISK=$1SIZE=`sfdisk -s $DISK`SIZE_MB=$((SIZE >> 10))

BOOT_SZ=128PLATFORM_SZ=2048DATA_SZ=3072let "UMS_SZ = $SIZE_MB - $BOOT_SZ - $PLATFORM_SZ - $DATA_SZ"

BOOT=bootPLATFORM=platformDATA=dataUMS=ums

if [[ $UMS_SZ -le 100 ]]then

echo "We recommend to use more than 4GB disk"exit 0

fi

echo "Label dev size"echo $BOOT" " $DISK"1 " $BOOT_SZ "MB"echo $PLATFORM" " $DISK"2 " $PLATFORM_SZ "MB"echo $DATA" " $DISK"3 " $DATA_SZ "MB"echo $UMS" " $DISK"4 " $UMS_SZ "MB"

MOUNT_LIST=`mount | grep $DISK | awk '{print $1}'`for mnt in $MOUNT_LISTdo

umount $mntdone

echo "Remove partition table..." dd if=/dev/zero of=$DISK bs=512 count=1 conv=notrunc

sfdisk --in-order --Linux --unit M $DISK <<-__EOF__2,$BOOT_SZ,0xE,*,$PLATFORM_SZ,,-,$DATA_SZ,,-,,,-__EOF__

mkfs.vfat -F 16 ${DISK}1 -n $BOOTmkfs.ext4 -q ${DISK}2 -L $PLATFORM -Fmkfs.ext4 -q ${DISK}3 -L $DATA -Fmkfs.ext4 -q ${DISK}4 -L $UMS -F

Page 35: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

35

• Set execute permission– chmod +x mkpar.sh

• Execute script with node name– sudo ./mkpar.sh /dev/sdb

Partition Configuration 2

Page 36: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

36

• Use three platform images– platform.img / data.img / ums.img

– Platform.img : 2nd partition

– Data.img : 3rd partition

– Ums.img : 4th partition

• Use dd command– sudo dd if=./platform.img of=/dev/sdb2 bs=512k

– sudo dd if=./data.img of=/dev/sdb3 bs=512k

– sudo dd if=./ums.img of=/dev/sdb4 bs=512k

Image Flash

Page 37: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

37

• Resolve partition size problem by gparted– Partition size is not displayed properly because entire partition

image

– Use check function of gparted

Partition Resize

Page 38: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

38

• Perform same work for other partitions

Partition Resize

Displayed properly

Page 39: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

39

• don’t need to flash kernel image if you use TizenUboot– Copy zImage to 1st boot partition

Kernel Image Copy

Page 40: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

40

• Kernel modules build & install– Execute in kernel build directory

1. Module build

• sudo make modules

2. Module install

• Make directory

– mkdir platform

• Mount platform partition

– sudo mount /dev/sdb2 ./platform

• Install modules

– sudo make INSTALL_MOD_PATH=./platform modules_install

Kernel Module Copy

Page 41: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

41

Configure Platform

Page 42: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

42

• Platform image mount– Make directory for mount

• mkdir platform

– Mount platform image

• sudo mount /dev/sdb2 ./platform

Prepare for Platform Configuration

Page 43: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

43

• Change mount partition in systemd– Path : ./usr/lib/systemd/system/local-fs.target.wants

– Mount special file system & storage

– Delete unused mount service • Csa.mount

• Boot.mount

Mount Option

Edit Edit

Edit

Page 44: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

44

• Chage mount device name in systemd– Change root partition

• -.mount : /dev/mmcblk0p5 -> /dev/mmcblk0p2

– Change data partition

• Opt.mount : /dev/mmcblk0p6 -> /dev/mmcblk0p3

– Change ums partition

• Opt-usr.mount : /dev/mmcblk0p7 -> /dev/mmcblk0p4

Mount Option

Page 45: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

45

• Edit fstab– Specify the required mount operations

– Path : /etc/fstab

– Annotating all option

Mount Option

Page 46: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

46

• Samsung Debug Bridge (Similar function with ADB와)– Can connect ODROID-U3 with Host PC

• Tizen on ODROID-U3:– Need to set SDB daemon.

SDB

Page 47: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

47

1. Create a script to run before starting SDBD1. Activate Sdb device

– chmod +x pre-sdbd.sh

SDB: Activation [1/3]

#!/bin/bashecho sdb > /sys/class/usb_mode/usb0/funcs_fconfecho 1 > /sys/class/usb_mode/usb0/enablesdbd

/bin/pre-sdbd.sh

Page 48: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

48

2. Change SDBD service file– Modified so that the script is running in the SDB service

SDB: Activation [2/3]

[Unit]Description=sdbdAfter=default.target

[Service]Type=forkingEnvironment=DISPLAY=:0PIDFile=/tmp/.sdbd.pidRemainAfterExit=yesExecStartPre=/bin/bash /bin/pre-sdbd.shExecStart=/usr/sbin/sdbd

[Install]WantedBy=multi-user.target

/usr/lib/systemd/system/sdbd.service

script to perform before the start sdbd service

Run after the multi-user.target

Page 49: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

49

2. SDBD service activation– Select one of the following methods

1) Manual activation

Make a symbolic link to sdbd.service at /usr/lib/system/systemd/system/multi-user.target.wants

2) Auto activation

Enter the following command after connecting odroid via UART

- systemctl enable sdbd.service

SDB: Activation [3/3]

Page 50: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

50

• Install USB driver for SDB– Install “SAMSUNG_USB_Driver_for_Mobile_Phones.exe”

Install Device Driver [1/2]

Page 51: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

51

• Install Uart device driver– Uart Interface driver

– CP210xVCPInstaller_x64.exe

Install Device Driver [2/2]

Page 52: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

52

Working check

Page 53: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

53Hardware Connection

AC Adapter

Odroid VU Touch

HDMI

AC Adapter

WiFI or Bluetooth

UART

SD Card

USB

Odroid U3

Page 54: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

54

• Putty Intall– Linux

• Apt-get install putty

– Windows

• http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe

• Putty Config– Linux

– Windows

• Device manager -> Check port number

UART Connection by Putty

Page 55: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

55

• Caution – Connect HDMI cable after power on

• The following screen output to putty

Odroid Boot

Page 56: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

56

• When the booting is completed, you can connect to the device vi UART

– Login ID : root

Tizen Platform Login

Page 57: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

57

• Install sdb– sudo apt-get install sdb

• Connect odroid to PC with the USB cable

• Check that the device has been recognized in vmware

– Connect “Samsung slp” device

SDB Connection 1

Page 58: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

58

• Check sdb connection– “sdb devices”

– “sdb shell”

SDB Connection 2

Page 59: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

59

Trouble shooting

Page 60: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

60

• • Hardware platforms are different

Change Various Settings for Odroid

RD-PQTizen reference phone

Odroid U3

StorageDisplay Input

Page 61: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

61

• If there is no input for a certain period of time, device enters sleep state

– Can’t use sdb, UART in sleep state

– Activated by pressing the power button

• Disable power-manager.service order to avoid entering entering into a sleep state– Remove symbolic link “power-manager.service” in

/usr/lib/system/systemd/system/multi-user.target.wants

• • Or should change the power-manager service

Power Management Features

Page 62: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

62

• Search source code in gerrit

• Download source code

• Check & change branch

0. Edit Power-manager Service [1/5]

Page 63: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

63

• Pm_core.c code– Trans_table: operations in power states

– Change action of sleep state from sleep to LCDOFF

0. Edit Power-manager Service [2/5]

Page 64: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

64

• Build with GBS

• Check package

– Power-manager-1.3.23-9.armv7l.rpm

• Output

– Power-manager-debuginfo-1.3.23-9.armv7l.rpm

• For debug

– Power-manager-debugsource-1.3.23-9.armv7l.rpm

• Source code

0. Edit Power-manager Service [3/5]

Page 65: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

65

• Copy the package file to odroid via sdb

• Install package

– Uvh : File update

– Force : Force install

– Nodeps : disregard dependency

• Check installed package

• To remove package

0. Edit Power-manager Service [4/5]

Page 66: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

66

• Use systemctl– Can check the current status of the service that are managed

by the Systemd

– Check power-manager

0. Edit Power-manager Service [5/5]

Service name state descryption

Page 67: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

67

• Device Dependent X– Is connected to the display on the Xorg

– DDX in the tizen does not operate properly if there is no lcd.

1. Display Output - Xorg DDX [1/2]

Page 68: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

68

• Replace DDX– File name : exynos_drv.so

• Download : https://drive.google.com/file/d/0B3hOqlhVI7BvbkdtNnM5alZlVDQ/view?usp=sharing

– Copy the replacement file to under path• /usr/lib/xrog/module/driver/

• Get sdb root permission & File push– sdb root on

– sdb push exynos_drv.so /usr/lib/xorg/modules/drivers/

• Reboot– sdb shell

– reboot -f

1. Display Output - Xorg DDX [2/2]

Page 69: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

69

• With Odroid Vu, touch-coordinate error

• Xorg provides its own touch calibration function– Path : /etc/X11/xorg.conf.d/input.conf

– Add calibaration option to InputClass

• Can know the correction values using xinput_calibrator

2. Touch Screen Calibrate [1/2]

Section "InputClass"Identifier "evdev touchscreen catchall"MatchIsTouchScreen "on"MatchDevicePath "/dev/input/event*"Driver "evdevmultitouch“Option "MultiTouch" "10"Option "Calibration" “Calibration Value"

EndSection

Page 70: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

70

• Xinput_calibrator– Push xinput_calibrator package by sdb push

• Download : https://drive.google.com/file/d/0B3hOqlhVI7BvaGlCSldSSmtVYlk/view?usp=sharing

– Install the package with sdb shell• rpm -Uvh --force --nodeps xinput_calibrator

– Generally use this value in Odroid VU• Option "Calibration" "-1 1282 -4 888”

2. Touch Screen Calibrate [2/2]

Page 71: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

71

• No support on the software key– Need hardware key such as home / back

• Only one hardware keys(GPIO Buttion) in Odroid– Key mappings is required for other input

– Path : ./etc/X11/Xmodmap

– Modifying the values for key button

3. Key Mapping [1/2]

keycode 67 = XF86AudioRaiseVolumekeycode 68 = XF86AudioLowerVolumekeycode 69 = Cancelkeycode 70 = XF86Sendkeycode 71 = XF86Phonekeycode 72 = XF86Stopkeycode 73 = XF86Search

Page 72: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

72

• Keycode can be checked using xev

– Keyboard input example

– Mapping the desired key• Can use function keys such as F1 ~ F12

• Also you can use GPIO button (power button)

3. Key Mapping [2/2]

keycode

Page 73: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

73

• WiFi firmware copy– For some devices, the device can load the firmware from

outside in the initialization phase

• Copy rtl8195 firmware to /lib/firmware directory

• In odroid “lib/firmware/rtlwifi/WIFI_FIRMWARE”

• Download : https://drive.google.com/file/d/0B3hOqlhVI7BvWFJlQTZzWV84c2c/view?usp=sharing

• Should modify a shell script – /usr/bin/wlan.sh

4. Platform Setting for WiFi [1/2]

Page 74: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

74

• /bin/echo wlan.sh [start] [stop] [softap] [p2p] [check_hw]– Can support hotspot / WiDi

– Apply only regular net functionality

4. wlan.sh Script [2/2]

#!/bin/shIFACE_NAME=wlan0start(){

/sbin/ifconfig ${IFACE_NAME} up}

stop(){

/sbin/ifconfig ${IFACE_NAME} down}

case $1 in"start")start;;"stop")stop;;*)/bin/echo wlan.sh [start] [stop]exit 1;;esac

Page 75: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

75

• Scripts for Bluetooth– Path

• /usr/etc/bluetooth

– Required files

• bt-stack-up.sh

– Bluetooth activate

• bt-stack-down.sh

– Bluetooth deactivate

• bt-reset-env.sh

– Reset Bluetooth environment

• bt-set-addr.sh (Use original file of Tizen 2.2)

– Create Bluetooth address

5. Platform Setting for Bluetooth [1/4]

Page 76: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

76

• Need the device initialization for USB type BT – No separate device-specific initialization is required

5. Bt-stack-up.sh [2/4]

#!/bin/sh

## Script for executing Bluetooth stack#

# Register BT Device

# Set BT address: This will internally check for the file presence/usr/bin/setbd

# Activate BT Devicerfkill unblock bluetooth/usr/sbin/hciconfig hci0 up

# dbus path settingexport DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/app/dbus/user_bus_socket

# Execute BlueZ BT stack/usr/sbin/bluetoothd -d/usr/bin/bluetooth-share &

exit 0

Device activation -> Dbus Settings -> Daemon is running

Page 77: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

775. Bt-stack-down.sh [3/4]

#!/bin/sh

## Script for stopping Bluetooth stack#

# Remove BT device/usr/sbin/hciconfig hci0 downrfkill block bluetooth

# Kill BlueZ bluetooth stackkillall obexd obex-clientkillall bt-syspopupkillall bluetooth-sharekillall bluetooth-pb-agentkillall bluetooth-map-agentkillall bluetooth-hfp-agentkillall bluetoothd

# resultexit 0

Device Disable -> Daemon & Services Stop

Page 78: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

785. Bt-reset-env.sh [4/4]

#!/bin/sh

# BT Stack and device stop/usr/sbin/hciconfig hci0 downrfkill block bluetooth

# Remove BT files and settingrm -rf /opt/data/bluetooth/.bt_pairedrm -rf /var/lib/bluetooth/*

# Initialize BT vconf valuesvconftool set -tf int db/bluetooth/status "0" -g 6520vconftool set -tf int file/private/bt-service/flight_mode_deactivated "0" -g 6520 -ivconftool set -tf string memory/bluetooth/sco_headset_name "" -g 6520 -ivconftool set -tf int memory/bluetooth/device "0" -g 6520 -ivconftool set -tf int memory/bluetooth/btsco "0" -g 6520 -ivconftool set -tf int file/private/libug-setting-bluetooth-efl/visibility_time "0" -g 6520vconftool set -tf bool memory/private/bluetooth-share/quickpanel_clear_btn_status FALSE -g 6520 -ivconftool set -tf bool memory/private/bluetooth-share/opp_server_init FALSE -g 6520 -i

# Remove BT shared memorylist=`ipcs -m | awk '$1==0x0001000 {print $2}'`for i in $listdo

ipcrm -m $idoneipcs -m | grep "0x00001000" | awk '{ print $2 }'

Disable Device -> All Reset

Page 79: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

79

• Some features and apps, including Bluetooth, cannot be run on a low battery– Odroid has no battery

– Normal battery information is not displayed

6. Battery Problem [1/3]

Page 80: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

80

• Need to modify battery-related modules in the OAL(OEM Adaptation Layer)

6. Battery Problem [2/3]

Page 81: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

81

• Edit Device-manager-plugin-exynos– device_manager_plugin_exynos.c

• Modifying the battery remaining capacity to 100%

• Build & Install– Create Rpm package

– Copy the package to device & install• rpm –Uvh --nodeps --force device-manager-plugin-exynos-0.0.26-

0.armv7l.rpm

6. Battery Problem [3/3]

Page 82: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

82

• Tizen Sound System– ALSA : Kernel-level subsystems for sound support

– Pulse Audio : Third-party open-source framework to provide more sound-related functions

• Sound output device are different

• Need to change sound settings – Check sound device

• “aplay –l”

7. Sound Problem [1/2]

Card : 0 / Device : 1

Page 83: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

83

• Change output device in Pulse Audio setting– path : /etc/pulse/system.pa

– Change output device from hw:0,2 to hw:0,1

7. Sound Problem [2/2]

Page 84: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

84

• Library installation is required in order to use the OpenGL– Mali-D아

– Download

• https://wiki.tizen.org/wiki/Enable_3D_Acceleration_on_Tizen

8. Install OpenGL Library for 3D Acceleration [1/3]

Page 85: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

85

• Library Configuration

8. OpenGL Library [2/3]

platform-independent API

Open Graphics Library for Embedded System

Page 86: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

868. Install OpenGL Library [3/3]

• Copy DDK files

– Remove Virtual driver• rpm -e --nodeps opengl-es-virtual-drv

– Install new package• rpm -ivh --force *.rpm

– Sync & reboot• Sync ; reboot - f

Page 87: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

879. Notification Bar Problem [1/2]

• In Quick panel operation, rotation problem occurs

NormalRotation

Forced rotation of 90 degrees

Page 88: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

88

• • Edit the initialization codes related to rotation angle

– quickpanel/daemon/quickpanel-ui.c

– Comment out some initialization code

9. Notification Bar Problem [2/2]

Page 89: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

89Porting is Completed

Page 90: Tizen Porting on Odroid U3 - SKKUnyx.skku.ac.kr/wp-content/uploads/2014/11/Tizen-porting... · 2015. 4. 29. · 20. • What is device tree. –Data structure for describing hardware

SKKU Embedded Software Lab.

87

90Remaining Issues

• Movie Player Not Working

• Screen Orientation

• Software key