机顶盒使用的的hi3716mv300芯片,SDK是自己编译的,make版本4.1,可能是版本太高导致编译的时候一堆问题,至今不知道怎么解决:(
如上图所示,写了路径的都是通过网口烧录的,bootargs是我通过串口发送的文件命令,命令复制于SDK中的install_notes.txt
文件.
每一次都显示如下错误:
Kernel panic - not syncing: No init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
在看了这篇文章之后,我对bootargs有了一定了解,参考那个install_notes.txt
里面给出的命令,我确定是因为里面的命令少了init=/linuxrc
。完整的命令应该是:
setenv bootcmd 'nand read 0x82000000 0x100000 0x400000;bootm 0x82000000'
setenv bootargs 'mem=96M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hinand:1M(boot),4M(kernel),60M(rootfs),1M(baseparam),1M(logo),20M(fastplay),-(others) mmz=ddr,0,0x86000000,160M DmxPoolBufSize=0x200000 init=/linuxrc'
saveenv
reset
如果分区和文件系统和我的不一样,不可照搬,有些地方要修改
重新设置了bootargs后,还是出现上面的错误.
这可能是因为文件系统里面没有/linuxrc
文件,可以看看pub目录下的rootbox文件夹,我这个文件夹里面就没有这个文件.可以下载busybox,编译好后,把_install文件夹里面的文件复制到rootbox1.修改makefile里面的的文件系统的编译部分,主要是把里面的前置条件rootfs
去掉,防止rootbox被修改,然后重新编译文件系统
make menuconfig
,make
,make install
来自<Linux开发环境用户指南> ↩︎