RuralHunter / CoreELEC

This is CoreELEC for Phicomm N1 device only. Run ./mkn1 to build.
https://coreelec.org
597 stars 105 forks source link

斐讯n1到底需要什么样的编译条件和启动条件呢? #1

Closed kero990 closed 4 years ago

kero990 commented 4 years ago

我会一点点照本宣科的编译,但我一直没搞懂斐讯的设备需要什么样的特殊设置,n1是需要特殊编译的内核,还是特殊的启动设置呢?用您的项目我是能够成功的,但我想知道怎么样把一个通用s905的系统编译成n1可以用的系统,我一直找不到关于n1特殊性的资料,还请您百忙之中帮我解答下

我猜您是中国的,我就不用google机翻翻成英文来提问了。打扰了

RuralHunter commented 4 years ago

n1跟通用版ce的区别只有两个,这个都是由n1自带的u-boot版本决定的

  1. 支持的kernel格式不一样,n1不支持lzo压缩的kernel,需要普通格式+initramfs,可以比较一下amlogic通用的options文件,以及uEnv.ini
  2. 启动脚本名字不一样,n1是s905_autoscript,通用版是aml_autoscript。你可以通过fw_printenv命令查看u-boot环境变量。虽然这个可以自己修改,但你要做成通用的话只能用默认的环境。 所以编译针对其它设备的话,最主要还是要了解它自带的u-boot的规格,或者你只是自用的话可以修改或刷新的u-boot。 u-boot简单来说就是启动设备,然后读取并执行启动盘上的启动脚本。
RuralHunter commented 4 years ago

哦,对了还需要一个设备特定的dtb文件,n1刷ce的话用ce自带的s905设备的就可以。其它设备不一定。这个也可以在uEnv.ini里指定。

kero990 commented 4 years ago

感谢解答,我真的找不到任何地方有关于n1设备特殊性的资料

如果n1仅仅是对内核格式和启动脚本有要求,那是不是意味着,其他系统都可以移植到n1上呢?单独编译个内核,写一份启动脚本?国外还是有挺多相对ce而言比较小众的系统的。 n1的s905_autoscript是u-boot直接调用的,还是需要通过aml_autoscript间接调用呢?fw_printenv命令是在n1上运行的,还是编译环境下运行的呢?

最后问一下您了解t1吗?为啥t1到现在能用的系统如此之少?似乎只有balbes150大神的系统能在n1山跑,神奇的是,他的包甚至能t1和n1双启动,他的s912包是能跑n1的。

再次感谢解答,谢谢

RuralHunter commented 4 years ago

s905_autoscript是n1自带的u-boot直接调用的。很多s905设备默认都是调这个脚本,不是aml_autoscript。还有一些其它amlogic设备默认调用的就是aml_autoscript。fw_printenv是linux命令,启动了linux才可以调用。coreelec自带了,armbian等没有自带的话也可以安装。 n1就是个普通的盒子设备,跟其它设备没有太大区别,只要支持u-boot启动的系统应该都可以尝试,当然有些硬件驱动可能需要适配。 t1不了解,但应该也不会有太大差别,区别就是系统自带的u-boot还有内核是否有相应的硬件驱动。