Kernel启动时间优化

本文详细记录了对Linux内核3.14版本启动时间的优化过程,包括通过增加GPIO测试点来精确测量时间,禁用不必要的打印输出,以及调整`init.rc`以延迟加载某些驱动,尤其是wlan.ko。通过这些优化措施,成功将Kernel启动到加载U盘的时间从7.5秒缩短至2.5秒左右,达到了预期目标。
摘要由CSDN通过智能技术生成
1、问题描述
Linux的内核用的是3.14版本。UI层跑的是类似Qt的系统。目前Kernel从启动到init进程大概需要3.5秒时间,另外到加载U盘需要7.5秒左右时间。

由于Bootloader执行过程很快,所以不是本次需要优化的目标。

系统原始的Kernel启动部分Log如下:
15:29:01.552: [ 0.000000]Linux version 3.14.19 (gcc version 4.8.3 20140401 (prerelease) (crosstool-NGlinaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04) ) #1 SMP Mon Jun 6 14:05:35CST 2016
15:29:01.569: [ 0.000000]CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c53c7d
15:29:01.576: [ 0.000000]CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
15:29:01.588: [ 0.000000]Memory policy: Data cache writealloc
15:29:01.593: [ 0.000000]On node 0 totalpages: 40960
15:29:01.597: [ 0.000000]free_area_init_node: node 0, pgdat c061ba00, node_mem_map c9eba000
15:29:01.604: [ 0.000000] Normal zone: 320 pagesused for memmap
15:29:01.609: [ 0.000000] Normal zone: 0 pagesreserved
15:29:01.613: [ 0.000000] Normal zone: 40960pages, LIFO batch:7
15:29:01.618: [ 0.000000]PERCPU: Embedded 7 pages/cpu @c9eaf000 s7232 r8192 d13248 u32768
15:29:01.625: [ 0.000000]pcpu-alloc: s7232 r8192 d13248 u32768 alloc=8*4096
15:29:01.631: [ 0.000000]pcpu-alloc: [0] 0
15:29:01.634: [ 0.000000]Built 1 zonelists in Zone order, mobility grouping on. Total pages: 40640
15:29:01.642: [ 0.000000]Kernel command line: console=ttyS0,115200n8 rw init=initandroidboot.console=ttyS0 rootfstype=ramfs slram=mtd0,0x20700000,+0x00600000debug user_debug=31blkdevparts=mmcblk0:6M@0x00000000(kernel),1M@0x00600000(dtb),20M@0x00700000(initramfs),512M@0x01b00000(system),512M@0x21b00000(data),-(custom)
15:29:01.669: [ 0.000000]PID hash table entries: 1024 (order: 0, 4096 bytes)
15:29:01.675: [ 0.000000]Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
15:29:01.682: [ 0.000000]Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
15:29:01.783: [ 0.000014]sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 42949672950ns
15:29:01.790: [ 0.000181]Console: colour dummy device 80x30
15:29:01.795: [ 0.000225] Calibrating delay loop... 1386.49 BogoMIPS (lpj=2772992)
15:29:01.801: [ 0.047981]pid_max: default: 32768 minimum: 301
15:29:01.806: [ 0.048168]Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
15:29:01.812: [ 0.048181]Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
15:29:01.819: [ 0.049162]CPU: Testing write buffer coherency: ok
15:29:01.824: [ 0.049414]CPU0: thread -1, cpu 1, socket 0, mpidr 80000001
15:29:01.887: [ 0.127343]bio: create slab <bio-0> at 0
15:29:01.891: [ 0.127863] goldacgpio: registered, base is ca858000
15:29:01.896: [ 0.128298]SCSI subsystem initialized
15:29:01.900: [ 0.128535]usbcore: registered new interface driver usbfs
15:29:01.905: [ 0.128725]usbcore: registered new interface driver hub
15:29:01.910: [ 0.128829]usbcore: registered new device driver usb
15:29:01.915: [ 0.128903]i2c-mn: i/o base 0x9c059100. irq 144
15:29:01.920: [ 0.129380]Advanced Linux Sound Architecture Driver Initialized.
15:29:01.926: [ 0.130559]Switched to clocksource golda_clocksource
15:29:02.039: [ 0.140023]TCP: reno registered
15:29:02.043: [ 0.140043]UDP hash table entries: 256 (order: 1, 8192 bytes)
15:29:02.048: [ 0.140084]UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
15:29:02.055: [ 0.140378]NET: Registered protocol family 1
15:29:02.059: [ 0.140823]RPC: Registered named UNIX socket transport module.
15:29:02.065: [ 0.140836]RPC: Registered udp transport module.
15:29:02.070: [ 0.140844] RPC:Registered tcp transport module.
15:29:02.074: [ 0.140855]RPC: Registered tcp NFSv4.1 backchannel transport module.
15:29:02.081: [ 0.141116]Unpacking initramfs...
15:29:02.084: [ 0.162803]Initramfs unpacking failed: junk in compressed archive
15:29:02.090: [ 0.164955]Freeing initrd memory: 1024K (c7000000 - c7100000)
15:29:02.096: [ 0.165816]futex hash table entries: 256 (order: 2, 16384 bytes)
15:29:02.102: [ 0.175431]squashfs: version 4.0 (2009/01/31) Phillip Lougher
15:29:02.108: [ 0.176294]NFS: Registering the id_resolver key type
15:29:02.113: [ 0.176341]Key type id_resolver registered
15:29:02.117: [ 0.176351]Key type id_legacy registered
15:29:02.121: [ 0.176401]msgmni has been set to 303
15:29:02.125: [ 0.176956] io scheduler noop registered
15:29:02.129: [ 0.176967]io scheduler deadline registered (default)
15:29:02.134: [ 0.177173]Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
15:29:02.140: [ 0.178547] 9c01c200.serial: ttyS0 at MMIO 0x9c01c200 (irq = 133,base_baud = 6250000)
15:29:02.150: [ 0.781481] console [ttyS0] enabled
15:29:02.154: [ 0.785395]CHIPREVST: 0x00000001
15:29:02.157: [ 0.788764] 9c01c300.serial:ttySM0 at MMIO 0x9c01c300 (irq = 135, base_baud = 390625)
15:29:02.170: [ 0.801929]loop: module loaded
15:29:02.174: [ 0.805711]slram: devname = mtd0
15:29:02.200: [ 0.831359]slram: Mapped from 0xcb000000 to 0xcb600000
15:29:02.205: [ 0.836712]smsc911x: Driver version 2008-10-21
15:29:02.210: [ 0.841294] smsc911x smsc911x.0 (unregistered net_device): couldn't getclock -2
15:29:04.311: [ 2.942567] smsc911x smsc911x.0 (unregistered net_device): Device notREADY in 100ms aborting
15:29:04.320: [ 2.951262]usbcore: registered new interface driver cdc_ncm
15:29:04.326: [ 2.957307]ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
15:29:04.333: [ 2.963873] PapajokeEHCI host driver v0333 start
15:29:04.337: [ 2.968749]Enable EHCI Info = 00000000
15:29:04.348: [ 2.978784] papajoke-ehcipapajoke-ehci.0: papajoke EHCI Host Controller
15:29:04.354: [ 2.985762] papajoke-ehcipapajoke-ehci.0: new USB bus registered, assigned bus numb
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值