Firefly开源社区

标题: RK3399从零制作ubuntu [打印本页]

作者: tjCFeng    时间: 2017-8-21 21:10
标题: RK3399从零制作ubuntu
本帖最后由 tjCFeng 于 2017-8-21 21:21 编辑

    标题有点大了,其实没什么,就是按照Firefly的wiki的步骤来编译内核和制作文件系统。说实话,这个xubuntu实在是不习惯,还是3288的lubuntu好用,可惜升级到16.04之后就没有了,所以打算自己做一个14.04的来使用。当然,并不是说xubuntu不好,而是我用着感觉不顺手,另外连学习一下整个系统的制作过程。

    这里要说明一下,RK3399的wiki中给出的编译内核和制作文件系统的方法完全正确,只是写的不太详细,应该把RK3288和RK3399的wiki结合起来看就没有问题了。这里我只是总结一下,把需要注意到的地方再重复一遍而已,需要注意的地方高亮显示。

一、编译内核:
1.下载内核源码:git clone https://TeeFirefly@gitlab.com/TeeFirefly/linux-kernel.git,这个不用多说,apt install git-core后就能获取;
2.下载编译工具:git clone https://TeeFirefly@gitlab.com/TeeFirefly/prebuilts.git,和源码一样的方法,要和内核在同一级目录下
3.编译:
        make ARCH=arm64 firefly_linux_defconfig
        make ARCH=arm64 rk3399-firefly-linux.img -j8
        编译后在内核源码的目录下生成kernel.img和resource.img文件。

4.如果编译失败,无论报何种错误,都是因为编译时的工具和库没有安装完全,源代码本身是没有错误的。都需要装什么东西呢?参考:http://wiki.t-firefly.com/index. ... 7.E5.B7.A5.E4.BD.9C
这个就是RK3288的编译环境,把所有的东西都装上,保证编译成功。



二、制作文件系统:
1.下载http://cdimage.ubuntu.com/ubuntu ... 3-base-arm64.tar.gz。我下载的是14.04,这个随意啦。
2.安装虚拟机apt-get install qemu-user-static
3.解压文件:
        mkdir temp
        tar -xpf ubuntu-base-16.04.1-base-arm64.tar.gz -C temp
4.运行虚拟机,把下载的ubuntu在虚拟机中跑起来,至少第二步是要做的,否则运行不了:
        cp -b /etc/resolv.conf temp/etc/resolv.conf
        cp /usr/bin/qemu-aarch64-static temp/usr/bin/
    在temp的上级目录中执行chroot temp,此时就是运行在虚拟机中了。

5.配置虚拟机中的ubuntu:
        apt update
        apt upgrade
        #可以安装桌面,如apt install xubuntu-desktop,我偷懒了,这样生成的文件小,制作和烧写的过程快。
        useradd -s '/bin/bash' -m -G adm,sudo firefly
        passwd firefly
        passwd root
        exit


    退出后就回到主机的系统里了。

