현재 최신 meta-ivi 를 파악하고자한다. 

CommonAPI 필요부분


소스코드 링크는 다음과 같다. : https://github.com/GENIVI/meta-ivi



meta-ivi Download

  • 다운로드 및 해당 브랜치로 변경

$ git clone https://github.com/GENIVI/meta-ivi.git

$ cd meta-ivi

$ git log

commit 8efbab9130de3fedd62ef5ac6ad6fe138df610d9 (HEAD -> master, origin/master, origin/HEAD)

Author: Oscar Andreasson <oscar.andreasson@pelagicore.com>

Date:   Fri May 4 11:04:32 2018 +0200


    qemu_2: Remove dependency on libusb

    

    This is a really old dependency append it's causing issues in builds

    relying on the meta-ivi layer. Removing it as it doesn't seem necessary.

    

    Signed-off-by: Oscar Andreasson <oscar.andreasson@pelagicore.com>




14.x 버전 대이다.

  • meta-ivi/meta-ivi/recipes-extended 

     - 해당경로에는 다음과 같은 놈들이 존재한다.

common-api  dlt-daemon  node-health-monitor  node-startup-controller  node-state-manager  persistence-administrator  persistence-client-library  persistence-common-object


여기서 나는 common-api 가 필요하므로 해당 폴더를 파악한다.

 capicxx-core-native_3.1.12.bb

 capicxx-dbus-native_3.1.12.bb

 capicxx-someip-native_3.1.12.bb

 common-api-c++_3.1.12.bb

 common-api-c++-dbus_3.1.12.bb

 common-api-c++-someip_3.1.12.bb


dbus 관련 패치가 존재한다.

 해당파일 : ./recipes-core-ivi/dbus/dbus_%.bbappend


FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"


# add support for GENIVI CommonAPI D-Bus runtime

# - https://genivi-oss.atlassian.net/wiki/display/COMMONAPICPP/CommonAPI-cpp

SRC_URI_append = " \

    file://capi-dbus-add-send-with-reply-set-notify.patch \

    file://capi-dbus-add-support-for-custom-marshalling.patch \

    file://0001-dbus-fix-possible-uninitialized-variable.patch \

    "

SRC_URI_append_qemux86 = " file://build_fix-ubunt1604-qemux86.patch"


dbus 관련하여 어떠한 패치들이 존재하는지 검토해본다.

현재 존재하는 패치는 다음과 같다. 

0001-dbus-fix-possible-uninitialized-variable.patch  

 capi-dbus-add-support-for-custom-marshalling.patch          

 capi-dbus-send-with-reply-and-block-delete-reply-on-error.patch

 build_fix-ubunt1604-qemux86.patch                    

 capi-dbus-block-acquire-io-path-on-send.patch

 capi-dbus-add-send-with-reply-set-notify.patch     

 capi-dbus-correct-dbus-connection-block-pending-call.patch



capi-dbus 패치관련하여 파헤쳐 볼것이다.


 capi-dbus-add-support-for-custom-marshalling.patch   

+add dbus/dbus-message.c

dbus_bool_t

dbus_message_set_signature (DBusMessage *message,

                            const char  *signature)

{

  _dbus_return_val_if_fail (message != NULL, FALSE);

  _dbus_return_val_if_fail (!message->locked, FALSE);

  _dbus_return_val_if_fail (signature == NULL ||

                            _dbus_check_is_valid_signature (signature), FALSE);

  /* can't delete the signature if you have a message body */

  _dbus_return_val_if_fail (_dbus_string_get_length (&message->body) == 0 ||

                            signature != NULL, FALSE);


  return set_or_delete_string_field (message,

                                     DBUS_HEADER_FIELD_SIGNATURE,

                                     DBUS_TYPE_SIGNATURE,

                                     signature);

}




+dbus/dbus-string.h


 #define _dbus_string_get_allocated(s) (((DBusString*)(s))->dummy3 - _DBUS_STRING_ALLOCATION_PADDING)

#ifndef _dbus_string_get_allocated

int           _dbus_string_get_allocated         (const DBusString  *str);

#endif /* !_dbus_string_get_allocated */




'Yocto > GENIVI' 카테고리의 다른 글

[eclipse]Franca IDL 설치  (0) 2018.05.23
CommonAPI 설치  (0) 2018.05.23

+ Recent posts