Blog

一遍用了千遍,千遍只为一遍

树莓派开发(五)

I2C调试

简介 记录树莓派上baremetal调试I2C的一些点 协议 总览 I2C一个master可以接多个slave I2C总线使用两条线在master跟slave之间传输数据,SCL串行时钟线,SDA串行数据线 SCL跟SDA需要接上拉电阻,一般是4.7K,总线空闲时SCL和SDA处于高电平 标准模式...

debug,quiet,initcall_debug

bootargs参数

简介 简单演示下uboot设置内核loglevel的用法,以及结合initcall_debug参数的用法 用法 uboot的bootargs中设置debug,则内核启动过程中会把不小于debug等级的所有打印都显示出来,如果设置为quiet,除非是err信息,否则则不打印内核启动信息。但是所有的信息都会存在logbuf中,dmesg可以查看 而uboot的bootargs中设...

树莓派开发(四)

libc跟heap移植过程小小结

简介 主要说下baremetal的C库适配,分为两部分,一部分是libc,一部分是heap算法 编译 Makefile中增加-nostdlib选项,即可不使用编译工具链中自带的C库 libc libc是从ATF中移植的,参考的libc链接为,这里的重点就是printf的适配,以及相关的console结构体的适配 https://github.com/ARM-software/...

树莓派引导FIT格式的压缩kernel

简介 设置树莓派引导FIT镜像格式的linux,顺带验证FIT打包压缩的arm64的linux镜像 uboot配置 uboot需要打开CONFIG_FIT配置,然后剩下的其他的FIT配置会帮你自动勾上,就不操心了 kernel镜像打包 arm64 kernel默认只支持gzip压缩算法,产物有Image跟Image.gz 要打包FIT的镜像,我们需要由一个its文件来描述 ...

交叉编译libbpf

简介 简单介绍libbpf如何交叉编译,以及利用libbpf开发一个demo程序跑在arm64平台上,内核版本为6.6.42 环境依赖 克隆代码 git clone git@github.com:libbpf/libbpf-bootstrap.git git submodule update --init --recursive 升级llvm 在wsl上原本自己clan...

uboot向kernel传参的机制(一)

简介 uboot在启动内核时,会向内核传递一些参数,可以通过两种方式传递参数给内核,一种是通过参数链表(tagged list)方式,一种是通过设备树方式。文章主要介绍uboot向kernel传参的这两个机制,其中的一个小点,比如 uboot下的bootargs,则是kernel下的cmdline。 启动流程 这里简单列举下启动内核的函数流,以bootm为例 bootm do...

ebpf原理小结

简介 大概讲下对ebpf的一些概念跟原理的理解,其实ebpf就是对bpf一些指令的拓展,下面讲bpf原理部分其实跟ebpf是差不多的。分析的内核代码版本为5.4.0 BPF程序如何运行 这部分就讲BPF程序怎么运行的,顺着这个过程,可以把各种原理理顺下 BPF程序 比方说像sockex1_kern.c跟hello_kern.c这种程序,都会有个SEC这样的标志,这种就是BPF程...

树莓派开发(三)

裸机串口调试

简介 裸机串口代码调试记录 代码 代码链接 https://github.com/copyright1999/raspi4b-project/tree/b0aabc649e0c5cd6c8ec4a42edd0d295af89231e/baremental 过程 主要的过程分为如下几个步骤 链接脚本 入口代码 管脚复用 ...

手机公网IPv6远程win11

简介 主要介绍如何用手机通过公网IPv6访问到自己的win11电脑 电脑设置 设置->远程桌面设置 第一步打开远程桌面,第二步点击远程桌面用户 添加用户,当然也可以不用添加,直接默认我们登录的用户就有访问权了 手机软件 我是苹果手机,输入rd client,可以看到第一个Windows App Mobile,选择这个软件 开始操作 电脑查看自己的公网I...

ebpf入门程序

简介 本文主要介绍如何在wsl上交叉编译运行在raspi上的ebpf程序,内核版本为6.6.42 wsl需要安装的工具 sudo apt install dwarves 如果不安装dwarves工具,打开CONFIG_DEBUG_INFO_BTF选项的话,内核会编译失败,会提示BTF: .tmp_vmlinux.btf: pahole (pahole) is not avail...