开发板:TLT113-MiniEVM_V1.2
系统:Ubuntu 20.04 (没有使用创龙的镜像)
前期准备工作:
1.根据创龙的“Linux 系统使用手册”,将创龙的LinuxSDK-v1.2.tar.gz,解压到自己的目录
2.按照上述手册的”1.2 安装依赖软件“章节安装相应依赖软件
3.按照上述手册"解压 Buildroot dl"章节操作
开始配置编译环境:
1.进入T113-i_v1.0文件夹:
Host# cd T113-i_v1.0/
清除所有编译和配置生成文件
Host# ./build.sh distclean
2.配置 Linux 内核、内核版本、处理器型号、评估板型号(tlt113-miniev
m-nand)、显示方式、编译器等信息:
Host# ./build.sh config
出现如下错误:
或者:python: command not found
百度得到python版本的引起的
先查看本机版本:pythonls -l /usr/bin/python*
本机python指定了python3,但是创龙需要python2
建立软连接,添加映射。如果之前建立过软连接,删除之前的软连接
sudo ln -s /usr/bin/python2 /usr/bin/python
然后,再查看python版本,已经连接到python2了
此时,再进行配置./build.sh config,顺利通过:
下一步,开始编译 :
1.编译环境配置
Host# source ./build/envsetup.sh
2.开始编译:
Host#./build.sh
出现如下错误
gdbusauth.c:1302:11: error: ‘%s’ directive argument is null
gdbusmessage.c:2702:30: error: ‘%s’ directive argument is null
在gdbusauth.c第1302行修改如下
在gdbusmessage第2702行修改如下
然后又开始报错,此处忘记截图了:`\#' is not a known regexp operator
参照CSDN大佬:全志T5环境编译错误解决_strerror-sym.c errnos_msgidxof_stitching的博客-CSDN博客
将mkerrnos.awk
mkerrcodes.awk
mkerrcodes1.awk
mkerrcodes2.awk
mkstrtable.awk
这几个文件中的sub (/\#.+/, "");修改为sub (/#.+/, "");
其中,在buildroot环节,貌似还报错errnos-sym.h文件为空,忘记截图了,借用CSDN大佬的图片,记得是这个错误:
在Ubuntu21.04中编译Tina SDKV1.01 版本 踩坑记录_toplevel.mk错误-CSDN博客
按照大佬的方法,新建errnos-sym.h,复制相应的内容:
此处,也贴出errnos-sym.h内容,引自上述大佬
/* 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);
}
并将该文件放到如下文件夹:
/home/hbb/T113/T113-i_v1.0/out/t113_i/tlt113-minievm-emmc/longan/buildroot/build/libgpg-error-1.33/src
至此,./build.sh执行通过: