内核启动tick(节拍)值打印

[    0.525000] NTFS driver 2.1.30 [Flags: R/W].
[    0.525000] JFFS2 version 2.2. (NAND) (SUMMARY)  漏 2001-2006 Red Hat, Inc.
[    0.530000] msgmni has been set to 116
[    0.540000] io scheduler noop registered
[    0.540000] io scheduler deadline registered
[    0.540000] io scheduler cfq registered (default)
[    0.570000] Console: switching to colour frame buffer device 60x34
[    0.575000] fb0: s3c2410fb frame buffer device
[    0.595000] s3c2440-uart.0: ttyS0 at MMIO 0x50000000 (irq = 70) is a S3C2440
[    0.600000] s3c2440-uart.1: ttyS1 at MMIO 0x50004000 (irq = 73) is a S3C2440
[    0.605000] s3c2440-uart.2: ttyS2 at MMIO 0x50008000 (irq = 76) is a S3C2440
[    0.615000] brd: module loaded
[    0.640000] loop: module loaded
[    0.650000] S3C24XX NAND Driver, (c) 2004 Simtec Electronics
[    0.650000] s3c24xx-nand s3c2440-nand: Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns
[    0.655000] s3c24xx-nand s3c2440-nand: NAND soft ECC
[    0.660000] NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)
[    0.665000] Scanning device for bad blocks
[    0.705000] Bad eraseblock 620 at 0x000004d80000
[    0.705000] Bad eraseblock 649 at 0x000005120000
[    0.720000] Bad eraseblock 858 at 0x000006b40000
[    0.725000] Bad eraseblock 903 at 0x0000070e0000
[    0.790000] Creating 4 MTD partitions on "NAND":
[    0.790000] 0x000000000000-0x000000100000 : "u-boot  === 1M"
[    0.805000] 0x000000100000-0x000000500000 : "App     === 4M"
[    0.810000] 0x000000500000-0x000000a00000 : "Kernel  === 5M"
[    0.815000] 0x000000a00000-0x000010000000 : "FS      === ALL"
[    0.825000] UBI: attaching mtd3 to ubi0
[    0.825000] UBI: physical eraseblock size:   131072 bytes (128 KiB)
[    0.830000] UBI: logical eraseblock size:    129024 bytes
[    0.835000] UBI: smallest flash I/O unit:    2048
[    0.840000] UBI: sub-page size:              512
[    0.845000] UBI: VID header offset:          512 (aligned 512)
[    0.850000] UBI: data offset:                2048
[    1.175000] UBI: max. sequence number:       39
[    1.200000] UBI: attached mtd3 to ubi0
[    1.200000] UBI: MTD device name:            "FS      === ALL"
[    1.205000] UBI: MTD device size:            246 MiB
[    1.210000] UBI: number of good PEBs:        1964
[    1.210000] UBI: number of bad PEBs:         4
[    1.215000] UBI: number of corrupted PEBs:   0
[    1.220000] UBI: max. allowed volumes:       128
[    1.225000] UBI: wear-leveling threshold:    4096
[    1.230000] UBI: number of internal volumes: 1
[    1.235000] UBI: number of user volumes:     1
[    1.240000] UBI: available PEBs:             0
[    1.245000] UBI: total number of reserved PEBs: 1964
[    1.250000] UBI: number of PEBs reserved for bad PEB handling: 19

这样的界面看着貌似很高端;很多人误认为前面是系统启动的时间,其实不然。

打印出的是系统启动到打印时刻的系统的tick值,printk实现的时候内部附加上的。

硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍)。Linux内核从2.5版内核开始把频率从100调高到1000(当然带来了很多优点,也有一些缺点).

那么如何添加呢?

make menuconfig

Kernel hacking  --->

[*] Show timing information on printks

OK,重新编译下载即可看到效果。

时间: 2024-10-12 19:30:50

内核启动tick(节拍)值打印的相关文章

tiny4412 串口驱动分析七 --- log打印的几个阶段之内核启动阶段(earlyprintk)

作者:彭东林 邮箱:[email protected] 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 u-boot:U-Boot 2010.12 Linux内核版本:linux-3.0.31 Android版本:android-4.1.2 下面要分析的是内核Log打印的几个阶段 自解压阶段 内核启动阶段 内核启动完全以后 shell终端下 在这个阶段内核log打印可以调用printk和printascii,同

屏蔽内核启动打印信息

