/Log in info
user: student
pass: mt14Linux //(L)
//Get root permission
sudo su
// Create new partition
-------------------------
sudo fdisk /dev/sdb1
Command (m for help ): m
Command (m for help ): n // enter to accept general of Properities
Command (m for help ): w
---------------------------------------------
// Create a file system on the new partition
---------------------------------------------
sudo mkfs.ext4 /dev/sdb1
$ mkdir /home/ student / ws_student
---------------------------------------------
// Mount the new partition to the mount point /home/student/ws_student
---------------------------------------------
$ sudo mount /dev/sdb1 /home/ student / ws_student
$ sudo chown student :users /home/ student /ws_student
---------------------------------------------
// Compilation and installation
---------------------------------------------
$ mkdir /home/student/iso
$ cd /home/student/iso
$ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.1.tar.xz
---------------------------------------------
// Extract the kernel and enter the source directory
---------------------------------------------
$ mkdir /home/student/ws_student/kernel
$ cd /home/student/ws_student/kernel
$ tar −xf /home/student/ iso /linux −4.x.x.tar.xz // push tab to auto fill the
directory
$ cd /home/student/ws_student/kernel/linux−4.x.x // push tab to auto fill the
directory
---------------------------------------------
// Build configuration-Configure your kernel (*** - very important !!!! )
---------------------------------------------
$ make nconfig
$ zcat /proc/config.gz >.config
$ make nconfig
General setup − − −>
(−ARCH) Local version − append to kernel release ’4.n.n−RCn’
( command for see username : uname -a )
>>>>>>>>>>>>>>WARNING. IF YOU DONT WANT TO WAIT FOR A LONG LONG LONG TIME
PLEASE<<<<<<<<<<<<<<<<<<<<
==================go to Step YOUR SYSTEM CALL fisrt Before you compile kernel
====================
-------------------------------------------
// Compile
-------------------------------------------
$ make −j 8
// core 2 duo - Ram 4GB - compiled for 2 hours dafuck ^^
//After Compile
-------------------------------------------
// Install modules
-------------------------------------------
$ sudo make modules_install
-------------------------------------------
// Make initial RAMdisk
-------------------------------------------
$ mkinitcpio −k KernelVersion −c / etc / mkinitcpio . conf −g /boot/ initramfs
−YourKernelName . img
// KernelVersion : use command ls to see
// YourKernelName : use command ls to see
-------------------------------------------
// Copy Kernel and related files to /boot directory
-------------------------------------------
$ cp −v arch /x86/boot/bzImage /boot/vmlinuz−YourKernelName
$ cp System .map /boot/System .map−YourKernelName
$ ln −sf /boot/System .map−YourKernelName /boot/System .map
-------------------------------------------
// Bootloader configuration
-------------------------------------------
// see your UUID
$ ls /dev/ disk /by−uuid/ −l
// e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2
-------------------------------------------
// Edit grub.cfg to change your kernel name
cp /etc/grub.d/40_custom /boot/grub/custom.cfg
vi /boot/grub/custom.cfg
edit at line: menuentry "your kernel name"
linux /boot/vmlinuz-"your kernel name"
initrd /boot/initramfs-"youe kernelname".img
// run the following command to generate an updated /boot/grub/grub.cfg:
$ grub−mkconfig −o /boot/grub/grub.cfg (sometime that command do not need)
// Then save file custom.cfg and reboot. You will see your kernel
reboot
------------------------------------///-----------------------------------------
YOUR SYSTEM CALL
--------------------------------------------------------------------------------
requirement :
1. The system call should be named get_unique_id.c
2. It should take exactly one argument int *uuid which is the memory location
where
the unique identifer will be stored after the call
3. It should return long indicating the return value 0 for success and (minus)
error code otherwise.
4. The system call should check whether memory location supplied by the user is
valid and return -EFAULT otherwise. Consider using function put_user from
Step 1: arch/x86/entry/syscalls/syscall_32.tbl Added:
359 i386 get_unique_id sys_get_unique_id
Step 2: arch/x86/entry/syscalls/syscall_64.tbl Added:
546 x32 get_unique_id compat_sys_get_unique_id
Step 3: include/linux/syscalls.h Added prototype of my system call:
asmlinkage long sys_get_unique_id(int *uuid);
Step 4:
mkdir get_unique_id
nano get_unique_id/get_unique_id.c
Write your code here
#include <linux/linkage.h>
#include <linux/uaccess.h>
static int result = 0;
asmlinkage long sys_get_unique_id(int
*uuid)
{
result++;
int err = 0;
err = put_user(result, uuid);
return err ? -EFAULT : 0;
}
Step 5:
nano get_unique_id/Makefile
your code: obj-y :=get_unique_id.o
Step 6: nano Makefile
Crtl+W to sreach core-y
your code: usr/ get_unique_id/
>>>>>>>>>>>>>>Almost complete => Compile kernel and test your code<<<<<<<<<<<<
----------------------------------///-------------------------------------------
Test your system call
--------------------------------------------------------------------------------
# include <stdio.h>
# include <errno.h>
# include <sys/syscall.h>
# define IS_32_BIT 1
# if IS_32_BIT
# define __NR_get_unique_id 359
# else
# define __NR_get_unique_id 548
# endif
long get_unique_id ( int *uuid ) {
return syscall (__NR_get_unique_id , uuid ) ? errno : 0;
}
int main () {
int uuid ;
int res ;
res = get_unique_id (&uuid ) ;
printf("Syscall returned %d ,uuid is %dn",res,uuid ) ;
res = get_unique_id (&uuid ) ;
printf("Syscall returned %d,uuid is %dn",res,uuid ) ;
res = get_unique_id (47424742); // arbitrary memory address
printf("Syscall returned %dn",res ) ;
return 0 ;
}
Install GIT:
/usr/bin/dhcpcd (Connect to Internet by NAT)
sudo pacman -S git
sudo pacman -S gitk
git clone <url>
cp <>
git format-patch HEAD^
git commit -m "comment"
git push origin master
---------------------------------///--------------------------------------------
-
Create the patch file
--------------------------------------------------------------------------------
-
1. Indexing modified files:
a) git add arch/x86/entry/syscalls/syscall_64.tbl
b) git add arch/x86/entry/syscalls/syscall_32.tbl
c) git add include/linux/syscalls.h
d) git add <Folder contains get_unique_id.c>/Makefile
e) git add <Folder contains get_unique_id.c>/get_unique_id.c
2. Create new HEAD in server git
a) git commit
b) Optional: You can use gitk (install to use) to check the HEAD
3. Create patch file.
a) git format_patch HEAD 1
b) sumbit patch file
------------------------------------------------------------------------------
bước sau
------------------------------------------------------------------------------
//After Compile
-------------------------------------------
// Install modules
-------------------------------------------
$ sudo make modules_install
-------------------------------------------
// Make initial RAMdisk
-------------------------------------------
$ mkinitcpio â››k KernelVersion â››c / etc / mkinitcpio . conf â››g /boot/
initramfs â››YourKernelName . img
// KernelVersion : use command ls to see
// YourKernelName : use command ls to see
-------------------------------------------
// Copy Kernel and related files to /boot directory
-------------------------------------------
$ cp ∈v arch /x86/boot/bzImage /boot/vmlinuz∈YourKernelName
$ cp System .map /boot/System .map∈YourKernelName
$ ln ∈s f /boot/System .map∈YourKernelName /boot/System .map
-------------------------------------------
// Bootloader configuration
-------------------------------------------
// see your UUID
$ ls /dev/ disk /by∈uuid/ ∈l
// e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2
-------------------------------------------
// Edit grub.cfg to change your kernel name
cp /etc/grub.d/40_custom /boot/grub/custom.cfg
vi /boot/grub/custom.cfg
edit at line: menuentry "your kernel name"
linux /boot/vmlinuz-"your kernel name"
initrd /boot/initramfs-"youe kernelname".img
// run the following command to generate an updated /boot/grub/grub.cfg:
$ grub∈mkconfig ∈o /boot/grub/grub.cfg (sometime that command do not need)
// Then save file custom.cfg and reboot. You will see your kernel
reboot
$ cp ∈v arch /x86/boot/bzImage /boot/vmlinuz∈YourKernelName
$ cp System .map /boot/System .map∈YourKernelName
$ ln ∈s f /boot/System .map∈YourKernelName /boot/System .map
-------------------------------------------
// Bootloader configuration
-------------------------------------------
// see your UUID
$ ls /dev/ disk /by∈uuid/ ∈l
// e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2
-------------------------------------------
// Edit grub.cfg to change your kernel name
cp /etc/grub.d/40_custom /boot/grub/custom.cfg
vi /boot/grub/custom.cfg
edit at line: menuentry "your kernel name"
linux /boot/vmlinuz-"your kernel name"
initrd /boot/initramfs-"youe kernelname".img
// run the following command to generate an updated /boot/grub/grub.cfg:
$ grub∈mkconfig ∈o /boot/grub/grub.cfg (sometime that command do not need)
// Then save file custom.cfg and reboot. You will see your kernel
reboot

