【问题标题】:Modify and boot linux kernel on mobile device在移动设备上修改和启动 linux 内核
【发布时间】:2013-10-19 01:38:50
【问题描述】:

在接受教育期间,我已经开发 Android iOS 应用和网站将近 18 个月了。现在,作为我最后一年的项目,我正在研究 Linux 源代码,目标是在移动设备上启动它——比如 Android。我按照 Internet 上的教程成功地将它作为 Debian 包安装。我目前正在使用 Ubuntu。

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

答:

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

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

  3. 指定一个特定的目标手机,修改它的代码,写 如果我需要任何驱动程序,不确定是哪一个(这就是我在这里的原因:)), 并在其上启动内核。

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

乙:

  1. 我在正确的轨道上吗?如果不是,那可能是正确的?

  2. 我是否需要指定移动设备并为此定制内核代码 一个?

  3. 除了驱动程序,我还需要在内核中进行哪些更改?

  4. 最后但并非最不重要的是,当我在移动设备上启动内核时;我要不要 接口还是终端?

对不起,如果我的问题没有意义。我是一名学生,仍在努力解决问题。如果有人能提示我在 Internet 上搜索哪些主题,我将不胜感激。

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

【问题讨论】:

    标签: android linux mobile linux-kernel mobile-os


    【解决方案1】:

    SoC 及其周围设备的驱动程序是闭源的并不罕见。 据我所知,Exynos SoC(三星在许多设备中使用的东西)的驱动程序是(partly) closed source

    所以一般来说,您必须为所有事物和每个人编写驱动程序。 尤其是实际的无线电连接很棘手,因为没有需要专有的设备 固件 blob(尽管其余驱动程序可能是开源的)。

    另一个问题是许多设备上的引导加载程序,它不容易让你安装 自定义内核(哈希和存储在引导加载程序中,如果内核哈希不 匹配)。

    所以,假设您正在为已经支持 android 的设备进行开发,我个人 将从您设备的相应设备树开始并开始修改它。 您可以在CyanogenMod's github page 上查看很多设备树。

    好处:

    • 您可以从工作状态开始
    • 如果有什么东西坏了,你知道是你自己

    或者,您可以查看其他项目,例如 Ubuntu Touch。 他们可以通过使用Hybris 来利用现有的android 内核。 如果你想拥有一个基于 Debian/Ubuntu 的发行版,我会推荐 尝试 Ubuntu Touch 并对其进行修改。

    【讨论】:

    • 感谢您的回答,很有帮助。但是,您仍然认为我的策略在实现在移动设备上启动内核的目标是正确的吗?
    • 玩弄你知道的硬件总是一个好主意,通过修改 x86 Ubuntu 的内核来适应破解 Linux 是一个好计划。虚拟机也有很大帮助:qemu 有一个 -kernel 标志,专门用于测试 Linux 内核。
    猜你喜欢
    • 1970-01-01
    • 2017-03-02
    • 2018-01-28
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多