현재 부팅완료시 어플리케이션 화면이 나오지 않는다.


/home/root/gdp-hmi -platform wayland

 /usr/bin/gdp-hmi -platform wayland

 weston --tty=1  --idle-time=0 --config=/home/root/weston.ini


 cat sota.toml



/lib/systemd/systemd --user



aktualizr.service 서비스에서 실행하게된다

/usr/bin/aktualizr --config /etc/sota.toml

systemctl stop aktualizr


/usr/lib/systemd/user  gdp-new-hmi.service


[Unit]

Description=GENIVI Development Platform HMI

Requires=dbus.service

After=weston.service


[Service]

Environment=LD_PRELOAD=/usr/lib/libEGL.so

ExecStart=/usr/bin/gdp-hmi -platform wayland

Restart=always

RestartSec=5


[Install]

WantedBy=default.target


export LD_PRELOAD=/usr/lib/libEGL.so

서비스 파일 실행함

/etc/systemd/user

ln -s /usr/lib/systemd/user/gdp-new-hmi.service gdp-new-hmi.service


다음 에러 발생 
 
auditd  :http://blog.plura.io/?p=6641

 audit: type=1701 audit(1545618067.860:3): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=3390 comm="gdp-hmi" exe="/usr/bin/gdp-hmi" sig=11 res=1

audit: type=1701 audit(1545618141.796:4): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=3409 comm="gdp-hmi" exe="/usr/bin/gdp-hmi" sig=11 res=1

[ 2526.907100] audit: type=1701 audit(1545620460.884:5): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=3378 comm="weston" exe="/usr/bin/weston" sig=5 res=1

[ 2741.718737] audit: type=1006 audit(1545620675.696:6): pid=4008 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=2 res=1

[ 3100.913904] audit: type=1701 audit(1545621034.892:7): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=4100 comm="gdp-hmi" exe="/usr/bin/gdp-hmi" sig=6 res=1

[ 3124.626179] audit: type=1701 audit(1545621058.604:8): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=4103 comm="gdp-hmi" exe="/usr/bin/gdp-hmi" sig=11 res=1

[ 3308.841184] audit: type=1701 audit(1545621242.820:9): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=4121 comm="gdp-hmi" exe="/usr/bin/gdp-hmi" sig=11 res=1




'Embedded > Board' 카테고리의 다른 글

[RCAR] OpenCL 설치  (0) 2019.01.16
[GDP]RCar opencv 설치 및 빌드 SDK 생성  (0) 2019.01.16
[rcar-M3] 펌웨어 Flashing  (0) 2019.01.03
휴대폰 정보  (0) 2019.01.02
[GDP] Build Error  (0) 2018.12.28


레시피 파악

meta-ivi layer 에 존재한다.


meta-ivi/meta-ivi/recipes-graphics/wayland


wayland-ivi-extension_2.1.bb



의존성 : wston wayland-native

빌드 옵션 : "-DWITH_ILM_INPUT=1":q


weston_%.bbappend


Ubuntu 16.04 에 설치 

  • 다운로드 wayland-ivi-extension
git clone http://github.com/GENIVI/wayland-ivi-extension.git

 
cmake -DBUILD_ILM_API_TESTS -D CMAKE_INSTALL_PREFIX=/opt/GENIVI/new ..

wayland/1.14.0 필요



wayland 다운로드

$ wget https://wayland.freedesktop.org/releases/wayland-protocols-1.17.tar.xz


./configure
sudo make install
wget https://wayland.freedesktop.org/releases/wayland-1.16.0.tar.xz

 ./autogen.sh --prefix=PREFIX


sudo apt-get install libffi-dev

make -j8
make install

$ wayland-scanner --version
wayland-scanner 1.16.0

설치 완료후 환경변수 추가


웨스턴 설치시 문제생김

pkg_check_modules(WAYLAND_SERVER wayland-server>=1.13.0 REQUIRED)

pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)

pkg_check_modules(PIXMAN pixman-1 REQUIRED)


버전문제로 버전 2.1.0 으로 변경함

이 버전에서는 weston 버전문제가 발생함
pkg_check_modules(WESTON weston>=2.0.0 REQUIRED)
pkg_check_modules(PIXMAN pixman-1 REQUIRED)

$ sudo apt-get install libjpeg-dev
$ sudo apt-get install libwebp-dev


공유

  --enable-screen-sharing


./configure --prefix=/opt/GENIVI/new/wayland/ --enable-screen-sharing   --enable-xwayland --enable-xwayland-test --enable-x11-compositor --enable-demo-clients-install



cmake -D CMAKE_INSTALL_PREFIX=/opt/GENIVI/new/weston-extention ..


컴파일에러

[  8%] Building C object weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o

/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c: In function ‘controller_screenshot_notify’:

/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c:1280:42: error: incompatible type for argument 7 of ‘ivi_screenshot_send_done’

                              shm_format, output->frame_time);

                                          ^

In file included from /home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/weston-ivi-shell/src/ivi-controller.c:39:0:

/home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/build/weston-ivi-shell/ivi-wm-server-protocol.h:314:1: note: expected ‘uint32_t {aka unsigned int}’ but argument is of type ‘struct timespec’

 ivi_screenshot_send_done(struct wl_resource *resource_, int32_t fd, int32_t width, int32_t height, int32_t stride, uint32_t format, uint32_t timestamp)

 ^

weston-ivi-shell/CMakeFiles/ivi-controller.dir/build.make:70: recipe for target 'weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o' failed

make[2]: *** [weston-ivi-shell/CMakeFiles/ivi-controller.dir/src/ivi-controller.c.o] Error 1

CMakeFiles/Makefile2:173: recipe for target 'weston-ivi-shell/CMakeFiles/ivi-controller.dir/all' failed

make[1]: *** [weston-ivi-shell/CMakeFiles/ivi-controller.dir/all] Error 2

Makefile:127: recipe for target 'all' failed

make: *** [all] Error 2



1279 //    ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time));
1280     ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format, (uint32_t)0);
changed
1279 //    ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time));
1280     ivi_screenshot_send_done(l->screenshot, fd, width, height, stride, shm_format,( (uint32_t)output->frame_time.tv_nsec));

error free 
$ vim /home/kj/GDP_ivis/westonAPI/wayland-ivi-extension/ivi-layermanagement-examples/LayerManagerControl/src/print.cpp

#include <cstdlib>


make 

sudo make install


-- Install configuration: ""

-- Up-to-date: /opt/GENIVI/new/weston-extention/lib/libivi-application.so.2.1.0

-- Up-to-date: /opt/GENIVI/new/weston-extention/lib/libivi-application.so

-- Up-to-date: /opt/GENIVI/new/weston-extention/include/ilm/ivi-application-client-protocol.h

-- Up-to-date: /opt/GENIVI/new/weston-extention/share/wayland-protocols/stable/ivi-application/ivi-application.xml

-- Installing: /pkgconfig/ivi-application.pc

-- Installing: /opt/GENIVI/new/weston-extention/lib/weston/ivi-controller.so

-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/weston/ivi-controller.so" to ""

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmCommon.so.2.1.0

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmCommon.so

-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmCommon.so.2.1.0" to ""

-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_common.h

-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_types.h

-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_platform.h

-- Installing: /pkgconfig/ilmCommon.pc

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmClient.so.2.1.0

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmClient.so

-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmClient.so.2.1.0" to ""

-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_client.h

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmControl.so.2.1.0

-- Installing: /opt/GENIVI/new/weston-extention/lib/libilmControl.so

-- Set runtime path of "/opt/GENIVI/new/weston-extention/lib/libilmControl.so.2.1.0" to ""

-- Installing: /opt/GENIVI/new/weston-extention/include/ilm/ilm_control.h

