> 文档中心 > 友善之臂6818内核编译

友善之臂6818内核编译

git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y --depth 1cd linux
  • 编译内核镜像
touch .scmversionmake ARCH=arm64 nanopi3_linux_defconfigmake ARCH=arm64

编译成功结束后,新生成的内核是 arch/arm64/boot/Image,目录arch/arm64/boot/dts/nexell/下还包括新的DTB文件(s5p6818-nanopi3-rev*.dtb),用于替换掉SD卡boot分区下对应的文件。

Linux内核启动过程

  • 内核解压(汇编+C)
  • 板级引导阶段(汇编)
  • 通用内核启动阶段(C语言):

init/main.c -> start_kernel()

 start_kernel()主要完成内核早期初始化工作

 rest_init()主要是启动多任务调度,并创建了两个进程(线 程),然后自己进入空闲状态

 kernel_init()主要启动多处理器任务调度,以及初始化控制台

 init_post()标志着内核启动的结束,并启动了第一用户进程