More Related Content

PDF
Install tomcat 5.5 in debian os and deploy war file
PDF
PHP selber bauen
PPT
Bootstrap process of u boot (NDS32 RISC CPU)
PDF
Variations of PostgreSQL Replication
 
PPTX
U-Boot Porting on New Hardware
PDF
A Review of PostgreSQL Replication Approaches - APJ
 
PDF
Embedded_Linux_Booting
PDF
Step by step migration ufs to zfs file system on solaris 10
Install tomcat 5.5 in debian os and deploy war file
PHP selber bauen
Bootstrap process of u boot (NDS32 RISC CPU)
Variations of PostgreSQL Replication
 
U-Boot Porting on New Hardware
A Review of PostgreSQL Replication Approaches - APJ
 
Embedded_Linux_Booting
Step by step migration ufs to zfs file system on solaris 10

What's hot (20)

DOCX
PPTX
Ultimate Unix Meetup Presentation
PPTX
U-Boot presentation 2013
ODP
Linux Kernel Crashdump
PDF
Linux Bash Shell Cheat Sheet for Beginners
PDF
DNS Configure
PDF
Building
PPT
Embedding Linux On The Encore Simputer
PPTX
Presentation Linux Server setup Advance Networking
PDF
ERP System Implementation Kubernetes Cluster with Sticky Sessions
PPTX
Yum (Linux)
PPT
Vmware Command Line
TXT
100 docinhos
PPT
Linux Crash Dump Capture and Analysis
PDF
commands v2.3.1
PPT
Slim Server Practical
PDF
Aix commands
PDF
Fedora Atomic Workshop handout for Fudcon Pune 2015
TXT
Backup and restore router configuration
Ultimate Unix Meetup Presentation
U-Boot presentation 2013
Linux Kernel Crashdump
Linux Bash Shell Cheat Sheet for Beginners
DNS Configure
Building
Embedding Linux On The Encore Simputer
Presentation Linux Server setup Advance Networking
ERP System Implementation Kubernetes Cluster with Sticky Sessions
Yum (Linux)
Vmware Command Line
100 docinhos
Linux Crash Dump Capture and Analysis
commands v2.3.1
Slim Server Practical
Aix commands
Fedora Atomic Workshop handout for Fudcon Pune 2015
Backup and restore router configuration
Ad

