给hunter___的回复

本文记录了B2GOS在OneplusX手机上运行遇到的问题及解决过程,包括Compositor崩溃、gecko引擎替换、稳定版本选择、gdb调试技巧等,最终成功实现系统稳定运行。

##################10.24########

先很高兴告诉你,B2GOS已经完美运行在oneplusX!!谢谢你的建议。

这几天,我找到了前B2GOS的telegram频道,在B2G团队解散后,他们启动了一个实验性项目servonk on gonk,“This is an experimental project”,该项目在B2G基础上使用mozilla的新引擎servo替代gecko引擎,去掉了gecko和gaia层,从gonk层启动“servo”再启动前端UI。

说正题:
我把我的log问题与他们分享,他们给出了和你相似的建议,更换更加稳定的版本源码!

the crash seems to be a compositor crash
it’s likelly full of traps
gecko52 lacks a bunch of b2g apis
B2G2.6/48 is the latest with the b2g specific apis

master分支有太多的问题,并且我使用的还是gecko52,是最后一个存在B2G项目版本,维护最少的一个版本。

显然,从崩溃log知道问题出在gecko层的Compositor,但是相比于找到并修复Compositor问题代码的精力花销,我不如听你和前B2G团队的建议,更换稳定的B2G版本!下载了gecko44+gaia2.5代码,用变量更改gecko和gaia源码路径到下载的2.5代码,额外编译了一次gecko层和gaia层的源码,途中有点小报错,但问题解决,刷机,开机,一切正常。heppy,上几张图
在这里插入图片描述
在这里插入图片描述
嗯…图片方向反了……

不过我发现B2G系统有系统性问题,好像我不能通过gaia层应用API制作shell工具,而且如果要实现的话我要额外安装node.js(尽管这并不是难事)。

################旧的#########
谢谢你给我的分析意见,我在这里回答一下你的疑问。

  1. gdb调试工具是编译系统时自动加进去的,不需要我额外添加,并且系统开机默认不启动gdb服务,B2GOS官方提供了gdb调试的相关文档: https://developer.mozilla.org/en-US/docs/Archive/B2G_OS/Debugging/Debugging_B2G_using_gdb

  2. 我没有设置断点gdb调试,也没有对MessageChannel.cpp进行修改。我采用的是官方GitHub分支d1276b5b84e6cf7991c8e640b5e0ffffd54575a6的gecko源码进行编译,该版本github链接为:https://github.com/mozilla-b2g/gecko-b2g/tree/d1276b5b84e6cf7991c8e640b5e0ffffd54575a6

MessageChannel.cpp第2057行附近函数代码:
在这里插入图片描述
这里应该只是一个console报错输出函数
MessageChannel.cpp代码链接:https://github.com/mozilla-b2g/gecko-b2g/blob/d1276b5b84e6cf7991c8e640b5e0ffffd54575a6/ipc/glue/MessageChannel.cpp#L2057

另外,在崩溃log段:

Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1100 (Compositor)
I/DEBUG   (  275): property debug.db.uid not set; NOT waiting for gdb.
I/DEBUG   (  275): HINT: adb shell setprop debug.db.uid 100000
I/DEBUG   (  275): HINT: adb forward tcp:5039 tcp:5039

我理解的意思是系统出现Fatal signal 11崩溃,但是发现我没有给debug.db.uid赋值(100000),所以系统认为不需要在这里断点以及等待gdb调试的干预,然后直接继续运行下去,并且系统还提示如果需要断点调试要先给系统命令

adb shell setprop debug.db.uid 100000 
adb forward tcp:5039 tcp:5039 //建立ADB端口转发

才能启动gdb断点调试。

  1. 谢谢你给我的建议,的确,MessageChannel.cpp这部分代码和你提供给我的代码存在差异,我有必要分析这部分代码相关后才能知道崩溃是否出自这里。