-- Installing: /pkgconfig/ilmControl.pc

-- Installing: /opt/GENIVI/new/weston-extention/bin/LayerManagerControl

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/LayerManagerControl" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/EGLWLMockNavigation

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/EGLWLMockNavigation" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/EGLWLInputEventExample

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/EGLWLInputEventExample" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/layer-add-surfaces

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/layer-add-surfaces" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/multi-touch-viewer

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/multi-touch-viewer" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/simple-ivi-share

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/simple-ivi-share" to ""

-- Installing: /opt/GENIVI/new/weston-extention/bin/simple-weston-client

-- Set runtime path of "/opt/GENIVI/new/weston-extention/bin/simple-weston-client" to ""


weston 5.0.0

wayland1.16.0 설치 완료


wayland-ivi-extension 설치완료

ilmCommon.pc  ilmControl.pc  ivi-application.pc


최신버전으로 다시설치

cmake -DCMAKE_INSTALL_PREFIX=/opt/GENIVI/new/ivi-layer-master ..



'Embedded > GDP구조파악' 카테고리의 다른 글

[GDP] hmi-layout-gdp 파악(gdp-hmi)  (0) 2019.01.08


저장소 : git clone git://github.com/GENIVI/hmi-layout-gdp.git


커및정보

commit 86f5a365a0b1c4cd96a6344db7137a0440c11f7b

Author: Gunnar Andersson <gandersson@genivi.org>

Date:   Wed May 30 11:22:35 2018 +0200 


/home/kj/GDP_ivis/hmi-layout-gdp 경로에 다운로드함.


genivi-dev-platform/meta-genivi-dev/meta-genivi-dev/recipes-dev-hmi/genivi-dev-platform-hmi

 gdp-new-hmi.bb



의존성

    dbus-c++ \

    ivi-logging \

    qtbase \

    qtdeclarative \

    qtquick1 \

    systemd \

    wayland-ivi-extension \ qtbase qtsvg


설치시 추가파일

    install -d ${D}${systemd_user_unitdir}

    install -p -D ${WORKDIR}/gdp-new-hmi.service ${D}${systemd_user_unitdir}/gdp-new-hmi.service

    install -d ${D}${sysconfdir}/systemd/user/default.target.wants

    ln -sf ${systemd_user_unitdir}/gdp-new-hmi.service ${D}${sysconfdir}/systemd/user/default.target.wants


    install -d ${D}${bindir}

    mv ${D}/opt/gdp-hmi/bin/gdp-hmi ${D}${bindir}/gdp-hmi

    

    ${libdir}/qt5/qml/com/genivi/ \

    ${systemd_user_unitdir}/gdp-new-hmi.service \



'Embedded > GDP구조파악' 카테고리의 다른 글

[GENIVI] wayland-ivi-extension  (0) 2019.01.09

capicxx-someip-tools/docx/CommonAPISomeIPCppUserGuide 를 참고하였음.




기본 형식 (fdepl)

import "platform:/plugin/org.genivi.commonapi.core/deployment/CommonAPI-SOMEIP_deployment_spec.fdepl"


define org.genivi.commonapi.someip.deployment for interface <CommonAPI interface name> {

SomeIpServiceID = <id>


method <CommonAPI method name> {

SomeIpMethodID = <id>

}


attribute <CommonAPI method name> {

SomeIpGetterID = <id>

SomeIpSetterID = <id>

SomeIpNotifierID = <id>

// All these ID settings are optional, but you need to specify at least one

// if you specify a SomeIpNotifierID you also need to specify an eventgroup

SomeIpEventGroups = { <id> }

}

}


