T113 SDK编译

T113 SDK建议使用Ubuntu1804版本来编译,避免出现其他因版本差别而出现的错误。

sudo dpkg --add-architecture i386
sudo apt install -y git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib tofrodos python markdown libxml2-utils xsltproc zlib1g-dev:i386 gawk texinfo gettext build-essential gcc libncurses5-dev bison flex zlib1g-dev gettext libssl-dev autoconf libtool linux-libc-dev:i386 wget patch dos2unix tree u-boot-tools

T113 SDK编译需要使用Python2,所以先安装Python2并配置为默认版本。

sudo apt install python2
sudo ln -s /usr/bin/python2 /usr/bin/python

配置SDK编译选项

./build.sh config

Welcome to mkscript setup progress
All available platform:
   0. linux
Choice [linux]: 0
All available linux_dev:
   0. bsp
   1. dragonboard
   2. longan
   3. tinyos
Choice [longan]: 2
All available kern_ver:
   0. linux-5.4
Choice [linux-5.4]: 0
All available ic:
   0. t113
   1. t113_i
Choice [t113_i]: 1
All available board:
   0. evb1
   1. evb1_auto
   2. evb1_auto_nand
   3. evb1_auto_nor
   4. tlt113-evm-emmc
   5. tlt113-evm-nand
   6. tlt113-minievm-emmc
   7. tlt113-minievm-nand
Choice [tlt113-minievm-emmc]: 6
All available output_configs:
   0. hdmi
Choice [hdmi]: 0
All available flash:
   0. default
   1. nor
Choice [default]: 0
All available gnueabi:
   0. gnueabi
   1. gnueabihf
Choice [gnueabi]: 0

执行编译

./build.sh

编译过程中会出现一些错误,需要手动来修改部分代码来解决这些错误,直到编译顺利完成。

Issue1

gdbusauth.c:1302:11: error: ‘%s’ directive argument is null

修改为如下

if(line != NULL)
    debug_print ("SERVER: WaitingForBegin, read '%s'", line);

Issue2

gdbusmessage.c:2702:30: error: ‘%s’ directive argument is null

修改为如下

if(signature_str!= NULL)
    tupled_signature_str = g_strdup_printf ("(%s)", signature_str);

Issue3

/usr/bin/ld: dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; dtc-lexer.lex.o:(.bss+0x0): first defined here

 dtc-lexer.l 文件中,修改为如下

extern YYLTYPE yylloc;

Issue4

gawk: ./mkerrnos.awk:86: warning: regexp escape sequence `\#' is not a known regexp operator
gawk: ./mkerrcodes1.awk:84: warning: regexp escape sequence `\#' is not a known regexp operator
gawk: ./mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator
gawk: ./mkerrcodes.awk:88: warning: regexp escape sequence `\#' is not a known regexp operator

文件中对应的行,改为如下

sub (/#.+/, "");

去年了井号前的反斜杠。

Issue5

编译libgpg-error-1.33时,出现的如下错误

gawk: fatal: cannot use gawk builtin `namespace' as variable name

将该目录下的 Makefile、Makefile.am、Makefile.in、mkstrtable.awk 里的 namespac e 都改为 pkg_namespace

Issue6

strerror-sym.c:47:9: error: 'errnos_msgstr' undeclared (first use in this function)
  return errnos_msgstr + errnos_msgidx[idx];
         ^~~~~~~~~~~~~
strerror-sym.c:47:9: note: each undeclared identifier is reported only once for eac                                                                                                                        h function it appears in
strerror-sym.c:47:25: error: 'errnos_msgidx' undeclared (first use in this function                                                                                                                           )
  return errnos_msgstr + errnos_msgidx[idx];
                         ^~~~~~~~~~~~~
make[7]: *** [Makefile:946: gpg_error-strerror-sym.o] Error 1

如果libgpg-error-1.27/src/errnos-sym.h 文件为空,可以添加一下内容到文件中。记得每个变量前缀为errnos。

/* Output of mkstrtable.awk.  DO NOT EDIT.  */

/* errnos.in - List of system error values.
   Copyright (C) 2003, 2004 g10 Code GmbH

   This file is part of libgpg-error.

   libgpg-error is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public License
   as published by the Free Software Foundation; either version 2.1 of
   the License, or (at your option) any later version.

   libgpg-error is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with libgpg-error; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.  */



/* The purpose of this complex string table is to produce
   optimal code with a minimum of relocations.  */

static const char errnos_msgstr[] =
  "GPG_ERR_E2BIG" "\0"
  "GPG_ERR_EACCES" "\0"
  "GPG_ERR_EADDRINUSE" "\0"
  "GPG_ERR_EADDRNOTAVAIL" "\0"
  "GPG_ERR_EADV" "\0"
  "GPG_ERR_EAFNOSUPPORT" "\0"
  "GPG_ERR_EAGAIN" "\0"
  "GPG_ERR_EALREADY" "\0"
  "GPG_ERR_EAUTH" "\0"
  "GPG_ERR_EBACKGROUND" "\0"
  "GPG_ERR_EBADE" "\0"
  "GPG_ERR_EBADF" "\0"
  "GPG_ERR_EBADFD" "\0"
  "GPG_ERR_EBADMSG" "\0"
  "GPG_ERR_EBADR" "\0"
  "GPG_ERR_EBADRPC" "\0"
  "GPG_ERR_EBADRQC" "\0"
  "GPG_ERR_EBADSLT" "\0"
  "GPG_ERR_EBFONT" "\0"
  "GPG_ERR_EBUSY" "\0"
  "GPG_ERR_ECANCELED" "\0"
  "GPG_ERR_ECHILD" "\0"
  "GPG_ERR_ECHRNG" "\0"
  "GPG_ERR_ECOMM" "\0"
  "GPG_ERR_ECONNABORTED" "\0"
  "GPG_ERR_ECONNREFUSED" "\0"
  "GPG_ERR_ECONNRESET" "\0"
  "GPG_ERR_ED" "\0"
  "GPG_ERR_EDEADLK" "\0"
  "GPG_ERR_EDEADLOCK" "\0"
  "GPG_ERR_EDESTADDRREQ" "\0"
  "GPG_ERR_EDIED" "\0"
  "GPG_ERR_EDOM" "\0"
  "GPG_ERR_EDOTDOT" "\0"
  "GPG_ERR_EDQUOT" "\0"
  "GPG_ERR_EEXIST" "\0"
  "GPG_ERR_EFAULT" "\0"
  "GPG_ERR_EFBIG" "\0"
  "GPG_ERR_EFTYPE" "\0"
  "GPG_ERR_EGRATUITOUS" "\0"
  "GPG_ERR_EGREGIOUS" "\0"
  "GPG_ERR_EHOSTDOWN" "\0"
  "GPG_ERR_EHOSTUNREACH" "\0"
  "GPG_ERR_EIDRM" "\0"
  "GPG_ERR_EIEIO" "\0"
  "GPG_ERR_EILSEQ" "\0"
  "GPG_ERR_EINPROGRESS" "\0"
  "GPG_ERR_EINTR" "\0"
  "GPG_ERR_EINVAL" "\0"
  "GPG_ERR_EIO" "\0"
  "GPG_ERR_EISCONN" "\0"
  "GPG_ERR_EISDIR" "\0"
  "GPG_ERR_EISNAM" "\0"
  "GPG_ERR_EL2HLT" "\0"
  "GPG_ERR_EL2NSYNC" "\0"
  "GPG_ERR_EL3HLT" "\0"
  "GPG_ERR_EL3RST" "\0"
  "GPG_ERR_ELIBACC" "\0"
  "GPG_ERR_ELIBBAD" "\0"
  "GPG_ERR_ELIBEXEC" "\0"
  "GPG_ERR_ELIBMAX" "\0"
  "GPG_ERR_ELIBSCN" "\0"
  "GPG_ERR_ELNRNG" "\0"
  "GPG_ERR_ELOOP" "\0"
  "GPG_ERR_EMEDIUMTYPE" "\0"
  "GPG_ERR_EMFILE" "\0"
  "GPG_ERR_EMLINK" "\0"
  "GPG_ERR_EMSGSIZE" "\0"
  "GPG_ERR_EMULTIHOP" "\0"
  "GPG_ERR_ENAMETOOLONG" "\0"
  "GPG_ERR_ENAVAIL" "\0"
  "GPG_ERR_ENEEDAUTH" "\0"
  "GPG_ERR_ENETDOWN" "\0"
  "GPG_ERR_ENETRESET" "\0"
  "GPG_ERR_ENETUNREACH" "\0"
  "GPG_ERR_ENFILE" "\0"
  "GPG_ERR_ENOANO" "\0"
  "GPG_ERR_ENOBUFS" "\0"
  "GPG_ERR_ENOCSI" "\0"
  "GPG_ERR_ENODATA" "\0"
  "GPG_ERR_ENODEV" "\0"
  "GPG_ERR_ENOENT" "\0"
  "GPG_ERR_ENOEXEC" "\0"
  "GPG_ERR_ENOLCK" "\0"
  "GPG_ERR_ENOLINK" "\0"
  "GPG_ERR_ENOMEDIUM" "\0"
  "GPG_ERR_ENOMEM" "\0"
  "GPG_ERR_ENOMSG" "\0"
  "GPG_ERR_ENONET" "\0"
  "GPG_ERR_ENOPKG" "\0"
  "GPG_ERR_ENOPROTOOPT" "\0"
  "GPG_ERR_ENOSPC" "\0"
  "GPG_ERR_ENOSR" "\0"
  "GPG_ERR_ENOSTR" "\0"
  "GPG_ERR_ENOSYS" "\0"
  "GPG_ERR_ENOTBLK" "\0"
  "GPG_ERR_ENOTCONN" "\0"
  "GPG_ERR_ENOTDIR" "\0"
  "GPG_ERR_ENOTEMPTY" "\0"
  "GPG_ERR_ENOTNAM" "\0"
  "GPG_ERR_ENOTSOCK" "\0"
  "GPG_ERR_ENOTSUP" "\0"
  "GPG_ERR_ENOTTY" "\0"
  "GPG_ERR_ENOTUNIQ" "\0"
  "GPG_ERR_ENXIO" "\0"
  "GPG_ERR_EOPNOTSUPP" "\0"
  "GPG_ERR_EOVERFLOW" "\0"
  "GPG_ERR_EPERM" "\0"
  "GPG_ERR_EPFNOSUPPORT" "\0"
  "GPG_ERR_EPIPE" "\0"
  "GPG_ERR_EPROCLIM" "\0"
  "GPG_ERR_EPROCUNAVAIL" "\0"
  "GPG_ERR_EPROGMISMATCH" "\0"
  "GPG_ERR_EPROGUNAVAIL" "\0"
  "GPG_ERR_EPROTO" "\0"
  "GPG_ERR_EPROTONOSUPPORT" "\0"
  "GPG_ERR_EPROTOTYPE" "\0"
  "GPG_ERR_ERANGE" "\0"
  "GPG_ERR_EREMCHG" "\0"
  "GPG_ERR_EREMOTE" "\0"
  "GPG_ERR_EREMOTEIO" "\0"
  "GPG_ERR_ERESTART" "\0"
  "GPG_ERR_EROFS" "\0"
  "GPG_ERR_ERPCMISMATCH" "\0"
  "GPG_ERR_ESHUTDOWN" "\0"
  "GPG_ERR_ESOCKTNOSUPPORT" "\0"
  "GPG_ERR_ESPIPE" "\0"
  "GPG_ERR_ESRCH" "\0"
  "GPG_ERR_ESRMNT" "\0"
  "GPG_ERR_ESTALE" "\0"
  "GPG_ERR_ESTRPIPE" "\0"
  "GPG_ERR_ETIME" "\0"
  "GPG_ERR_ETIMEDOUT" "\0"
  "GPG_ERR_ETOOMANYREFS" "\0"
  "GPG_ERR_ETXTBSY" "\0"
  "GPG_ERR_EUCLEAN" "\0"
  "GPG_ERR_EUNATCH" "\0"
  "GPG_ERR_EUSERS" "\0"
  "GPG_ERR_EWOULDBLOCK" "\0"
  "GPG_ERR_EXDEV" "\0"
  "GPG_ERR_EXFULL";

