1. 安装依赖包

参照官网wiki教程 - 12章节:Nanopi 教程wiki

安装以下依赖包。

sudo apt-get -y install bison g++-multilib git gperf libxml2-utils make python-networkx zip
sudo apt-get -y install flex curl libncurses5-dev libssl-dev zlib1g-dev gawk minicom
sudo apt-get -y install openjdk-8-jdk
sudo apt-get -y install exfat-fuse exfat-utils device-tree-compiler liblz4-tool
sudo apt-get -y install android-tools-fsutils
sudo apt-get -y install swig
sudo apt-get -y install python-dev python3-dev

2. 安装交叉编译器工具链

安装aarch64-linux-gcc 6.4,用来编译Linux系统的内核和u-boot。

git clone https://github.com/friendlyarm/prebuilts.git -b master --depth 1
sudo mkdir -p /opt/FriendlyARM/toolchain
之后按照其中的README.md进行安装
cd prebuilts/gcc-x64
cat toolchain-4.9.3-armhf.tar.gz* | sudo tar xz -C /
cat toolchain-6.4-aarch64.tar.gz* | sudo tar xz -C /

看下工具链中都有啥:4.9.3是cortex-A9的,6.4-aarch64是cortex-A53的。

交叉编译工具链已经被解压到根目录中,接着将编译器的路径加入到PATH中。

用vi编辑,vi ~/.bashrc,在末尾加入以下内容:

export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto

Esc,:wq。保存退出。

关闭当前终端重新打开,使 ~/.bashrc 生效。验证工具链是否安装成功:

aarch64-linux-gcc -v

验证成功后就可以把 prebuilts 文件夹都删掉了。

3. 编译FriendlyDesktop的Uboot源码

参照官网wiki教程,编译FriendlyDesktop的Uboot源码。

git clone https://github.com/friendlyarm/uboot-rockchip --depth 1 -b nanopi4-v2014.10_oreo
cd uboot-rockchip
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
make CROSS_COMPILE=aarch64-linux- rk3399_defconfig
make CROSS_COMPILE=aarch64-linux-

编译完成后会生成 uboot.img、trust.img 和 rk3399_loader_v1.22.119.bin这3个文件,将其拷贝到eflasher系统的SD卡覆盖旧文件:

路径中的 liang 是我的登陆用户名,要根据个人电脑修改。

cp uboot.img trust.img /media/liang/FriendlyARM/friendlydesktop-arm64
cp rk3399_loader_v1.22.119.bin /media/liang/FriendlyARM/friendlydesktop-arm64/MiniLoaderAll.bin

4. 编译FriendlyDesktop的内核源码

参照官网wiki教程,编译FriendlyDesktop的内核源码。

git clone https://github.com/friendlyarm/kernel-rockchip --depth 1 -b nanopi4-linux-v4.4.y kernel-rockchip
cd kernel-rockchip
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin/:$PATH
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4_linux_defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux- nanopi4-images

编译完成后会生成 kernel.img resource.img 这2个文件,将其拷贝到eflasher系统的SD卡覆盖旧文件:

路径中的 liang 是我的登陆用户名,要根据个人电脑修改。

cp kernel.img resource.img /media/liang/FriendlyARM/friendlydesktop-arm64/

5. 修改开机logo

一开始以为它的开机图片在它的Uboot中,因为串口终端调试时发现:开机logo在内核启动前就已经显示出来了。

查看 /tools/logos ,并没有发现 FriendlyARM 的logo。

后来编译 内核时发现,开机logo就在 内核的根目录下,并没有在 linuxsrc/drivers/video/logo下。

用自己的logo(分辨率不限),重命名替换掉以前的logo。重新编译内核,再将生成的镜像拷贝到eflasher系统的SD卡覆盖旧文件,重新烧录系统。开机图片修改成功。

