Linux内核移植

概要

GEC6818(ARMCortex-A53)linux系统硬件开发平台
使用SercureSRT串口输出显示内核启动过程567行信息分析

整体架构流程

一、linux内核的主要作用?
二,linux内核启动过程是什么?
三,GEC6818(ARMCortex-A53)linux系统硬件开发平台使用SercureSRT串口输出显示内核启动过程567行信息分析
四,567行内核启动信息分析

技术名词解释

  • CST:CST 是 China Standard Time(中国标准时间)的缩写。
  • UTC:UTC是“协调世界时”(Coordinated Universal Time)的缩写。
  • PID(Process ID):每个进程在系统中都有一个唯一的标识符,称为进程ID(PID)。

技术细节

一、linux内核的主要作用?

  1. 进程管理
    进程创建与销毁:内核负责创建和销毁进程,管理进程的生命周期。
    进程调度:内核通过调度算法决定哪个进程在什么时候运行,以确保系统资源的有效利用和公平分配。
    进程间通信(IPC):内核提供各种机制(如信号、管道、消息队列、共享内存等)来实现进程间的通信和同步。

  2. 内存管理
    内存分配与回收:内核负责分配和回收内存,确保内存资源的高效利用。
    虚拟内存管理:内核通过虚拟内存技术为每个进程提供独立的地址空间,提高系统的安全性和稳定性。
    内存保护:内核通过内存保护机制防止进程非法访问其他进程的内存区域。

  3. 文件系统管理
    文件系统接口:内核提供统一的文件系统接口,支持多种文件系统(如ext4、XFS、Btrfs等)。
    文件操作:内核负责处理文件的创建、删除、读写等操作。
    文件权限管理:内核通过文件权限和访问控制列表(ACL)来管理文件的访问权限。

  4. 设备管理
    设备驱动程序:内核通过设备驱动程序与硬件设备进行交互,提供对各种硬件设备(如磁盘、网络接口、显示器等)的支持。
    设备抽象:内核将硬件设备抽象为文件,通过统一的接口进行访问,简化了应用程序对硬件的操作。

  5. 网络管理
    网络协议栈:内核实现了多种网络协议(如TCP/IP、UDP、ICMP等),提供网络通信功能。
    网络接口管理:内核管理网络接口,处理网络数据包的发送和接收。
    防火墙和网络安全:内核通过Netfilter等机制提供防火墙和网络安全功能。

  6. 安全管理
    用户身份验证:内核通过用户和组的概念管理系统的访问控制。
    权限管理:内核通过文件权限、进程权限等机制控制对系统资源的访问。
    安全模块:内核支持可插拔的安全模块(如SELinux、AppArmor),提供更细粒度的安全控制。

  7. 中断和异常处理
    中断处理:内核负责处理硬件中断,确保系统能够及时响应外部事件。
    异常处理:内核处理各种异常情况(如非法指令、内存访问错误等),确保系统的稳定性和安全性。

  8. 系统调用接口
    系统调用:内核提供系统调用接口,允许用户空间的应用程序请求内核服务。系统调用是用户空间与内核空间交互的主要方式。

总结
Linux内核是操作系统的核心,负责管理硬件资源、提供系统服务、确保系统安全和稳定。它通过进程管理、内存管理、文件系统管理、
设备管理、网络管理、安全管理、中断和异常处理以及系统调用接口等功能,实现了对计算机系统的全面控制和管理。Linux内核的高效性、
稳定性和灵活性使其成为广泛应用于服务器、桌面、嵌入式系统等领域的操作系统核心。


二,linux内核启动过程
设备名称:GEC6818(ARMCortex-A53)linux系统硬件开发平台

Linux内核的启动过程是一个复杂且多步骤的过程,涉及从系统上电到操作系统完全启动并准备好运行用户应用程序。
以下是Linux内核启动过程的详细步骤:

  1. BIOS/UEFI 阶段
    上电自检(POST):系统上电后,BIOS(基本输入输出系统)或UEFI(统一可扩展固件接口)会进行硬件自检,确保所有硬件组件正常工作。
    引导设备选择:BIOS/UEFI根据预设的引导顺序选择引导设备(如硬盘、光盘、网络等)。
    加载引导加载程序:BIOS/UEFI从引导设备的主引导记录(MBR)或GUID分区表(GPT)中加载引导加载程序(如GRUB、LILO等)到内存中并执行。
  2. 引导加载程序阶段
    引导加载程序执行:引导加载程序(如GRUB)接管控制权,显示引导菜单,允许用户选择不同的内核或操作系统。
    加载内核:引导加载程序根据用户选择或默认配置,将Linux内核映像(通常是vmlinuz文件)加载到内存中。
    加载初始RAM盘(initramfs/initrd):引导加载程序还会加载初始RAM盘(initramfs或initrd),这是一个临时的根文件系统,包含启动过程中需要的驱动程序和工具。
  3. 内核初始化阶段
    内核解压:内核映像通常是压缩的,加载到内存后会进行解压。
    内核启动:内核开始执行,从start_kernel函数开始,进行一系列初始化操作。
    硬件初始化:内核初始化各种硬件组件,包括CPU、内存、I/O设备等。
    内存管理初始化:内核初始化内存管理子系统,设置页表和虚拟内存。
    设备驱动程序加载:内核加载必要的设备驱动程序,初始化各种硬件设备。
    挂载初始RAM盘:内核挂载初始RAM盘(initramfs或initrd)作为临时根文件系统。
  4. 初始RAM盘阶段
    执行初始脚本:内核从初始RAM盘中执行初始脚本(通常是/init),该脚本负责进一步初始化系统。
    加载必要模块:初始脚本加载更多的内核模块,确保所有硬件设备都能正常工作。
    挂载真实根文件系统:初始脚本挂载真实的根文件系统(通常是硬盘上的文件系统),并将其切换为新的根文件系统。
  5. 用户空间初始化阶段
    切换到真实根文件系统:初始脚本切换到真实的根文件系统,并执行/sbin/init或/init,这是用户空间的第一个进程(PID 1)。
    初始化系统服务:/sbin/init根据系统配置(如/etc/inittab或systemd配置)启动各种系统服务和守护进程。
    启动用户登录界面:/sbin/init启动登录界面(如getty或图形登录管理器),允许用户登录系统。
  6. 系统准备就绪
    用户登录:用户通过登录界面登录系统,进入用户空间。
    系统运行:系统进入正常运行状态,用户可以执行各种应用程序和任务。
    总结
    Linux内核的启动过程从系统上电开始,经过BIOS/UEFI引导、引导加载程序加载内核、内核初始化、
    初始RAM盘阶段、用户空间初始化,最终进入系统准备就绪状态。每个阶段都涉及多个步骤和复杂的初始化操作,
    确保系统能够顺利启动并进入正常运行状态。通过理解这些步骤,可以更好地调试和优化系统启动过程。

三,GEC6818(ARMCortex-A53)linux系统硬件开发平台使用SercureSRT串口输出显示信息分析
567行信息如下:

Booting kernel from Legacy Image at 48000000 …
Image Name: Linux-3.4.39-gec
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5575624 Bytes = 5.3 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum … OK
Loading Kernel Image … OK

Starting kernel …

