1. 前言
年纪大了,健忘,记录以便日后Ctrl-C+Ctrl-V。
系统信息:
Distributor ID: Ubuntu
Description: Ubuntu 22.04.5 LTS
Release: 22.04*
2. 前期预处理
配置Git
1
git config --global user.name "Ssunk"
1
git config --global user.email "ssunkkan@gmail.com"
1
ssh-keygen -t rsa -C "ssunkkan@gmail.com"
去github设置的SSH keys里添加生成的公钥
配置gitconfig邮件相关
1
sudo gedit ~/.gitconfig
1
2
3
4
5
6
7
8
9[user]
name = Ssunk
email = ssunkkan@gmail.com
[sendemail]
smtpencryption = tls
smtpserver = smtp.gmail.com
smtpuser = ssunkkan@gmail.com
smtpserverport = 587安装发送PATCH所需的git-email
1
sudo apt-get install git-email
安装命令行代理工具 (Gmail邮箱需爬墙)
1
sudo apt install proxychains4
配置/etc/proxychains.conf socket4/socket5为代理服务器 xxx.xxx.xxx.x port
打开 https://myaccount.google.com/apppassword 设置应用专用密码,如已经设置过但是忘了就去找dxx
3. 修改Linux内核源码编译
克隆代码
1
git clone https://github.com/torvalds/linux.git
下载编译所需库
1
sudo apt install ncurses-dev flex bison libssl-dev libelf-dev
编译内核
1
make menuconfig
1
make -j$(nproc)
如果内核编译报错: No rule to make target ‘debian/canonical-certs.pem‘, needed by ‘certs/x509_certificate_list‘,修改.config,将CONFIG_SYSTEM_TRUSTED_KEYS、CONFIG_SYSTEM_REVOCATION_KEYS置为空
确保当前环境可以编译成功后,修改代码再次编译,并生成PATCH,测试是否符合提交规范
1
git add file
1
git commit -s
1
git format-patch -s -1
1
./scripts/get_maintainer.pl xxx.patch
1
./scripts/checkpatch.pl xxx.patch
4. 发送PATCH
git send-email --to xxxx@linaro.org -cc xxxxx@kernel.org xxxx.patch