waydroid在麒麟系统bpf问题记录
麒麟系统版本:Linux version 5.4.18-85-generic (buildd@78035fe431f3) (gcc version 9.4.0 (Ubuntu 9.4.0-1kylin1~20.04.1)) #74-KYLINOS SMP Fri Mar 24 11:20:19 UTC 2023
安卓bpfloader服务加载bpf程序失败导致系统无法正常启动;总共四个bpf程序,clatd.o和offload.o可以正常加载,netd.o和time_in_state.o无法正常加载。
从linux kernel官网下载kernel源码(版本5.4.0,下的仓库没有找到 5.4.18,后面发现stable版本才有),编译安装,运行自己的内核,发现clatd.o可以正常加载,netd.o,offload.o和time_in_state.o无法正常加载。调试kernel端的bpf源码,结合安卓bpf程序源码的注释,可以确认需要开启一些内核配置及安卓专用的内核补丁;
netd.o需要配置CONFIG_CGROUP_BPF
time_in_state.o需要配置CONFIG_BPF_EVENTS
offload.o需要补丁编辑 text file
使用这些配置和补丁的内核,waydroid可以正常启动并加载所以bpf程序;我们使用麒麟系统的话,改不了内核,所以无法解决这些问题,目前可以去掉安卓端bpf程序的critical段属性,不带critical段属性的bpf程序加载失败,不会导致bpfloader服务启动失败,使系统无法正常启动。
, multiple selections available,
Related content
OpenFDE平台适配概览
OpenFDE平台适配概览
More like this
统信OS安装OpenFDE
统信OS安装OpenFDE
More like this
树莓派4B和5安装OpenFDE
树莓派4B和5安装OpenFDE
More like this
OpenFDE 调试与日志
OpenFDE 调试与日志
More like this
网络支持技术实现
网络支持技术实现
More like this