609|7

56

帖子

3

TA的资源

一粒金砂(中级)

楼主
 

【DigiKey“智造万物,快乐不停”创意大赛】BBB debian 系统内核手动替换 [复制链接]

 

bbb debian 内核手动替换以及相关USB gadget服务关闭

随着大赛截止日期的临近,我的内心逐渐变得紧张,今天发贴记录下这段时间作品的开发进度。

首先是硬件部分,为了我的作品设计了两个扩展板,一个是BBB的扩展版3D图如下:

上面主要由 ESP32 和一个 JTAG 电平匹配电路组成,分别用来实现 wifi 连接的 JTAG 调试功能。这块板子昨天已经发出去打样了。

其次是第二个板子,raspberrypi zero w 的扩展版,主要包括一个 JTAG 接口电路,3D 图如下,计划今天发出去打样。

我主要是想在这些开源硬件上实现一个高性能的类似 JLINK PRO 的调试器,因为我平时工作在32这里处理器上开发 rtos 相关功能更多一点,但是呢平时用 stlink 这类调试器,有时候还会使用到 openocd,感觉平时也够用,直到有一天发现了一个 black magic 的开发项目,感觉这个调试器很有意思,但是它是在32上实现的,所以呢我想尝试在更高性能处理器上实现这部分功能,所以就有了我这次参加比赛的项目。

硬件扩展版部分介绍完了,下面就介绍下软件部分的进度,因为项目还是基于linux开发的,这里主要涉及到内核的应用态的开发,内核态主要是USB gadget。更具体一点是g_serial这部分相关功能的开发。这段时间一直没有更新,有一个原因是就是我没有找到很好替换bbb内核的方法,因为我的项目需要在内核下做修改,所以鸽了这么久。

今天下午再次尝试发现了硬解的方法,简单来说就是手动编译内核(找一个和原版内核接近的版本,实际是分支,仓库的路径是 https://github.com/beagleboard/linux.git),强制替换相关的文件: vmlinuz(实际是zImage), dtbs(设备树文件),ko(驱动文件)。然后通过修改 /boot/uEnv.txt 文件来切换使用的内核,及其相关文件(设备树,和驱动)。替换完之后,上电按下S2案件选择BBB从SDCARD启动,接着就能顺利启动内核。

看下我替换完之后的效果:

  1. debian@BeagleBone:~$ uname -a
  2. Linux BeagleBone 5.10.168+ #3 SMP PREEMPT Sat Dec 30 17:00:19 HKT 2023 armv7l GNU/Linux
  3. debian@BeagleBone:~$ cat /proc/version
  4. Linux version 5.10.168+ (red@fedora) (arm-none-linux-gnueabihf-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolchain 11.3.Rel1) 2.38.20220708) #3 SMP PREEMPT Sat Dec 30 17:00:19 HKT 2023

之前测试官方的内核好像是将 usb gadget 也作为 console 了,我这里因为要用到这个console作为普通的串口,并且我发现了一个异常的服务:

  1. [FAILED] Failed to start BeagleBoard.org USB gadgets.
  2. 我选择了直接关闭这个服务:
  3. systemctl disable bb-usb-gadgets.service
  4. 同时还有一个服务导致 ttyGS0 作为 console, 关闭这个服务
  5. systemctl disable serial-getty@.service

然后重新配置内核,上电就自动识别为 gadget serial,且不再作为console,测试的截图如下。

对了在 clone 内核 https://github.com/beagleboard/linux.git 的时候,学会了一招在 clone 大仓库时,可以选择浅 clone (只拉取部分提交记录而非全部)的方法,简单来说就是如下几个命令:

  1. git clone --depth 1 <url> # 浅层 clone 仓库,只拉取最后一次 log 的日志
  2. git fetch --unshallow # 拉取完成当前分支, 在浅层 clone 的基础上拉取当前分支的所有提交记录
  3. git fetch --depth 1 origin 远程分支名称 # 浅层拉取仓库的指定分支
  4. git checkout 远程分支名称 # 切换为指定的分支,然后再使用 git fetch --unshallow 拉取所有提交记录

最新回复

这内核编译花了多久的时间?   详情 回复 发表于 2023-12-31 20:51
点赞 关注
 
 

回复
举报

7023

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

硬件部分整的这两个扩展板不错呀,会成功的

点评

谢谢,  详情 回复 发表于 2023-12-31 15:03
 
 
 

回复

417

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
图文并茂,这个帖子真是精彩绝伦,让我收获颇丰!!!!
 
 
 

回复

56

帖子

3

TA的资源

一粒金砂(中级)

4
 
Jacktang 发表于 2023-12-30 22:43 硬件部分整的这两个扩展板不错呀,会成功的

谢谢,

 
 
 

回复

56

帖子

3

TA的资源

一粒金砂(中级)

5
 
通途科技 发表于 2023-12-31 04:20 图文并茂,这个帖子真是精彩绝伦,让我收获颇丰!!!!

 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

6
 
图文并茂,这个帖子真是精彩绝伦,让我收获颇丰!!!!!
 
 
 

回复

7523

帖子

2

TA的资源

版主

7
 

这内核编译花了多久的时间?

点评

15分钟左右,12核的笔记本。  详情 回复 发表于 2024-1-2 08:32
 
 
 

回复

56

帖子

3

TA的资源

一粒金砂(中级)

8
 
wangerxian 发表于 2023-12-31 20:51 这内核编译花了多久的时间?

15分钟左右,12核的笔记本。

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 2/10 下一条
有奖直播 | AI之眼——安森美图像传感器 报名中
直播时间:2025年4月25日(周五)上午10:00-11:30
直播主题:AI之眼——安森美图像传感器
报名观看直播、直播间提问、填写问卷均有机会获得精美礼品!

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网 15

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表