| 
 
初级会员 
 
	积分118金钱118 注册时间2017-7-24在线时间26 小时 | 
 
 
 楼主|
发表于 2021-7-21 11:59:13
|
显示全部楼层 
| 重新编译buildroot的输出信息,发现驱动已经被修改为dummy,vulkan这两个驱动方式了   
 因此从两个方向下手:
 第一个方向是脚本,重点关注config.status,Makefile,sdl2-config,sdl2-config.cmake,SDL2.spec,sdl2.pc这几个文件
 第二个方向查源码,参考网上链接:《https://blog.csdn.net/huixingshao/article/details/46561535》
 编译源码包在<buildroot/output/sdl2>通过vscode打开追踪
 追踪起点:sdl.c文件的 SDL_Init函数 ---> SDL_VideoInit函数(video文件夹)---> SDL_video.c 文件【driver_name = SDL_getenv("SDL_VIDEODRIVER");】
 是的 主角就是 《 SDL_VIDEODRIVER 》这是一个环境变量,然后根据后面的 bootstrap 这个静态数组内容可以得到 <export SDL_VIDEODRIVER=xxx>
 就能使得SDL2的video模块工作,video模块使用平台较多要根据 bootstrap 数组选配,配置哪个就用哪个,当然我这里上面的截图中编译时也显示出来了,
 <export SDL_VIDEODRIVER=dummy>,当然我这个是不正常的,因为我选择的是Kms/dri 这个应该是<export SDL_VIDEODRIVER=KMSDRM>才对,所以
 肯定是脚本哪里配置时缺东西,给我修改为dummy。
 
   上图是分析得到结果,所以说明,这里的思路是没错,剩下的就是脚本问题
 同样 audio 模块使用亦是如此 《export SDL_AUDIODRIVER=alsa》
 
 | 
 |