define org.genivi.commonapi.someip.deployment for provider <Name> {

instance <CommonAPI interface name> {

InstanceId = <CommonAPI instance name>

SomeIpInstanceID = <id>

}


SOME/IP 파라미터 관련해서 SOME/IP specification at http://some-ip.com/  를 참고


중요 룰은  아래와 같다.

- Method identifiers must be unique within the interface but must also be unique considering the extensions. Extended interfaces must not have the same method identifiers as base interfaces. Method identifiers are: SomeIpMethodID, SomeIpGetterID and SomeIpSetterID.

- The range of method identifiers must be 1 to 32767.

- Event identifiers must be unique within the interface (also when extensions are considered). The range must be 32769 to 65534. Event identifiers are SomeIpEventID and SomeIpNotifierID.

- Every selective broadcast must have its own event group; there must not be two selective broadcasts in the same eventgroup within one interface (again considering extensions).

- The eventgroup identifier (SomeIpEventGroups) must at least 1; each event (broadcast, attributes with notifier) must be at least in one event group.

- If attributes have a notifier they must be in at least one event group.

- Getter and setter identifiers of attributes must be consistent concerning the attribute keywords readonly and nosubscriptions.



 - 함수 식별자는 인터페이스 내에서 고유해야 하지만, 확장을 고려하여 작성하여야 한다. 확장인터페이스는 기본 인터페이스와 동일한 함수 식별자를 가져서는 안된다. 함수 식별자는 다음과 같다. SomeIpMethodID, SomeIpGetterID and SomeIpSetterID

 - 함수 식별자 범위는 1에서 32767 까지이다. ( SomeIpMethodID )

 - 이벤트 식별자는 인터페이스 내에서 고유해야한다. (확장이 고려되는 경우 동일) 범위는 32769 ~ 65534. 이벤트 식별자는 

    (SomeIpEventID , SomeIpNotifierID) 

 - 모든 선택적 브로드 캐스트에는 자체 이벤트 그룹이 있어야합니다. 하나의 인터페이스 내에서 동일한 이벤트 그룹에 2 개의 선택적 브로드 캐스트가 없어야 한다. (다시 확장을 고려함).

- 이벤트 그룹 ID (SomeIpEventGroups) 최소한 1이어야 한다. 이벤트 (브로드 캐스트, 알리미가있는 속성) 적어도 하나의 이벤트 그룹에 있어야 한다.

- 속성에 통지자가 있으면 최소한 하나의 이벤트 그룹에 있어야 한다.

- 속성의 Getter Setter 식별자는 readonly nosubscriptions 속성 키워드에 대해 일관성이 있어야 한다.


'Embedded > CommonAPI' 카테고리의 다른 글

[Memory-1] fidl 작성하기 -작성중  (0) 2019.01.04
[GENIVI] ARA integration project  (0) 2019.01.04
[Franca] 작성하고 코드 생성하기  (0) 2019.01.03
[CommonAPI C++] D-Bus binding  (0) 2019.01.03
[CommonAPI] tool 설치 작성중  (0) 2019.01.02


순서는 아래와 같다.


1. fidl 및 fdepl 작성하기

2. Dbus , Someip 코드 생성하기 


CommonAPI 생성 디렉토리로 이동



DBus 코드 생성하기

 1) memory.fidl 코드 생성하기

./commonapi-generator-linux-x86_64 -sk /home/kj/Desktop/ivis_memory/fidl/memory.fidl

 2) 생성된 코드 확인

 다음 경로에 소스가 생성된다.  src-gen/v1/genivi/ivis/setting/


Someip 코드 생성하기



'Embedded > CommonAPI' 카테고리의 다른 글

[CommonAPISomeIP] 작성하기  (0) 2019.01.04
[GENIVI] ARA integration project  (0) 2019.01.04
[Franca] 작성하고 코드 생성하기  (0) 2019.01.03
[CommonAPI C++] D-Bus binding  (0) 2019.01.03
[CommonAPI] tool 설치 작성중  (0) 2019.01.02


Franca to ARA interface integration and demo code : https://github.com/GENIVI/franca_ara_integration


ARA:COM XML 포맺과 Franca IDL 과의 통신을 보여준다.