目前我分析认为应该是未知进程出现了问题(从log中我不能确定是gecko还是Android底层的进程),导致display.qservice、SurfaceFlinger、permission服务死掉而最后才造成MessageChannel.cpp的报错。因为出现
###!!! ABORT: Aborting on channel error.: file /media/bingco/DATA_WIN/B2G/gecko/ipc/glue/MessageChannel.cpp, line 2057
报错前display.qservice、SurfaceFlinger、permission已经死掉(log截图第4473-4476行)。
在这里插入图片描述

  1. Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 1100 (Compositor)

参考你提供给我的建议:

1)头文件路径 ,编译环境发现,用到的头文件位置不同,导致结果差异。通过重新设置头文件路径。

存在这个可能,我会重新检测相关编译环境。

2)机器太老

我移植的是OneplusX手机,基于Android5.1版本,这款手机应该不算上很老的机器,电脑环境为Ubuntu16。

3)你自己的库有问题,。。。

不排除这个可能,O(∩_∩)O谢谢你提供的建议。

4)我感觉是你gdb那里的问题,具体报了文件名了都

是gdb的可能性不大,因为我并没有启动gdb服务。

【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)内容概要:本文介绍了名为《【顶级EI完整复现】【DRCC】考虑N-1准则的分布鲁棒机会约束低碳经济调度(Matlab代码实现)》的技术资源,聚焦于电力系统中低碳经济调度问题,结合N-1安全准则与分布鲁棒机会约束(DRCC)方法,提升调度模型在不确定性环境下的鲁棒性和可行性。该资源提供了完整的Matlab代码实现,涵盖建模、优化求解及仿真分析全过程,适用于复杂电力系统调度场景的科研复现与算法验证。文中还列举了大量相关领域的研究主题与代码资源,涉及智能优化算法、机器学习、电力系统管理、路径规划等多个方向,展示了广泛的科研应用支持能力。; 适合人群:具备一定电力系统、优化理论和Matlab编程基础的研究生、科研人员及从事能源调度、智能电网相关工作的工程师。; 使用场景及目标:①复现高水平期刊(如EI/SCI)关于低碳经济调度的研究成果;②深入理解N-1安全约束与分布鲁棒优化在电力调度中的建模方法;③开展含新能源接入的电力系统不确定性优化研究;④为科研项目、论文撰写或工程应用提供可运行的算法原型和技术支撑。; 阅读建议:建议读者结合文档提供的网盘资源,下载完整代码与案例数据,按照目录顺序逐步学习,并重点理解DRCC建模思想与Matlab/YALMIP/CPLEX等工具的集成使用方式,同时可参考文中列出的同类研究方向拓展研究思路。
内容概要:本文详细介绍了一个基于MATLAB实现的电力负荷预测项目,采用K近邻回归(KNN)算法进行建模。项目从背景意义出发,阐述了电力负荷预测在提升系统效率、优化能源配置、支撑智能电网和智慧城市建设等方面的重要作用。针对负荷预测中影响因素多样、时序性强、数据质量差等挑战,提出了包括特征工程、滑动窗口构造、数据清洗与标准化、K值与距离度量优化在内的系统性解决方案。模型架构涵盖数据采集、预处理、KNN回归原理、参数调优、性能评估及工程部署全流程,并支持多算法集成与可视化反馈。文中还提供了MATLAB环境下完整的代码实现流程,包括数据加载、归一化、样本划分、K值选择、模型训练预测、误差分析与结果可视化等关键步骤,增强了模型的可解释性与实用性。; 适合人群:具备一定MATLAB编程基础和机器学习基础知识,从事电力系统分析、能源管理、智能电网或相关领域研究的研发人员、工程师及高校师生;适合工作1-3年希望提升实际项目开发能力的技术人员; 使用场景及目标:①应用于短期电力负荷预测,辅助电网调度与发电计划制定;②作为教学案例帮助理解KNN回归在实际工程中的应用;③为新能源接入、需求响应、智慧能源系统提供数据支持;④搭建可解释性强、易于部署的轻量级预测模型原型; 阅读建议:建议结合MATLAB代码实践操作,重点关注特征构造、参数调优与结果可视化部分,深入理解KNN在时序数据中的适应性改进方法,并可进一步拓展至集成学习或多模型融合方向进行研究与优化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值