linux 内核开logo大小,请教 :linux启动时的logo
发布日期:2022-02-03 04:38:36 浏览次数:6 分类:技术文章

本文共 1555 字,大约阅读时间需要 5 分钟。

Hi 大虾们:

有一个问题请教。关于frame buffer的问题。

我现在在调试omap的开发板,非常迷茫。。。。。。

现在最简单的事情就是我想看看logo(左上角的小企鹅)是如何打印出来的。

我的调试方法比较简陋。就是看代码然后加打印。

call treace:

file:logo.c

fb_find_logo(int depth)

file:fbmem.c

fb_prepare_logo(struct fb_info *info, int rotate)

file:fbcon.c

static void fbcon_prepare_logo(struct vc_data *vc, struct fb_info *info,

int cols, int rows, int new_cols, int new_rows)

file:fbcon.c

static void fbcon_init(struct vc_data *vc, int init)

file:vt.c

static void visual_init(struct vc_data *vc, int num, int init)

{

........

vc->vc_sw->con_init(vc, init);

........

}

file:vt.c

static int bind_con_driver(const struct consw *csw, int first, int last,int deflt)

file:vt.c

int take_over_console(const struct consw *csw, int first, int last, int deflt)

file:fbcon.c

static int fbcon_takeover(int show_logo)

file:fbcon.c

static int fbcon_fb_registered(struct fb_info *info)

file:fbcon.c

static int fbcon_event_notify(struct notifier_block *self,unsigned long action, void *data)

后面找不到调用了,而且看了代码加了打印,发现这条线索好像是不对的。有没有什么问题啊?是不是我的trace的思路错了?

请大虾指点。

谢谢

|

要么你编一个debug版的内核试试,优化后的内核有些函数内联了,有些被删了,有些逻辑变了,反正很坑爹

|

我一直只是加debug选项,不过又查了下貌似仅仅是增加了调试符号,优化其实还是开的

|

你进到你要调试的几个文件的目录,在makefile里加上-O0,如果还跟不到你的代码,那可能就是trace不对

|

你怎么trace的?手动?

|

内核的实现就是fb吧,你关掉fb的驱动,只用标准vga引导,是看不到企鹅的

因为没实际做过,再细也帮不了你

|

手动怎么行  内核有现成的调用栈打印api

使用dump_stack 即可 ,除了内联函数,其他的不会跟丢

|

回答楼主两个问题:

1 linux的启动logo是怎么实现的?

答:通常linux把图片数据变成数组编译进内核镜像,内核启动加载fb驱动过程中,注册完fb设备后,会将图片填入fb设备的显存地址.(具体好像是用fb设备的draw_image的函数,函数名可能不太准确.呵呵).

2 内核调试问题?

楼主想调试的话建议用dump_stack函数

|

dump_stack是拿来用的 不是研究的啊

用起来非常简单啊 在目标函数里dump_stack(); 会打印当前的函数调用栈

转载地址:https://blog.csdn.net/weixin_30596151/article/details/116732636 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux编辑关机脚本,Linux关机时执行指定脚本(亲测有效)
下一篇:怎样在linux系统解压软件,Linux下软件包的解压方式大全

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.191.171.42]2022年08月11日 04时27分06秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

最新文章

php前 java后_以前的热门比如PHP,JAVA在现在或者说未来还有前途吗? 2019-06-17 05:18:31
java 查看jdbc连接数_Java JDBC连接数库简单 分层操作 2019-06-17 05:18:31
java 时间动态显示_java 动态显示时间 2019-06-17 05:18:30
java知识串讲_java基础知识串讲 2019-06-17 05:18:30
java list按时间排序吗_Java 对List中每个对象元素按时间顺序排序 2019-06-17 05:18:29
电脑java内存_一、计算机内存与JVM内存简析 2019-06-17 05:18:29
python火狐配置文件_Selenium3+python 加载Firefox配置 2019-06-17 05:18:28
python3文件处理_Python3 文件处理相关脚本 2019-06-17 05:18:28
vb读取串口 存入mysql_VB.net 利用SerialPort进行读取串口操作 2019-06-17 05:18:27
python在线翻译脚本_python写的翻译脚本详解 2019-06-17 05:18:26
unity空格跳跃代码_不看必后悔系列:十分钟教你搭建Jenkins导出Unity安卓环境教程... 2019-06-17 05:18:26
mysql数据库数字排序吗_Mysql数据库中关于数字排序问题讲解 2019-06-17 05:18:26
mysql数据库连接不上都有什么原因_mysql数据库连接不上是怎么回事?如何解决? 2019-06-17 05:18:25
为什么很多程序员说英语对编程不重要?_说英语对程序员很重要的,都是些什么人?... 2019-06-17 05:18:25
php mysql 记录链接点击次数_php mysql查询指定日期记录 本月数据点击排行 2019-06-17 05:18:24
编译原理 语法分析器java 图形界面_Java学习编译原理深入分析必看! 2019-06-17 05:18:24
mysql中xml数据的xpath支持_MySQL中XML数据的XPath支持 2019-06-17 05:18:23
mysql小数字段类型_mysql小数数据类型 2019-06-17 05:18:23
mysql log update_mysql bin-log和log-update开启 2019-06-17 05:18:22
mysql 计算同月的和_mysql时间表示和计算 2019-06-17 05:18:22