1.6 打包原始固件

把你的 Linux 根文件系统映像文件放在 out/rootfs.img

out 目录将包含以下文件:

$ tree out

out

├── boot.img

├── kernel

│ ├── Image

│ └── rk3328-roc-cc.dtb

├── rootfs.img

└── u-boot

├── idbloader.img

├── rk3328_loader_ddr786_v1.06.243.bin

├── trust.img

└── uboot.img2 directories, 8 files

./build/mk-image.sh -c rk3328 -t system -r out/rootfs.img

这条命令根据《存储映射》所描述的布局,将分区映像文件写到指定位置,最终打包成 out/system.img,

烧写原始固件的步骤,请参考 《上手指南》 一章。

二、遇到的问题

2.1 uboot编译问题

rkbin路径没有加上bin

文件丢失

rk3328_ddr_786MHZ_v1.06.bin

rk3328_miniloader_v2.43.bin

rk3328_bl31_v1.34.bin

rk3328_loader_ddr786_v1.06.243.bin

firefly丢失的文件可以在下面资源找到

改完路径,拷贝以上文件,u-boot编译成功

2.2 编译kernel遇到的问题

本来内核是在ubuntu16上编译的,但是我在18上编译了。很多都是gcc版本引起的,解决起来也比较简单

drivers/net/wireless/rockchip_wlan/rtl8821cu/hal/phydm/phydm_adc_sampling.c:46:5: warning: this ‘else’ clause does not guard... [-Wmisleading-indentation]

error, forbidden warning: phydm_adc_sampling.c:46没加大括号

if-else错误

另一个错误是~号

drivers/net/wireless/rockchip_wlan/rtl8821cu/hal/btc/halbtc8821c1ant.c:2333:30: warning: ‘~’ on a boolean expression [-Wbool-operation]

error, forbidden warning: halbtc8821c1ant.c:2333

~号错误提示

修改办法:

把~号改成!,虽然可能会有问题。但是解决了编译的问题

drivers/net/wireless/rockchip_wlan/rtl8812au/hal/rtl8812a/rtl8812a_mp.c:640:7: warning: statement will never be executed [-Wswitch-unreachable]

解决办法:

把语句放在switch外面

drivers/net/wireless/realtek/rtlwifi/rtl8821ae/dm.c:2488:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]

error, forbidden warning: dm.c:2488

解决办法:后面加括号

2.3 编译根文件的问题

编译根文件的时候可能无法apt-get update,网络错误。使用指令:

cp /etc/resolv.conf mnt/etc/resolv.conf 解决

使用中没有lsusb命令:

apt-get install usbutils

没有lspci:

apt-get install pciutils

没有insmod:

apt-get install kmod

启动A start job is running for Raise network interfaces:

命令:sudo vim /etc/systemd/system/network-online.target.wants/networking.service

将里面的TimeoutStartSec=5min 修改为TimeoutStartSec=2sec

烧录镜像后没有扩容剩余空间

首先需要安装apt-get install parted,然后#vi /etc/rc.local

在exit 0前添加/usr/local/bin/first-boot-recovery.sh启动脚本,给予可执行权限,用来扩容根目录,记得在根目录下新建一个firstboot文件

#!/bin/bash

clean_first_boot () {rm -f /firstboot 2>/dev/null

sync}if [ -e /firstboot ]; then

echo "======Expanding the rootfs..."parted/dev/mmcblk0 -- unit s resizepart 5 -34s

e2fsck-f /dev/mmcblk0p5

resize2fs/dev/mmcblk0p5

clean_first_bootfi脚本内容如上,红色部分看实际情况更改

