【技术贴】如何在Linux启动时显示开机进度条?
当年在学校实验室,编程点亮一个LED灯就兴奋了几天!用了一个暑假实现了液晶上电的开机进度条,成就感与幸福感满满!而今,ZLG把Linux启动时显示开机进度条浓缩到了一个文件和几行代码…...
当年在学校实验室,编程点亮一个LED灯就兴奋了几天!用了一个暑假实现了液晶上电的开机进度条,成就感与幸福感满满!而今,ZLG把Linux启动时显示开机进度条浓缩到了一个文件和几行代码…
本文基于ZLG ARM9开发套件,主要介绍了如何实现在Linux操作系统启动时显示开机进度条,其方法适用于其他产品。
开发主机环境:
Ubuntu 12.04(64位)、arm-none-linux-gnueabi-gcc系列交叉工具链
硬件清单:
EasyARM-i.MX257开发套件或EasyARM-i.MX283A/287A开发套件或EPC-28xC-L工控板 等
软件资源:
产品光盘资料
进度条实现的源文件:boot_process.c
一、解压内核源码包
将产品光盘资料中的linux-2.6.31.tar.bz2内核源码包复制到ubuntu系统的“~/”目录,解压可得到linux-2.6.31目录,参考命令如下:
vmuser@Linux-host:~$ tar jxvf linux-2.6.31.tar.bz2
二、复制boot_process.c文件
将ZLG提供的boot_process.c文件(可以通过400-888-4005 或发邮件至epc@zlgmcu.com索取文件或更为详细的操作方法)拷贝到“~/linux-2.6.31/drivers/video/logo”目录下,如图1所示:
说明: QQ截图20150806113105
图1 复制boot_process.c
vmuser@Linux-host:~$ cd linux-2.6.31/drivers/video/logo
vmuser@Linux-host:~/ linux-2.6.31/drivers/video/logo$ vi Makefile
按下“20gg”定位到第20行,然后按i键进入插入模式,输入如下所示内容:
obj-y += boot_process.o
修改后这部分代码应如图2所示:
说明: QQ截图20150806114802
图2 修改后的代码
三、定制boot_process.c
在boot_process.c文件中定义了几个宏,可供用户参考定制自己的进度条。这些宏的定义以及用法如下所示:
CONFIG_BOOT_PROCESS,开启或关闭进度条显示功能
CONFIG_BOOT_PROCESS_BLOCK,选择启用块状进度条,与条状进度条互斥
CONFIG_BOOT_PROCESS_BAR,选择启用条状进度条,与块状进度条互斥
CONFIG_PROCESS_DURATION,延长或缩短进度条的持续时间
PROCESS_BLOCK_NUM,修改进度条每一格的填充宽度
四、重新编译内核
返回“~/linux-2.6.31”目录并重新编译内核,参考命令如下:
vmuser@Linux-host:~/ linux-2.6.31/drivers/video/logo$ cd ../../..
vmuser@Linux-host:~/ linux-2.6.31$ make uImage
编译完成后生成的固件存放在“arch/arm/boot”目录下,如图3所示:
图3 生成uImage
五、开机启动系统
将开发套件连接好液晶屏以及电源线,然后开机启动系统,可以看到在Linux小企鹅的下方出现了进度条,如图4所示。
说明: jindutiao
图4 开机进度条
嵌入式-ARM工控机
联系方式
- 销售电话:400-888-4005拨1
- 技术支持电话:400-888-4005拨2
还没关注致远电子?您将错过每日泛着油光的干货!您将错过一段颠覆洋品牌的历史!!有时候你想证明给一万个人看,到后来,你发现只得到了一个明白的人,那就够了。你是我们期待已久的粥粉么?我们的微信号:ZLG_zhiyuan。
关注 ZLG致远电子
微信扫一扫关注公众号