ubuntu下使用gitee进行kernel代码管理

本文介绍了在Ubuntu环境下配置Git,包括设置用户信息、生成SSH密钥、关联远程仓库及操作流程。同时,讨论了在Git管理的内核源码中遇到的ko文件加载错误,解释了原因并给出了解决方案。此外,还提到了.gitignore文件的使用注意事项。
摘要由CSDN通过智能技术生成

ubuntu版本
qemu@qemu:~/linux-5.4.124$ cat /proc/version
Linux version 4.15.0-142-generic (buildd@lgw01-amd64-039) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)) #146~16.04.1-Ubuntu SMP Tue Apr 13 09:27:15 UTC 2021

1. 创建仓库

关联git仓库

git config --global user.name “your name”
git config --global user.email “your email”

ubuntu16@ubuntu16-virtual-machine:~$ git config --global --list

ssh-keygen -C “your email” -t rsa

ubuntu16@ubuntu16-virtual-machine:~$ ssh -T git@gitee.com
Hi Admin! You've successfully authenticated, but GITEE.COM does not provide shell access.

把公钥拷贝到gitee,

ubuntu16@ubuntu16-virtual-machine:testGIT$ cat /home/ubuntu16/.ssh/id_rsa.pub

ubuntu16端创建本地库

git init
git add .
git commit -m "add test.c"

2.提交及下拉代码到远端git仓库

git remote add origin git@gitee.com:xxx

git remote -v

第一次提交前需要先下拉远端git仓库的代码

git pull --rebase origin master

再push

ubuntu16@ubuntu16-virtual-machine:testGIT$ git push origin master
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (4/4), 354 bytes | 0 bytes/s, done.
Total 4 (delta 1), reused 0 (delta 0)
remote: Powered by GITEE.COM [GNK-6.0]

其余下拉代码

git pull origin master

2. 删库

git remote remove origin xxx

问题

ko文件加载错误

在git管理的kernel中,每一次git commit之后,如果之编译modules(*.ko),ko insmod之后会出现

insmod: cannot insert ./test.ko’: Invalid module format (-1): Exec format error

原因是git commit之后,文件的一些信息变了,所以需要重新烧录kernel image。

所以可以不提交commit,编译modules(*.ko),然后就不会出现这个问题。

sign_and_send_pubkey

ubuntu16@ubuntu16-virtual-machine:testGIT$ ssh -T git@gitee.com
sign_and_send_pubkey: signing failed: agent refused operation
Permission denied (publickey).
ubuntu16@ubuntu16-virtual-machine:testGIT$ eval "$(ssh-agent -s)"
Agent pid 4417
ubuntu16@ubuntu16-virtual-machine:testGIT$ ssh-add
Identity added: /home/ubuntu16/.ssh/id_rsa (/home/ubuntu16/.ssh/id_rsa)
ubuntu16@ubuntu16-virtual-machine:testGIT$ ssh -T git@gitee.com
Hi ori! You've successfully authenticated, but GITEE.COM does not provide shell access.
ubuntu16@ubuntu16-virtual-machine:testGIT$ 

gitignorge无效

如果你不慎在创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,Git仍然会对所有文件进行版本管理。

简单来说,出现这种问题的原因就是Git已经开始管理这些文件了,所以你无法再通过过滤规则过滤它们。

所以大家一定要养成在项目开始就创建.gitignore文件的习惯,否则一旦push,处理起来会非常麻烦。

ko文件的modeinfo带有版本号

ubuntu16@ubuntu16-virtual-machine:linux-5.4.125$ cat include/config/kernel.release

修改内核配置,不再自动添加内核git版本号

获取kernel步骤

创建一个本地文件夹,随便创建一个文件。

  • 创建本地git
git init

git config --global user.name “xxx”

git config --global user.email “xxx”
  • 关联git仓库
git remote add origin xxx

git remote -v
  • 从仓库拉取代码
git pull --rebase origin master
  • 上传代码
git push origin master
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Linux与SoC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值