linux哪个系统能编译固件,rk3328编译Linux固件相关推荐

  1. Linux查看系统所有运行进程,如何在Linux系统列出systemd下所有正在运行的服务

    Linux系统提供各种系统服务(如进程管理.登录.syslog.cron等)和网络服务(如远程登录.电子邮件.打印机.Web主机.数据存储.文件传输.域名解析(使用DNS).动态IP地址分配(使用DH ...

  2. linux的系统架构,(转载)图解Linux系统的系统架构

    我以下图为基础,说明Linux的架构(architecture).(该图参考<Advanced Programming in Unix Environment>) 最内层是硬件,最外层是用 ...

  3. linux查看系统内存和cpu使用率,查看Linux系统内存、CPU、磁盘使用率

    一.查看内存占用 # free -m 以MB为单位显示内存使用情况 [root@localhost ~]# free -m total used free shared buff/cache avai ...

  4. linux 查看系统函数库,教你在Linux操作系统中如何创建函数库

    函数库分为静态库和动态库两种.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存 ...

  5. linux安装系统如何查看硬盘,如何检查Linux系统服务器的硬盘是SSD还是HDD?

    如果您购买了一台服务器,安装的是Linux系统,例如Ubuntu.你无法确定是配置硬盘是SSD(固态硬盘)还是普通的HDD(硬盘).今天我们来简单介绍一下如何查看Linux操作系统中的硬盘是SSD还是 ...

  6. dl388 linux系统安装系统,HP DL388G5 安装64位linux虚拟系统出错!

    今天拿机房一台闲置的HP DL388G5来做实验用,CPU E5405 4G内存,还凑活. 安装完64位的windows2008R2企业版后安装vmware8.0虚拟机,接下来整了个64位的cento ...

  7. linux虚拟机系统如何读取u盘文件,linux如何读取U盘

    sclzwj 于 2010-01-05 18:55:22发表: 学习了. sclzwj 于 2010-01-05 18:54:21发表: 学习了. zhmymichael 于 2010-01-05 1 ...

  8. linux重装系统怎么保存home下文件,Linux系统重装与还原

    当初第一次装ubuntu系统时,对文件系统的构成还不太了解,所以在分区的时候给home的分区特别小,导致后期软件都装不进去.说磁盘已满.所以想对系统又一次分区. 上网找了资料,都说用GParted这个 ...

  9. Kali Linux攻防系统(三:在Kali Linux系统中配置安全测试浏览器及系统清理备份)

    任务三:配置安全测试浏览器及系统清理备份 3.1.汉化Firefox并安装安全插件 3.1.1.汉化Firefox浏览器,安装中文插件,并更改设置: 3.1.2.在浏览器附加组件管理器中查找" ...

最新文章

  1. auot lisp 选择集处理_第64集 python机器学习:用预处理进行参数选择
  2. c语言 文件截断,c – 是否有一种正统的方法来避免编译器警告C4309 – “二进制文件输出的”常数值的截断“?...
  3. 电脑显示器变色_流光溢彩电竞出击:飞利浦猛腾M1系列电竞显示器275M1RZ
  4. 初学__Python——Python的流程控制语句 if、for、while
  5. python自学笔记_python学习笔记(4)
  6. java 自定义注解_Java注解
  7. Error: if there's nested data, rowKey is required.
  8. 前端抓潜,必须设置门槛,筛选优质客户
  9. 如何在SQL Server中自动进行表分区
  10. 【转】Data truncation: Truncated incorrect DOUBLE value:Mysql Update时
  11. MyBaties入门
  12. 计算机窗体视频教程,计算机二级Access2010视频教程
  13. Java学习篇之I/O篇
  14. python实现单词的简单爬取
  15. [Go] String型常用操作
  16. 12位串行AD转换器TLC2543与单片机的接口设计与编程
  17. junit测试service时一直报空指针异常
  18. WinMail邮件服务器(客户端)环境搭建与配置
  19. 使用dba_waiters检查锁等待
  20. 2021icpc沈阳 J

热门文章

  1. AI智能问答核心代码
  2. 洛谷 P4409 [ZJOI2006] 皇帝的烦恼
  3. 剑指offer python版 数组中只出现一次的两个数字
  4. HTML的SEO(搜索引擎优化)标准
  5. 网络流24题之最长k可重区间集问题
  6. 北航校赛2014 预赛 题解
  7. 从C语言中的指针看C#中委托
  8. 精通Android自定义View(十九)自定义圆形炫彩加载转圈效果
  9. 一步一步跟我学习hadoop(5)----hadoop Map/Reduce教程(2)
  10. Android Weekly Notes Issue #230