一、环境准备
1.1、安装虚拟机ubuntu16
- 编译内核大概需要20G的磁盘空间,所以硬盘大小尽量大于40G
- 网络适配使用桥接
1.1.1、查看当前内核版本
uname -r
1.2、安装samba服务
Samba 是一款数据共享的软件,可用于 Ubuntu 与 Windows 之间共享源代码,传输文件。
1.2.1、下载安装samba
sudo apt install samba
1.2.2、配置 samba,修改 /etc/samba/smb.conf
1、 创建分享的文件夹
mkdir kernelShared
2、 配置 samba,修改 /etc/samba/smb.conf,最后添加如下内容
[kernel]path=/home/ubuntu/kernelSharedbrowseable = yeswriteable = yesread = yesguest ok = no
- [kernel]
kernel 名字可以根据自己内容命名 - path
路径指向要共享文件夹的绝对路径 - browable
在浏览资源中是否显示共享目录 - writeable
是否可写 - read
是否可读 - guest ok
访客是否可以访问
3、修改共享文件夹权限
chmod 777 /home/ubuntu/kernelShared
4、添加用户账号和密码
sudo smbpasswd -a xxx
5、设置开机启动
systemctl enable smbd
6、启动samba服务
systemctl restart smbd
7、查看本机ip:
8、windows 访问 Ubuntu 共享的文件键:
win 键加 R 键,跳出运行窗口,输入 \192.168.88.96,其中 192.168.88.96 是我的 ubuntu 的 IP 地址,你需要根据你自己的情况修改为自己的 Ubuntu 的 IP 地址
- kernel
该名称就是在/etc/samba/smb.conf里面配置的
1.3、下载源码
准备linux源码和补丁,可以在官网上下载,我下载最新版本6.5的。
不过阿里提供了http://mirrors.aliyun.com/,也可以在这里面下载,速度更快。下载镜像的命令如下:
wget https://mirrors.aliyun.com/linux-kernel/v6.x/linux-6.5.tar.xz
wget https://mirrors.aliyun.com/linux-kernel/v6.x/patch-6.5.xz
1.4、准备安装需要的环境
sudo apt-get install kernel-package build-essential libncurses5-dev fakeroot flex bison bc libssl-dev libelf-dev
1.5、解压缩内核源码
1.5.1、xz文件解压
xz -d linux-6.5.tar.xz
1.5.2、tar文件解压
tar –xvf linux-6.5.tar
二、准备编译
2.1、打内核补丁
xz -d patch-6.5.xz | patch -p1
2.2、编译配置
cd linux-6.5
make menuconfig
-
使用键盘上下键选择
-
使用键盘左右键选择
-
Geral setup
- Initial Ram filesystem And Ram disk support
- Initial Ram filesystem And Ram disk support
-
Devices Driver
三、编译内核
3.1、编译启动映像
在功能选择完毕后,接下来就是编译内核与核心,该工作非常简单,只需要三条命令即可(当然也可以合并为一条命令)
# 生成未经压缩的内核
make vmlinux
# 仅生成核心模块
make modules
# 生成经压缩过的核心(默认)
make bzImage# 以上三步合并执行
## 表示使用8线程同时编译
make -j 8 all
- 如果出现编译失败,则重新make menuconfig,关闭Virtualization
3.2、Linux内核镜像
四、安装内核
4.1、安装模块
make modules_install
4.2、安装内核
make install
4.3、编辑grub
grub-mkconfig -o /boot/grub/grub.cfg
五、重启
5.1、重启虚拟机
sudo reboot
5.2、再次查看内核版本
uname -r