嵌入式Linux系统中的快速启动技术研究
1 嵌入式Linux系统启动时序
目前,嵌入式系统的硬件平台和应用方向区别很大,但总体启动流程一致的。这里的系统启动是指从用户执行上电/复位操作,到系统开始提供用户可接收的服务水平所需要的过程。典型的上电/复位时序如表1所列。
2 Linux快速启动方法
目前,一些Linux的发行版本已经对启动速度进行了优化。如果利用标准Linux进行开发,则启动速度的提高主要是通过内核配置和各种补丁包来实现的。下面分析快速启动的一些关键技术。
表1 嵌入式Linux系统启动时序
2.1 Firmware和Bootloader阶段
目标板一旦确定,Firmware运行的时间就无法改变了,Flash和RAM的读写速度也就随之确定了。但
如果复位时能够绕过Firmware和Bootloader,即允许运行中的内核加载以及运行另一个内核,可以缩短启动的时间。典型的实现有Kexec,它有2个组件,即用户空间组件kexectools和内核补丁。另外一种办法是在内核命令行中加入reboot=soft数,同样可以跳过Firmware,但是缺点在于无法从用户空间调用。
对于正常启动,可以选择速度比较快的Bootloader,并对内核进行小型化处理;还可以使用高速的映像复制技术(如DMA2RAM),从而缩短复制的时间。为了缩短解压消耗的时间,可寻求比较高效的压缩算法。但一般情况下,压缩比越高,算法越复杂,解压速度就越慢,从而造成复制时间(与压缩比成反比)和解压时间(一般与压缩比成正比)之间的矛盾。
2.2 内核阶段
内核初始化时要对RealTime Clock (RTC)进行同步。此过程要占用1s的时间,可去掉以节约时间,但这样CPU会与正确的时间有1s的偏差,如果关机时CPU时钟又要保存在RTC中,偏差就会不断累积。但对于使用外部时钟源进行同步的系统,则可安全地跳过这个阶段。
Preset LPJ可以用来缩短每次启动时调用calibrate_delay()来校准loops_per_jiffy消耗的时间。这个时间开销与CPU频率无关,在典型的嵌入式硬件环境下会消耗300ms左右。LPJ值对于固定硬件平台应该是一致的,可以只计算一次,在后续的启动中就可以在启动参数中强制指定LPJ值,而跳过实际的计算过程。具体方法是:在正常启动后记录下内核启动信息中的"Calibrating Delay"数值,在启动参数中以"lpj=xxxxxx"的形式强制指定。
启动过程默认打开控制台输出启动消息,但是控制台尤其是基于帧缓冲的控制台会减慢启动速度。因此在嵌入式Linux产品中,将启动过程中的控制台设为静默状态,方法是在内核启动参数中加入"quiet"。
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
使用VM安装虚拟系统,真的很方便。可以让个人轻松拥有一个网络,并包含有很多中系统。
因此,如何让这些系统直接享用原来系统上的文件就显得很重要了。。
这里就是讲通过安装VM-Tools来实现虚拟系统与原系统之间的文件共享的。
1.运行VM,启动你的虚拟LINUX系统。
2.切换到原系统,选择VM中的VM菜单----Install VMWare ......
A small Linux cheat sheet, introducing the very basic and very essential commands for surviving at the Linux CLI.
Moving around in the file system
Command
Action
pwd
"Print working directory" - show what dir you're in.
ls
List the contents of a dir.
ls -l
List the contents of a dir and show ......
一、理解Linux的单用户多任务,多用户多任务概念;
Linux 是一个多用户、多任务的操作系统;我们应该了解单用户多任务和多用户多任务的概念;
1、Linux 的单用户多任务;
单用户多任务;比如我们以beinan 登录系统,进入系统后,我要打开gedit 来写文档,但在写文档的过程中,我感觉少点音乐,所以又打开xmms 来点 ......
前些天自己在Linux下搭建了ftp服务,今天又加深了学习,总结如下:
1、ftp开机自动运行:开机自动运行有几种方法,其中可以用命令chkconfig vsftpd on,这样开机后就自动运行了。
相应的想关闭的话chkconfig vsftpd off
2、ssh服务开机自动运行:同上命令为:chkconfig sshd on;chkconfig ssh ......