做了跟踪主线的龙芯 Linux 内核

自用,业余时间维护,不保证总是最新,你戳我我也不一定更新
 
本着尽量追踪主线的原则,合进去了我认为关键的补丁,把之前落下的部分捡起来了,又加了几个补丁。目标是主流高性能龙芯板子都能直接支持;龙芯本暂时不在考虑范围,因为我没硬件,不好测试。
 
个人测试及日常使用的板子:
  • 龙梦 3A2000 开发板(A1205 貌似)GPU:板上 RS780E(radeon)
  • 龙芯中科 3A3000 开发板 GPU:板上 RS780E(radeon)+ R9 285(amdgpu)
 代码: 包含的主线外补丁可以自行在 git log 中确认,这里列出与主线、龙芯官方内核(龙梦的 linux-officialloongson-community/linux-stable)最主要的不同:
  • 不包含:/proc/boardinfo 支持
  • 不包含:3A+2H 平台支持
  • 包含:MIPS auditing 基础架构支持
  • 包含:r8168 支持、龙芯的网卡诡异断流 workaround、少部分 radeon 改动,全部 amdgpu 改动(就 1 个提交)
  • 新增:47 位虚拟地址空间支持(已测试)
  • 新增:打开 MIPS KVM 支持(未测试
  • 新增:自制基于龙芯外部计数器的纳秒级 clocksource 及调度时钟支持(已正常使用一年多但非生产级质量
  • 新增:MPTCP 支持(基础 branch 不包含,请使用相应 branch)
 4.16 分支更改:
  • (20180306)添加 MIPS patchwork 中修复 vmlinuz + stack protector 引导失败的补丁
  • (20180305)rebased to 4.16-rc4
  • 修复 r8168 在 4.15+ 的 timer API breakage
  • 修复我的 extcc clocksource 移植
  • 给龙芯 3A2000+ 打开 HAVE_KVM

11 个评论

为什么不合并到loongson-community/linux-stable上呢?有力气往一处使不好吗?
代码质量自己感觉够好了自然会提交。而且不应该满足于 loongson-community,应该直接进主线;当然能有人用也是好的。
能出个 src.rpm 最好……
我真懒得弄内核的 rpm 了,spec 里面写的很奇怪,而且配置文件还要再烧脑子。
啊,我被骗了,linux-stable 实际上有紧追 torvalds/linux 的 master 分支但不是默认分支。。。已经跑过去开了个 issue
啊。。。我开发环境为了方便打补丁和跟上游版本,全是 Gentoo。。。内核我就记得 Debian 系打包还算方便,虽然自己没打过。Gentoo 直接无所谓
好吧……我还是等 loongnix 的内核包了。现在有个软件,旧版本内核好像不支持导致无法直接用 fc 的 srpm 编译,是 util-linux 还是 lvm2 忘了。
注意KVM不要打开,因为LoongISA的VZ和MIPS64r5的不一样,会出问题。KVM主线移植我在搞了。MIPS auditing的Patch Linux-Stable也有。可以的话我们可以把loongson-community/linux-loongson-community 用起来,作为我们爱好者做的内核的repo(独立于龙梦的linux-stable。
囍。。。我还没编译 QEMU 测试,这个 VZ 我都看不见公开文档 :joy:

协同开发的话肯定不会碰 stable 那个库的,那改一下 linux-loongson-community 的 description 可能好一些吧,我当时看它是写着龙芯 2 我就没管它 23333
我打算把 LoongISA 的 rev 暴露在 /proc/cpuinfo 里头。这个 vz 因为跟 MIPS 官方的不一样,其实也不该就叫 vz,该换个名字。/proc/cpuinfo 信息对一些运行时动态探测 CPU 能力的应用至关重要(在没有 cpuid 指令的前提下),一定要好好折腾,不能满足于显示一个全名而已。
2333 我找heiher
我认为。。。现在龙芯核心名字太乱。。比较好的选择是给龙芯核重新命名一下。2E/2F叫GS464 3A1000 GS464R2 3B1500 GS464v 3A2000/3000 GS464E 3A4000 GS464vR2 不然名字严重重复。LoongISA目前我没看到有明确的版本划分。

要回复文章请先登录注册