iysheng 发表于 2023-7-23 17:12:28

【米尔瑞萨RZ/G2L开发板-创新应用】内核调试环境搭建

【米尔瑞萨RZ/G2L开发板-创新应用】内核开发环境搭建我这次计划完成的开发工作大部分都是在内核下,所以就需要搭建一个比较方便的内核开发调试环境。我的整个开发环境大概是这样子的。

所以呢,就需要在Solus笔记本这里安装一个tftp服务,但是这个发行版的仓库并没有对应的软件包可以用,所以最后根据从 Arch 的软件列表中找到了 atftp 这个软件包,并进行了安装和测试。在这个过程中,了解几部分知识点:
[*]syslog 日志系统
[*]目前使用 jouralctl 查看日志信息,因为 atftpd 默认使用 syslogd 进行日志管理,之前不熟悉这部分导致调试 atftpd 的时候碰到各种问题找不到打印就很尴尬。

[*]systemd 服务管理系统
[*]systemctl list-unit-files 查看服务文件
[*]systemctl daemon-reload 重新加载服务
[*]systemctl enable xxx.service 开机允许 xxx 服务自动运行
[*]systemctl start xxx.service 启动指定的 xxx 服务
[*]systemctl status xxx.service 查看指定的的 xxx 服务状态
[*]systemctl stop xxx.service 停止指定的xxx服务

[*]atftp 这个包含有 tftp 服务端和客户端的软件包,通过在调试这个软件的过程中又了解了一些新的函数:
[*]getopt_long() optstring 参数中有::符号,表示对应的命令行参数带有 optional arg(比如--verbose,v::,命令行 -v6 和 --verbose=6 是等价的,-v 和 --verbose 也是等价的)
[*]int daemon(int nochdir, int noclose) 如果 noclose 参数为 0,那么会将标准输入,输出以及错误输出重定向到 /dev/null,否则的话对应的标准输入,输出以及错误输出就不会发生变化。


tftp 在 Solus 上环境搭建好之后下一步就是下载内核启动了,因为我这次设计主要使用到的是 USB gadget 这部分内容,所以最近一段时间根据内核的文档作了一些笔记(具体来说就是翻译内核文档有关 USB 部分的内容),后续的开发也会集中到这个仓库进行:https://github.com/iysheng/myir-renesas-linux.git当内核编译出来之后,就需要在 U-Boot 下通过 tftp 下载并启动了,却发现官方出厂的 U-Boot 网络会报错,具体是这个样子的:

根据对应的出错打印在 U-Boot 的代码 grep, 发现是 MAC 地址没有设置,根据上述截图中的内容设置下 MAC 地址就可以了。具体如下:
设置好 MAC 以及相关的网络参数,就可以 ping 通开发机器了,下面就是简单的下载内核部分以及引导启动了。
我通过修改官方的内核配置开启了 USB gadget 部分功能,引导启动后是这样子的:
并且这个内核可以直接让主机识别 RZ/G2 板子为一个 gadget_serial 设备,简单测试下如下:



米尔小助手2 发表于 2023-7-28 09:02:56

感谢楼主分享,期待下一期的内容
页: [1]
查看完整版本: 【米尔瑞萨RZ/G2L开发板-创新应用】内核调试环境搭建