技术总结:
为了调海思的3716CV200的芯片,在自己的Demo板上跑HiLinux系统(海思裁剪的Linux),用海思的工具烧制完fastboot、kernel、rootfs之后,启动到kernel时,总是报错,信息如下:
No filesystem could mount root, tried : ext4
Kernel panic - not syncing: VFS: Unable to mount root fs on unknow-block(179,6)
根据字面意思,直觉是启动区间设的不对,查启动参数,跟自己在bootargs.bin里写的不一样,启动参数如:
Kernel command line: mem=1G console=ttyAMA0,115200 root=/dev/mmcblk0p6 rootfstype=ext4 rootwait blkdevparts=mmcblk0:512K(fastboot),
512K(bootargs),4M(baseparam),4M(pqparam),4M(logo),8M(kernel),96M(rootfs),-(others) mmz=ddr,0,0,300M
但是启动过程中自检MMC分区是这个样子的,貌似对不上:
mmcblk0: p1(fastboot) p2(bootargs) p3(baseparam) p4(pqparam) p5(logo) p6(kernel) p7(rootfs) p8(others)
这里看到的mmcblk0p6是kernel,不是rootfs,所以需要修改kernel的启动参数,因为文件系统还没挂接,fastboot又已经引导了kernel,所以没有什么命令行是直接可用的,这就这篇文章要解决的问题。
重写bootargs.bin,将起始写入地址设为512K,与海思默认一致。自己编的bootargs还是不好用,启动完fastboot后不自动引导kernel,用海思自带的就可以。
分析了tools/linux/utils/mkbootargs-tool/bootargs_input.txt文件,删除了其中的bootdelay=0一行,加上了bootfile="uImage"一行,重编,烧制,起来了!:)
终于看见 Welcome to HiLinux!了!美~~~
然后配网络,
ifconfig eth0 hw ether 00:12:34:56:78:99
ifconfig eth0 192.168.1.113 netmask 255.255.255.0
route add default gw 192.168.1.1
好了,明天配好NFS环境就搭好了,可以和小伙伴们一起工作了!!开发上层应用咯~~