Similar to Ass OS (20)

PDF
ODP
Kernel compilation
PDF
Custom kernel creation
PDF
Development platform virtualization using qemu
DOCX
Project Guide for Modifying Kernel Source
PDF
Grub2 Booting Process
DOCX
Adding System Call to Kernel
PDF
Manage custom kernel builds
PPTX
Fast boot
ODP
Grub and dracut ii
PPTX
Building a linux kernel
PPT
Andresen 8 21 02
PPTX
Linux Kernel Tour
PDF
Hands on with embedded linux using zero hardware
PDF
Kernel Configuration and Compilation
PDF
Ubuntu初體驗:脫離邪惡微軟帝國吧!_150606
PDF
Kernel Configuration
PDF
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
PDF
Let's trace Linux Lernel with KGDB @ COSCUP 2021
PDF
Introduction To Linux Kernel Modules
Kernel compilation
Custom kernel creation
Development platform virtualization using qemu
Project Guide for Modifying Kernel Source
Grub2 Booting Process
Adding System Call to Kernel
Manage custom kernel builds
Fast boot
Grub and dracut ii
Building a linux kernel
Andresen 8 21 02
Linux Kernel Tour
Hands on with embedded linux using zero hardware
Kernel Configuration and Compilation
Ubuntu初體驗:脫離邪惡微軟帝國吧!_150606
Kernel Configuration
Kernel Recipes 2015: Speed up your kernel development cycle with QEMU
Let's trace Linux Lernel with KGDB @ COSCUP 2021
Introduction To Linux Kernel Modules
Ad

Recently uploaded (20)

PDF
International_Financial_Reporting_Standa.pdf
PDF
My India Quiz Book_20210205121199924.pdf
PPTX
Introduction to pro and eukaryotes and differences.pptx
PDF
Environmental Education MCQ BD2EE - Share Source.pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
PDF
Uderstanding digital marketing and marketing stratergie for engaging the digi...
PDF
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
PDF
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
PDF
Hazard Identification & Risk Assessment .pdf
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PDF
What if we spent less time fighting change, and more time building what’s rig...
PPTX
20th Century Theater, Methods, History.pptx
PPTX
Virtual and Augmented Reality in Current Scenario
PDF
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
PPTX
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
PPTX
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
PPTX
202450812 BayCHI UCSC-SV 20250812 v17.pptx
PDF
AI-driven educational solutions for real-life interventions in the Philippine...
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PDF
Weekly quiz Compilation Jan -July 25.pdf
International_Financial_Reporting_Standa.pdf
My India Quiz Book_20210205121199924.pdf
Introduction to pro and eukaryotes and differences.pptx
Environmental Education MCQ BD2EE - Share Source.pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
Uderstanding digital marketing and marketing stratergie for engaging the digi...
1.3 FINAL REVISED K-10 PE and Health CG 2023 Grades 4-10 (1).pdf
Τίμαιος είναι φιλοσοφικός διάλογος του Πλάτωνα
Hazard Identification & Risk Assessment .pdf
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
What if we spent less time fighting change, and more time building what’s rig...
20th Century Theater, Methods, History.pptx
Virtual and Augmented Reality in Current Scenario
ChatGPT for Dummies - Pam Baker Ccesa007.pdf
ELIAS-SEZIURE AND EPilepsy semmioan session.pptx
Onco Emergencies - Spinal cord compression Superior vena cava syndrome Febr...
202450812 BayCHI UCSC-SV 20250812 v17.pptx
AI-driven educational solutions for real-life interventions in the Philippine...
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
Weekly quiz Compilation Jan -July 25.pdf

