76 lines
1.3 KiB
Markdown
76 lines
1.3 KiB
Markdown
|
|
# Kernel Upgrades and Patching
|
||
|
|
|
||
|
|
## 1. Preparation:
|
||
|
|
|
||
|
|
- Backup your system
|
||
|
|
- Ensure you have enough disk space
|
||
|
|
- Install necessary tools:
|
||
|
|
```bash
|
||
|
|
sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev
|
||
|
|
```
|
||
|
|
|
||
|
|
## 2. Download the kernel source:
|
||
|
|
|
||
|
|
- Visit kernel.org
|
||
|
|
- Download the desired version (e.g., linux-5.x.y.tar.xz)
|
||
|
|
- Extract the archive:
|
||
|
|
```bash
|
||
|
|
tar xvf linux-5.x.y.tar.xz
|
||
|
|
cd linux-5.x.y
|
||
|
|
```
|
||
|
|
|
||
|
|
## 3. Apply patches (if needed):
|
||
|
|
|
||
|
|
- Download the patch file
|
||
|
|
- Apply the patch:
|
||
|
|
```bash
|
||
|
|
patch -p1 < /path/to/patch/file
|
||
|
|
```
|
||
|
|
|
||
|
|
## 4. Configure the kernel:
|
||
|
|
|
||
|
|
- Copy your current config:
|
||
|
|
```bash
|
||
|
|
cp /boot/config-$(uname -r) .config
|
||
|
|
```
|
||
|
|
- Make necessary changes:
|
||
|
|
```bash
|
||
|
|
make menuconfig
|
||
|
|
```
|
||
|
|
- Update the config for the new version:
|
||
|
|
```bash
|
||
|
|
make oldconfig
|
||
|
|
```
|
||
|
|
|
||
|
|
## 5. Build the kernel:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
make -j$(nproc)
|
||
|
|
```
|
||
|
|
|
||
|
|
## 6. Build and install modules:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo make modules_install
|
||
|
|
```
|
||
|
|
|
||
|
|
## 7. Install the kernel:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo make install
|
||
|
|
```
|
||
|
|
|
||
|
|
## 8. Update boot loader (e.g., GRUB):
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo update-grub
|
||
|
|
```
|
||
|
|
|
||
|
|
## 9. Reboot and select the new kernel
|
||
|
|
|
||
|
|
## 10. Verify the new kernel:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
uname -r
|
||
|
|
```
|