电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区
论坛
开发板专区
RK3399从零制作ubuntu
RK3399从零制作ubuntu
LiuYang
LV5工程师
| 2017-08-21 21:32:56
浏览量 2034
回复:2
发表新帖
本帖最后由 LiuYang 于 2017-8-21 21:35 编辑
标题有点大了,其实没什么,就是按照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.php/Firefly-RK3288/Build_android#.E5.87.86.E5.A4.87.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中找到的
。开始烧写,这个方法就不用再说了吧。
烧写后自动重启,系统跑起来了,没有安装桌面的系统。
(完)
本帖最后由 LiuYang 于 2017-8-21 21:35 编辑
标题有点大了,其实没什么,就是按照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.php/Firefly-RK3288/Build_android#.E5.87.86.E5.A4.87.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中找到的
。开始烧写,这个方法就不用再说了吧。
烧写后自动重启,系统跑起来了,没有安装桌面的系统。
(完)
0
收藏
举报
分享
×
微信分享
扫描二维码分享
qq分享
QQ空间分享
微博分享
我来回复
登录后可评论,请
登录
或
注册
所有回答
数量:
2
xdsnet
2018-01-05
写的比较
0
回复
举报
发布
IC爬虫
2017-12-01
这个还有点价值
0
回复
举报
发布
×
举报
举报人:
被举报人:LiuYang
*
类型:
请选择类型
问题质量差
垃圾广告信息
偏离社区主题
违规内容
不友善内容
与社区已有问题重复
以上选项都不是
*
详细原因:
取消
提交
x
收藏成功!点击
我的收藏
查看收藏的全部帖子