1.Linux内核编译和升级
2.如何从官网获取各个版本Linux内核的码下源码
3.如何克隆Linux内核git库到Win11电脑上(一)
Linux内核编译和升级
在Ubuntu .系统中,升级Linux内核的码下步骤如下: 首先,访问Linux内核的码下官方网站获取源码:/mirrors/linux_old1.git。这个镜像库的码下名字是 /mirrors/linux_old1.git,其与Linus Torvalds在github上托管的码下库 /torvalds/linux 相关联。gitee每天会自动从github上同步一次,码下健身预约源码这个频率对于大多数用户已经足够。码下下一步是码下安装git工具,以及下载git库。码下有许多支持git的码下工具,比如从 pc.qq.com 下载的码下Git(带图形界面,也支持命令行),码下或者TortoiseGit(一系列软件版本管理工具之一),码下都是码下不错的选择。通过gitee下载Linux kernel库的码下命令如下:
在gitee上下载速度快到令人发指,很快就能看到结算界面。然而,下载完成后,我们可能无法进行checkout操作,国学典籍源码导致在 /mirrors/linux_old1/ 目录下看不到任何文件。
为了解决checkout问题,我们需要调整Windows系统默认不允许使用诸如 "aux" 这样的设备名字作为普通文件名的规则。调整方法如下:
在完成这一系列操作后,git开始进行checkout文件的输出,尽管有一些警告信息,但最终出现%和Done,表示checkout操作完成。在 /mirrors/linux_old1/ 目录下,tool lu源码我们可以看到完整的Linux内核代码的目录结构,非常完美。
然而,在实际操作中,我们可能会遇到一个图像表示的问题,其中猩红的字体提示checkout过程中闪过的警告信息。使用git diff查看后,我们发现文件存在差异。接下来,i站源码我们需要解决这个问题。
首先,我们怀疑git软件可能存在bug,但考虑到git是Linus Torvalds亲自编写,且全球用户都在使用,这个问题不太可能出现在git本身。因此,我们尝试检查自己是否在命令中输入了错误。实际上,天网定位源码问题出在Windows系统上。由于Windows系统不区分文件名的大小写,当创建文件时,即使使用大写字母,文件系统也会将它们转换为小写。因此,即使我们在NTFS文件系统上创建的文件名使用了大写,文件系统在进行文件名比较时也会转换为小写。
在gitee.com/mirrors/linux_old1/.../查看原始目录结构时,我们发现目录下存在名为"xt_CONNMARK.h"和"xt_connmark.h"的两个文件,而我们的硬盘上只有一个名为"xt_CONNMARK.h"的文件。因此,git在尝试checkout文件时,发现文件名不匹配。
解决这个问题的方法是使用自带的fsutil工具,将指定目录的属性设置为区分大小写。这样做后,我们可以在同一目录下同时存在大写和小写的文件名。使用标准命令进行操作后,git开始checkout文件,但NTFS系统再次阻止我们更改目录属性。网络上关于fsutil工具的文章中,很少有人提到这个问题,也没有人提供解决方案。
解决这个问题的方法是先创建一个空目录,然后再尝试更改其属性。当目录为空时,fsutil工具可以更改目录的属性,之后我们可以让git还原目录下的所有文件。通过使用此命令,我们成功解决了问题。
接下来,我们解决的是git在NTFS文件系统上创建git库时将参数core.ignoreCase设置为true的问题。由于Linux kernel的netfilter子系统在处理文件时引入了一些错误,因此即使底层NTFS系统已经设置为区分大小写,我们还需要在上层的git软件配置中相应地进行更改。
在解决了一系列问题后,我们最终可以顺利将Linux内核代码从gitee下载到本地。接下来,我们将继续讨论如何在Linux下生成交叉索引,以解决后续可能遇到的问题。