我的某个回答,转移出来。
移植方向
1.安卓Linux共存.
2.只保留Linux.
3.安卓上运行Linux.
首先判断需要哪个方向,检查SOC型号,查询厂商开放的资料(盒子型号也行),如果开放程度达到有详细的芯片手册级别和相关源码开源,推荐只保留Linux或者两者共存,如果只有内核源码也行,虽然有些问题会棘手点(特别是显示部分),如果只提供了安卓固件,其他啥都没,推荐安卓上运行Linux了。
准备材料:
usb转ttl。
装了Linux的电脑。
网络。
拆机工具。
电烙铁。
脑子。
一定的Linux知识和底层驱动/硬件知识。
1.1 收集资料
两者共存需要看清引导的类型和参数,拆开机子,查找TTL调试的接口,焊接/连接USB-TTL,启动,调整波特率(多尝试,接线也别接错了,有一些需要tx-rx交叉连),尝试获取启动信息,尝试进入bootloader控制台。记录相关信息,特别是安卓的引导信息。备份好一切后,查询芯片手册及网上资料,检查是否有某个救砖的刷机模式,检查是否开了安全启动(安全启动开了的基本上是阿里云OS,不能刷其他系统,只能建立在原有的安卓引导上进行修改了)。记录获取各种信息资料。
1.2 修改&调试
一切准备妥当后,获取厂商的源码,对其进行修改,内核配置中打开CONSOLE_VT之类的选项(不知道该调整哪些的,直接编译出来,启动,通过TTL调试检查错误来判断需要哪个),rootfs的根文件系统可以用raspbian的,也可以用相关发行版官方的,也可以用相关脚本构建,引导参数也要检查,先调好Linux,先调到能基本进入Linux的终端,再2调整外围硬件(网卡,显示,声卡之类)。这一步需要大量的耐心与努力,寻找错误,调试,查资料,修改,调试,也需要定量的底层驱动/硬件知识,Linux知识,阅读厂商文档,Linux文档,查询错误资料。安全启动开了的板子,只能建立在安卓的引导上进行修改了,具体后面会说(建立在我还能想起来的前提)。
1.3 安卓共存
Linux基本上调好后(或多或少还是会有些问题),备份!!!,进行安卓共存的调整了,根据获取到的信息,考虑多引导的方式,并且写入安卓相关分区(不要覆盖之前的Linux分区)。然后调试引导参数,使安卓运行起来,再结合Linux和安卓的引导方式,利用引导的功能,实现多引导或者rec启动Linux,正常启动安卓之类的。
1.4 安卓上运行Linux
相关软件都存在了,不用多说,这是最简单的方法,Linux Deploy之类,通过Chroot使安卓内核切换到你的Linux的rootfs根分区,与安卓并行运行,缺点是 不能用显卡,用软件渲染图形需要一定性能,一些权限可能与安卓冲突等。
由于篇幅原因,我只能指路,并不能详细,每一套硬件方法都有差异,不要来烦我各种简单的问题,这对你学习和移植过程毫无帮助,如果你想去实现,需要大量的精力和努力。有志者事竟成。
@felonwan 前吧主的微博有一些这类资料,也可以去看看。
移植方向
1.安卓Linux共存.
2.只保留Linux.
3.安卓上运行Linux.
首先判断需要哪个方向,检查SOC型号,查询厂商开放的资料(盒子型号也行),如果开放程度达到有详细的芯片手册级别和相关源码开源,推荐只保留Linux或者两者共存,如果只有内核源码也行,虽然有些问题会棘手点(特别是显示部分),如果只提供了安卓固件,其他啥都没,推荐安卓上运行Linux了。
准备材料:
usb转ttl。
装了Linux的电脑。
网络。
拆机工具。
电烙铁。
脑子。
一定的Linux知识和底层驱动/硬件知识。
1.1 收集资料
两者共存需要看清引导的类型和参数,拆开机子,查找TTL调试的接口,焊接/连接USB-TTL,启动,调整波特率(多尝试,接线也别接错了,有一些需要tx-rx交叉连),尝试获取启动信息,尝试进入bootloader控制台。记录相关信息,特别是安卓的引导信息。备份好一切后,查询芯片手册及网上资料,检查是否有某个救砖的刷机模式,检查是否开了安全启动(安全启动开了的基本上是阿里云OS,不能刷其他系统,只能建立在原有的安卓引导上进行修改了)。记录获取各种信息资料。
1.2 修改&调试
一切准备妥当后,获取厂商的源码,对其进行修改,内核配置中打开CONSOLE_VT之类的选项(不知道该调整哪些的,直接编译出来,启动,通过TTL调试检查错误来判断需要哪个),rootfs的根文件系统可以用raspbian的,也可以用相关发行版官方的,也可以用相关脚本构建,引导参数也要检查,先调好Linux,先调到能基本进入Linux的终端,再2调整外围硬件(网卡,显示,声卡之类)。这一步需要大量的耐心与努力,寻找错误,调试,查资料,修改,调试,也需要定量的底层驱动/硬件知识,Linux知识,阅读厂商文档,Linux文档,查询错误资料。安全启动开了的板子,只能建立在安卓的引导上进行修改了,具体后面会说(建立在我还能想起来的前提)。
1.3 安卓共存
Linux基本上调好后(或多或少还是会有些问题),备份!!!,进行安卓共存的调整了,根据获取到的信息,考虑多引导的方式,并且写入安卓相关分区(不要覆盖之前的Linux分区)。然后调试引导参数,使安卓运行起来,再结合Linux和安卓的引导方式,利用引导的功能,实现多引导或者rec启动Linux,正常启动安卓之类的。
1.4 安卓上运行Linux
相关软件都存在了,不用多说,这是最简单的方法,Linux Deploy之类,通过Chroot使安卓内核切换到你的Linux的rootfs根分区,与安卓并行运行,缺点是 不能用显卡,用软件渲染图形需要一定性能,一些权限可能与安卓冲突等。
由于篇幅原因,我只能指路,并不能详细,每一套硬件方法都有差异,不要来烦我各种简单的问题,这对你学习和移植过程毫无帮助,如果你想去实现,需要大量的精力和努力。有志者事竟成。
@felonwan 前吧主的微博有一些这类资料,也可以去看看。