D1S移植SDL1.2.15版本
-
此次在司徒大佬指点下 学习移植SDL1.215版本,过程有点曲折,但还是解决了问题。主要步骤如下:
1。全志sdk的包里原本就有SDL2.X版本的,因此修改/package/multimedia/sdl/Makefile,
Makefile 。
2。执行 m menuconfig 配置中选中sdl。
3。编译会报错,打开/tina_d1_h/out/d1s-nezha/compile_dir/target/SDL-1.2.15/configure.in文件。 注释掉中间代码。
4。修改板级配置文件board.dts disp节点下 fb0_format = <10>;
5。运行 m kernel_menuconfig ,选中Device Drivers > Character devices下Virtual terminal项及Enable character translations in console与 Support for console on virtual termin两项。如图:
6。此时已经编译移植完成了,但是由于全志的sdk默认配置会裁剪系统用不到的库,因此编译出的固件应该是搜不到sdl的库文件,有2个办法,一是添加应用,应用的Makefile中依赖项有SDL。二是关闭裁剪库的选项,这个选项位于 m menuconfig 配置中的Target Image > downsize the root filesystem or initramfs选项,取消此选项。如图:
运行司徒大佬的例程---------:
例程在这里:https://steward-fu.github.io/website/program/sdl/v1.2/cpp_fill.htm
若要正常运行例程 还需要修改一点参数,因为D1S是默认开启双缓冲的,所以要在
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE);中添加双缓冲支持项,改为:
screen = SDL_SetVideoMode(320, 240, 16, SDL_HWSURFACE|SDL_DOUBLEBUF);即可
最后来一张运行司徒大佬例程的照片:
最后附上 helloworld程序包。将包解压至 /package目录下 m menuconfig 中选中helloworld,编译后 执行SDL_NOMOUSE=1 /usr/bin/helloworld 即可。
helloworld.tar.xz
在下才疏学浅,有幸得司徒大佬指点才移植成功,其中还有诸多问题尚待解决,还请大家不惜赐教! -
-
@lovexulu 你好近进也在研究这个,能一起聊下吗?qq545818496
-
-
@wj8331585 我有资料,除了sdl还得移植sdl_image sdl_mixer sdl_ttf才行
-
@hsinyuwang 如果是移植Funkey的话
-
@hsinyuwang 在 D1S移植SDL1.2.15版本 中说:
@hsinyuwang 如果是移植Funkey的话
funkey已经移植完成,基本可用吧。
请问我用的tina linux为什么SDL_DOUBLEBUF不支持呢? -
@wj8331585 有交流群吗?我也正在学习Funkey
-
@czlz_fun 在 D1S移植SDL1.2.15版本 中说:
@wj8331585 有交流群吗?我也正在学习Funkey
我知道有个专门搞DIY掌机的群,群号:139642475
有兴趣可以加入。不过好像要收几块钱群费的,以筛选一些发广告的
-
按此步骤编译SDL时,出现了缺少libasound库的错误;
Package sdl is missing dependencies for the following libraries:
libasound.so.2
Makefile:57: recipe for target '/home/test/LC/Tina-Linux/out/t113-mq_r/packages/base/sdl_1.2.15-1_sunxi.ipk' failed
但是在sdl链接路径里是有此库的。请问有遇到此情况吗? -
@dyufeimen 问题解决了,自我回复一下!缺少libasound是因为在package/multimedia/sdl路径下的Malefile中缺少依赖,增加DEPENDS:=+alsa-lib即可解决。
当然也可以disable-alsa也可以解决此报错问题
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号