最近做的4412板子终于经过测试形成产品,在这之前需要把内核启动过程中的打印信息去掉,并且更换启动LOGO,下面讲讲自己去掉打印信息的过程. 去掉打印信息方法很多,我使用一个相对比较简单的,就是将下面选项的[*]去掉 Device Drivers  ---> Character devices  ---> [* ]   Support for console on virtual terminal 这样printk的打印信息就不会输出在显示器或LCD上. 将打印信息去掉后,莫名其妙的会出现因为

tiny4412 串口驱动分析八 --- log打印的几个阶段之内核启动阶段(printk tiny4412串口驱动的注册)

作者:彭东林 邮箱:[email protected] 开发板:tiny4412ADK+S700 4GB Flash 主机:Wind7 64位 虚拟机:Vmware+Ubuntu12_04 u-boot:U-Boot 2010.12 Linux内核版本:linux-3.0.31 Android版本:android-4.1.2 在arch/arm/mach-exynos/mach-tiny4412.c中: MACHINE_START(TINY4412, "TINY4412") .boot

内核启动早期的打印

在移植4.16内核到tiny4412的过程中遇到一个问题,官方的uboot2012引导内核成功卡在staring the kernel没有了下文,看来内核还没有到注册uart驱动就已经挂掉了,尝试打开 early printk ,让内核自解压之后能够及时的打印信息. 说句题外话,内核启动卡在staring the kernel,在2440的时代,未使用设备树,这种情况往往是机器ID设置错误,或者是串口波特率等方面的原因导致,在设备树的时代,机器ID已经被废除,最有可能的问题可能就是出在设备树的身

Linux内核启动

Linux内核启动过程概述 Linux的启动代码真的挺大,从汇编到C,从Makefile到LDS文件,需要理解的东西很多.毕竟Linux内核是由很多人,花费了巨大的时间和精力写出来的.而且直到现在,这个世界上仍然有成千上万的程序员在不断完善Linux内核的代码.今天我们主要讲解的是Linux-2.6.22.6这个内核版本.说句实话,博主也不确定自己能够讲好今天这个题目,因为这个题目太大太难.但是博主有信心,将自己学会的内容清楚地告诉大家,希望大家也能够有所收获. 1.启动文件head.S和hea

Linux内核启动分析

张超<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 我的代码可见https://www.shiyanlou.com/courses/reports/986221 在这里我们用的是linux-3.18.6版本,以下简写成linux. start_kernel在 /linux/init/main.c中定义: 这个函数是内核由引导程序引导以后,由自解压程序解压以后执行的第一个函数,可以认为是整个内核的入口函数,以后我

linux-3.2.36内核启动1-启动参数(arm平台 启动参数的获取和处理,分析setup_arch)【转】

转自:http://blog.csdn.net/tommy_wxie/article/details/17093297 最近公司要求调试一个内核,启动时有问题,所以就花了一点时间看看内核启动. 看的过程中总结了一点东西,希望可以帮助大家调试内核. 当我开始看的时候,第一件事是从网上搜集资料,不看不知道,一看吓一跳!牛人太多了,像这种内核启动的上古代码早就被人分析的彻彻底底.这注定我写的只能是烂微博了. 为了此微博有存在的必要,我会显示内核启动打印的代码位置(用绿色表示)及出现错误打印的原因(用红

linux内核启动第二阶段之setup_arch()函数分析-2.6.36

执行setup_arch()函数 回到start_kernel当中,569行,调用setup_arch函数,传给他的参数是那个未被初始化的内部变量command_line.这个setup_arch()函数是start_kernel阶段最重要的一个函数,每个体系都有自己的setup_arch()函数,是体系结构相关的,具体编译哪个体系的setup_arch()函数,由顶层Makefile中的ARCH变量决定: 它首先通过检测出来的处理器类型进行处理器内核的初始化,然后通过 bootmem_init

Linux移植之内核启动过程引导阶段分析

在Linux移植之make uImage编译过程分析中已经提到了uImage是一个压缩的包并且内含压缩程序,可以进行自解压.自解压完成之后内核代码从物理地址为0x30008000处开始运行.下面分析在进入C之前内核做的一些工作,以下是内核启动过程中打印出来的信息,其中Uncompressing Linux就是在自解压代码.make uImage编译的最后也给出了链接脚本arch/arm/kernel/vmlinux.lds,以及链接的顺序arch/arm/kernel/head.o 是第一个.