在移动设备上修改并启动Linux内核

在移动设备上修改并启动Linux内核

在我的学习期间,我开发 Android iOS 应用程序和网站已有近 18 个月的时间。现在,作为我最后一年的项目,我正在研究 Linux 源代码,目标是在移动设备(例如 Android)上启动它。我按照互联网上的教程成功地将其作为 Debian 软件包。我目前正在使用Ubuntu。

我有一个策略,但不确定我是否走在正确的道路上。如下:

A:

  1. 下载Linux源代码。删除额外的驱动程序,在当前运行的 Ubuntu 上编译并安装并使用它。

  2. 进一步自定义代码并将其作为我自己的发行版启动。为此我正在关注线性FS

  3. 指定一个特定的目标移动设备,修改它的代码,编写驱动程序(如果我需要的话),不确定是哪一个(这就是我在这里的原因:)),然后在其上启动内核。

我不知道我的策略是否正确。如果有人能告诉我,我将非常感激:

乙:

  1. 我走在正确的轨道上吗?如果不是,那什么才是正确的呢?
  2. 我是否需要指定一款手机并为其定制内核代码?
  3. 除了驱动程序之外,我还需要更改内核中的哪些内容?
  4. 最后但并非最不重要的一点:当我在移动设备上启动内核时;我在那里有任何接口或终端吗?

抱歉,如果我的问题没有意义。我是一名学生,仍在努力解决问题。如果有人能给我一些关于在互联网上搜索哪些主题的提示,我将非常感激。

更新:我想要的是确认我的策略是否正确。如果没有,请列出我应该遵循的步骤。

答案1

首先尝试编译 Android Linux 内核而不仅仅是 kernel.org 中的普通内核不是更容易吗?原则上,这应该适用于所有 Android 设备,因为内核是 GPL。如果您无法获取目标设备的内核源代码,因为制造商要么一无所知,要么是已知的 GPL 违反者,那么您的下一个选择是下载并编译具有类似 SoC(Tegra 3、RK3188、 ETC)。

请注意,在运行多种 SoC 设计的移动设备上启动比从具有熟悉的 AMD 或 Intel CPU 的台式机或笔记本电脑启动要不确定得多。实际上,您甚至不确定是否可以将内核复制或闪存到移动设备中(当然,除非移动设备是笔记本电脑)。所以你也需要研究一下。

所以我首先要研究的是目标设备。选择可以从外部 SD 卡启动的设备是个好主意,因为理论上您只需将内核和其他操作系统内容复制到 SD 卡即可运行 Linux。除此之外,选择一个具有工作恢复分区的设备,它允许您将内核刷新到适当的启动分区。这样的设备实际上有两个启动分区:Android 启动分区和恢复分区。因此,如果出现问题导致设备无法启动,您可以按设备上的特殊硬件按钮组合,以便启动到恢复分区并将设备返回到可用状态。

相关内容