Slackware Current x64系统利用官方脚本编译安装最新内核流程

本文详细描述了如何使用Slackware官方脚本在系统上手动编译和安装最新内核,包括下载、解压、配置和编译过程,以及个人编写的编译脚本示例。
摘要由CSDN通过智能技术生成


Slackware官方的内核更新速度并不求快,有时最新的内核需要等好久才能进入官方仓库。今天下定决心,利用官方脚本,自己来构建最新的内核安装。摸索了一下,流程大致如下:

1. 下载最新内核

从www.kernel.org网站下载最新内核

wget -c https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${version}.tar.sign

wget -c https://cdn.kernel.org/pub/linux/kernel/v6.x/lin$ux-${version}.tar.xz

2. 解压内核源码到/usr/src/目录

sudo tar xJvf linux-${version}.tar.xz  -C /usr/src/

3. 链接目录linux-${version}到linux

cd /usr/src
sudo rm -rf linux
sudo ln -s linux-${version}  linux

4. 配置新内核

使用官方内核配置文件:slackware64-current/source/k/kernel-configs/config-generic-6.6.12.x64和config-huge-6.6.12.x64两个配置文件,32位系统请使用不带.x64的文件。
这一步需要使用make menuconfig命令,load这两个文件,并save这两个文件到内核最新版本号,新把这两个配置文件复制到内核配置文件夹

4.1 复制配置文件到当前目录

cd /usr/src/linux
#复制配置文件到当前目录
cp -v ${kernelpath}"kernel-configs/config-generic-"*"x64"  .
cp -v ${kernelpath}"kernel-configs/config-huge-"*"x64"  .

4.2.1 配置内核 generic

make menuconfig

4.2.2 配置内核 huge

make menuconfig

主要是load两个配置文件,save对应配置文件到source/k/kernel-configs/,只需要命名为config-generic-${version}.x64config-huge-${version}.x64两个文件。

4.3 最后,保存两个配置文件到 kernel-configs

#清空原配置文件夹
rm ${kernelpath}"kernel-configs/"*
#复制generic和huge配置文件到配置文件夹
cp -v config-generic-${version}.x64  ${kernelpath}"kernel-configs/"
cp -v config-huge-${version}.x64  ${kernelpath}"kernel-configs/"
#保存generic为当前配置文件
cp -v config-generic-${version}.x64  .config

5. 编译新内核

cd ${CWD}
sh build-all-kernels.sh

生成的所有内核文件在/tmp/output-x86_64-${version}目录下,并且脚本已经自动安装好编译后的新内核了。

6. 保存新内核

cd ${kernel}
cp -r -v /tmp/output-x86_64-${version} .
chown -R ooo:ooo output-x86_64-${version}

内核编译安装后的效果,以6.7.1为例
在这里插入图片描述

Authors
zalois
zalois@126.com
20/Jan/2024

附录:个人编写的编译脚本

#!/bin/bash
#usage: updatekernel 6.7.1
#by 229 26/January/2024 Saturday
#使用Slackware官方脚本编译内核的流程
if [ $# -ne 1 ]
then
	echo Usage: $(basename $0) kernel version
	echo example: $(basename $0) 6.7.1
	echo the latest kernel version
	exit
fi
#update the kernel of slackware current
version=$1
kernelpath='/media/sda1/os/linux/kernel/k/'
kernel='/media/sda1/os/linux/kernel/'
#1.从www.kernel.org网站下载最新内核
#cd $(dirname $0) ; CWD=$(pwd)
cd ${kernelpath} ; CWD=$(pwd)
wget -c https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${version}.tar.sign
wget -c https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${version}.tar.xz
#2.解压内核源码到/usr/src/目录
sudo tar xJvf linux-${version}.tar.xz  -C /usr/src/
#3.链接目录linux-${version}到linux
cd /usr/src
sudo rm -rf linux
sudo ln -s linux-${version}  linux
#4.配置内核
#使用slackware64-current/source/k/kernel-configs/下 config-generic-6.6.12.x64和config-huge-6.6.12.x64配置文件
cd /usr/src/linux
#复制配置文件到当前目录
cp -v ${kernelpath}"kernel-configs/config-generic-"*"x64"  .
cp -v ${kernelpath}"kernel-configs/config-huge-"*"x64"  .
ls -alh /usr/src/linux/
echo "Press any key to continue ..."
read
#配置 generic
#配置 huge
make menuconfig
#load两个配置文件,save对应配置文件到source/k/kernel-configs/,只需要命名为`config-generic-${version}.x64`和`config-huge-${version}.x64`两个文件
#保存两个配置文件到 kernel-configs
rm ${kernelpath}"kernel-configs/"*
cp -v config-generic-${version}.x64  ${kernelpath}"kernel-configs/"
cp -v config-huge-${version}.x64  ${kernelpath}"kernel-configs/"
#保存generic为当前配置文件
cp -v config-generic-${version}.x64  .config
#5.编译内核
cd ${CWD}
sh build-all-kernels.sh
#生成的所有内核文件在/tmp/output-x86_64-${version}目录下,并且脚本已经自动安装好内核了。
#6.复制保留内核
mv -v linux-${version}.tar.xz ..
mv -v linux-${version}.tar.sign ..
cd ${kernel}
cp -r -v /tmp/output-x86_64-${version} .
chown -R ooo:ooo output-x86_64-${version}
chown ooo:ooo linux-${version}.tar.xz
chown ooo:ooo linux-${version}.tar.sign
cd ${CWD}
  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值