[ 0.000000] Booting Linux on physical CPU 0
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 3.4.39-gec (geced@localhost.localdomain) (gcc version 4.8 (GCC) ) #3 SMP PREEMPT Tue Jun 4 15:57:34 CST 2019
[ 0.000000] Initialized persistent memory from 635fc000-635fffff
[ 0.000000] CPU : iomap[ 0]: p 0xc0000000 -> v 0xf0000000 len=0x300000
[ 0.000000] CPU : iomap[ 1]: p 0xe0000000 -> v 0xf0300000 len=0x100000
[ 0.000000] CPU : iomap[ 2]: p 0xfff00000 -> v 0xf0400000 len=0x100000
[ 0.000000] CPU : iomap[ 3]: p 0x2c000000 -> v 0xf0500000 len=0x100000
[ 0.000000] CPU : iomap[ 4]: p 0x00000000 -> v 0xf0600000 len=0x100000
[ 0.000000] CPU : DMA Zone Size =16M, CORE 8
[ 0.000000] GEC6818 : done board initialize …
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c152e000 s12544 r8192 d16128 u36864
[ 0.000000] Kernel command line: console=ttySAC0,115200n8 androidboot.hardware=GEC6818 androidboot.console=ttySAC0 androidboot.serialno=0123456789abcdef initrd=0x49000000,0x1000000 lcd=at070tn92 tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] allocated 2097152 bytes of page_cgroup
[ 0.000000] please try ‘cgroup_disable=memory’ option if you don’t want memory cgroups
[ 0.000000] Memory: 1024MB = 1024MB total
[ 0.000000] Memory: 810728k/810728k available, 237848k reserved, 272384K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xef800000 - 0xfee00000 ( 246 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xef600000 ( 758 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0a65214 (10613 kB)
[ 0.000000] .init : 0xc0a66000 - 0xc0aa3100 ( 245 kB)
[ 0.000000] .data : 0xc0aa4000 - 0xc0b3ec88 ( 620 kB)
[ 0.000000] .bss : 0xc0b3ecac - 0xc0d203c8 (1926 kB)
[ 0.000000] SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] NR_IRQS:272
[ 0.000000] GIC @f0009000: start 0 (gic 31)
[ 0.000000] GPIO @f001a000: start 106, mask 0xffffffff (gpio 85)
[ 0.000000] GPIO @f001b000: start 138, mask 0xffffffff (gpio 86)
[ 0.000000] GPIO @f001c000: start 170, mask 0xffffffff (gpio 87)
[ 0.000000] GPIO @f001d000: start 202, mask 0xffffffff (gpio 88)
[ 0.000000] GPIO @f001e000: start 234, mask 0xffffffff (gpio 89)
[ 0.000000] ALIVE @f0010800: start 266, mask 0x000000ff (alive 36, num 6)
[ 0.000000] sched_clock: 32 bits at 1kHz, resolution 1000000ns, wraps every 4294967295ms
[ 0.000000] Calibrating delay loop… 1581.05 BogoMIPS (lpj=790528)
[ 0.007000] pid_max: default: 32768 minimum: 301
[ 0.007000] Security Framework initialized
[ 0.007000] Mount-cache hash table entries: 512
[ 0.008000] Initializing cgroup subsys debug
[ 0.008000] Initializing cgroup subsys cpuacct
[ 0.008000] Initializing cgroup subsys memory
[ 0.008000] Initializing cgroup subsys freezer
[ 0.008000] CPU: Testing write buffer coherency: ok
[ 0.008000] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.008000] hw perfevents: no hardware support available
[ 0.008000] Setting up static identity map for 0x4073b188 - 0x4073b1e0
[ 0.024000] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[ 0.038000] CPU2: thread -1, cpu 2, socket 0, mpidr 80000002
[ 0.052000] CPU3: thread -1, cpu 3, socket 0, mpidr 80000003
[ 0.064000] CPU4: thread -1, cpu 0, socket 4, mpidr 80040400
[ 0.077000] CPU5: thread -1, cpu 1, socket 4, mpidr 80040401
[ 0.090000] CPU6: thread -1, cpu 2, socket 4, mpidr 80040402
[ 0.103000] CPU7: thread -1, cpu 3, socket 4, mpidr 80040403
[ 0.103000] Brought up 8 CPUs
[ 0.103000] SMP: Total of 8 processors activated (12730.36 BogoMIPS).
[ 0.104000] devtmpfs: initialized
[ 0.112000] VFP support v0.3: implementor 41 architecture 3 part 40 variant 3 rev 3
[ 0.115000] dummy:
[ 0.115000] NET: Registered protocol family 16
[ 0.116000] persistent_ram: uncorrectable error in header
[ 0.116000] persistent_ram: no valid data in buffer (sig = 0xffffffff)
[ 0.122000] console [ram-1] enabled
[ 0.132000] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.132000] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.165000] bio: create slab at 0
[ 0.165000] gpiochip_add: registered GPIOs 0 to 31 on device: nxp-gpio.0
[ 0.165000] gpiochip_add: registered GPIOs 32 to 63 on device: nxp-gpio.1
[ 0.166000] gpiochip_add: registered GPIOs 64 to 95 on device: nxp-gpio.2
[ 0.166000] gpiochip_add: registered GPIOs 96 to 127 on device: nxp-gpio.3
[ 0.166000] gpiochip_add: registered GPIOs 128 to 159 on device: nxp-gpio.4
[ 0.166000] gpiochip_add: registered GPIOs 160 to 165 on device: nxp-gpio.5
[ 0.167000] pl08xdmac pl08xdmac.0: Unbalanced pm_runtime_enable!
[ 0.167000] pl08xdmac pl08xdmac.0: initialized 8 virtual memcpy channels
[ 0.167000] pl08xdmac pl08xdmac.0: initialized 16 virtual slave channels
[ 0.169000] pl08xdmac pl08xdmac.0: DMA: PL080 rev1 at 0xc0000000 irq 33
[ 0.169000] pl08xdmac pl08xdmac.1: Unbalanced pm_runtime_enable!
[ 0.169000] pl08xdmac pl08xdmac.1: initialized 8 virtual memcpy channels
[ 0.169000] pl08xdmac pl08xdmac.1: initialized 15 virtual slave channels
[ 0.171000] pl08xdmac pl08xdmac.1: DMA: PL080 rev1 at 0xc0001000 irq 34
[ 0.172000] SCSI subsystem initialized
[ 0.173000] usbcore: registered new interface driver usbfs
[ 0.173000] usbcore: registered new interface driver hub
[ 0.173000] usbcore: registered new device driver usb
[ 0.173000] i2c-gpio i2c-gpio.0: using pins 99 (SDA) and 98 (SCL)
[ 0.174000] i2c-gpio i2c-gpio.3: using pins 80 (SDA) and 79 (SCL)
[ 0.175000] s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter
[ 0.175000] s3c-i2c s3c2440-i2c.1: slave address 0x10
[ 0.175000] s3c-i2c s3c2440-i2c.1: bus frequency set to 97 KHz
[ 0.177000] s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter
[ 0.177000] s3c-i2c s3c2440-i2c.2: slave address 0x10
[ 0.177000] s3c-i2c s3c2440-i2c.2: bus frequency set to 97 KHz
[ 0.177000] Linux media interface: v0.10
[ 0.177000] Linux video capture interface: v2.00
[ 0.178000] pps_core: LinuxPPS API ver. 1 registered
[ 0.178000] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti giometti@linux.it
[ 0.178000] PTP clock support registered
[ 0.184000] axp_mfd 3-0034: AXP (CHIP ID: 0x06) detected
[ 0.189000] axp22_ldo1: 3000 mV
[ 0.193000] axp22_aldo1: 700 <–> 3300 mV at 3300 mV
[ 0.198000] axp22_aldo2: 700 <–> 3300 mV at 1800 mV
[ 0.202000] axp22_aldo3: 700 <–> 3300 mV at 1000 mV
[ 0.207000] axp22_dldo1: 700 <–> 3300 mV at 3300 mV
[ 0.208000] axp22_dldo2: No configuration
[ 0.209000] axp22_dldo2: 700 <–> 3300 mV at 1800 mV
[ 0.211000] axp22_dldo3: No configuration
[ 0.212000] axp22_dldo3: 700 <–> 3300 mV at 2800 mV
[ 0.213000] axp22_dldo4: No configuration
[ 0.214000] axp22_dldo4: 700 <–> 3300 mV at 700 mV
[ 0.219000] axp22_eldo1: 700 <–> 3300 mV at 1800 mV
[ 0.224000] axp22_eldo2: 700 <–> 3300 mV at 3300 mV
[ 0.226000] axp22_eldo3: No configuration
[ 0.227000] axp22_eldo3: 700 <–> 3300 mV at 700 mV
[ 0.228000] axp22_dc5ldo: No configuration
[ 0.229000] axp22_dc5ldo: 700 <–> 1400 mV at 1200 mV
[ 0.234000] axp22_dcdc1: 1600 <–> 3400 mV at 3300 mV
[ 0.238000] axp22_dcdc2: 600 <–> 1540 mV at 1200 mV
[ 0.243000] axp22_dcdc3: 600 <–> 1860 mV at 1100 mV
[ 0.247000] axp22_dcdc4: 600 <–> 1540 mV at 1500 mV
[ 0.252000] axp22_dcdc5: 1000 <–> 2550 mV at 1500 mV
[ 0.254000] axp22_ldoio0: 700 <–> 3300 mV at 3800 mV
[ 0.257000] axp22_ldoio1: 700 <–> 3300 mV at 3800 mV
[ 0.258000] axp22-supplyer axp22-supplyer.19: AXP228_BATTERY_VERSION:(2015.02.15:modify)
[ 0.274000] Advanced Linux Sound Architecture Driver Version 1.0.25.
[ 0.275000] Bluetooth: Core ver 2.16
[ 0.275000] NET: Registered protocol family 31
[ 0.275000] Bluetooth: HCI device and connection manager initialized
[ 0.275000] Bluetooth: HCI socket layer initialized
[ 0.276000] Bluetooth: L2CAP socket layer initialized
[ 0.276000] Bluetooth: SCO socket layer initialized
[ 0.276000] cfg80211: Calling CRDA to update world regulatory domain
[ 0.277000] Switching to clocksource source timer
[ 0.278000] Clockevents: could not switch to one-shot mode:
[ 0.278000] Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
[ 0.278000] Clockevents: could not switch to one-shot mode:
[ 0.278000] Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
[ 0.278000] Could not switch to high resolution mode on CPU 7
[ 0.278000] Could not switch to high resolution mode on CPU 4
[ 0.278000] Could not switch to high resolution mode on CPU 5
[ 0.278000] Clockevents: could not switch to one-shot mode:
[ 0.278000] Clockevents: could not switch to one-shot mode:
[ 0.278000] Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
[ 0.278000] Clockevents: could not switch to one-shot mode: dummy_timer is not functional.
[ 0.278000] Could not switch to high resolution mode on CPU 1
[ 0.278000] Could not switch to high resolution mode on CPU 3
[ 0.278000] Could not switch to high resolution mode on CPU 2
[ 0.278000] Could not switch to high resolution mode on CPU 0
[ 0.279000] Could not switch to high resolution mode on CPU 6
[ 0.297000] NET: Registered protocol family 2
[ 0.298000] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.298000] TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
[ 0.301000] TCP bind hash table entries: 65536 (order: 8, 1572864 bytes)
[ 0.302000] TCP: Hash tables configured (established 131072 bind 65536)
[ 0.302000] TCP: reno registered
[ 0.303000] UDP hash table entries: 512 (order: 3, 32768 bytes)
[ 0.303000] UDP-Lite hash table entries: 512 (order: 3, 32768 bytes)
[ 0.303000] NET: Registered protocol family 1
[ 0.304000] RPC: Registered named UNIX socket transport module.
[ 0.304000] RPC: Registered udp transport module.
[ 0.304000] RPC: Registered tcp transport module.
[ 0.304000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.304000] Unpacking initramfs…
[ 0.304000] Initramfs unpacking failed: junk in compressed archive
[ 0.318000] Freeing initrd memory: 16384K
[ 0.320000] Display LCD register operation
[ 0.320000] Display LVDS register operation
[ 0.320000] Display MiPi register operation
[ 0.321000] audit: initializing netlink socket (disabled)
[ 0.321000] type=2000 audit(0.320:1): initialized
[ 0.331000] NFS: Registering the id_resolver key type
[ 0.332000] NTFS driver 2.1.30 [Flags: R/W].
[ 0.332000] fuse init (API version 7.18)
[ 0.333000] msgmni has been set to 1083
[ 0.334000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.335000] io scheduler noop registered
[ 0.335000] io scheduler deadline registered
[ 0.335000] io scheduler cfq registered (default)
[ 0.335000] nxp-fb.0: dma addr = 0x63600000, buf[0xe29d2500]
[ 0.336000] nxp-fb.0: dma addr = 0x63777000, buf[0xe29d2640]
[ 0.336000] nxp-fb.0: dma addr = 0x638ee000, buf[0xe29d2780]
[ 0.357000] nxp-fb 0: out[0], 800 * 480 - 32 bpp (phys:63600000 virt:0xe3600000 max:4608000)
[ 0.358000] nxp-uart.0: ttySAC0 at MMIO 0xc00a1000 (irq = 39) is a S3C6400/10
[ 1.417000] console [ttySAC0] enabled
[ 1.420000] nxp-uart.1: ttySAC1 at MMIO 0xc00a0000 (irq = 38) is a S3C6400/10
[ 1.428000] nxp-uart.2: ttySAC2 at MMIO 0xc00a2000 (irq = 40) is a S3C6400/10
[ 1.435000] nxp-uart.3: ttySAC3 at MMIO 0xc00a3000 (irq = 41) is a S3C6400/10
[ 1.442000] nxp-uart nxp-uart.0: DMA channel TX dma1chan2
[ 1.447000] nxp-uart nxp-uart.0: DMA channel RX dma1chan3
[ 1.452000] nxp-uart nxp-uart.1: DMA channel TX dma1chan0
[ 1.458000] nxp-uart nxp-uart.1: DMA channel RX dma1chan1
[ 1.463000] nxp-uart nxp-uart.2: DMA channel TX dma1chan4
[ 1.468000] nxp-uart nxp-uart.2: DMA channel RX dma1chan5
[ 1.478000] loop: module loaded
[ 1.478000] at24 2-0050: 512 byte 24c04 EEPROM, writable, 16 bytes/write
[ 1.484000] SCSI Media Changer driver v0.25
[ 1.488000] tun: Universal TUN/TAP device driver, 1.6
[ 1.493000] tun: © 1999-2004 Max Krasnyansky maxk@qualcomm.com
[ 1.500000] stmmac - user ID: 0x37, Synopsys ID: 0x37
[ 1.504000] Ring mode enabled
[ 1.507000] DMA HW capability register supported
[ 1.512000] Enhanced/Alternate descriptors
[ 1.516000] Enabled extended descriptors
[ 1.520000] RX Checksum Offload Engine supported (type 2)
[ 1.526000] TX Checksum insertion supported
[ 1.530000] Wake-Up On Lan supported
[ 1.533000] Enable RX Mitigation via HW Watchdog Timer
[ 1.572000] stmmac: probed
[ 1.572000] eth0: PHY ID 001cc915 at 0 IRQ 257 (stmmac-0:00)
[ 1.575000] eth0: PHY ID 001cc915 at 4 IRQ 257 (stmmac-0:04) active
[ 1.581000] PPP generic driver version 2.4.2
[ 1.586000] PPP BSD Compression module registered
[ 1.590000] PPP Deflate Compression module registered
[ 1.596000] PPP MPPE Compression module registered
[ 1.600000] NET: Registered protocol family 24
[ 1.605000] usbcore: registered new interface driver asix
[ 1.610000] usbcore: registered new interface driver cdc_ether
[ 1.616000] usbcore: registered new interface driver net1080
[ 1.621000] usbcore: registered new interface driver cdc_subset
[ 1.627000] usbcore: registered new interface driver zaurus
[ 1.633000] usbcore: registered new interface driver cdc_ncm
[ 1.639000] ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
[ 1.645000] nxp-ehci nxp-ehci: SLsi Synopsys EHCI Host Controller
[ 1.651000] nxp-ehci nxp-ehci: new USB bus registered, assigned bus number 1
[ 1.658000] nxp-ehci nxp-ehci: irq 82, io mem 0xc0030000
[ 1.670000] nxp-ehci nxp-ehci: USB 0.0 started, EHCI 1.00
[ 1.667000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 1.673000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 1.680000] usb usb1: Product: SLsi Synopsys EHCI Host Controller
[ 1.686000] usb usb1: Manufacturer: Linux 3.4.39-gec ehci_hcd
[ 1.692000] usb usb1: SerialNumber: nxp-ehci
[ 1.697000] hub 1-0:1.0: USB hub found
[ 1.700000] hub 1-0:1.0: 3 ports detected
[ 1.705000] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[ 2.007000] usb 1-1: new high-speed USB device number 2 using nxp-ehci
[ 2.115000] dwc_otg dwc_otg: DWC OTG Controller
[ 2.115000] dwc_otg dwc_otg: new USB bus registered, assigned bus number 2
[ 2.120000] dwc_otg dwc_otg: irq 81, io mem 0x00000000
[ 2.123000] usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
[ 2.123000] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 2.123000] usb 1-1: Product: USB2.0 Hub
[ 2.124000] hub 1-1:1.0: USB hub found
[ 2.124000] hub 1-1:1.0: 4 ports detected
[ 2.151000] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[ 2.158000] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 2.165000] usb usb2: Product: DWC OTG Controller
[ 2.170000] usb usb2: Manufacturer: Linux 3.4.39-gec dwc_otg_hcd
[ 2.176000] usb usb2: SerialNumber: dwc_otg
[ 2.180000] hub 2-0:1.0: USB hub found
[ 2.183000] hub 2-0:1.0: 1 port detected
[ 2.188000] usbcore: registered new interface driver cdc_acm
[ 2.193000] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 2.201000] usbcore: registered new interface driver usblp
[ 2.207000] Initializing USB Mass Storage driver…
[ 2.211000] usbcore: registered new interface driver usb-storage
[ 2.217000] USB Mass Storage support registered.
[ 2.222000] usbcore: registered new interface driver usbserial
[ 2.228000] usbcore: registered new interface driver usbserial_generic
[ 2.234000] USB Serial support registered for generic
[ 2.239000] usbserial: USB Serial Driver core
[ 2.244000] usbcore: registered new interface driver aircable
[ 2.249000] USB Serial support registered for aircable
[ 2.255000] usbcore: registered new interface driver ark3116
[ 2.260000] USB Serial support registered for ark3116
[ 2.265000] usbcore: registered new interface driver belkin
[ 2.271000] USB Serial support registered for Belkin / Peracom / GoHubs USB Serial Adapter
[ 2.279000] usbcore: registered new interface driver ch341
[ 2.285000] USB Serial support registered for ch341-uart
[ 2.290000] usbcore: registered new interface driver cp210x
[ 2.295000] USB Serial support registered for cp210x
[ 2.300000] usbcore: registered new interface driver cyberjack
[ 2.306000] USB Serial support registered for Reiner SCT Cyberjack USB card reader
[ 2.314000] usbcore: registered new interface driver cypress
[ 2.319000] USB Serial support registered for DeLorme Earthmate USB
[ 2.326000] USB Serial support registered for HID->COM RS232 Adapter
[ 2.332000] USB Serial support registered for Nokia CA-42 V2 Adapter
[ 2.338000] usbcore: registered new interface driver debug
[ 2.344000] USB Serial support registered for debug
[ 2.349000] usbcore: registered new interface driver digi_acceleport
[ 2.355000] USB Serial support registered for Digi 2 port USB adapter
[ 2.361000] USB Serial support registered for Digi 4 port USB adapter
[ 2.368000] usbcore: registered new interface driver io_edgeport
[ 2.374000] USB Serial support registered for Edgeport 2 port adapter
[ 2.380000] USB Serial support registered for Edgeport 4 port adapter
[ 2.387000] USB Serial support registered for Edgeport 8 port adapter
[ 2.393000] USB Serial support registered for EPiC device
[ 2.398000] usbcore: registered new interface driver io_ti
[ 2.404000] USB Serial support registered for Edgeport TI 1 port adapter
[ 2.411000] USB Serial support registered for Edgeport TI 2 port adapter
[ 2.417000] usbcore: registered new interface driver empeg
[ 2.423000] USB Serial support registered for empeg
[ 2.428000] usbcore: registered new interface driver f81232
[ 2.433000] USB Serial support registered for f81232
[ 2.438000] usbcore: registered new interface driver ftdi_sio
[ 2.444000] USB Serial support registered for FTDI USB Serial Device
[ 2.450000] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
[ 2.456000] usbcore: registered new interface driver funsoft
[ 2.462000] USB Serial support registered for funsoft
[ 2.467000] usbcore: registered new interface driver garmin_gps
[ 2.472000] USB Serial support registered for Garmin GPS usb/tty
[ 2.479000] usbcore: registered new interface driver hp4X
[ 2.484000] USB Serial support registered for hp4X
[ 2.489000] usbcore: registered new interface driver ipaq
[ 2.494000] USB Serial support registered for PocketPC PDA
[ 2.500000] ipaq: v1.0:USB PocketPC PDA driver
[ 2.504000] usbcore: registered new interface driver ipwtty
[ 2.510000] USB Serial support registered for IPWireless converter
[ 2.516000] usbcore: registered new interface driver ir-usb
[ 2.521000] USB Serial support registered for IR Dongle
[ 2.526000] ir_usb: v0.5:USB IR Dongle driver
[ 2.531000] usbcore: registered new interface driver iuu_phoenix
[ 2.537000] USB Serial support registered for iuu_phoenix
[ 2.542000] usbcore: registered new interface driver keyspan
[ 2.548000] USB Serial support registered for Keyspan - (without firmware)
[ 2.555000] USB Serial support registered for Keyspan 1 port adapter
[ 2.561000] USB Serial support registered for Keyspan 2 port adapter
[ 2.567000] USB Serial support registered for Keyspan 4 port adapter
[ 2.574000] usbcore: registered new interface driver keyspan_pda
[ 2.580000] USB Serial support registered for Keyspan PDA
[ 2.585000] USB Serial support registered for Keyspan PDA - (prerenumeration)
[ 2.592000] USB Serial support registered for Xircom / Entregra PGS - (prerenumeration)
[ 2.600000] usbcore: registered new interface driver kl5kusb105d
[ 2.606000] USB Serial support registered for KL5KUSB105D / PalmConnect
[ 2.613000] usbcore: registered new interface driver kobil
[ 2.618000] USB Serial support registered for KOBIL USB smart card terminal
[ 2.625000] usbcore: registered new interface driver mct_u232
[ 2.631000] USB Serial support registered for MCT U232
[ 2.636000] usbcore: registered new interface driver metro-usb
[ 2.642000] USB Serial support registered for Metrologic USB to serial converter.
[ 2.649000] usbcore: registered new interface driver moschip7720
[ 2.655000] USB Serial support registered for Moschip 2 port adapter
[ 2.662000] usbcore: registered new interface driver mos7840
[ 2.667000] USB Serial support registered for Moschip 7840/7820 USB Serial Driver
[ 2.675000] usbcore: registered new interface driver moto-modem
[ 2.681000] USB Serial support registered for moto-modem
[ 2.686000] usbcore: registered new interface driver navman
[ 2.691000] USB Serial support registered for navman
[ 2.697000] usbcore: registered new interface driver omninet
[ 2.702000] USB Serial support registered for ZyXEL - omni.net lcd plus usb
[ 2.709000] usbcore: registered new interface driver opticon
[ 2.715000] USB Serial support registered for opticon
[ 2.720000] usbcore: registered new interface driver option
[ 2.725000] USB Serial support registered for GSM modem (1-port)
[ 2.731000] usbcore: registered new interface driver oti6858
[ 2.737000] USB Serial support registered for oti6858
[ 2.742000] usbcore: registered new interface driver pl2303
[ 2.747000] USB Serial support registered for pl2303
[ 2.752000] usbcore: registered new interface driver qcaux
[ 2.758000] USB Serial support registered for qcaux
[ 2.763000] usbcore: registered new interface driver qcserial
[ 2.768000] USB Serial support registered for Qualcomm USB modem
[ 2.774000] safe_serial: v0.1:USB Safe Encapsulated Serial
[ 2.780000] usbcore: registered new interface driver safe_serial
[ 2.786000] USB Serial support registered for safe_serial
[ 2.791000] usbcore: registered new interface driver siemens_mpi
[ 2.797000] USB Serial support registered for siemens_mpi
[ 2.803000] usbcore: registered new interface driver sierra
[ 2.808000] USB Serial support registered for Sierra USB modem
[ 2.814000] usbcore: registered new interface driver spcp8x5
[ 2.820000] USB Serial support registered for SPCP8x5
[ 2.825000] usbcore: registered new interface driver ssu100
[ 2.830000] USB Serial support registered for Quatech SSU-100 USB to Serial Driver
[ 2.838000] usbcore: registered new interface driver symbol
[ 2.843000] USB Serial support registered for symbol
[ 2.848000] usbcore: registered new interface driver ti_usb_3410_5052
[ 2.855000] USB Serial support registered for TI USB 3410 1 port adapter
[ 2.861000] USB Serial support registered for TI USB 5052 2 port adapter
[ 2.868000] ti_usb_3410_5052: v0.10:TI USB 3410/5052 Serial Driver
[ 2.874000] usbcore: registered new interface driver visor
[ 2.880000] USB Serial support registered for Handspring Visor / Palm OS
[ 2.886000] USB Serial support registered for Sony Clie 5.0
[ 2.892000] USB Serial support registered for Sony Clie 3.5
[ 2.898000] visor: USB HandSpring Visor / Palm OS driver
[ 2.903000] usbcore: registered new interface driver whiteheat
[ 2.909000] USB Serial support registered for Connect Tech - WhiteHEAT - (prerenumeration)
[ 2.917000] USB Serial support registered for Connect Tech - WhiteHEAT
[ 2.923000] usbcore: registered new interface driver vivopay-serial
[ 2.930000] USB Serial support registered for vivopay-serial
[ 2.935000] usbcore: registered new interface driver zio
[ 2.940000] USB Serial support registered for zio
[ 2.945000] usbcore: registered new interface driver usblcd
[ 2.951000] usbcore: registered new interface driver usbled
[ 2.958000] android_usb gadget: Mass Storage Function, version: 2009/09/11
[ 2.963000] android_usb gadget: Number of LUNs=1
[ 2.968000] lun0: LUN: removable file: (no medium)
[ 2.973000] android_usb gadget: android_usb ready
[ 2.978000] mousedev: PS/2 mouse device common for all mice
[ 2.983000] usbcore: registered new interface driver xpad
[ 2.988000] usbcore: registered new interface driver usb_acecad
[ 2.994000] usbcore: registered new interface driver aiptek
[ 3.000000] usbcore: registered new interface driver gtco
[ 3.005000] usbcore: registered new interface driver hanwang
[ 3.011000] usbcore: registered new interface driver kbtab
[ 3.016000] usbcore: registered new interface driver wacom
[ 3.125000] i2c-nxp.1: ack was not received
[ 5.058000] input: gslX680 as /devices/platform/s3c2440-i2c.1/i2c-1/1-0040/input/input0
[ 5.061000] i2c-core: driver [gslX680] using legacy suspend method
[ 5.067000] i2c-core: driver [gslX680] using legacy resume method
[ 5.073000] nxp-rtc nxp-rtc.0: warning: invalid RTC value so initializing it
[ 5.080000] nxp-rtc nxp-rtc.0: rtc core: registered nxp-rtc as rtc0
[ 5.086000] i2c /dev entries driver
[ 5.090000] lirc_dev: IR Remote Control driver registered, major 246
[ 5.096000] IR NEC protocol handler initialized
[ 5.101000] IR RC5(x) protocol handler initialized
[ 5.105000] IR RC6 protocol handler initialized
[ 5.110000] IR JVC protocol handler initialized
[ 5.114000] IR Sony protocol handler initialized
[ 5.119000] IR RC5 (streamzap) protocol handler initialized
[ 5.125000] IR SANYO protocol handler initialized
[ 5.129000] IR MCE Keyboard/mouse protocol handler initialized
[ 5.135000] IR LIRC bridge handler initialized
[ 5.141000] Registered IR keymap rc-x4418
[ 5.144000] input: nxp_ir_recv as /devices/virtual/rc/rc0/input1
[ 5.150000] rc0: nxp_ir_recv as /devices/virtual/rc/rc0
[ 5.155000] input: MCE IR Keyboard/Mouse (nxp-ppm) as /devices/virtual/input/input2
[ 5.163000] rc rc0: lirc_dev: driver ir-lirc-codec (nxp-ppm) registered at minor = 0
[ 5.170000] i2c-core: driver [tuner] using legacy suspend method
[ 5.176000] i2c-core: driver [tuner] using legacy resume method
[ 5.182000] i2c-core: driver [msp3400] using legacy suspend method
[ 5.188000] i2c-core: driver [msp3400] using legacy resume method
[ 5.194000] usbcore: registered new interface driver em28xx
[ 5.200000] Em28xx: Initialized (Em28xx Audio Extension) extension
[ 5.206000] usbcore: registered new interface driver cx231xx
[ 5.212000] cx231xx: Cx231xx Audio Extension initialized
[ 5.217000] usbcore: registered new interface driver usbvision
[ 5.223000] USBVision USB Video Device Driver for Linux : 0.9.11
[ 5.229000] usbcore: registered new interface driver pvrusb2
[ 5.234000] pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
[ 5.242000] pvrusb2: Debug mask is 31 (0x1f)
[ 5.246000] cpia2: V4L-Driver for Vision CPiA2 based cameras v3.0.1
[ 5.253000] usbcore: registered new interface driver cpia2
[ 5.258000] usbcore: registered new interface driver tm6000
[ 5.264000] usbcore: registered new interface driver zr364xx
[ 5.269000] usbcore: registered new interface driver stkwebcam
[ 5.275000] usbcore: registered new interface driver sn9c102
[ 5.281000] usbcore: registered new interface driver et61x251
[ 5.286000] usbcore: registered new interface driver Philips webcam
[ 5.293000] gspca_main: v2.14.0 registered
[ 5.297000] usbcore: registered new interface driver gspca_zc3xx
[ 5.303000] usbcore: registered new interface driver hdpvr
[ 5.308000] usbcore: registered new interface driver s2255
[ 5.315000] _register_sensor: unable to register subdev S5K4ECGX
[ 5.320000] register_nxp_capture: can’t register sensor subdev
[ 5.329000] usbcore: registered new interface driver uvcvideo
[ 5.331000] USB Video Class driver (1.1.1)
[ 5.337000] input: mma8653 as /devices/virtual/input/input3
[ 5.342000] i2c-core: driver [mma8653] using legacy suspend method
[ 5.347000] i2c-core: driver [mma8653] using legacy resume method
[ 5.353000] nxp_wdt: NXP Watchdog Timer, © 2014 SLsiAP
[ 5.361000] nxp-wdt nxp-wdt: watchdog inactive, reset disabled, irq disabled
[ 5.366000] device-mapper: uevent: version 1.0.3
[ 5.370000] device-mapper: ioctl: 4.22.0-ioctl (2011-10-19) initialised: dm-devel@redhat.com
[ 5.379000] usbcore: registered new interface driver btusb
[ 5.385000] cpuidle: using governor ladder
[ 5.388000] cpuidle: using governor menu
[ 5.392000] gsensor calibration file not exist!
[ 5.396000] Synopsys Designware Multimedia Card Interface Driver
[ 5.402000] dw_mmc dw_mmc.2: Using internal DMA controller.
[ 5.408000] mmc0: no vmmc regulator found
[ 5.414000] dw_mmc dw_mmc.2: Version ID is 250a
[ 5.416000] dw_mmc dw_mmc.2: DW MMC controller at irq 77, 32 bit host data width, 32 deep fifo hw timeout 500 ms
[ 5.425000] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[ 5.436000] mmc_host mmc0: device is being hw reset
[ 5.441000] dw_mmc dw_mmc.0: Using internal DMA controller.
[ 5.447000] mmc1: no vmmc regulator found
[ 5.452000] dw_mmc dw_mmc.0: Version ID is 250a
[ 5.455000] dw_mmc dw_mmc.0: DW MMC controller at irq 75, 32 bit host data width, 32 deep fifo hw timeout 500 ms
[ 5.465000] dw_mmc dw_mmc.1: Using internal DMA controller.
[ 5.471000] mmc2: no vmmc regulator found
[ 5.477000] dw_mmc dw_mmc.1: Version ID is 250a
[ 5.479000] dw_mmc dw_mmc.1: DW MMC controller at irq 76, 32 bit host data width, 32 deep fifo hw timeout 500 ms
[ 5.480000] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[ 5.480000] mmc0: new high speed MMC card at address 0001
[ 5.481000] mmcblk0: mmc0:0001 8GTF4R 7.28 GiB
[ 5.481000] mmcblk0boot0: mmc0:0001 8GTF4R partition 1 4.00 MiB
[ 5.481000] mmcblk0boot1: mmc0:0001 8GTF4R partition 2 4.00 MiB
[ 5.483000] mmcblk0: p1 p2 p3 p4 < p5 p6 p7 >
[ 5.485000] mmcblk0boot1: unknown partition table
[ 5.485000] mmcblk0boot0: unknown partition table
[ 5.536000] usbcore: registered new interface driver usbhid
[ 5.540000] usbhid: USB HID core driver
[ 5.545000] ADC: CHs 8, 200000(1000000 ~ 130208) sample rate, polling mode, scale=166(bit 6)
[ 5.553000] ADC: CHs 8, 200000(1000000 ~ 130208) sample rate, polling mode, scale=166(bit 6)
[ 5.561000] ashmem: initialized
[ 5.564000] logger: created 256K log ‘log_main’
[ 5.569000] logger: created 256K log ‘log_events’
[ 5.573000] logger: created 256K log ‘log_radio’
[ 5.578000] logger: created 256K log ‘log_system’
[ 5.583000] snd pcm: register sound platform ‘nxp-pcm’
[ 5.731000] asoc: alc5621-hifi <-> nxp-i2s.0 mapping ok
[ 5.732000] input: I2S-alc5623 Headphone Jack as /devices/platform/alc5623-audio.0/sound/card0/input4
[ 5.741000] spdif-tx: 48000(47607)Hz, MCLK=12187500hz HDMI out
[ 5.747000] asoc: dit-hifi <-> nxp-spdif-tx mapping ok
[ 5.752000] GACT probability NOT on
[ 5.755000] Mirror/redirect action on
[ 5.758000] u32 classifier
[ 5.761000] Actions configured
[ 5.764000] Netfilter messages via NETLINK v0.30.
[ 5.769000] nf_conntrack version 0.5.0 (12923 buckets, 51692 max)
[ 5.775000] ctnetlink v0.93: registering with nfnetlink.
[ 5.780000] NF_TPROXY: Transparent proxy support initialized, version 4.1.0
[ 5.787000] NF_TPROXY: Copyright © 2006-2007 BalaBit IT Ltd.
[ 5.793000] xt_time: kernel timezone is -0000
[ 5.798000] ip_tables: © 2000-2006 Netfilter Core Team
[ 5.803000] arp_tables: © 2002 David S. Miller
[ 5.807000] TCP: cubic registered
[ 5.811000] Initializing XFRM netlink socket
[ 5.815000] NET: Registered protocol family 10
[ 5.820000] Mobile IPv6
[ 5.822000] ip6_tables: © 2000-2006 Netfilter Core Team
[ 5.827000] IPv6 over IPv4 tunneling driver
[ 5.832000] NET: Registered protocol family 17
[ 5.836000] NET: Registered protocol family 15
[ 5.840000] Bluetooth: RFCOMM TTY layer initialized
[ 5.845000] Bluetooth: RFCOMM socket layer initialized
[ 5.850000] Bluetooth: RFCOMM ver 1.11
[ 5.854000] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 5.859000] Bluetooth: BNEP filters: protocol multicast
[ 5.864000] Bluetooth: HIDP (Human Interface Emulation) ver 1.2
[ 5.870000] NET: Registered protocol family 35
[ 5.875000] Registering the dns_resolver key type
[ 5.880000] Registering SWP/SWPB emulation handler
[ 5.886000] axp22_dcdc5: incomplete constraints, leaving on
[ 5.890000] axp22_dcdc4: incomplete constraints, leaving on
[ 5.896000] axp22_dcdc3: incomplete constraints, leaving on
[ 5.901000] axp22_dcdc2: incomplete constraints, leaving on
[ 5.907000] axp22_dcdc1: incomplete constraints, leaving on
[ 5.914000] axp22_eldo2: incomplete constraints, leaving on
[ 5.918000] axp22_eldo1: incomplete constraints, leaving on
[ 5.925000] axp22_dldo2: incomplete constraints, leaving on
[ 5.929000] axp22_dldo1: incomplete constraints, leaving on
[ 5.935000] axp22_aldo3: incomplete constraints, leaving on
[ 5.940000] axp22_aldo2: incomplete constraints, leaving on
[ 5.946000] axp22_aldo1: incomplete constraints, leaving on
[ 5.952000] otg_wakelock_init: No USB transceiver found
[ 5.956000] nxp-rtc nxp-rtc.0: setting system clock to 2015-01-01 00:00:01 UTC (1420070401)
[ 5.965000] ALSA device list:
[ 5.967000] #0: I2S-alc5623
[ 5.970000] #1: SPDIF-Transciever
[ 6.003000] EXT4-fs (mmcblk0p2): recovery complete
[ 6.005000] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.010000] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 6.016000] devtmpfs: mounted
[ 6.019000] Freeing init memory: 244K
[ 6.023000] Write protecting the kernel text section c0008000 - c0a2f000
[ 6.030000] rodata_test: attempting to write to read-only section:
[ 6.035000] write to read-only section trapped, success
[ 6.178000] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
[ 6.542000] eth0: device MAC address 6e:3a🇩🇪70:01:d4
[ 6.543000] stmmac_open: failed PTP initialisation
[root@GEC6818 ~]#[ 11.552000] PHY: stmmac-0:04 - Link is Up - 1000/Full