编译FriendlyDesktop的Uboot源码、内核,修改开机图片logo相关推荐

  1. uboot源码——内核启动分析

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 参考资料:http://www.cnblogs.com/biaohc/p/6403863.html 总结:uboot启动linux内核的整个 ...

  2. uboot源码下载以及编译

    环境:ubuntu 20.04 uboot源码下载以及编译 1 uboot源码下载: 1.1 进入uboot官网 1.2 下载源码 2 编译uboot 2.1 配置 2.2 编译 2.2.1 确认编译 ...

  3. 开发板与虚拟机组网、uboot源码makefile分析、uboot安全启动与非安全启动方式、uboot源码配置与编译流程、制作TF启动盘

    开发板与虚拟机组网. 局面:开发板.PC(Ubuntu系统).网线直连PC:设置Ubuntu系统:1.设置桥接模式,桥接到PC的有线网卡上:2.手动配置IP V4的地址信息,注意和开发板保持在同一网段 ...

  4. U-Boot源码目录分析(VScode工程创建及文件夹过滤)

    参考:U-Boot工程目录介绍 作者:一只青木呀 发布时间: 2020-10-21 14:47:30 网址:https://blog.csdn.net/weixin_45309916/article/ ...

  5. 什么是U-Boot以及如何下载U-Boot源码

    参考:什么是U-Boot以及如何下载U-Boot源码? 作者:一只青木呀 发布时间: 2020-10-20 11:05:59 网址:https://blog.csdn.net/weixin_45309 ...

  6. 嵌入式之uboot源码分析-启动第二阶段学习笔记(下篇)

    接上部分---->嵌入式之uboot源码分析-启动第二阶段学习笔记(上篇) 注:如下内容来自朱老师物联网大讲堂uboot课件 3.2.14 CFG_NO_FLASH (1)虽然NandFlash ...

  7. 自己动手编译Android 8.0源码

    转载自:http://blog.csdn.net/dl6655/article/details/78869501 安装git并且配置 sudo apt-get install git git conf ...

  8. petalinux uboot源码怎么打补丁

    petalinux的源码 petalinux工程对于我来说,就是有一点不能直接起修改源码,你需要间接的修改源码的内容? 这个修改你还需要遵从petalinux的规章流程. 当你不知道的时候你会感到无从 ...

  9. uboot源码分析(基于S5PV210)之启动第一阶段

    目录 一.start.S引入 1.u-boot.lds中找到start.S入口 2.SourceInsight中如何找到文件 3.SI中找文件技巧 二.start.S解析 1.不简单的头文件包含 2. ...

最新文章

  1. 通过源码分析Android 的消息处理机制
  2. Oracle Export方式数据库备份和恢复(一)
  3. python cookbook 豆瓣_备受好评的20本python图书,不用到处找了!
  4. mongodb 高级查询 统计记录条数
  5. 用Python算24点
  6. 5G第一个演进版本标准完成 3GPP宣布R16标准冻结
  7. html怎么插入jq背景,HTML 全屏背景的方法
  8. linux 查看登录记录,Linux查看用户登陆历史记录
  9. 利用微信搜索抓取公众号文章
  10. 2db多少功率_db与w换算(1db等于多少功率)
  11. 提交健康信息服务器拥挤,python hpilo 监控 hp ilo 服务器健康信息
  12. java-01背包(动态规划)
  13. Veritas调研显示:全球企业普遍担心由于不符合新欧盟数据条例导致业务受损
  14. 自学前端需要达到什么水平才能找到工作?
  15. 职场七年之痒,如何抉择
  16. VS2010模仿QQ2011登陆界面
  17. JavaScript中23个String方法(下)
  18. 【观察】联想HPC:独步青云之后,重在行业普惠
  19. Vue刷新页面的三种方式
  20. centos关机命令(centos关机命令会重启)

热门文章

  1. C++串口通信API方式
  2. SharePoint PowerShell 批量删除遗弃视图
  3. PHP-Java-Bridge使用笔记
  4. 深度解析javascript中的浅复制和深复制
  5. solr4.3纠错源码学习二——基于主索引
  6. 在MVC3中怎么实现分类列表?
  7. OGC 开放地理信息系统协会
  8. 【Java从0到架构师】SQL 多表查询
  9. 通向财务自由之路03_判断之偏好:掌握市场为何对多数人来说如此之难
  10. mysql 源码设计,java+mysql大学网络社区平台设计+源代码