Ubuntu 20.04 server 编译Linux内核
虚拟机软件:VirtualBox
远程shell工具:Xshell 6(Free for School)
一、新建虚拟机的时候虚拟硬盘大小我给了65G
二、然后开始安装Ubuntu 20.04 server
-
选择语言,回车
-
done
-
根据你的网络情况,如果是网线插好,有DHCP,系统就会自动默认为DHCP,并把已经获取到的IP显示到对应的网卡上。使用DHCP就直接光标选择done,回车。
-
设置代理服务器,一般不需要,默认为空,选择Done,回车。
-
设置安装软件、更新源,默认为ubuntu的国外服务器, 我已经改成阿里云的更新源(http://mirrors.aliyun.com/ubuntu),选择Done,回车
-
磁盘分区,因为担心编译Linux出现error:No space left on device,这里我决定手动分区。
选择custom storage layout,done
-
光标移动到未分区的磁盘处,回车,进入下级菜单,选择Add GPT Partition 回车,添加分区
-
如图,输入size,格式默认为ext4,Mount处选择该分区的挂载点,这里先选择/boot,之前就是安装Ubuntu的时候直接使用自动分区,/boot目录空间太小导致编译失败,这次设置为10G。
接下来根目录(我一般剩多少给多少)
-
分好区,看一下分区情况,没问题就done。
-
一般格式化前都会一个警告提醒你该操作是不可逆的,直接continue
-
设置用户密码
-
是否安装SSH,勾选,done,用于后面建立远程连接
-
系统服务安装清单,直接done
-
安装模式,耐心等待即可
-
安装完成,reboot now
-
重启登陆系统后,记得设置下root密码。
三、使用远程 Shell 工具连接虚拟机
- 输入ip addr 查询虚拟机ip地址
ip addr
- Xshell新建会话,输入虚拟机ip地址,建立链接
四、下载源码包
在https://www.kernel.org/选择需要的版本,复制下载地址,使用wget命令下载,这里下载了Linux-5.8.14
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.8.14.tar.xz
五、解压源码包
这里使用tar命令,解压到指定文件夹 /usr/src
sudo tar xvJf linux-5.8.14.tar.xz -C /usr/src
六. 编译 Linux 内核
- 输入sudo su进入root权限,终端提示输入密码时输入root用户的密码,即一.16里设置的
sudo su
- 下载一些必要的依赖
apt-get install gcc make libncurses5-dev openssl libssl-dev
apt-get install build-essential
apt-get install pkg-config
apt-get install libc6-dev
apt-get install bison
apt-get install flex
apt-get install libelf-dev
- 开始编译
cd /usr/src/linux-5.8.14
make menuconfig
接下来会出现一个图形界面(忘了截图),按照默认配置来就好,直接选择exit,回车,回车
time make -j8
make modules_install;
make install
接下来这3步分步进行,需要很久,用 make -jn 可以编译加速,其中 n 值一般为 2,4 或 8(多给虚拟机分配一些 CPU 资源),time命令是为了计时
然后静静等待编译完成。