2022-01-08 15:07:04 +00:00
|
|
|
1. install ubuntu 21.10
|
2022-01-12 02:24:44 +00:00
|
|
|
2. apt-get install build-essential flex libncurses-dev linux-headers-generic linux-source libssl-dev ...... and so on
|
2022-01-08 15:07:04 +00:00
|
|
|
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)
|
2022-01-10 11:14:39 +00:00
|
|
|
3. force add_intree_flag
|
2022-01-08 15:07:04 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|