imx6ull logo 更改
imx6ull logo 更改
nixgnauhcuy1 前期准备
安装依赖工具,
1 | > sudo pacman -S netbpm |
将要显示的 logo 图片准备好,logo 格式可以是 png,bmp 或 jpge。
我用的是 png 格式的 logo,
uboot 的 logo 是 bmp 格式的,那么需要先转化为 bmp 格式,这里不能直接用 windows 的画图软件直接转化,直接转化后烧录 logo 会不显示,使用下述命令:
1 | pngtopnm ./mylogo.png | ppmquant 31 | ppmtobmp -bpp 8 > ./mylogo.bmp |
命令及输出如下:
1 | > pngtopnm ./mylogo.png | ppmquant 31 | ppmtobmp -bpp 8 > ./mylogo.bmp |
kernel 的 logo 需要转化为 224 色的 ppm 文件,所以同样的,输入下述命令:
1 | pngtopnm logo.png | ppmquant -fs 224 | pnmtoplainpnm > logo_linux_clut224.ppm |
命令和输出如下:
如果使用的不是 png,将 pngtopnm
更改为 bmptopnm
或 jpegtopnm
即可。
上述生产了 uboot 需要的 mylogo.bmp
和 kernel 需要的 logo_linux_clut224.ppm
。
2 uboot
将生成的 mylogo.bmp
copy 到 uboot 源码的 ./tools/logos/
中,然后修改 ./tools/Makefile
文件,添加下述代码:
1 | LOGO_BMP= $(srctree)/$(src)/logos/mylogo.bmp |
添加完成后,重新编译并烧录即可。
3 kernel
将生成的 logo_linux_clut224.ppm
文件 copy 到 kernel 源码的 ./drivers/video/logo/
中,并直接覆盖原始的 logo ppm 文件,
由于我生成的是和我屏幕同样大小的图片,也就是 800x480 的图片,所以需要更改 logo 显示的坐标,
定位到 fb_show_logo_line
函数,将 image.dx 和 image.dy 设置为 0,
完成后重新编译内核并烧录运行。