四:567行内核启动信息分析

Booting kernel from Legacy Image at 48000000 …
Image Name: Linux-3.4.39-gec
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 5575624 Bytes = 5.3 MiB
Load Address: 40008000
Entry Point: 40008000
Verifying Checksum … OK
Loading Kernel Image … OK
##从旧映像启动内核在48000000…
镜像名称:Linux-3.4.39-gec
镜像类型:ARM Linux内核镜像(未压缩)
数据大小:5575624 Bytes = 5.3 MiB
负载地址:40008000
入口点:40008000
校验校验和…好吧
加载内核映像…好吧

Starting kernel …/开始内核/

[ 0.000000] Booting Linux on physical CPU 0/物理上引导linux/
[ 0.000000] Initializing cgroup subsys cpu/CPU中高级c组初始化/
[ 0.000000] Linux version 3.4.39-gec (geced@localhost.localdomain) (gcc version 4.8 (GCC) ) #3 SMP PREEMPT Tue Jun 4 15:57:34 CST 2019
/*
Linux version 3.4.39-gec:linux内核版本为3.4.39

geced@localhost.localdomain:一个特定的用户名加上主机名的组合,通常出现在linux的环境中。
geced:一个用户账户的名称,在Linux系统中,用户账户用于登录和管理系统。
localhost.localdomain:主机名称,代表本地计算机,通常用于测试和开发环境。
用途:用于登录、文件权限、进程管理等,具体用途取决于系统的配置和使用场景。

gcc version 4.8 (GCC) #3 SMP PREEMPT:gcc版本为4.8,(GCC)构建的序号为3。
SMP:对称多处理Symmetric MultiProcessing,意味着系统拥有多个处理器,这些处理器共享所有资源,能够同时处理多个任务。这种系统的特点是多个处理器紧密耦合,
共同协作提高系统性能和处理能力。与非对称多处理Asymmetric MultiProcessing相对,后者通常指的是一个主处理器与一个或多个辅助处理器的工作模式,辅助处理器通常用于特定任务或专用工作负载。
PREEMPT:抢占式内核Preemptive Kernel,是指内核具有能够动态地,在运行时中断正在运行的进程,并将CPU资源分配给其他进程的能力。这种机制允许操作系统根据当前的系统状态、进程优先级以及其他相关因素,更有效地管理CPU资源,从而提高系统地整体效率和响应性。抢占式内核与非抢占式内核Cooperative Multitasking)比较,后者要求进程在执行完毕后主动释放CPU资源,或者通过某种机制(如信号量)来通知操作系统其他更高优先级地进程需要运行。
SMP PREEMPT时现代操作系统中地一个重要概念,它结合了SMP地多处理器能力和PREEMPT地抢占式调度机制,指在提高系统的并发处理能力、资源利用率以及响应速度。

Tue Jun 4 15:57:34 CST 2019:2019年6月4日星期4 CST
CST:CST 是 China Standard Time(中国标准时间)的缩写。它是中国的官方时间标准,通常也被称为北京时间(Beijing Time,BJT)。
CST 是 UTC+8 时区,这意味着它比协调世界时(UTC)快 8 小时。
UTC是“协调世界时”(Coordinated Universal Time)的缩写。它是全球时间标准,用于确保世界各地的时钟和时间保持一致。

*/

