android - 在移动设备上修改和启动 linux 内核

标签 android linux mobile linux-kernel mobile-os

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

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

答:

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

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

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

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

乙:

  1. 我走的路对吗?如果不是,什么可能是正确的?

  2. 我需要指定手机并为其定制内核代码吗 一个?

  3. 除了驱动程序,我还需要在内核中更改什么?

  4. 最后但同样重要的是,当我在移动设备上启动内核时;我要不要 接口(interface)或终端在那里?

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

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

最佳答案

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

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

还有一个问题就是很多设备上的boot loader,不容易让你安装 自定义内核(哈希和存储在引导加载程序中,如果内核哈希不存在则不愿启动 匹配)。

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

好处:

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

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

关于android - 在移动设备上修改和启动 linux 内核,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19461398/

相关文章:

android - Retrofit2.1 附带的默认 OkHttp 版本?

linux - 如何使用 Ansible 运行主管?

javascript - 关于dojo/dijit/dojox的问题

jquery - 移动菜单不适用于 wordpress zerif 主题

android - 计算android屏幕尺寸?

android - cordova 模拟 android - qemu : could not load initrd ''

java - relativeLayout 和 Canvas 服装 View

android - 参数类型 'Color?' 不能分配给参数类型 'MaterialColor?

linux - 在压缩文件上使用 sed

python - django 表单无法渲染到响应