Linux kernel + busybox自制arm64架构Linux系统

Linux kernel + busybox自制arm64架构Linux系统


如需转载请标明出处:http://blog.csdn.net/itas109
QQ技术交流群:129518033

文章目录

  • Linux kernel + busybox自制arm64架构Linux系统
    • 前言
    • 1.下载和编译Linux kernel
      • 1.1 下载Linux内核
      • 1.2 安装所需前置软件
      • 1.3 设置CPU架构(★)
      • 1.4 设置系统选项
      • 1.5 编译
    • 2.下载和编译busybox
      • 2.1 下载busybox
      • 2.2 设置CPU架构(★)
      • 2.3 设置系统选项
      • 2.4 编译
    • 3.制作根文件系统rootfs
      • 3.1 创建根目录所需的目录
      • 3.2 创建根目录所需的必要文件
      • 制作根文件系统镜像文件rootfs.cpio.gz
    • 4.Linux系统运行

相关阅读:
1.linux内核之源码编译
2.Linux kernel + busybox自制x86_64架构Linux系统

相关问题:
1.自制操作系统
2.制作简单的Linux系统
3.Linux系统制作流程
4.qemu模拟运行arm64
5.qemu模拟运行aarch64
6.x86_64交叉编译arm64 linux内核

环境:
OS:Ubuntu 20.04
aarch64-linux-gnu-gcc: gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu1)
Linux Kernel: linux-5.4.50(2020-07-01 08:50)
busybox: busybox-1.32.0(2020-06-26 19:30)
qemu: qemu-system-aarch64 4.2.0

前言

自制arm64架构的Linux系统

1.下载和编译Linux kernel

1.1 下载Linux内核

Linux内核官网:https://www.kernel.org/

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.50.tar.xz

wget https://mirror.bjtu.edu.cn/kernel/linux/kernel/v5.x/linux-5.4.50.tar.xz

1.2 安装所需前置软件

sudo apt-get install gcc-aarch64-linux-gnu libncurses5-dev build-essential flex bison bc  

查找aarch64相关安装包:

apt-cache search aarch64

1.3 设置CPU架构(★)

这里以arm64架构为例。常用的架构还有x86_64、mips(龙芯)、alpha(申威)

# 设置CPU架构
$ export ARCH=arm64

# 设置交叉编译工具链前缀
$ export CROSS_COMPILE=aarch64-linux-gnu-

1.4 设置系统选项

# 生成arm64的默认.config(根据ARCH生成,arch/arm64/configs/defconfig)
$ make defconfig

# 设置系统选项
$ make menuconfig
 .config - Linux/arm64 5.4.50 Kernel Configuration
 ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  ┌────────────────────────────────────────────── Linux/arm64 5.4.50 Kernel Configuration ───────────────────────────────────────────────┐
  │  Arrow keys navigate the menu.   selects submenus ---> (or empty submenus ----).  Highlighted letters are hotkeys.  Pressing  │  
  │   includes,  excludes,  modularizes features.  Press  to exit,  for Help,  for Search.  Legend: [*]         │  
  │  built-in  [ ] excluded   module  < > module capable                                                                              │  
  │                                                                                                                                      │  
  │ ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │  
  │ │                                  *** Compiler: aarch64-linux-gnu-gcc (Ubuntu 9.3.0-10ubuntu1) 9.3.0 ***                          │ │  
  │ │                                  General setup  --->                                                                             │ │  
  │ │                                  Platform selection  --->                                                                        │ │  
  │ │                                  Kernel Features  --->                                                                           │ │  
  │ │                                  Boot options  --->                                                                              │ │  
  │ │                                  Power management options  --->                                                                  │ │  
  │ │                                  CPU Power Management  --->                                                                      │ │  
  │ │                                  Firmware Drivers  --->                                                                          │ │  
  │ │                              [*] ACPI (Advanced Configuration and Power Interface) Support  --->                                 │ │  
  │ │                              [*] Virtualization  --->                                                                            │ │  
  │ │                              [*] ARM64 Accelerated Cryptographic Algorithms  --->                                                │ │  
  │ │                                  General architecture-dependent options  --->                                                    │ │  
  │ │                              [*] Enable loadable module support  --->                                                            │ │  
  │ │                              -*- Enable the block layer  --->                                                                    │ │  
  │ │                                  IO Schedulers  --->                                                                             │ │  
  │ │                                  Executable file formats  --->                                                                   │ │  
  │ │                                  Memory Management options  --->                                                                 │ │  
  │ │                              [*] Networking support  --->                                                                        │ │  
  │ │                                  Device Drivers  --->                                                                            │ │  
  │ │                                  File systems  --->                                                                              │ │  
  │ │                                  Security options  --->                                                                          │ │  
  │ │                              -*- Cryptographic API  --->                                                                         │ │  
  │ │                                  Library routines  --->                                                                          │ │  
  │ │                                  Kernel hacking  --->                                                                            │ │  
  │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ │  
  ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤  
  │