[ 0.000000] Initialized persistent memory from 635fc000-635fffff/初始化持久内存从635fc000-635fffff/

[ 0.000000] CPU : iomap[0]: p 0xc0000000 -> v 0xf0000000 len=0x300000
/*
这条日志信息是系统启动过程中记录的I/O内存映射操作,表示将物理地址0xc0000000映射到虚拟地址0xf0000000,
映射长度为3MB。这种映射操作通常用于使CPU能够访问特定的I/O设备或内存区域。
[ 0.000000]:这是时间戳,表示从系统启动到记录这条日志信息所经过的时间。这里的时间是0秒,
表示这是系统启动时的初始日志信息。
CPU:表示这条日志信息与CPU相关。
iomap[ 0]:iomap表示I/O内存映射(I/O Memory Mapping),[ 0]表示这是第0个I/O内存映射条目。
p 0xc0000000:p表示物理地址(Physical Address),0xf0000000是被映射的物理地址的起始位置。
-> v 0xf0000000:v表示虚拟地址(Virtual Address),0xf0000000是物理地址0xf0000000被映射到的虚拟地址。
len=0x300000:len表示映射的长度,这里是0x300000(即3MB)。
*/

[ 0.000000] CPU : iomap[ 1]: p 0xe0000000 -> v 0xf0300000 len=0x100000
[ 0.000000] CPU : iomap[ 2]: p 0xfff00000 -> v 0xf0400000 len=0x100000
[ 0.000000] CPU : iomap[ 3]: p 0x2c000000 -> v 0xf0500000 len=0x100000
[ 0.000000] CPU : iomap[ 4]: p 0x00000000 -> v 0xf0600000 len=0x100000
[ 0.000000] CPU : DMA Zone Size =16M, CORE 8
/*
这条日志信息是系统启动过程中记录的DMA区域大小和CPU核心数量的信息。具体来说:
DMA Zone Size =16M:表示DMA区域的大小为16MB。这意味着系统为DMA操作保留了16MB的内存区域。
CORE 8:表示系统中有8个CPU核心。这意味着系统可以并行处理多个任务,提高整体性能。
*/

[ 0.000000] GEC6818 : done board initialize …
/*
这条日志信息是系统启动过程中记录的,表示名为GEC6818的开发板已经完成了初始化过程。具体来说:
GEC6818:这是一个特定的硬件平台或开发板的名称。GEC6818可能是基于某种处理器
(例如NXP i.MX6、Allwinner H3等)的开发板,或者是一个特定的嵌入式系统平台。
: done board initialize …:表示开发板的初始化过程已经完成。

在嵌入式系统或开发板启动过程中,初始化是一个关键步骤。初始化过程通常包括以下内容:
硬件检测:检测并初始化各种硬件组件,如CPU、内存、I/O设备等。
时钟配置:设置系统时钟和外设时钟,以确保各个组件能够正确工作。
内存初始化:初始化系统内存,包括RAM和ROM。
外设初始化:初始化各种外设,如串口、网络接口、存储设备等。
引导加载程序:加载并执行引导加载程序(Bootloader),以启动操作系统。
*/

[ 0.000000] PERCPU: Embedded 9 pages/cpu @c152e000 s12544 r8192 d16128 u36864
/*
这条日志信息是系统启动过程中记录的每个CPU的嵌入式内存页信息。每个CPU有9页(36KB)的嵌入式内存,
起始地址是0xc152e000,内存的分配情况包括静态分配、保留和动态分配,总使用内存为36864字节。
这种设计有助于提高多核系统的性能。
PERCPU:表示这是与每个CPU相关的内存信息。PERCPU内存是指每个CPU都有自己独立的一块内存区域,
用于存储该CPU特有的数据,以避免多核系统中不同CPU之间的竞争和锁争用。

Embedded 9 pages/cpu:表示每个CPU嵌入了9页内存。每页的大小通常是4KB(在大多数系统中),
因此每个CPU有36KB的嵌入式内存。
@c152e000:这是内存的起始地址,表示这些嵌入式内存页的物理地址起始于0xc152e000。
s12544:s表示静态分配的内存大小,这里是12544字节。
r8192:r表示保留的内存大小,这里是8192字节。
d16128:d表示动态分配的内存大小,这里是16128字节。
u36864:u表示总的使用内存大小,这里是36864字节。

*/

