Firefly开源社区

12345... 14
发表新贴

Firefly Ubuntu开发入门之(2)运行内核

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-19 10:06:50     
本帖最后由 牛头 于 2016-9-24 15:18 编辑

     很多朋友希望在拿到Firelfy发布的Ubuntu镜像后,会想自己加驱动或自己编译的内核等等,但做的过程中难免出现各种各样的问题。网上各种教程都不那么切题,讲解都不是那么细致,让人感到迷茫,又或许是无助。Firefly团队努力地在帮助开发者打破此困局,整理策划了系列教程,让开发者可以通过Firefly开源平台可以快速上手开发,并快速打造出成熟产品。
    “创新 开源 分享 定制”是我们的口号,我们一直在努力。

    上一篇文章说到如何把kernel及modules编译出来,今天继续讲如何让kernel在板子上飞~~告别各种不进系统桌面、串口不输出LOG等问题!
    那么请跟着我的脚步上路吧!

    一、准备初始RAM磁盘
    初始RAM磁盘(initrd)是在实际根文件系统可用之前挂载到系统中的一个初始根文件系统。initrd与内核绑定在一起,并作为内核引导过程的一部分进行加载。
    内核会将这个initrd文件作为其两阶段引导过程的一部分来加载模块,这样才能稍后使用真正的文件系统,并挂载实际的根文件系统。initrd中包含了实现这个目标所需要的目录和可执行程序的最小集合,例如将内核模块加载到内核中所使用的 insmod工具。
在桌面或服务器Linux系统中,initrd是一个临时的文件系统。其生存周期很短,只会用作到真实文件系统的一个桥梁。
     Firefly团队为方便开发者进行项目,在github上创建initrd的仓库,开发者可以直接clone使用。
cd ~/UbuntuDev/
make -C initrd
    有兴趣深入去了解initrd的朋友,也可以自行去研究。
     
    二、打包内核和RAM磁盘
    Firefly官方发布的Ubuntu系统都是只有boot分区的,所以要将 kernel 和 initrd 打包成 boot.img,在烧录到指定分区才能上kernel飞~~
这里实际操作的方式和上篇讲的稍微有些区别,生成boot镜像用到了一个新工具mkbootimg,大家可通过 mkbootimg.tar.gz (12.53 KB, 下载次数: 593)
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-19 10:06:51     
沙发
回复

使用道具 举报

168

积分

1

威望

0

贡献

技术小白

积分
168
发表于 2016-9-19 10:10:36     
老大,parameter 文件怎么下载不了,提示我特定用户才可以下载,能不能处理一下
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-19 11:13:09     
看看这里能不能下载

mkbootimg.tar.gz

12.53 KB, 下载次数: 96, 下载积分: 灯泡 -1 , 经验 -1

parameter.rar

467 Bytes, 下载次数: 481, 下载积分: 灯泡 -1 , 经验 -1

回复

使用道具 举报

168

积分

1

威望

0

贡献

技术小白

积分
168
发表于 2016-9-19 11:30:29     
感谢,已经可以下载
回复

使用道具 举报

13

积分

0

威望

0

贡献

游客

积分
13
发表于 2016-9-19 14:28:53     
parameter 文件怎么下载不了,提示我特定用户才可以下载,能不能处理一下
回复

使用道具 举报

168

积分

1

威望

0

贡献

技术小白

积分
168
发表于 2016-9-19 15:27:24     
我的能下载了,我把内容贴出来,你保存成parameter.txt即可


FIRMWARE_VER:5.0.0
MACHINE_MODEL:rk3288
MACHINE_ID:007
MANUFACTURER:RK3288
MAGIC: 0x5041524B
ATAG: 0x60000800
MACHINE: 3288
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x62008000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
CMDLINE:earlyprintk=ttyS2,115200 console=tty0 console=ttyS2,115200 androidboot.selinux=permissive androidboot.hardware=rk30board androidboot.console=ttyS2 root=/dev/mmcblk0p3 linuxroot rw rootfstype=ext4 init=/sbin/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00010000@0x00002000(boot),0x00002000@0x00012000(backup),-@0x00014000(linuxroot)
回复

使用道具 举报

168

积分

1

威望

0

贡献

技术小白

积分
168
发表于 2016-9-20 16:36:41     
今天怎么没有继续更新啊
回复

使用道具 举报

380

积分

0

威望

0

贡献

技术达人

Rank: 2

积分
380
发表于 2016-9-23 22:27:37     
有个问题:
  1. ./mkbootimg --kernel arch/arm/boot/zImage --ramdisk ../initrd.img --second resource.img  -o boot.img
复制代码

好像没有说明resource.img是从哪里来的?
回复

使用道具 举报

950

积分

95

威望

72

贡献

超级版主

Rank: 8Rank: 8

积分
950
发表于 2016-9-24 15:16:38     
csersoft 发表于 2016-9-23 22:27
有个问题:

好像没有说明resource.img是从哪里来的?

之前有个地方提到了,没重点突出
make -j8 firefly-rk3288.img
回复

使用道具 举报

返回列表
12345... 14
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表