Firefly开源社区

标题: rk3288 SD卡启动的如何更新内核呢? [打印本页]

作者: youbainiao    时间: 2015-11-10 18:01
标题: rk3288 SD卡启动的如何更新内核呢?
请问一下rk3288 SD卡启动的如何更新内核呢?
作者: warrior    时间: 2016-2-22 11:02
同问,需要SD卡ubuntu固件包的打包方式,不要android的。我根据android的方式打包ubuntuSD卡固件,rk3288一直启动不了。、
非常需要,多谢回答。
作者: warrior    时间: 2016-2-22 11:16
本帖最后由 warrior 于 2016-2-22 11:21 编辑

我需要换一个实时内核,使用的是github上mmind的3.14版本。
1)用rkunpack解压了SD卡固件包,用unmkbootimg解压了其中的linux-boot.img(得到kernel和ramdisk.cpio.gz)
2)将zImage改名kernel,用mkbootimg重新打包linux-boot.img
3)用afptool -pack打包
4)再用img_maker打包(选择XXX.img-BOOT和RKLoader.bin都不行)
板子启动不了,显示器没有收到信号,进入等待休眠模式。
作者: linjc    时间: 2016-2-22 14:28
这个得等官方更新固件
作者: warrior    时间: 2016-2-22 15:10
linjc 发表于 2016-2-22 14:28
这个得等官方更新固件

我解压官方固件之后,只更换内核,在文件系统\lib中加入modules,其它的都不变。
现在只想要SD卡固件的打包方式。如果能提供,就太感谢了,祝工作愉快!
作者: linjc    时间: 2016-2-22 16:14
warrior 发表于 2016-2-22 15:10
我解压官方固件之后,只更换内核,在文件系统\lib中加入modules,其它的都不变。
现在只想要SD卡固件的 ...

sd卡启动是在内核实现的,如果你新的内核里面没有做sd卡启动的支持,打包之后也无法从sd卡启动的。至于打包固件可以使用烧写工具AndroidTool里面的脚本rockdev/mkupdate.bat
作者: warrior    时间: 2016-2-22 16:55
本帖最后由 warrior 于 2016-2-22 17:00 编辑
linjc 发表于 2016-2-22 16:14
sd卡启动是在内核实现的,如果你新的内核里面没有做sd卡启动的支持,打包之后也无法从sd卡启动的。至于打 ...

SD卡启动的支持,是在板子上的Loader里面,既然官方固件能从SD卡启动,那么不管编译的内核是否启动,SD卡的bootloader应该也能运行。现在问题是显示器根本没有信号,板子也没有从板子上的固件启动。说明板子上的Loader在SD卡上寻找固件,但固件打包格式不对,没有启动成功。

>至于打包固件可以使用烧写工具AndroidTool里面的脚本rockdev/mkupdate.bat
我用的是ubuntu,这个我会试一下。wiki上面android的打包方式,我试过,没有启动成功,不知道您提供的这个可不可以,先谢谢了!

作者: linjc    时间: 2016-2-22 17:00
warrior 发表于 2016-2-22 16:55
SD卡启动的支持,是在板子上的Loader里面,既然官方固件能从SD卡启动,那么不管编译的内核是否启动,SD卡 ...

接个串口看一下启动的log吧,看log比较清楚
bootloader是支持sd卡启动的,kernel也有些不同的
作者: warrior    时间: 2016-2-22 18:57
linjc 发表于 2016-2-22 17:00
接个串口看一下启动的log吧,看log比较清楚
bootloader是支持sd卡启动的,kernel也有些不同的

多谢,我用串口看了调试信息,是卡在Starting Kernel了,我会换一个kernel试一下。
另外问一下,kernel是用make bzImage得到的吧,linux-boot.img中的kernel是直接拷贝的zImage还是用rkcrc处理过的?
作者: linjc    时间: 2016-2-23 09:39
warrior 发表于 2016-2-22 18:57
多谢,我用串口看了调试信息,是卡在Starting Kernel了,我会换一个kernel试一下。
另外问一下,kernel ...