[ 0.000000] Kernel command line: console=ttySAC0,115200n8 androidboot.hardware=GEC6818 androidboot.console=ttySAC0 androidboot.serialno=0123456789abcdef initrd=0x49000000,0x1000000 lcd=at070tn92 tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4
/*
这段内核命令行参数配置了内核启动时的一些关键选项,包括控制台设备、硬件平台、初始RAM盘、显示屏和触摸屏配置、根文件系统位置和类型等。具体来说:
控制台设备:ttySAC0,波特率115200,数据位8位,无奇偶校验。
硬件平台:GEC6818。
设备序列号:0123456789abcdef。
初始RAM盘:起始地址0x49000000,大小16MB。
显示屏型号:at070tn92。
触摸屏控制器型号:gslx680-linux。
根文件系统:设备/dev/mmcblk0p2,文件系统类型ext4,以读写模式挂载。
这些参数确保内核能够正确识别和配置硬件设备,并成功挂载根文件系统,从而顺利启动操作系统。

解析每个参数
console=ttySAC0,115200n8
console=ttySAC0:指定内核的控制台设备为ttySAC0,这是一个串口设备。
115200n8:配置串口的波特率为115200,数据位为8位,无奇偶校验(n表示无奇偶校验)。
androidboot.hardware=GEC6818
androidboot.hardware=GEC6818:指定硬件平台为GEC6818。这通常用于Android系统启动时识别硬件平台。
androidboot.console=ttySAC0
androidboot.console=ttySAC0:指定Android系统的控制台设备为ttySAC0。
androidboot.serialno=0123456789abcdef
androidboot.serialno=0123456789abcdef:指定设备的序列号为0123456789abcdef。这通常用于唯一标识设备。
initrd=0x49000000,0x1000000
initrd=0x49000000,0x1000000:指定初始RAM盘(initrd)的起始地址为0x49000000,大小为0x1000000(16MB)。
初始RAM盘包含启动过程中需要的驱动程序和工具。
lcd=at070tn92
lcd=at070tn92:指定LCD显示屏的型号为at070tn92。这通常用于配置显示驱动程序。
tp=gslx680-linux
tp=gslx680-linux:指定触摸屏控制器的型号为gslx680-linux。这通常用于配置触摸屏驱动程序。
root=/dev/mmcblk0p2
root=/dev/mmcblk0p2:指定根文件系统所在的设备为/dev/mmcblk0p2,这是一个MMC/SD卡分区。
rw
rw:指定根文件系统以读写模式挂载。
rootfstype=ext4
rootfstype=ext4:指定根文件系统的文件系统类型为ext4。
*/

[0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
/*
这条信息来自Linux内核启动日志,涉及到进程ID(PID)哈希表的初始化。让我们逐步解析这条信息:
解析日志信息
PID hash table entries: 4096 (order: 2, 16384 bytes)
PID hash table entries: 4096:表示PID哈希表中有4096个条目。
(order: 2, 16384 bytes):表示哈希表的内存分配信息。
order: 2:表示内存分配的顺序(order)。在Linux内核中,内存分配是以页为单位进行的,order表示分配的页数是2的幂次方。
order为2表示分配了2^2 = 4页。
16384 bytes:表示分配的总内存大小为16384字节(16KB)。
解释
这条日志信息表示,在系统启动过程中,内核为进程ID(PID)哈希表分配了4096个条目,并且分配了16KB的内存(4页,每页4KB)。
背景知识
PID哈希表
PID(Process ID):每个进程在系统中都有一个唯一的标识符,称为进程ID(PID)。
哈希表:哈希表是一种数据结构,用于快速查找和存储数据。PID哈希表用于快速查找进程控制块(PCB),以便内核能够高效地管理进程。
内存分配
页(Page):在大多数系统中,内存以页为单位进行管理。每页的大小通常是4KB。
order:在Linux内核中,内存分配的order表示分配的页数是2的幂次方。例如,order为2表示分配了2^2 = 4页。
*/

[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
/*
Dentry cache hash table entries: 131072:表示目录项缓存哈希表中有131072个条目。
(order: 7, 524288 bytes):表示哈希表的内存分配信息。
order: 7:表示内存分配的顺序(order)。在Linux内核中,内存分配是以页为单位进行的,order表示分配的页数是2的幂次方。
order为7表示分配了2^7 = 128页。
524288 bytes:表示分配的总内存大小为524288字节(512KB)。
*/

[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
/*
[ 0.000000]:这是时间戳,表示从系统启动到记录这条日志信息所经过的时间。这里的时间是0秒,表示这是系统启动时的初始日志信息。
Inode-cache hash table entries: 65536:表示索引节点缓存哈希表中有65536个条目。
(order: 6, 262144 bytes):表示哈希表的内存分配信息。
order: 6:表示内存分配的顺序(order)。在Linux内核中,内存分配是以页为单位进行的,
order表示分配的页数是2的幂次方。order为6表示分配了2^6 = 64页。
262144 bytes:表示分配的总内存大小为262144字节(256KB)。
解释
这条日志信息表示,在系统启动过程中,内核为索引节点缓存(Inode Cache)哈希表分配了65536个条目,
并且分配了256KB的内存(64页,每页4KB)。
背景知识
索引节点缓存(Inode Cache)
Inode(索引节点):索引节点是文件系统中的一个数据结构,用于存储文件的元数据(如文件大小、权限、时间戳等)和指向文件数据块的指针。
Inode Cache:索引节点缓存是内核中的一个缓存机制,用于加速文件系统的文件操作。通过缓存最近访问的索引节点,
内核可以减少磁盘I/O,提高文件系统的性能。
内存分配
页(Page):在大多数系统中,内存以页为单位进行管理。每页的大小通常是4KB。
order:在Linux内核中,内存分配的order表示分配的页数是2的幂次方。例如,order为6表示分配了2^6 = 64页。
总结
这条日志信息是系统启动过程中记录的索引节点缓存(Inode Cache)哈希表初始化信息。具体来说:
索引节点缓存哈希表条目数:65536个条目。
内存分配顺序:order为6,表示分配了64页内存。
总内存大小:262144字节(256KB)。
索引节点缓存用于加速文件系统的文件操作,通过分配足够的内存和条目数,内核能够高效地处理文件系统的文件操作,
从而提高系统的整体性能。
*/

[ 0.000000] allocated 2097152 bytes of page_cgroup
/*
这条信息来自Linux内核启动日志,涉及到page_cgroup内存分配。让我们逐步解析这条信息:
解析日志信息
allocated 2097152 bytes of page_cgroup
allocated 2097152 bytes:表示分配了2097152字节的内存。
of page_cgroup:表示这些内存是分配给page_cgroup的。
解释
这条日志信息表示,在系统启动过程中,内核为page_cgroup分配了2097152字节(2MB)的内存。
背景知识
page_cgroup
page_cgroup:page_cgroup是Linux内核中的一个数据结构,用于内存控制组(Memory Control Group,简称memcg)的页面管理。
内存控制组是cgroups(控制组)子系统的一部分,用于限制、记录和隔离进程组的内存使用情况。
cgroups:控制组(cgroups)是Linux内核提供的一种机制,用于限制、记录和隔离进程组的资源使用情况,
包括CPU、内存、磁盘I/O等。cgroups允许系统管理员和开发人员更好地管理和控制系统资源。
内存分配
内存分配:在系统启动过程中,内核需要为各种数据结构和子系统分配内存,以确保它们能够正常工作。
page_cgroup需要内存来管理和跟踪每个内存页面的使用情况。
总结
这条日志信息是系统启动过程中记录的page_cgroup内存分配信息。具体来说:
分配的内存大小:2097152字节(2MB)。
分配对象:page_cgroup,用于内存控制组的页面管理。
通过为page_cgroup分配足够的内存,内核能够有效地管理和跟踪内存页面的使用情况,从而实现对进程组的内存使用进行限制、记录和隔离。
这对于系统资源的管理和控制非常重要,特别是在多用户或多任务环境中。
*/

小结

1,搜索问题工具:
https://assistant.kattgatt.com/chat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值