This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
您好!
我正在尝试按照以下指南设置构建环境
我按照该指南执行了所有步骤。
最后、当我执行 build-core-sdk dra7xx-evm 时、遇到以下错误:
用户@温度:~/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03/yocto-layers ./build-core-sdk.sh dra7xx-evm
[PSDKLA]>
[PSDKLA]>当前目录是/home/user/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03/yocto-layers
[PSDKLA]>路径为/home/user/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin:/home/user/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
[PSDKLA]>在运行 Linux Temp 4.14.0-041400-generic #201711122031 SMP Sun 11月12日20:32:29 UTC 2017 x86_64 x86_64 x86_64 x86_64 x86_64 x86_64 GNU/Linux
[PSDKLA]>从2021年1月15日星期五下午13:17:06 IST 开始 Yocto 构建
[PSDKLA]>
[PSDKLA]>CD 构建
[PSDKLA]>。 配置/设置
[PSDKLA]>CP conf/local.conf conf/local.conf 原始
[PSDKLA]> machine=dra7xx-EVM bitbake tisdk-rootfs-image
致命:打结器 ui 无法加载所需的 curses python 模块。
[PSDKLA]>
[PSDKLA]>于2021年1月15日13:17:07 IST 星期五完成了 Yocto 构建
[PSDKLA]>
我正在使用 Ubuntu 14.04。
请告诉我解决此问题是否需要任何其他详细信息。
Prasad、您好!
我们之前没有看到过这个问题,快速搜索告诉我,可以通过安装 python3-curses 来解决这个问题。
我会请您尝试此操作并分享您的反馈。
此致
Karthik
Prasad、您好!
请确认您已能够根据您在 此处的其他帖子解决此问题:https://e2e.ti.com/support/tools/ccs/f/81/p/968012/3590888#3590888
此致
Karthik
您好 Karthik、
此问题尚未解决、我尝试通过评论 knotty.py 文件中与代码相关的一些小路来旁通此问题、以便能够启动 bitbake。
此问题仍需解决、但不会阻止我。
Prasad、
很高兴听到这个消息。 您能否在此处提供您所评论的内容的详细信息并分享该解决方案? 我将尝试以一种干净的方式解决这一问题。
此致
Karthik
您好 Karthik、
请查找相同的附件。
在附件中、代码 w.r.t curses 用#进行注释
抱歉、我无法上传文件、因此我粘贴了代码
编号
# BitBake (No) TTY UI 实现
编号
#处理 TTYs 或文件的输出(无 TTY)
编号
#版权所有(C) 2006-2012 Richard Purdie
编号
#此程序是免费软件;您可以重新分发和/或修改
#根据 GNU 通用公共许可证版本2的条款、如下所示
#由免费软件基金会发布。
编号
#此计划的发布目的是希望它将有所帮助、
#但不提供任何保证;甚至没有的暗示保证
#适销性或特定用途的适用性。 请参阅
# GNU 通用公共许可证以了解更多详细信息。
编号
#您应该已收到 GNU 通用公共许可证的副本
#对于此程序;如果没有,请向 Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston,MA 02110-1301 USA。
从__fute__import 分部导入
导入操作系统
导入系统
将 xmlrpc.client 导入为 xmlrpclub
导入日志记录
导入进度条
导入信号
导入 bb.msg
导入时间
导入 fcntl
导入结构
导入副本
导入退出
从 bb.ui 导入 uihelper
FeatureSet =[bb.Cooker.CookerFeatures.send_SANITYEVENTS]
Logger = logging.getLogger ("BitBeake")
交互式= sys.stdout.isatty()
分级 BBProgress (Progressbar.ProgressBar):
DEF __init__(self、msg、maxval、widgets=None、extrapos=1、 resize_handler =无):
self.msg = msg
self.exapos = exapos
如果不是小工具:
小工具=[Progressbar.percent()、'、Progressbar.Bar()、'、
ProgressBar.ETA()
self.exapos=4
如果 resize_handler:
self_resize_default = resize_handler
否则:
self._resize_default = signal.getsignal (signal.SIGWINCH)
ProgressBar.ProgressBar.__init__(self、maxval、[self.msg +":"]+小工具、fd=sys.stdout)
def_handle_resize (self、signum=None、frame=None):
ProgressBar.ProgressBar.Handle_resize (self、signum、frame)
如果 self._resize_default:
self_resize_default (signum、frame)
DEF (自行):
ProgressBar.ProgressBar.Finish(自己)
如果 self._resize_default:
signal.signal (signal.SIGWINCH、self._resize_default)
DEF 设定消息(self、msg):
self.msg = msg
self.widget[0]= msg
DEF setextra (自加、额外):
如果 self.extrapos >-1:
如果额外:
strextrast=str(extra)
如果 extrastr[0]!=':
strextstr=''+ strextstr
否则:
外部=''
self.widget[self.extraapos]=外部
DEF_need_update (self):
#调用 update()时,我们始终希望该栏打印
返回 True
类非活动入口(对象):
fobj = sys.stdout
DEF __init__(self、msg、maxval):
self.msg = msg
self.maxval = maxval
self.finished =错误
默认启动(自、更新=真):
selfobj.write ("%s..") % self.msg)
selfobj.flush ()
自行返回
DEF 更新(自、值):
通过
DEF (自行):
如果自行完成:
返回
selfobj.write ("don.\n")
selfobj.flush ()
self.finished = True
默认 new_progress (msg、maxval):
如果是交互式:
返回 BBProgress (msg、maxval)
否则:
返回非活动入口(msg、maxval)
DEF 多元化(奇异、复数、数量):
如果(数量= 1):
返回奇异%数量
否则:
返回复数%数量
类 InteractConsoleLogFilter (logging.Filter):
DEF __init__(self、TF、format):
self.tf = tf
self.format =格式
DEF 过滤器(自、记录):
如果 record .levelno = self.format.note 和(record .msg.StartsWith ("Running")或 record msg.StartsWith ("配方")):
返回 False
self.tf.clearFooter()
返回 True
类终端过滤器(对象):
rows = 25
列= 80
DEF 绞盘_手柄(自、信号、框架):
self.rows、self.columns = self.getTerminalColumns()
如果 self._sig绞 盘默认值:
self. sig绞 盘默认值(signum、frame)
DEF getTerminalColumns (self):
默认 ioctl_GWINSZ (FD):
尝试:
cr = struct.unpack('hhhhhh'、fcntl.ioctl (fd、self.termios.tIOCGWINSZ、'123'))
除了:
返回无
返回 CR
cr = ioctl_GWINSZ (sys.stdout.fileno())
如果不是 CR:
尝试:
fd = os.open (os.cttermid()、os.O_RDONLY)
CR = ioctl_GWINSZ (FD)
os.close(FD)
除了:
通过
如果不是 CR:
尝试:
cr =(env['LINes']、env['column'])
除了:
CR =(25、80)
返回 CR
DEF __init__(self、main、helper、console、errconsole、 格式、安静):
self.main = main
self.helper = helper
self.cuu =无
self.stdinbackup =无
self.interactive = sys.stdout.isatty()
selfooter_present =错误
self.lastpids =[]
self.lasttime =无
self.quiet =安静
如果不是 self.interactive:
返回
#尝试:
#导入卷曲
#除了 ImportError:
# sys.exit ("致命:打结器 ui 无法加载所需的 curses python 模块。")
导入 termios
#self.curses = curses
self.termios = termios
尝试:
fd = sys.stdin.fileno()
self.stdinbackup = termios.tcgetattr (FD)
新= copy.deepcopy(self.stdinbackup)
new[3]= new[3]&~termios.echo
termios.tcsetattr (fd、termios.TCSADRAIN、新)
curses.setupterm ()
#if curses。tigetnum ("颜色")> 2:
# format.enable_color ()
#self.ed = curses.tigetstr ("ed")
#if self.ed:
# self.cuu = curses.tigetstr ("cuu")
#尝试:
# self._sigchwin_default = SIGN.getsignal (SIGWINCH)
# SIGL.SIGNAL (SIGWINCH、self.sig绞 盘手柄)
#例外:
#通过
#self.rows、self.columns = self.getTerminalColumns()
除了:
self.cuu =无
如果不是 self.cuu:
self.interactive =错误
bb.note("Unable 以使用交互模式连接此终端、使用回退")
返回
如果是控制台:
console.addFilter (InteractConsoleLogFilter (self、format))
如果错误控制台:
errconsole.addFilter (InteractConsoleLogFilter (self、format))
self.main_progress =无
DEF clearFooter (自助):
如果 selfooter_present:
行= selfooter_present
sys.stdout.buffer.write (self.curses.tparm (self.cuu、lines))
sys.stdout.buffer.write (self.curses.tparm (self.ed))
sys.stdout.flush()
selfooter_present =错误
DEF 更新页脚(self):
如果不是 self.cuu:
返回
activetasks = self.helper.running_tasks
failedtas= self.helper.failed_tasks
Runningpeds = self.helper.running_pids
CurrentTime = time.time()
如果不是 self.lasttime 或(currenttime - self.lasttime > 5):
self.helper.needUpdate =真
self.lasttime =当前时间
如果 selfooter_present 而不是 self.helper.needUpdate:
返回
self.helper.needUpdate =错误
如果 selfooter_present:
self.clearFooter()
如果(非 self.helper.tasknumber_total 或 self.helper.tasknumber_current = self.helper.tasknumber_total)而不是 len (activetask):
返回
任务=[]
对于 t IN 运行:
进度= activetasks [t].get ("进度"、无)
如果进度不是无:
pbar = activetasks [t].get ("进度条"、无)
rate = activetasks [t].get ("rate"、无)
start_time = activetasks [t].get ("starttime"、无)
如果不是 pbar 或 pbar.b弹跳!=(进度< 0):
如果进度< 0:
pbar = BBProgress ("0:%s (pid %s)"%(activetasks [t]["title"]、t)、100、widgets=[Progressbar.BouncingSlider ()、'"]、 extrapos=2、resize_handler = self.sigbandon_handle)
pbar.b弹跳=真
否则:
pbar = BBProgress ("0:%s (pid %s)"%(activetasks [t]["title")、t)、100、widgets=[progressbar.percentage ()、'、 ProgressBar.Bar ()、']、extrapos=4、resize_handler = self.sigchandon_handle)
pbar.b弹跳=错误
activetas[t]["进度条"]= pbar
tasks.append ((pbar、进度、速率、start_time))
否则:
start_time = activetasks [t].get ("starttime"、无)
如果 start_time:
tasks.append ("%s"-%DS (pid %s)"%(activetasks[t]["title"]、currenttime - start_time、t))
否则:
tasks.append ("%s"(pid %s)"%(activetasks[t]["title"]、t))
如果 self.main.shutdown:
内容="等待%s 正在运行的任务完成:"% len (activetasks)
打印(内容)
否则:
如果 self.quiet:
内容="正在运行的任务(%s、共%s 个)"%(self.helper.tasknumber_current、self.helper.tasknumber_total)
Elif not len (活化剂):
内容="当前无正在运行的任务(%s、共%s 个)"%(self.helper.tasknumber_current、selfhelper.tasknumber_total)
否则:
内容="当前%2个正在运行的任务(%s 个、共%s 个)"%(len (activetask)、self.helper.tasknumber_current、self.helper.tasknumber_total)
maxtask = self.helper.taskNumber_total
如果不是 self.main_progress 或 self.main_progress.maxval!= maxtask:
小工具=['、Progressbar.percentage ()、'、Progressbar.Bar ()]
self.main_progress = BBProgress ("正在运行的任务"、maxtask、widgets=widget、resize_handler = self.sigwand_handle)
self.main_progress.start (错误)
self.main_progress.setmessage(content)
进度= self.helper.tasknumber_current - 1.
如果进度< 0:
进度= 0
内容= self.main_progress.update (进度)
打印('')
线条= 1 + int (len (content)/(self.columns + 1))
如果 self.quiet = 0:
对于 tasknum、枚举中的任务(任务[:(self.rows - 2)]):
如果 isinstance (task、tuple):
Pbar、进度、速率、START_TIME =任务
如果不是 pbar.start_time:
pbar.start (错误)
如果 start_time:
pbar.start_time = start_time
pbar.setmessage('%s:%s'%(tasknum、pbar.msg.split(':'、1)[1])
如果进度>-1:
pbar.setextra(rate)
内容= pbar.update (进度)
否则:
内容= pbar.update (1)
打印('')
否则:
内容="%s":%s"%(tasknum、task)
打印(内容)
行=行+ 1 + int (len (content)/(self.columns + 1))
selfooter_present =行
self.lastpids =运行 ningpids[:]
self.lastcount = self.helper.tasknumber_current
DEF (自行):
如果 self.stdinbackup:
fd = sys.stdin.fileno()
self.termios.tcsetattr (fd、self.termios.TCSADRAIN、self.stdinbackup)
默认 print_event_log (event、includedelog、loglines、termfilter):
# FIXME 进一步重新考虑了这一点
logfile = event.logfile
如果 logfile 和 os.path.exists (logfile):
termfilter.clearFooter()
bB.error ("故障的日志文件存储在:%s"%日志文件中)
如果 includedogs 而不是 event.errprinted:
打印("日志数据遵循:")
f = open (logfile、"r")
线条=[]
当为真时:
l = f.readline()
如果 l ='':
中断
L = L.rstrip()
如果对数行:
LINES.append ('|%s'% l)
如果 len (lines)> int (loglines):
LINes.POP (0)
否则:
打印('|%s'% l)
F.Close()
如果行:
对于线路输入:
打印(行)
DEF _log_settings_fin_server (服务器、只观察):
#获取控制输出的变量值
includedelogs、ERROR = server.runCommand(["getVariable"、"BBINCLUDELOGs"])
如果出错:
logger.error ("无法获取 BBINCLUDELOGS 变量的值:%s"%错误)
提升基异常(错误)
loglines、error = server.runCommand(["getVariable"、"BBINCLUDELOGS_LINES"])
如果出错:
logger.error ("无法获取 BBINCLUDELOGS_LINes 变量的值:%s"%错误)
提升基异常(错误)
如果只观察:
CMD ='getVariable'
否则:
CMD ='getSetVariable'
consolelogfile、error = server.runCommand([cmd、"BB_CONSOLELOG"])
如果出错:
logger.error ("无法获取 BB_CONSOLELOG 变量的值:%s"%错误)
提升基异常(错误)
返回 includedog、loglines、consolelogfile
_evt_list =["bb.runqueue.runQueueExitWait"、"bb.event.LogExecty"、"logging.LogRecord"、
"bb.build.TaskFail"、"bb.build.TaskBase"、"bb.event.ParseStarted"、
"bb. event.ParseProgress"、"bb.event.ParseCompled"、"bb.event.CacheLoadStarted"、
"bb. event.CacheLoadProgress、"bb.event.CacheLoadCompled"、"bb.command.CommandFailed"、
bb.command.CommandExit"、"bb.command.CommandCompleted"、"bb.Cooker.CookerExit"、
"bb. event.MultipleProviders"、"bb.event.NoProvider"、"bb.runqueue.sceneQueueTaskStarted"、
"bb.runqueue.runQueueTaskStarted"、"bb.runqueue.runQueueTaskFailed"、"bb.runqueue.sceneQueueTaskFailed"、
"bb. event.BuildBase"、"bb.build.TaskStarted"、"bb.build.TaskSuccessed"、"bb.build.TaskFailedSilent"、
"bb. build.TaskProgress "、"bb.event.ProcessStarted"、"bb.event.ProcessProgress "、"bb.event.ProcessFined"]
DEF main (server、eventHandler、params、TF =终端过滤器):
如果不是 params.Observ_only:
params.updateToServer (服务器、os.environon.copy())
includedelogs、loglines、consolelogfile =_log_settings_fin_server (server、params.Observ_only)
如果 sys.stdin.isatty()和 sys.stdout.isatty():
LOG_exec_TTY =真
否则:
LOG_exec_TTY =错误
helper = uihelper.BBUIhelper()
控制台= logging.StreamHandler (sys.stdout)
errconsole = logging.StreamHandler (sys.stderr)
format_str ="%(levelname) s:%(message) s"
格式= bb.msg.BBLogFormat(format_str)
如果 params.options.quiet = 0:
forcelevel =无
Elif params.options.quiet > 2:
forcelevel = bb.msg.BBLogFormatter.error
否则:
forcelevel = bb.msg.BBLogFormatter.warning
b.msg.addDefaultlogFilter (console、bb.msg.BBLogFilterStdOut、forcelevel)
b.msg.addDefaultlogFilter (errconsole、bb.msg.BBLogFilterStdErr)
console.setFormatter(format)
errconsole.setFormatter(format)
如果不是 bb.msg.has _console_handler (logger):
logger.addHandler (控制台)
logger.addHandler (errconsole)
bb.utils.set_process_name("KnottyUI")
如果 params.options.remote_server 和 params.options.kill_server:
server.terminateServer()
返回
consolelog =无
如果 consolelogfile 而不是 params.options.show_environment 而不是 params.options.show_versions:
b.utils.mkdirhier(os.path.dirname(conelogfile))
conlogformat = bb.msg.BBLogFormat(format_str)
consolelog = logging.FileHandler (consolelogfile)
bb.msg.addDefaultlogFilter (consolelog)
consolelog.setFormatter(conlogformat)
logger.addHandler (consolelog)
loglink = os.path.join (os.path.dirname (consolelogfile)、'console-latest.log')
b.utils.remove (loglink)
尝试:
os.symlink (os.path.basename (consolelogfile)、loglink)
除 OSError:
通过
llevel、debug_domains=bb.msg.structLogOptions()
server.runCommand(["setEventMask"、server.getEventHandle()、llevel、debug_domains,_evt_list])
宇宙=错误
如果不是 params.Observ_only:
params.updateFromServer(服务器)
cmdline = params.parseActs()
如果不是 cmdline:
print("Nothing to Do。 使用"Bitbake world"构建一切、或运行"Bitbake --help"获取使用信息。")
返回1
如果命令行和命令行中的'msg'['msg']:
logger.error (cmdlin['mSG'])
返回1
如果 cmdline['action'][0]="buildTargets"和"University"位于 cmdline['action'][1]中:
宇宙=正确
RET、ERROR = server.runCommand(cmdline['action'])
如果出错:
logger.error ("命令'%s'失败:%s"%(cmdline、错误))
返回1
Elif ret!=正确:
logger.error ("命令'%s'失败:返回%s"%(cmdline、ret))
返回1
parseprogress =无
CacheProgress =无
main.shutdown = 0
中断=错误
RETURE_VALUE = 0
错误= 0
警告= 0
任务失败=[]
termfilter = tf (main、helper、console、errconsole、format、 params.options.quiet)
atexit.register (termfilter.finish)
当为真时:
尝试:
事件= eventHandler.waitEvent (0)
如果事件为无:
如果 main.shutdown > 1:
中断
termfilter.updateFooter()
事件= eventHandler.waitEvent (0.25)
如果事件为无:
继续
helper.eventHandler (事件)
if isinstance (event、bb.runqueue.runQueueExitWait):
如果不是 main.shutdown:
main.shutdown = 1
继续
如果 isinstance (event、bb.event.LogExecTTY):
如果 log_exec_tty:
尝试= event.retries
尝试时:
打印("正在尝试运行:%s"% event.prog)
如果 os.system (event.prog)=0:
中断
TIME.SLEEP (EVENT.SLEEP_DELAY)
尝试-= 1.
如果尝试:
继续
logger.warning (event.msg)
继续
如果 isinstance (event、logging.LogRecord):
如果 event.levelno >= format.error:
错误=错误+ 1
RETURE_VALUE = 1
Elif event.levelno == format.warning:
警告=警告+ 1.
如果 event.taskpid!= 0:
#对于"正常"日志记录条件、不显示任务的注释日志
#、但如果用户将默认日志级别更改为、请务必显示它们
#包含详细/调试消息
如果 event.levelno <= format.note 和(event.levelno < llevel 或(event.levelno == format.note 和 llevel!= format.verbose):
继续
#使用配方/任务前缀任务消息
如果 helper.running_tasks 中的 event.taskpid 和 event.levelno != format.plain:
taskinfo = helper.running_tasks[event.taskpid]
event.msg = taskinfo['title']+':'+ event.msg
如果有(事件、'fn'):
event.msg = event.fn +':'+ event.msg
logger.handle (事件)
继续
如果 isinstance (event、bb.build.TaskFailedSilent):
logger.warning ("失败的 setscene 任务的 Logfile 为%s"% event.logfile)
继续
如果 isinstance (event、bb.build.TaskFailed):
RETURE_VALUE = 1
print_event_log (event、includedelog、loglines、termfilter)
如果 isinstance (event、bb.build.TaskBase):
logger.info(event._message)
继续
如果 isinstance (event、bb.event.ParseStarted):
如果 params.options.quiet > 1:
继续
如果 event.total = 0:
继续
parseprogress = new_progress ("分析方法"、event.total).start()
继续
如果 isinstance (event、bb.event.ParseProgress):
如果 params.options.quiet > 1:
继续
如果 parseprogress:
parseprogress.update (event.current)
否则:
bB.warn("GOT ParseProgress event for assuming that never started?")
继续
如果 isinstance (event、bb.event.ParseCompleded):
如果 params.options.quiet > 1:
继续
如果不是并行进程:
继续
parseprogress.finish()
pasreprogress =无
如果 params.options.quiet = 0:
print("对%d .bb 文件的解析已完成(%d 缓存、%d 解析)。 %d 个目标、%d 个已跳过、%d 个已屏蔽、%d 个错误。"
%(event.total、event.cached、event.pareded、event.virtuals、event.skipped、 event.masked、event.errors))))
继续
如果 isinstance (event、bb.event.CacheLoadStarted):
如果 params.options.quiet > 1:
继续
cachesProgress = new_progress ("正在加载高速缓存"、event.total).start ()
继续
如果 isinstance (event、bb.event.CacheLoadProgress):
如果 params.options.quiet > 1:
继续
cachepprogress.update (event.current)
继续
如果 isinstance (event、bb.event.CacheLoadCompleted):
如果 params.options.quiet > 1:
继续
cachepprogress.finish()
如果 params.options.quiet = 0:
打印("从依赖关系缓存加载%d 个条目。" % event.num_entries)
继续
if isinstance (event、bb.command.CommandFailed):
return_value = event.exitcode
如果 event.error:
错误=错误+ 1
logger.error (str (event))(logger.error (str
main.shutdown = 2
继续
if isinstance (event、bb.command.CommandExit):
如果不是 return_value:
return_value = event.exitcode
继续
如果 isinstance (event、(bb.command.CommandCompleted、bb.tofter.CookerExit):
main.shutdown = 2
继续
如果 isinstance (event、bb.event.MultipleProviders):
logger.info(str(event)
继续
如果 isinstance (event、bb.event.NoProvider):
#对于 Universe 构建、仅将这些显示为警告、而不是错误
如果不是宇宙:
RETURE_VALUE = 1
错误=错误+ 1
logger.error (str (event))(logger.error (str
否则:
logger.warning (str(event))
继续
if isinstance (event、bb.runqueue.sceneQueueTaskStarted):
logger.info("Running setscene task %d、共%d (%s)"%(event.stats.completed + event.stats.active + event.stats.failed + 1、event.stats.total、event.taskstring))
继续
if isinstance (event、bb.runqueue.runQueueTaskStarted):
如果是 event.noexec:
TaskType ='noexec task'
否则:
任务类型='task'
logger.info("Running %s %d、共%d (%s)"、
任务类型、
event.stats.completed + event.stats.active +
event.stats.failed + 1、
event.stats.total、event.taskstring)
继续
if isinstance (event、bb.runqueue.runQueueTaskFailed):
RETURE_VALUE = 1
taskfailures.append (event.taskstring)
logger.error (str (event))(logger.error (str
继续
if isinstance (event、bb.runqueue.sceneQueueTaskFailed):
logger.warning (str(event))
继续
如果 isinstance (event、bb.event.dptreeGenerated):
继续
如果 isinstance (event、bb.event.ProcessStarted):
如果 params.options.quiet > 1:
继续
parseprogress = new_progress (event.processname、event.total)
parseprogress.start (错误)
继续
如果 isinstance (event、bb.event.ProcessProgress):
如果 params.options.quiet > 1:
继续
如果 parseprogress:
parseprogress.update (event.progress)
否则:
bB.warn("GOT ProcessProgress event for sominging that never started?")
继续
如果 isinstance (event、bb.event.ProcessFinished):
如果 params.options.quiet > 1:
继续
如果 parseprogress:
parseprogress.finish()
parseprogress =无
继续
#忽略
如果 isinstance (event、(bb.event.BuildBase、
b.event.MetadataEvent、
b.event.StampUpdate、
b.event.ConfigParsed、
b.event.MultiConfigParsed、
b.event.RecipeParsed、
BB.event.RecipePreFinalize、
bb.runqueue.runQueueEvent、
b.event.OperationStarted、
BB.event.OperationCompleted、
BB.event.OperationProgress、
b.event.DiskFull、
b.event.HeartbeatEvent、
bb.build.TaskProgress)):
继续
logger.error ("未知事件:%s"、事件)
除了环境错误作为 ioerror:
termfilter.clearFooter()
#忽略中断的 IO
如果 ioerror.args[0]= 4:
继续
sys.stderr.write (str (ioerror))(sys.stderr.write (str (str
如果不是 params.Observ_only:
_、ERROR = server.runCommand(["stateForceShutdown"])
main.shutdown = 2
键盘中断除外:
termfilter.clearFooter()
如果 params.Observ_only:
打印("\n 键盘中断、正在退出观测器...")
main.shutdown = 2
如果不是 params.Observ_only 和 main.shutdown == 1:
打印("\n 第二个键盘中断,正在停止...\n")
_、ERROR = server.runCommand(["stateForceShutdown"])
如果出错:
logger.error ("无法完全停止:%s"%错误)
如果不是 params.Observ_only 和 main.shutdown == 0:
打印("\n 键盘中断,关闭...\n")
中断=真
_、ERROR = server.runCommand(["stateShutdown"])
如果出错:
logger.error ("无法完全关闭:%s"%错误)
main.shutdown = main.shutdown + 1
通过
例外情况除外、例如 e:
导入回溯
sys.stderr.write (traceba.format_exc ())
如果不是 params.Observ_only:
_、ERROR = server.runCommand(["stateForceShutdown"])
main.shutdown = 2
RETURE_VALUE = 1
尝试:
termfilter.clearFooter()
摘要=""
如果任务失败:
摘要+=多元化("\n 摘要:%s 任务失败:"、
"\n 摘要:%s 任务失败:"、len (任务失败)
对于任务失败中的失败:
摘要+="\n %s"%失败
如果出现警告:
summary += pluralize ("\n 摘要:显示了%s 警告消息。"、
"\n 摘要:显示了%s 个警告消息。"、警告)
如果 return_value 和错误:
summary += pluralize ("\n 摘要:显示%s 错误消息、返回非零退出代码。"、
"\n 摘要:显示%s 错误消息,返回非零退出代码。",错误)
如果 summary 和 params.options.quiet = 0:
打印(摘要)
如果中断:
打印("执行被中断、返回非零退出代码。")
如果 return_value = 0:
RETURE_VALUE = 1
除了 IOError 作为 e:
导入错误号
如果 e.errno == errno.epipe:
通过
如果控制台:
logger.removeHandler (consolelog)
consolelog.close()
返回 return_value
Prasad、
我开始认为您报告的问题与主机上的 python 有关。
为什么您的主机上有 python 版本? 您能否共享"python --version"的输出
此致
Karthik
您好 Karthik、
请查看以下内容:
User@Temp:~/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03 python --version
Python 2.7.6
用户@温度:~/Prasad/ti-processor-sdk-linux-automotive-dra7xx-evm-6.00.00.03
您好 Karthik、
我已将默认 python 版本设置为 Python 3.7、并重复了所有过程、但仍然存在相同的问题
User@Temp:~$ python -版本
Python 3.7.9
用户@温度:~$
Prasad、您好!
我在这个主题上发布了我的更新: https://e2e.ti.com/support/tools/ccs/f/81/p/972640/3605660#3605660、让我们继续讨论一个主题。 所有问题都是相关的。
此致
Karthik