环境:
ubuntu16.04
目标:
在ubuntu 上编译linux内核 并在qemu模拟的ARM开发板上运行
背景知识:
1.什么是ARM
ARM是一款微处理器的简称,从早期的ARM1系列发展到ARM11,ARM11以后的产品用Coretex命名。
2.宿主机(Host)与目标机(Target)
开发板由于硬件所限不能直接在本地建立起开发环境,需要在配置高的PC上开发完软件后再移植到开发板上运行。在这里,个人电脑就是Host,开发板就是Target.
3.交叉编译
交叉编译就是在一个平台上生成另一个平台的可执行代码。由于宿主机和目标机的平台不一样(平台包括体系结构,最直观的就是CPU不一样,一个是X86,一个是ARM,使用的汇编语言都不一样),不能使用宿主机的编译工具,而需要在宿主机安装目标机的编译工具链,来编译得到能够在目标机运行的可执行代码。
不同的CPU开发板、不同的Linux内核版本所使用的交叉编译工具都不一样。
4.文件系统
即文件的组织方式,不同的操作系统有不同的文件系统,linux的文件组织为一颗目录树,根为/
5.挂载文件系统
将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点
。
步骤: