mirror of https://github.com/ventoy/Ventoy.git
36 lines
1.0 KiB
Plaintext
36 lines
1.0 KiB
Plaintext
|
1. install ubuntu 21.10
|
||
|
2. apt-get install build-essential flex ncurse linux-headers-generic linux-source ...... and so on
|
||
|
3. cp /lib/modules/5.13.0-23-generic/build/Module.symvers ./
|
||
|
4. /boot/config-5.13.0-23-generic as .config make oldconfig
|
||
|
5. make menuconfig
|
||
|
1. close CONFIG_STACKPROTECTOR
|
||
|
2. close CONFIG_RETPOLINE
|
||
|
|
||
|
6. modify ./scripts/mod/modpost.c
|
||
|
1. skip add_srcversion (just return)
|
||
|
2. force add_retpoline (#ifdef --> #ifndef)
|
||
|
|
||
|
7. make modules_prepare LOCALVERSION=-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||
|
|
||
|
8. Append padding at the end of struct module <include/linux/module.h>
|
||
|
struct module {
|
||
|
enum module_state state;
|
||
|
|
||
|
/* Member of list of modules */
|
||
|
struct list_head list;
|
||
|
|
||
|
/* Unique handle for this module */
|
||
|
char name[MODULE_NAME_LEN];
|
||
|
|
||
|
....
|
||
|
|
||
|
char padding[1024];
|
||
|
};
|
||
|
|
||
|
This is because struct module size is different in different kernel versions or with different CONFIG item.
|
||
|
|
||
|
|
||
|
9. make modules M=/home/dmpatch
|
||
|
10. strip --strip-debug /home/dmpatch/dm_patch.ko
|
||
|
|