IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> QEMU运行armv8平台 -> 正文阅读

[系统运维]QEMU运行armv8平台

使用qumu运行armv8平台

因为工作涉及到手机的bsp部分,因此后续会对uboot和kernel的内容进行系统性学习。
本章内容参考自《奔跑吧linux内核》

博主使用虚拟机进行学习,系统为:ubuntu16.04

工具和代码下载

  1. 安装如下工具
    sudo apt-get install qemu libncurses5-dev gcc-aarch64-linux-gnu build-essential
  2. 代码下载
    • git 下载kernel4.14内核代码
      我使用的码云进行下载,速度会特别快。kernel主线代码地址为:https://gitee.com/mirrors/linux
      git clone git@gitee.com:mirrors/linux.git
      因为下载的是主线代码,所以需要切换到对应的版本上
      git tag //查看tag
      git checkout v4.14 //切换到对应的版本上
    • 下载busybox工具包
      wget https://busybox.net/downloads/busybox-1.24.0.tar.bz2

编译最小文件系统

  1. 执行命令进行编译

    cd busybox
    export ARCH=arm64
    export CROSS_COMPILE=aarch64-linux-gnu-
    make menuconfig  #配置界面设置内容如下
    make install 
    

    在配置界面中将busybox配置成静态编译:

    Busybox Settings ---> 
    		Build options --->
    			[*]Build BusyBox as a static binary (no shared libs) 
    

    把编译出的busybox/下的_install目录复制到kernel4.14/下。

  2. 目录和文件添加

    • 添加etc/ dev/和mnt/目录
      mkdir etc
      mkdir dev
      mkdir mnt
      mkdir -p etc/init.d/	
      
    • 在etc/init.d/下新建rcS文件,添加可执行权限。写入如下内容:
      mkdir -p /proc
      mkdir -p /tmp
      mkdir -p /sys
      mkdir -p /mnt
      /bin/mount -a
      mkdir -p /dev/pts
      mount -t devpts devpts /dev/pts
      echo /sbin/mdev > /proc/sys/kernel/hotplug
      mdev -s
      
    • 在etc/下新建fstab文件,写入内容:
      proc /proc proc defaults 0 0
      tmpfs /tmp tmpfs defaults 0 0
      sysfs /sys sysfs defaults 0 0
      tmpfs /dev tmpfs defaults 0 0
      debugfs /sys/kernel/debug debugfs defaults 0 0
      
    • 在etc/下新建inittab文件,写入内容:
      ::sysinit:/etc/init.d/rcS
      ::respawn:-/bin/sh
      ::askfirst:-/bin/sh
      ::ctrlaltdel:/bin/umount -a -r
      
    • 在dev/下新建设备节点
      sudo mknod console c 5 1
      sudo mknod null c 1 3
      

编译kernel4.14内核

执行以下命令:

export ARHC=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
make menuconfig #编译配置,参考下述内容
make -j4

在弹出的配置界面中,需要配置如下内容:

General setup --->
	[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support !!选中此项,下面才能修改
		(_install) Initramfs source file(s)   !!!(_install)目录是我们前面添加文件的目录
Boot options --->
	() Default kernel command string
Kernel Features -->
	Page size (4KB) --->
		Virtual address space size (48-bit) --->

QEMU运行armv8

执行命令:

qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -m 2048 -smp 2 -kernel arch/arm64/boot/Image --append "rdinit=/linuxrc console=ttyAMA0"

问题汇总

  1. 在编译kernel4.14时,出现了错误“$’\r’: command not found” ??
    原因为kernel4.14代码是从windows系统copy过来的,需要将文件格式由dos转化为unix。
    为此,下载工具dos2unix,执行以下命令:
    for x in $(find .);do dos2unix $x $x;done
    
  2. 下载kernel代码时速度慢和报错???
    首先,使用git下载kernel代码速度会特别慢,在这我安利一下码云。可以先在码云上创建一个仓库,把原有的git仓库导入到码云上。然后再通过码云的git下载,速度会起飞的。操作如图:
    在这里插入图片描述
    在将git仓库同步到码云之后,我使用git clone命令下载时,提示fatal: index-pack failed
    百度了一下原因是ubuntu内存分区不足,下载linux内核这种仓库,需要3G以上内存。刚好我为虚拟机分配的硬盘空间太小,所以,需要修改ubuntu虚拟机分区,参考【ubuntu】ubuntu虚拟机镜像sda1分区扩容(使用Gparted)
  3. 使用git下载的kernel主线代码如何切换到指定的版本??
    下载了kernel的主线代码后,我们可以通过一下命令切换到指定版本中:
    git tag #查看是否有自己需要的版本
    git checkout <tag_id> #将代码切换到tag对应的分支上
    
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:30:56  更:2021-09-06 11:33:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 14:00:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码