static const int errnos_msgidx[] =
  {
    0,
    14,
    29,
    48,
    70,
    83,
    104,
    119,
    136,
    150,
    170,
    184,
    198,
    213,
    229,
    243,
    259,
    275,
    291,
    306,
    320,
    338,
    353,
    368,
    382,
    403,
    424,
    443,
    454,
    470,
    488,
    509,
    523,
    536,
    552,
    567,
    582,
    597,
    611,
    626,
    646,
    664,
    682,
    703,
    717,
    731,
    746,
    766,
    780,
    795,
    807,
    823,
    838,
    853,
    868,
    885,
    900,
    915,
    931,
    947,
    964,
    980,
    996,
    1011,
    1025,
    1045,
    1060,
    1075,
    1092,
    1110,
    1131,
    1147,
    1165,
    1182,
    1200,
    1220,
    1235,
    1250,
    1266,
    1281,
    1297,
    1312,
    1327,
    1343,
    1358,
    1374,
    1392,
    1407,
    1422,
    1437,
    1452,
    1472,
    1487,
    1501,
    1516,
    1531,
    1547,
    1564,
    1580,
    1598,
    1614,
    1631,
    1647,
    1662,
    1679,
    1693,
    1712,
    1730,
    1744,
    1765,
    1779,
    1796,
    1817,
    1839,
    1860,
    1875,
    1899,
    1918,
    1933,
    1949,
    1965,
    1983,
    2000,
    2014,
    2035,
    2053,
    2077,
    2092,
    2106,
    2121,
    2136,
    2153,
    2167,
    2185,
    2206,
    2222,
    2238,
    2254,
    2269,
    2289,
    2303,

  };

static GPG_ERR_INLINE int
errnos_msgidxof (int code)
{
  return (0 ? 0
  : ((code >= 0) && (code <= 140)) ? (code - 0)
  : -1);
}

Issue7

gstreamer编译错误

out/t113_i/myir-image-yt113i-core/longan/buildroot/build/gst1-plugins-base-1.14.4/gst-libs
out/t113_i/myir-image-yt113i-core/longan/buildroot/build/gst1-plugins-base-1.14.4/gst-libs/gst/video/video-enumtypes.c
out/t113_i/myir-image-yt113i-core/longan/buildroot/build/gst1-plugins-base-1.14.4/gst-libs/gst/app/app-enumtypes.c
out/t113_i/myir-image-yt113i-core/longan/buildroot/build/gst1-plugins-base-1.14.4/gst-libs/gst/tag/tag-enumtypes.c
out/t113_i/myir-image-yt113i-core/longan/buildroot/build/gst1-plugins-base-1.14.4/gst-libs/gst/audio/audio-enumtypes.c

去掉头文件前的斜杠。

相关新闻

联系我们

029-89197679

技术咨询:support@i2som.tech

商务合作:market@i2som.tech

工作时间:周一至周五,9:30-18:30,节假日休息