今天我和学姐继续调试测试M1的Linux内核。在我们使用git blame定位问题并简单修复DWC3 USB驱动后, 新的内核可以在4KiB页面、48位虚拟地址空间的配置下成功启动了。
然而, 在4KiB页面、39位虚拟地址空间的配置下, 内核启动时直接黑屏无输出。我猜测和MMU或页表配置有关, 但没有什么头绪。经过随意翻阅代码, 到处胡乱blame, 我发现内核在二十几天前引入了一个bug, 并在四天前修复了。将内核代码升级至最新主线版本后, 我们解决了这个问题。
至此, 我们成功在M1上运行新内核, 4KiB页面、39位虚拟地址空间, 共计踩坑三个。
Well done!