6.最后一步,生成rootfs文件:
        dd if=/dev/zero of=linuxroot.img bs=1M count=2048
        sudo  mkfs.ext4  linuxroot.img
        mkdir  rootfs
        sudo mount linuxroot.img rootfs/
        sudo cp -rfp temp/*  rootfs/
        sudo umount rootfs/
        e2fsck -p -f linuxroot.img
        resize2fs  -M linuxroot.img

    完全按照wiki的步骤,没有什么特别说明的地方。

    最后得到的文件就是这三个,用来烧写。

三、烧写:
    这里我又偷了下懒,直接用RK3399的镜像解包得到需要的文件,然后替换烧写。

    在高级功能里,选择RK3399的镜像文件,点解包。

    完成后,会在烧写工具的文件夹下生成Output文件夹,解包后的东西都在这里。

剩下的事情就简单了,只用到了原包里的parameter,不用自己写了。
wiki中所说的修改parameter文件,其实就是这个文件。当然,使用原包的文件就不用修改。


    把刚才生成的那三个文件添加进来,rootfs的地址是parameter中找到的。开始烧写,这个方法就不用再说了吧。


    烧写后自动重启,系统跑起来了,没有安装桌面的系统。


(完)



作者: Firefly    时间: 2017-8-23 09:49
感谢分享!
作者: Younix    时间: 2017-9-4 18:04
请问您做好的 ubuntu rootfs  img 可以分享一下么?
作者: tjCFeng    时间: 2017-9-6 08:47
Younix 发表于 2017-9-4 18:04
请问您做好的 ubuntu rootfs  img 可以分享一下么?

太大了,传不上来呀,按照这个步骤自己做一个就行了,很简单。
作者: agin719    时间: 2017-10-18 15:27
有64位系统的内核代码吗,怎么编译出rk3399的64位ubuntu系统?
作者: kimbackkom    时间: 2017-12-6 12:01
感谢分享
作者: zorb    时间: 2018-1-30 16:59
FIRMWARE_VER: 6.0.1
MACHINE_MODEL: RK3399
MACHINE_ID: 007
MANUFACTURER: RK3399
MAGIC: 0x5041524B
ATAG: 0x00200800
MACHINE: 3399
CHECK_MASK: 0x80
PWR_HLD: 0,0,A,0,1
#KERNEL_IMG: 0x00280000
#FDT_NAME: rk-kernel.dtb
#RECOVER_KEY: 1,1,0,20,0
#in section; per section 512(0x200) bytes
CMDLINE:console=ttyFIQ0 root=/dev/mmcblk1p6 rw rootwait fbcon=rotate:1 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),
0x00008000@0x00006000(resource),0x0000A000@0x0000E000(kernel),
0x00002000@0x00018000(backup),-@0x0001A000(boot)

大神,原包里的parameter里没有定义rootfs地址,可以分享下你解压出来的parameter吗
作者: zorb    时间: 2018-1-31 08:44
zorb 发表于 2018-1-30 16:59
FIRMWARE_VER: 6.0.1
MACHINE_MODEL: RK3399
MACHINE_ID: 007

已经自行解决了
作者: incle    时间: 2018-7-6 17:41
  1. ********RKImageMaker ver 1.62 ********
  2. Generating new image, please wait...
  3. Error:Open boot file failed!
复制代码


打包一直出现这个问题。 基本上文件没有做改动。 用 管理员身份运行也不行。
作者: incle    时间: 2018-7-9 14:35
E:\JOB\_WeeklyReport\201807_30\QQ426.png
作者: incle    时间: 2018-7-9 14:37
jie tu

QQ426.png (666.67 KB, 下载次数: 554)

QQ426.png

作者: 2422754416    时间: 2018-10-22 15:54
大佬,不能偷懒啊,apt install xubuntu-desktop后的镜像用2048的大小貌似装不进去的
作者: lq08025107    时间: 2019-3-1 16:32
zorb 发表于 2018-1-31 08:44
已经自行解决了

最烦你这种,问问题时候希望别人回答 最后自己说解决了 也不说方法
作者: wfjdemmye    时间: 2019-8-2 12:01
agin719 发表于 2017-10-18 15:27
有64位系统的内核代码吗,怎么编译出rk3399的64位ubuntu系统?

同问啊,怎么在新的buildroot里面编译出rk3399的64位ubuntu系统呢
作者: alvin427    时间: 2020-5-10 01:16
Good Study
作者: jiamianshiye    时间: 2020-9-27 15:07
我遇见的问题是,用ubuntu16base 做系统,不安装xubuntu-desktop能够正常启动,hdmi接口上也能出字符界面。但是安装了xubuntu后就没有输出了,日志也有一堆错误。

我下载了个官方的lubuntu现成的镜像,解包后把boot.img/uboot.img/trust.img一个个替换到我的sdk中,重做的update.img也无法出来xubuntu界面,直到把官方的lubuntu的rootfs.img替换了后,做出来的才出现了Lubuntu界面。、

现在还不知道是xubuntu的安装是否还有其它注意事项。
作者: wx_星星_lr38R    时间: 2021-4-21 17:07
谢谢大佬
作者: fireinthehole    时间: 2022-4-10 20:55
wx_星星_lr38R 发表于 2021-4-21 17:07
谢谢大佬


image.jpg (115.2 KB, 下载次数: 593)

image.jpg

image.jpg (115.2 KB, 下载次数: 566)

image.jpg





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