ubuntu 20 下搭建linux内核开发环境

ubuntu 20 下搭建linux内核开发环境

准备环境:

  • ubuntu20

  • gcc-8 (ubuntu20 的gcc 安装默认为gcc-9,编译的时候会出错,所以要切换到gcc-8)

  • linux 源码

  • ubuntu 20 的依赖库

  • buybox

  • qemu

step1:检查gcc 版本

gcc -v
#如果gcc显示的版本是9的则需要切换到gcc-8
#安装gcc-8编译器
sudo apt install gcc-8
#切换到gcc-8
ln -fs gcc-8 /usr/bin/gcc
#再次检查gcc 的版本
gcc -v

step2: 安装依赖

sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc

安装qemu

sudo apt install qemu-system-x86_64

step3 下载linux kernel源码,我选择了4.19.65版本的tar.gz包

tar -zxvf ./linux-4.19.65.tar.gz
cd ./linux-4.19.65/
sudo make menuconfig

进入kernel hacking

勾选以下项目
Kernel debugging
Compile-time checks and compiler options —> Compile the kernel with debug info和Compile the kernel with frame pointers
KGDB
然后保存退出
此时会在liux 包目录下生成一个.config 文件,需要对该文件进行修该
找到CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
改成CONFIG_SYSTEM_TRUSTED_KEYS=""
保存退出

接下来进行编译

sudo make baImage -j4
#-j4 启动cpu 的核数进行编译
#编译完后在arch/x86/boot 会生成baImage

step4 制作根文件系统

先下载busybox,我选择了busybox-1.31.1.tar.bz2

下载好后解压
cd ./busybox-1.31.1/
make menuconfig

安装编译busybox 的依赖

sudo apt-get install libncurses5-dev libncursesw5-dev
进入 Settings
勾选 Build static binary (no shared libs)
make install -j4

在根目录下生成_install 文件夹 里面包含启动linu 内核文件

其中qemu_rootfs.img是文件名,500m是磁盘大小,根据需要修改。

qemu-img create qemu_rootfs.img  500m

创建ext4文件系统

mkfs.ext4 qemu_rootfs.img

创建挂在文件文件夹,然后挂载img文件到宿主系统:

mkdir qemu_rootfs
sudo mount -o loop qemu_rootfs.img  qemu_rootfs

先把busybox的_install目录下的东西往里面拷贝,再创建一些目录、文件:

cd qemu_rootfs 
sudo mkdir proc sys dev etc etc/init.d

sudo vim etc/init.d/rcS

rcS内容如下,rcS 是linux系统的初始化脚本

#!/bin/sh
mount -t proc none /proc
mount -t sysfs none /sys
/sbin/mdev -s

给rcS 脚本权限

sudo chmod 777 rcS

最后卸载文件系统:

sudo umount qemu_rootfs

新建一个boot启动脚本

#! /bin/sh
qemu-system-x86_64  \
    -kernel bzImage  \
    -hda qemu_rootfs.img \
    -append "root=/dev/sda rootfstype=ext4 rw" \
    --enable-kvm

同样赋予权限

sudo chnod 777 boot

将 linux 内核编成的bzImage 放在boot 脚本相同目录下,然后启动脚本,运行你自己的系统了

./boot
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_42975115

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值