rk3288 SD卡启动的如何更新内核呢?

请问一下rk3288 SD卡启动的如何更新内核呢?

同问,需要SD卡ubuntu固件包的打包方式,不要android的。我根据android的方式打包ubuntuSD卡固件,rk3288一直启动不了。、
非常需要,多谢回答。

本帖最后由 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
这个得等官方更新固件

我解压官方固件之后,只更换内核,在文件系统\lib中加入modules,其它的都不变。
现在只想要SD卡固件的打包方式。如果能提供,就太感谢了,祝工作愉快!

warrior 发表于 2016-2-22 15:10
我解压官方固件之后,只更换内核,在文件系统\lib中加入modules,其它的都不变。
现在只想要SD卡固件的 …

sd卡启动是在内核实现的,如果你新的内核里面没有做sd卡启动的支持,打包之后也无法从sd卡启动的。至于打包固件可以使用烧写工具AndroidTool里面的脚本rockdev/mkupdate.bat

本帖最后由 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的打包方式,我试过,没有启动成功,不知道您提供的这个可不可以,先谢谢了!

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

接个串口看一下启动的log吧,看log比较清楚
bootloader是支持sd卡启动的,kernel也有些不同的

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

多谢,我用串口看了调试信息,是卡在Starting Kernel了,我会换一个kernel试一下。
另外问一下,kernel是用make bzImage得到的吧,linux-boot.img中的kernel是直接拷贝的zImage还是用rkcrc处理过的?

warrior 发表于 2016-2-22 18:57
多谢,我用串口看了调试信息,是卡在Starting Kernel了,我会换一个kernel试一下。
另外问一下,kernel …

kernel的编译:make firefly-rk3288.img
打包linux-boot.img: http://wiki.t-firefly.com/index.php/Firefly-RK3288/Build_kernel#.E6.89.93.E5.8C.85.E5.86.85.E6.A0.B8.E5.92.8C.E5.86.85.E5.AD.98.E7.9B.98

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我先尝试一下。
谢谢!

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.php/Firefly-RK3288/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.php/Firefly-RK3288/Build_kernel#.E6.89.93.E5.8C.85.E5.86.85.E6.A0.B8.E5.92.8C.E5.86.85.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上面对启动文件的说明就好了。

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卡启动的内核源码官方还没放出来

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: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。