소스코드 다운로드 : https://github.com/GENIVI/franca_ara_integration.git



Yocto 관련부분 정리

  GDP 메타데이터 다운로드 

  git clone https://github.com/GENIVI/genivi-dev-platform.git

 cd genivi-dev-platform


 Franca - ARA 다운로드

 git clone git@github.com:GENIVI/franca_ara_integration.git


 GDP 빌드 셋업

 source .init.sh rcar-m3xx~


 meta-franca-ara 레이어 추가하기

 bitbake-layers add-layer ../franca_ara_integration/yocto/meta-franca-ara


 conf/local.conf 파일에 인스톨 추가하기

 IMAGE_INSTALL_append = " franca-ara"


 빌드시작

 bitbake genivi-dev-platform


 빌드관련 정보들

 video.tar 이미지관련파일들 /usr/local/share/franca-ara/images 폴더에 사진이미지를 넣어둔다.

소스코드들


컴파일 옵션

cd tests/testprograms/capi_server


$CXX -o capi_server -std=c++14 -I src-gen \ main.cpp src-gen/v1/genivi/aasr/showcase/*.cpp \ `pkg-config --cflags --libs CommonAPI-SomeIP` -lpthread

g++ -o capi_server -std=c++14 -I src-gen main.cpp src-gen/v1/genivi/aasr/showcase/*.cpp `pkg-config --cflags --libs CommonAPI-SomeIP` -lpthread

 capi_server  <-- 파일 생성됨


데모 테스트 


capi_server 실행

franca_ara_integration 에서 빌드한 franca-ara 실행



'Embedded > CommonAPI' 카테고리의 다른 글

[CommonAPISomeIP] 작성하기  (0) 2019.01.04
[Memory-1] fidl 작성하기 -작성중  (0) 2019.01.04
[Franca] 작성하고 코드 생성하기  (0) 2019.01.03
[CommonAPI C++] D-Bus binding  (0) 2019.01.03
[CommonAPI] tool 설치 작성중  (0) 2019.01.02

이전에서 CommonAPI 관련 라이브러리를 설치 완료하였다.



이번에는 Franca 형식으로 인터페이스를 작성하고 Dbus , Someip 코드로 생성해보도록 하겠다.


원문링크

https://github.com/GENIVI/capicxx-someip-tools/wiki/CommonAPI-C---SomeIP-in-10-minutes#step4



1. 폴더를 생성후 HelloWorld.fidl 을 작성한다.


다음 명령을 통하여 파일을 검색한다.

$ find ./ -name "CommonAPI-SOMEIP_deployment_spec.fdepl"



./capicxx-someip-tools/org.genivi.commonapi.someip/deployment/CommonAPI-SOMEIP_deployment_spec.fdepl


kj@kj:~/GENIVI/ComAPI_New/tools/test$ mkdir project

kj@kj:~/GENIVI/ComAPI_New/tools/test$ cd project/

kj@kj:~/GENIVI/ComAPI_New/tools/test/project$ ls

kj@kj:~/GENIVI/ComAPI_New/tools/test/project$ mkdir fidl

kj@kj:~/GENIVI/ComAPI_New/tools/test/project$ cd fidl/

vim HelloWorld.fidl


package commonapi


interface HelloWorld {

  version {major 1 minor 0}

  method sayHello {

    in {

      String name

    }

    out {

      String message

    }

  }

}






2. 코드 생성하기 

제너레이더 파일을 다운받는다.


툴을 다운받아 두개의 폴더에 각각 압축을 해제하였다.


dbus_gen  someip_gen


http://genivi.github.io/capicxx-dbus-tools/

http://genivi.github.io/capicxx-someip-tools/


생성되는 폴더명은 v[M버전]/ package 내임 . 별로 폴더생성 과 같다.

dbus_gen 폴더로 이동 후 zip 파일을 압축해제


 ./commonapi-dbus-generator-linux-x86_64 ../fidl/HelloWorld.fidl 


Executing CommonAPI DBus Code Generation...


Using Franca Version 0.9.1.201412191134

Generating code for /home/kj/GENIVI/ComAPI_New/tools/test/project/dbus_gen/../fidl/HelloWorld.fidl 




3. 결과물 확인




src_gen 폴데에 해당 소스파일들이 생성된다.

src-gen/v1/commonapi


[FileName]+DBusDeployment.cpp

[FileName]+DBusDeployment.hpp

[FileName]+DBusDBusProxy.cpp

[FileName]+DBusDBusProxy.hpp

[FileName]+DBusDBusStubAdapter.cpp

[FileName]+DBusDBusStubAdapter.hpp



Deployment , Proxy, StubAdapter 라는 파일이 생성된다.



다음으로 someip  코드도 작성하여 생성해보도록 한다.


원문 : https://github.com/GENIVI/capicxx-someip-tools/wiki/CommonAPI-C---SomeIP-in-10-minutes


1. 파일 생성 

vim HelloWorld.fdepl

import "platform:/plugin/org.genivi.commonapi.someip/deployment/CommonAPI-SOMEIP_deployment_spec.fdepl"

import "HelloWorld.fidl"


define org.genivi.commonapi.someip.deployment for interface commonapi.HelloWorld {

        SomeIpServiceID = 4660


        method sayHello {

                SomeIpMethodID = 123

        }

}


define org.genivi.commonapi.someip.deployment for provider MyService {

        instance commonapi.HelloWorld {

                InstanceId = "test"

                SomeIpInstanceID = 22136

        }

}


2. someip_gen 

 

제너레이터 폴더로 이동후 코드 생성하기


./commonapi-someip-generator-linux-x86_64 ../fidl/HelloWorld.fdepl 




3. 생성된 파일확인

  src-gen 폴더에 생성된다.


[FileName]+SomeIPDeployment.cpp

[FileName]+SomeIPDeployment.hpp

[FileName]+SomeIPDBusProxy.cpp

[FileName]+SomeIPDBusProxy.hpp

[FileName]+SomeIPDBusStubAdapter.cpp

[FileName]+SomeIPDBusStubAdapter.hpp 


파일이 생성된다. 




/commonapi-generator-linux-x86_64 를 사용하여 코드생성시에 옵션이 존재한다.

-sk 옵션

 -sk,--skel <arg>                   Generate skeleton code. The optional argument specifies the postfix. 

Without argument, the postfix is 'default'

 






생성된 코드를 활용하여 어플리케이션 코드 작성은 다음에 정리 

'Embedded > CommonAPI' 카테고리의 다른 글

[Memory-1] fidl 작성하기 -작성중  (0) 2019.01.04
[GENIVI] ARA integration project  (0) 2019.01.04
[CommonAPI C++] D-Bus binding  (0) 2019.01.03
[CommonAPI] tool 설치 작성중  (0) 2019.01.02
[Dbus] 사용하기  (0) 2018.12.28


http://genivi.github.io/capicxx-dbus-tools/


D-bus를  위한 CommonAPI C++


CommonAPI C++ 은 내부 프로세스간 통신을 하기위한 C++ 프레임워크이다. high-level 의 C++  API 로 구성되어 있으며 D-Bus 와 같은 다양한 IPC 메커니즘에서 사용할 수 있다.



자세한 사항은  http://genivi.github.io/capicxx-core-tools/ 를 참고


CommonAPI C++ D-Bus 바인딩은 표준 D-Bus 라이이브러리를 기반으로 하지만 런타임 코드와 함께 게시되는 libdbus 패치가 필요하다.


기본 기능

 D-Bus 메시지의 고성능 직렬화



링크 


CommonAPI D-Bus C++ User Guide


CommonAPIDBusCppUserGuide.pdf 문서 참고


의존성

 libdbus , CommonAPI , cmake


제한사항

 Dbus 서명의 경우 255자를 넘지 않아야 함



설치시 관련 필요 라이브러리

 DBus 

dbus-1.12.2-r0

dbus-c++ 1_0.9.0

common-api-c++ 3.1.12-r0

common-api-c++-dbus 3.1.12-r0

common-api-c++-someip 3.1.12-r0

vsomeip 2.10.21



관련 소스코드 다운로드


/home/kj/GENIVI/ComAPI_New


$ git clone https://github.com/GENIVI/capicxx-core-runtime.git

$ git clone https://github.com/GENIVI/capicxx-dbus-runtime.git

$ git clone https://github.com/GENIVI/dlt-daemon.git

$ git clone https://github.com/GENIVI/vsomeip.git

$ git clone https://github.com/GENIVI/capicxx-someip-runtime.git


#!/bin/bash

git clone https://github.com/GENIVI/capicxx-core-runtime.git

git clone https://github.com/GENIVI/capicxx-dbus-runtime.git

git clone https://github.com/GENIVI/dlt-daemon.git

git clone https://github.com/GENIVI/vsomeip.git

git clone https://github.com/GENIVI/capicxx-someip-runtime.git


브랜치 변경



현재 우분투의 dbus 버전 확인

$ dpkg -l | grep dbus


$ dpkg -l | grep dbus

dbus                        1.12.2-1ubuntu1                              amd64        simple interprocess messaging system (daemon and utilities)

dbus-user-session  1.12.2-1ubuntu1                              amd64        simple interprocess messaging system (systemd --user integration)


인터넷 검색하여 Ubuntu16.04 dbus download

https://launchpad.net/ubuntu/+source/dbus/1.12.2-1ubuntu1


dbus_1.12.2.orig.tar.gz2.0 MiB272bb5091770b047c8188b926d5e6038fa4fe6745488b2add96b23e2d9a83d88
dbus_1.12.2-1ubuntu1.debian.tar.xz61.0 KiB7c968a77cc7f8512229f190b51a619cf7b5901db0cf43fcae6c367eff1ede78c



두파일을 다운로드 한다.

한폴더에 압축해제

tar xvf dbus_1.12.2-1ubuntu1.debian.tar.xz

tar xvf dbus_1.12.2.orig.tar.gz



debian/patches/ubuntu 폴더의 패치 파일 복사 cp * ../../../dbus-1.12.2/



capicxx-dbus-runtime/src/dbus-patches 폴더안에 패치파일을 dbus 폴더로 복사한다.

소스의 패치적용



dbus-1.12.2 설치하기


./configure --prefix=/opt/Ngenivi --with-system-socket=/run/dbus/system_bus_socket



make -C dbus

make -C dbus install

make install-pkgconfigDATA


  /bin/mkdir -p '/opt/Ngenivi/lib/pkgconfig'

 /usr/bin/install -c -m 644 dbus-1.pc '/opt/Ngenivi/lib/pkgconfig'


환경변수 적용하기

export PKG_CONFIG_PATH=/opt/Ngenivi/lib/pkgconfig:$PKG_CONFIG_PATH

export LD_LIBRARY_PATH=/opt/Ngenivi/lib/:$LD_LIBRARY_PATH



설치시 폴더이동후 build 폴더생성은 생략하도록 한다.

capicxx-core-runtime 설치하기



mkdir build

cd build

cmake -D CMAKE_INSTALL_PREFIX=/opt/Ngenivi ..



capicxx-dbus-runtime 설치하기


mkdir build

cd build

cmake -D CMAKE_INSTALL_PREFIX=/opt/Ngenivi ..


vsomeip 설치 


cmake -D USE_INSTALLED_COMMONAPI=ON -D CMAKE_INSTALL_PREFIX=/opt/Ngenivi/ ..



capicxx-someip-runtime  설치



cmake -D USE_INSTALLED_COMMONAPI=ON -D CMAKE_INSTALL_PREFIX=PREFIX=/opt/Ngenivi/ .. 



dlt-daemon 까지 동일하게 설치



관련 라이브러리 설치완료 

환경변수 파일 생성



소스코드 생성은 다음 포스팅을 참고

2019/01/02 - [Embedded/CommonAPI] - [CommonAPI] tool 설치 작성중



'Embedded > CommonAPI' 카테고리의 다른 글

[GENIVI] ARA integration project  (0) 2019.01.04
[Franca] 작성하고 코드 생성하기  (0) 2019.01.03
[CommonAPI] tool 설치 작성중  (0) 2019.01.02
[Dbus] 사용하기  (0) 2018.12.28
[GENIVI] 개발환경설정  (0) 2018.12.20

https://elinux.org/R-Car/Boards/M3SK#Flashing_firmware


Writing data (Yocto v2.23 or later)
FilenameProgram Top AddressFlash Save AddressDescription
bootparam_sa0.srec0xE63200000x000000Loader(Boot parameter)
bl2-m3ulcb.srec0xE63040000x040000Loader
cert_header_sa6.srec0xE63200000x180000Loader(Certification)
bl31-m3ulcb.srec0x440000000x1C0000ARM Trusted Firmware
tee-m3ulcb.srec0x441000000x200000OP-Tee
u-boot-elf.srec0x500000000x640000U-Boot


'Embedded > Board' 카테고리의 다른 글

[GDP]RCar opencv 설치 및 빌드 SDK 생성  (0) 2019.01.16
[GDP] Rcar-M3 어플리케이션제어  (2) 2019.01.11
휴대폰 정보  (0) 2019.01.02
[GDP] Build Error  (0) 2018.12.28
[GDP] qemu x86_64  (0) 2018.12.28

https://genivi.github.io/capicxx-core-tools/




CommonAPI C++ D-Bus tooling


소스코드 다운로드 : https://github.com/GENIVI/capicxx-dbus-tools.git



 


git clone https://github.com/GENIVI/capicxx-dbus-tools.git

cd capicxx-dbus-tools
cd 

/home/kj/GENIVI/ComAPI_New/tools/capicxx-dbus-tools/org.genivi.commonapi.dbus.verification


mkdir build

cd build




cmake \

-DCOMMONAPI_TOOL_GENERATOR=myworkpath/CommonAPI-Tools/org.genivi.commonapi.core.cli.product ←-

/target/products/org.genivi.commonapi.core.cli.product/linux/gtk/MYARCH/commonapi- ←-

generator-linux-MYARCH \

-DCOMMONAPI_DBUS_TOOL_GENERATOR=myworkpath/CommonAPI-D-Bus-Tools/org.genivi.commonapi.dbus. ←-

cli.product/target/products/org.genivi.commonapi.dbus.cli.product/linux/gtk/MYARCH/ ←-

commonapi-dbus-generator-linux-MYARCH \

-DCommonAPI_DIR=myworkpath/CommonAPI/build \

-DCommonAPI-DBus_DIR=myworkpath/CommonAPI-D-Bus/build \

-DCOMMONAPI_TEST_FIDL_PATH=myworkpath/CommonAPI-Tools/org.genivi.commonapi.core. ←-

verification/fidl ..



https://github.com/GENIVI/capicxx-someip-tools


https://github.com/GENIVI/capicxx-someip-tools.git


커맨드를 잘활용하지 못하는것같아 사용법 부터 정리해야 겟다..


'Embedded > CommonAPI' 카테고리의 다른 글

[GENIVI] ARA integration project  (0) 2019.01.04
[Franca] 작성하고 코드 생성하기  (0) 2019.01.03
[CommonAPI C++] D-Bus binding  (0) 2019.01.03
[Dbus] 사용하기  (0) 2018.12.28
[GENIVI] 개발환경설정  (0) 2018.12.20

+ Recent posts