在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

时间:2022-08-25 11:22:49

一.环境介绍

OS:ubuntu bionic 64bit

二.准备工作

2.1 安装必要的开发工具

sudo apt-get install git flex bison build-essential gcc-arm-linux-gnueabi gcc-aarch64-linux-gnu pkg-config libglib2.0-dev libpixman-1-dev libssl-dev -y

2.2 编译qemu

wget https://download.qemu.org/qemu-3.1.0.tar.xz -P ~/
tar xvJf ~/qemu-3.1.0.tar.xz
cd ~/qemu-3.1.0
./configure --target-list=aarch64-softmmu
make -j4
sudo make install

2.3 编译busybox

wget https://busybox.net/downloads/busybox-1.30.1.tar.bz2 -P ~/

tar xvf ~/busybox-1.30.1.tar.bz2 -C ~

cd ~/busybox-1.30.1

export ARCH=arm64

export CROSS_COMPILE=aarch64-linux-gnu-

make menuconfig (配置为使用静态库,非常重要,Settings->Build static binary (no shared lib))

  在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

make -j4

make install

三.编译

3.1 获取内核

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

tar xvf linux-5.0.1.tar.xz

cd linux-5.0.1

3.2 配置环境变量

export ARCH=arm64

export CROSS_COMPILE=aarch64-linux-gnu-

make defconfig

3.3 加入文件系统

cp ~/busybox-1.30.1/_install ./

mkdir _install/dev

cd _install/dev

sudo mknod console c 5 1

sudo mknod null c 1 3

cd ../..

make menuconfig

出现图形界面,把_install配置到Initramfs source file中,如下图(General setup->Initramfs source file):

在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行

3.4 编译

make all -j4

四.运行

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"

在ubuntu bionic下对基于qemu的arm64进行linux内核5.0.1版本的编译和运行的更多相关文章

  1. 如何在Ubuntu/CentOS上安装Linux内核4.0

    大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...

  2. 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序(老罗学习笔记2)

    在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序.在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文 ...

  3. Linux内核3.0移植并基于Initramfs根文件系统启动

    Linux内核移植与启动 Target borad:FL2440 Bootloader:U-boot-2010.09 交叉编译器:buildroot-2012.08 1.linux内核基础知识 首先, ...

  4. Ubuntu系统下OpenDaylight源码编译安装

    操作系统:Linux x64 / Ubuntu 14.04 研究领域:软件定义网络SDN (Software-defined Networking) 开发组件:OpenDaylight 声明:转载请注 ...

  5. Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

    Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...

  6. Centos下编译Linux内核

    Linux内核编译是一件简单却费事的事.但是独立的编译linux内核会帮助你很好的理解Linux内核的工作机理. 首先编译linux内核我们需要在当前linux操作系统下安装gcc编译器,因为我是Ce ...

  7. 《Linux内核分析》第五周学习总结 扒开系统调用的三层皮(下)

    扒开系统调用的三层皮(下) 郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.给Men ...

  8. linux下怎么安装Go开发环境?linux部署golang

    linux下怎么安装Go开发环境?linux部署golang  0.请自行安装SSH远程工具 1.  SSH远程登录你的linux服务器 2.   yum install mercurial安装 me ...

  9. Ubuntu系统下基于docker部署Jenkins环境

    本文是在ubuntu环境下安装jenkins,jenkins运行在docker容器中, 至于docker如何安装,请参考https://www.cnblogs.com/xingyunqiu/p/115 ...

随机推荐

  1. C&num; 在Repeater 的ItemDataBound 如何转换e&period;Item&period;DataItem 的类型

    1.使用DataSet和DataTable绑定数据源时,用 DataRowView view = (DataRowView)e.Item.DataItem; 2.DataReader绑定数据源时,用 ...

  2. eclipse安装spring插件

    1.打开eclipse点击help,点击about eclipse 2.点击最左侧图票查看eclipse版本 3.查看版本 4.进入http://spring.io/tools/sts/all,选择适 ...

  3. Windows Server 2012下安装Hyper-V虚拟机

    Windows Server 2012下安装Hyper-V虚拟机 Win server 2012系统中Hyper-V 性能进一步提高,广大爱好者都尝试体验它,可是有不少朋友无法正确安装虚拟机,尽管在网 ...

  4. hibernate篇章三-- hibernate配置文件hibernate&period;cfg&period;xml的详细解释

    <!--标准的XML文件的起始行,version='1.0'表明XML的版本,encoding='gb2312'表明XML文件的编码方式--> <?xml version='1.0' ...

  5. ural 1723 Sandro&&num;39&semi;s Book

    http://acm.timus.ru/problem.aspx?space=1&num=1723 #include <cstdio> #include <cstring&g ...

  6. 面向对象程序设计-C&plus;&plus;&lowbar;课时22向上造型

    赋值兼容规则是指在公有派生情况下,一个派生类的对象可以作为基类的对象来使用的情况. 约定类derived是从类base公有派生而来的,则指如下3种情况: (1)派生的对象可以赋给基类的对象.例如: d ...

  7. 关于EF&plus;MVC5分页查询数据效率问题

    2017-03-31 11:57:41,290 [5] ERROR ErrorMsg - System.Data.Entity.Core.EntityCommandExecutionException ...

  8. Python:一篇文章掌握Numpy的基本用法

    前言 Numpy是一个开源的Python科学计算库,它是python科学计算库的基础库,许多其他著名的科学计算库如Pandas,Scikit-learn等都要用到Numpy库的一些功能. 本文主要内容 ...

  9. 定制json序列化

    最近有人问我怎么定制一个json序列化,使序列化的时候只写出声明的父类成员,而不要把实际子类的成员写出来.当然,序列化用的是大家用的最多的json.net. 简单的说,这是个契约怎么解析的问题,jso ...

  10. 说说React组件的State

    说说React组件的State React的核心思想是组件化的思想,应用由组件搭建而成, 而组件中最重要的概念是State(状态). 正确定义State React把组件看成一个状态机.通过与用户的交 ...