kernel的编译:make firefly-rk3288.img
打包linux-boot.img: http://wiki.t-firefly.com/index. ... 5.E5.AD.98.E7.9B.98
作者: warrior    时间: 2016-2-23 10:00
linjc 发表于 2016-2-23 09:39
kernel的编译:make firefly-rk3288.img
打包linux-boot.img: http://wiki.t-firefly.com/index.php/Fir ...

我用unmkbootimg解压完linux-boot.img的时候,有提示mkbootimg的参数,--base --pagesize等,这些参数是否必要,我还没有时间实验。
我用解压的kernel,ramdisk.cpio.gz,使用上面提示的mkbootimg重新生成linux-boot.img,使用mkupdate生成固件包(内部使用afptool -pack, img_maker),可以从SD卡启动。所以现在固件打包方式这个问题就解决了。
你上面提供的链接,描述有点模糊,可能kernel就是zImage,initrd.img应该是 .cpio.gz文件(先用cpio,再用gzip),后面一个我先不考虑,就用解压出来的ramdisk.cpio.gz,kernel我先尝试一下。
谢谢!
作者: warrior    时间: 2016-2-24 15:50
linjc 发表于 2016-2-23 09:39
kernel的编译:make firefly-rk3288.img
打包linux-boot.img: http://wiki.t-firefly.com/index.php/Fir ...

http://wiki.t-firefly.com/index. ... 288/Mainline_Kernel
   make rk3288_firefly_defconfig
   make -j4 zImage
   make rk3288-firefly.dtb
   cat arch/arm/boot/zImage arch/arm/boot/dts/rk3288-firefly.dtb > zImage-dtb
   mkkrnlimg zImage-dtb kernel.img   


http://wiki.t-firefly.com/index. ... 5.E5.AD.98.E7.9B.98

  mkbootimg --kernel arch/arm/boot/zImage --ramdisk initrd.img -o boot.img


您好,能问一下linux-boot.img解压出来的kernel是怎么获得的吗?
我用make zImage拿到zImage,
(1) mkkrnlimg zImage 得到kernel
(2)zImage重命名kernel
(3)zImage+dtb再用mkkrnlimg,得到kernel
(4)make firefly-rk3288.img得到kernel.img, 重命名为kernel
以上四种方法都没有成功启动板子。
如能回答,不胜感激!
要是3288能有像linux-rockchip.info上面对启动文件的说明就好了。

作者: linjc    时间: 2016-2-24 16:36
warrior 发表于 2016-2-24 15:50
http://wiki.t-firefly.com/index.php/Firefly-RK3288/Mainline_Kernel
   make rk3288_firefly_defconf ...

如果你的内核支持sd卡启动,这样生成boot.img就可以开机的:
mkbootimg --kernel arch/arm/boot/zImage --ramdisk initrd.img -o boot.img
支持sd卡启动的内核源码官方还没放出来
作者: warrior    时间: 2016-2-24 16:54
linjc 发表于 2016-2-24 16:36
如果你的内核支持sd卡启动,这样生成boot.img就可以开机的:
mkbootimg --kernel arch/arm/boot/zImage  ...

谢谢!怎样能让内核支持SD卡启动呢,我下载官网上面3.10的也不行吗?

直接更新板子里面的内核是不是用make zImage, mkkrnlimg zImage就行。
作者: warrior    时间: 2016-2-26 11:27
本帖最后由 warrior 于 2016-2-26 11:45 编辑
linjc 发表于 2016-2-24 16:36
如果你的内核支持sd卡启动,这样生成boot.img就可以开机的:
mkbootimg --kernel arch/arm/boot/zImage  ...

您好,我现在直接更新板子里面的内核,但是只有你们网站上面的那个e5d1ccebdd1f内核能够启动,github.com/mmind/linux-rockchip,github.com/TeeFirefly/linux-rockchip都不能启动,请问TeeFirefly是你们官方的吗?如果要换其它版本的内核应该怎么做呢,先谢谢了!

我复制了e5d1ccebdd1f里面的XX_defcofnig,以及和rockchip有关的dts,使用make fireefl-rk3288-linux_defconfig,make menuconfig, make zImage。





欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1