Ass OS

  • 1. /Log in info user: student pass: mt14Linux //(L) //Get root permission sudo su // Create new partition ------------------------- sudo fdisk /dev/sdb1 Command (m for help ): m Command (m for help ): n // enter to accept general of Properities Command (m for help ): w --------------------------------------------- // Create a file system on the new partition --------------------------------------------- sudo mkfs.ext4 /dev/sdb1 $ mkdir /home/ student / ws_student --------------------------------------------- // Mount the new partition to the mount point /home/student/ws_student --------------------------------------------- $ sudo mount /dev/sdb1 /home/ student / ws_student $ sudo chown student :users /home/ student /ws_student --------------------------------------------- // Compilation and installation --------------------------------------------- $ mkdir /home/student/iso $ cd /home/student/iso $ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.0.1.tar.xz --------------------------------------------- // Extract the kernel and enter the source directory --------------------------------------------- $ mkdir /home/student/ws_student/kernel $ cd /home/student/ws_student/kernel $ tar −xf /home/student/ iso /linux −4.x.x.tar.xz // push tab to auto fill the directory $ cd /home/student/ws_student/kernel/linux−4.x.x // push tab to auto fill the directory --------------------------------------------- // Build configuration-Configure your kernel (*** - very important !!!! ) --------------------------------------------- $ make nconfig $ zcat /proc/config.gz >.config $ make nconfig General setup − − −> (−ARCH) Local version − append to kernel release ’4.n.n−RCn’ ( command for see username : uname -a ) >>>>>>>>>>>>>>WARNING. IF YOU DONT WANT TO WAIT FOR A LONG LONG LONG TIME PLEASE<<<<<<<<<<<<<<<<<<<< ==================go to Step YOUR SYSTEM CALL fisrt Before you compile kernel ==================== ------------------------------------------- // Compile ------------------------------------------- $ make −j 8 // core 2 duo - Ram 4GB - compiled for 2 hours dafuck ^^
  • 2. //After Compile ------------------------------------------- // Install modules ------------------------------------------- $ sudo make modules_install ------------------------------------------- // Make initial RAMdisk ------------------------------------------- $ mkinitcpio −k KernelVersion −c / etc / mkinitcpio . conf −g /boot/ initramfs −YourKernelName . img // KernelVersion : use command ls to see // YourKernelName : use command ls to see ------------------------------------------- // Copy Kernel and related files to /boot directory ------------------------------------------- $ cp −v arch /x86/boot/bzImage /boot/vmlinuz−YourKernelName $ cp System .map /boot/System .map−YourKernelName $ ln −sf /boot/System .map−YourKernelName /boot/System .map ------------------------------------------- // Bootloader configuration ------------------------------------------- // see your UUID $ ls /dev/ disk /by−uuid/ −l // e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2 ------------------------------------------- // Edit grub.cfg to change your kernel name cp /etc/grub.d/40_custom /boot/grub/custom.cfg vi /boot/grub/custom.cfg edit at line: menuentry "your kernel name" linux /boot/vmlinuz-"your kernel name" initrd /boot/initramfs-"youe kernelname".img // run the following command to generate an updated /boot/grub/grub.cfg: $ grub−mkconfig −o /boot/grub/grub.cfg (sometime that command do not need) // Then save file custom.cfg and reboot. You will see your kernel reboot ------------------------------------///----------------------------------------- YOUR SYSTEM CALL -------------------------------------------------------------------------------- requirement : 1. The system call should be named get_unique_id.c 2. It should take exactly one argument int *uuid which is the memory location where the unique identifer will be stored after the call 3. It should return long indicating the return value 0 for success and (minus) error code otherwise. 4. The system call should check whether memory location supplied by the user is
  • 3. valid and return -EFAULT otherwise. Consider using function put_user from Step 1: arch/x86/entry/syscalls/syscall_32.tbl Added: 359 i386 get_unique_id sys_get_unique_id Step 2: arch/x86/entry/syscalls/syscall_64.tbl Added: 546 x32 get_unique_id compat_sys_get_unique_id Step 3: include/linux/syscalls.h Added prototype of my system call: asmlinkage long sys_get_unique_id(int *uuid); Step 4: mkdir get_unique_id nano get_unique_id/get_unique_id.c Write your code here #include <linux/linkage.h> #include <linux/uaccess.h> static int result = 0; asmlinkage long sys_get_unique_id(int *uuid) { result++; int err = 0; err = put_user(result, uuid); return err ? -EFAULT : 0; } Step 5: nano get_unique_id/Makefile your code: obj-y :=get_unique_id.o Step 6: nano Makefile Crtl+W to sreach core-y your code: usr/ get_unique_id/ >>>>>>>>>>>>>>Almost complete => Compile kernel and test your code<<<<<<<<<<<< ----------------------------------///------------------------------------------- Test your system call -------------------------------------------------------------------------------- # include <stdio.h> # include <errno.h> # include <sys/syscall.h> # define IS_32_BIT 1 # if IS_32_BIT # define __NR_get_unique_id 359 # else # define __NR_get_unique_id 548 # endif long get_unique_id ( int *uuid ) { return syscall (__NR_get_unique_id , uuid ) ? errno : 0; }
  • 4. int main () { int uuid ; int res ; res = get_unique_id (&uuid ) ; printf("Syscall returned %d ,uuid is %dn",res,uuid ) ; res = get_unique_id (&uuid ) ; printf("Syscall returned %d,uuid is %dn",res,uuid ) ; res = get_unique_id (47424742); // arbitrary memory address printf("Syscall returned %dn",res ) ; return 0 ; } Install GIT: /usr/bin/dhcpcd (Connect to Internet by NAT) sudo pacman -S git sudo pacman -S gitk git clone <url> cp <> git format-patch HEAD^ git commit -m "comment" git push origin master ---------------------------------///-------------------------------------------- - Create the patch file -------------------------------------------------------------------------------- - 1. Indexing modified files: a) git add arch/x86/entry/syscalls/syscall_64.tbl b) git add arch/x86/entry/syscalls/syscall_32.tbl c) git add include/linux/syscalls.h d) git add <Folder contains get_unique_id.c>/Makefile e) git add <Folder contains get_unique_id.c>/get_unique_id.c 2. Create new HEAD in server git a) git commit b) Optional: You can use gitk (install to use) to check the HEAD 3. Create patch file. a) git format_patch HEAD 1 b) sumbit patch file ------------------------------------------------------------------------------ bước sau ------------------------------------------------------------------------------ //After Compile ------------------------------------------- // Install modules ------------------------------------------- $ sudo make modules_install ------------------------------------------- // Make initial RAMdisk ------------------------------------------- $ mkinitcpio â››k KernelVersion â››c / etc / mkinitcpio . conf â››g /boot/ initramfs â››YourKernelName . img // KernelVersion : use command ls to see // YourKernelName : use command ls to see ------------------------------------------- // Copy Kernel and related files to /boot directory -------------------------------------------
  • 5. $ cp ∈v arch /x86/boot/bzImage /boot/vmlinuz∈YourKernelName $ cp System .map /boot/System .map∈YourKernelName $ ln ∈s f /boot/System .map∈YourKernelName /boot/System .map ------------------------------------------- // Bootloader configuration ------------------------------------------- // see your UUID $ ls /dev/ disk /by∈uuid/ ∈l // e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2 ------------------------------------------- // Edit grub.cfg to change your kernel name cp /etc/grub.d/40_custom /boot/grub/custom.cfg vi /boot/grub/custom.cfg edit at line: menuentry "your kernel name" linux /boot/vmlinuz-"your kernel name" initrd /boot/initramfs-"youe kernelname".img // run the following command to generate an updated /boot/grub/grub.cfg: $ grub∈mkconfig ∈o /boot/grub/grub.cfg (sometime that command do not need) // Then save file custom.cfg and reboot. You will see your kernel reboot
  • 6. $ cp ∈v arch /x86/boot/bzImage /boot/vmlinuz∈YourKernelName $ cp System .map /boot/System .map∈YourKernelName $ ln ∈s f /boot/System .map∈YourKernelName /boot/System .map ------------------------------------------- // Bootloader configuration ------------------------------------------- // see your UUID $ ls /dev/ disk /by∈uuid/ ∈l // e.g : /dev/sdb1 : UUID = 489b7153-a36c-4d51-a9af-bc7d21d2baa2 ------------------------------------------- // Edit grub.cfg to change your kernel name cp /etc/grub.d/40_custom /boot/grub/custom.cfg vi /boot/grub/custom.cfg edit at line: menuentry "your kernel name" linux /boot/vmlinuz-"your kernel name" initrd /boot/initramfs-"youe kernelname".img // run the following command to generate an updated /boot/grub/grub.cfg: $ grub∈mkconfig ∈o /boot/grub/grub.cfg (sometime that command do not need) // Then save file custom.cfg and reboot. You will see your kernel reboot