King3399 SDK(ubuntu文件系统)编译简明教程

news2024/12/27 11:31:37

该文章仅供参考,编写人不对任务实验设备、人员及测量结果负责!!!

0 引言

文章主要介绍King3399(瑞芯微rk3399开发板,荣品)官方SDK(Ubuntu文件系统)编译过程,涉及环境配置、网络连接(有线局域网)、远程文件复制(SSH)等

1 编译环境

编译SDK(Ubuntu系统)时,windows主机、ubuntu主机配置可参考上一篇文章《King3399 SDK编译简明教程-1 编译环境》,官方文档有明确说明,无论最后要使用什么系统,都请先全局编译一次 buildroot,之后再进行其他系统的编译,以避免出现需要某个依赖的工具找不到的情况,本文是在上一篇文章(成功编译buildroot)的基础上选择Ubuntu文件系统进行编译

首先下载官方提供的 ubuntu 文件系统(约1G),文件系统路径如下:

cdrom_king3399_new/01-SDK/Linux/source/ubuntu-20240531.tgz

cdrom_king3399_new/01-SDK/Linux/source/ubuntu-20240531.md5

将上述两个文件下载到共享文件夹下并在ubuntu主机中对下载文件进行md5校验

# 切换当前路径为共享文件夹
cd /mnt/hgfs/sharefile

# 对ubuntu文件系统进行校验,返回:xxx
md5sum ubuntu-20240531.tgz 

# 打开.md5文件,内容:ooo
vim ubuntu-20240531.md5

# 若指令md5sum的返回值xxx与.md5中的值ooo相同则说明文件无误

# 查看/home/username/ws/sdk/下有无ubuntu文件夹,若无则创建ubuntu文件夹
mkdir ubuntu

# 将.tgz解压到home/username/ws/sdk/ubuntu下
tar xzvf ubuntu-20240531.tgz -C /home/username/ws/sdk/ubuntu/

# 解压完成后将在/home/username/ws/sdk/ubuntu/下生成ubuntu.img文件
ls  # return ubuntu.img

# 配置编译输出文件,在/home/username/ws/sdk目录下执行命令如下:
./build.sh init

# 第一个选择 2  (2. rk3399),根据实际板子型号选择

# 第二个选择 4  (4. king-rk3399-ubuntu_defconfig),根据需要编译的文件系统选择

# 全局编译ubuntu,在/home/username/ws/sdk目录下执行命令如下:
./build.sh # 耗时 25 min,编译成功后占用磁盘空间 5G

# 编译过程中产生的日志可在下述目录查看
# /home/username/ws/sdk/output/sessions/2024-aa-bb_cc...

# ubuntu文件系统编译完成后会在/home/username/ws/sdk/rockdev下生成所需镜像
ls -hl
# boot.img -> ../../kernel/boot.img
# linux-headers.tar
# MiniLoaderAll.bin -> ../../u-boot/rk3399_loader_v1.30.130.bin
# misc.img -> ../misc.img
# oem.img
# parameter.txt -> ../../device/rockchip/.chips/rk3399/parameter.txt
# recovery.img -> ../recovery/ramboot.img
# rootfs.img -> ../../ubuntu/ubuntu.img
# trust.img -> ../../u-boot/trust.img
# uboot.img -> ../../u-boot/uboot.img
# update.img -> ../update/Image/update.img
# update-rk3399-king-rk3399-ubuntu-mipi-7-1024-600-20240922-165231.img -> ../update/Image/update.img
# userdata.img

# 将这些镜像复制到共享目录下,
# 不能直接使用 cp -r rockdev /mnt/hgfs/sharefile
# 只能一个一个复制到共享目录下

# 烧录并重启板子,ubuntu文件系统开机界面如下

图00 ubuntu开机界面图

2 网络连接

编译后的系统无法使用wifi连网,可能是在编译前没有配置,本人没有过多研究,感兴趣的可以去资料中看看具体的说明,本文给出两种网络连接方式,建议使用有线网络连接,文章中提到无线网络连接部分是条件所限,不保证参考该部分能够顺利连接网络!

关于连接网络这部分内容网上有很多文章,修改的文件与使用的指令也不尽相同,有的照着修改后并没有得到理想的效果这很正常,毕竟大家的设备状态并不完全相同,所以记住一点:修改前做备份,修改后做笔记,多看,多改,多总结

2.1 有线网络连接

通常在开发时最简易的办法就是将主机与从机通过网线连接到同一个路由器(交换机),这样组成的局域网便于使用ssh或nfs进行文件传输与管理,由于这种方式使用的最为广泛,网上可参考的文章也较多,因此这里只大概提一下,连接示意图如下

图01 有线连接
利用网线将windows主机与king3399从机连接到同一个路由器后,分别在ubuntu主机、king3399从机中打开终端并输入ip a或者ifconfig查看ip,通常返回内容包含三个部分:ens33/eth0(有线网络接口,以太网)、lo(本地环回接口)以及wlan(无线网络接口),这里使用的是网线,因此只关心ens33/eth0的部分即可,ens33/eth0返回部分中的 inet 192.168.1.147 netmask 255.255.255.0 broadcast 192.168.1.255就是设备的ip信息,不太严谨地说(由于涉及网络部分,不做拓展,感兴趣可自行查看相关资料),若此处inet字段的前三部分相同则可认为设备处于同一局域网内,此时可通过ping指令检验设备间网络是否正常,此处建议先通过ping www.baidu.com查看设备能否正常上网,若设备可以正常上网,且可以相互ping通,则设备可更新/安装软件与设备间文件传输,由于本人没有路由器和有线网络,因此这部分只大致提一下

2.2 无线网络连接

这里的无线并不是指直接利用板子的wifi模块连接无线网络,而是通过网线间接连到wifi,具体的连接如下图所示
图02 有线连接
windows主机共享网络(测试时以笔记本为windows主机),进入windows主机的“更改适配器”
图03 网络适配器
选择“WLAN”,右键选择“属性”,选项卡选择“共享”,勾选上“允许其他网络用户通过此计算的Internet连接来连接”,再在“家庭网络连接”中选择“以太网”,注:该操作在主机重启或者关机后需要关闭再打开!!!
图04 共享网络
此时WLAN中显示为Shared状态,继续在“更改适配器”选项中查看“以太网”,在“以太网”上右键选择“属性”,接着查看它的IPV4网络属性,双击“Internet协议版本4(TCP、IPV4)”,查看网络信息(使用下面的ip地址) ip地址:192.168.137.1 ,子网掩码:255.255.255.0,使用下面的dns服务器地址,这几条信息下边会用到
图05 以太网适配器

2.3 配置King3399网络

打开king3399的网络配置界面,具体配置如下图所示,此处的Address(对应文章中2.2节中的三条信息)只需填写一个比192.168.137.1靠后的ip就行(前三字段相同,最后一个字段介于1~255)
图06 king网络适配
分别在ubuntu主机与king3399从机编辑 /etc/systemd/resolved.conf 这个文件,把 DNS 那一行解开注释修改前建议先将文件备份,若出现意外还可退回!

cd /etc/systemd/
sudo vim resolved.conf

# 释放DNS配置,作如下修改并保存
DNS=8.8.8.8 1.1.1.1

重启板子并打开命令行,不出意外的话ping www.baidu.com能够收到数据包,此时板子成功连接网络

虚拟机中的ubuntu主机在配置网络时使用的是桥接模式,因此ubuntu主机与windows主机应在同一局域网内,相互可以ping通(windows下,win+r 并输入 cmd 打开命令行窗口,输入ipconfig /all 查看网络信息),下图为将ubuntu主机配置为桥接模式
图07 桥接模式
图08 桥接模式

修改完成后可以重启ubuntu主机与king3399从机,通过·ip a 查看ip,并尝试能否相互ping通

3 远程复制文件SSH

在ubuntu上用于远程管理文件的方式有很多,实现过程大同小异,这里以SSH为例

# king3399连网后先对软件库进行更新
sudo apt update
sudo apt upgrade

# 安装openssh-server
# ubuntu主机、king3399从机都需要安装
sudo apt install -y openssh-server

# 启用ssh
# ubuntu主机、king3399从机都需要启用
# 注:系统重启后若无法ssh,可尝试再次启用
sudo /etc/init.d/ssh start
sudo service sshd restart

# king3399从机向ubuntu主机传递文件
scp test_from_king.txt username@aaa.bbb.ccc.ddd:/home/username/ws
# 此处username为目的主机名,也即ubuntu主机名
# 此处aaa.bbb.ccc.ddd为目的主机ip,也即ubuntu主机ip
# 允许传递
# The authenticity of host...can't be established.
# ECDSA key fingerprint is SHA256:...
# Are you sure you want to continue connecting (yes/no)? yes
# 输入ubuntu主机开机密码

# ubuntu主机向king3399从机传递文件
scp test_from_ubuntu.txt username@aaa.bbb.ccc.eee:/home/username/ws
# 此处username为目的主机名,也即king3399名
# 此处aaa.bbb.ccc.eee为目的主机ip,也即king3399的ip
# 允许传递
# The authenticity of host...can't be established.
# ECDSA key fingerprint is SHA256:...
# Are you sure you want to continue connecting (yes/no)? yes
# 输入king3399开机密码

这里需要注意的地方有两点:

  1. ubuntu主机与king3399需要在同一局域网中才能使用scp
  2. windows主机每次重启后都需要重新打开共享网络,具体过程就是文章中第5张图,取消勾选“alow other network users to…”,保存并关闭该窗口,然后再次打开该窗口并勾选“alow other network users to…”,选择“以太网”,保存并关闭该窗口。
4 其他

这里分享一个有用的功能,ubuntu中截图并显示图片,尤其在做技术笔记时,毕竟直接使用手机对着屏幕拍照这种方式不管是从画质还是图片大小来说都差强人意

对于ubuntu主机(ubuntu18.04)来说,其系统桌面默认为GNOME,可以使用键盘上的“PrtSc”进行全屏截图,图片默认保存在用户的“Picture”文件夹内,当然也可以使用gnome-screenshot -a进行指定区域截图,图片默认保存地与上述相同

显示图片可以直接使用display /path/to/image.png,这些工具都是系统默认自带的,不需安装,简单实用,满足一般需求

对于king3399从机(ubuntu20.04)来说,其系统桌面默认为Xfce,可以使用键盘上的“PrtSc”进行全屏截图或者是区域截图,不过本人测试发现按下从机键盘上的“PrtSc”这个键后返回“failed to execute child process ‘‘xfce4-screenshooter’’ ( No such file or directory)”,需要重新安装该截图库sudo apt -y install xfce4-screenshooter,安装成功后可以使用从机键盘上的PrtScSysRq键进行截图并指定图片保存路径

显示图片可以直接使用xdg-open /path/to/image.png,不过感觉这个指令不好用,建议安装ristretto查看图片,sudo apt install ristretto,查看图片时使用ristretto /path/to/image.png

脚注[1]中提供的镜像`仅供King3399这个型号的板子使用,不可随意烧录!!!

[1] SDK(ubuntu文件系统)编译后的镜像(分立+完整)BaiduPan( pwd : dl84)

[2] 用Windows通过网线共享网络给其他电脑(Windows、Ubuntu)

[3] Ubuntu 18.04 解决Temporary failure in name resolution DNS解析问题

[4] ubuntu下安装openssh-server失败问题及解决方法

[5] How To Install xfce4-screenshooter on Ubuntu 20.04

[6] win10 vmware没有vmnet0(桥接后无法上网)解决办法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2185985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux bash脚本 远程开发环境配置

参考资料 太香了,VSCode远程开发插件,值得一试Visual Studio Code で Remote SSH する。Managing extensions 目录 一. 远程开发必备二. 连接远程开发服务器三. 安装远程开发插件 一. 远程开发必备 ⏹ VSCode插件 Remote - SSH 通过使用 SSH 链接虚拟…

司法质量改善:巡回法庭的准自然实验(2000-2022年)(原始数据、计算代码、最终计算结果(Excel和Dta)和参考文献)

巡回法庭的设立背景 最高人民法院自2015年起分批次设立地方巡回法庭,以期改善司法质量,促进司法公正。这种改革措施为研究提供了一个独特的机会,可以通过准自然实验的方法来评估其效果。 2000-2022年司法质量改善:巡回法庭的准自…

PYTHON实现HTTP request的一些有用的函数

前言 我们知道,当需要设计一个程序和服务器进行交互时,往往会用到HTTP的request,即服务器有一个对外接口REST API,因此当向服务器发送符合格式要求的HTTP request时,服务器会给出响应,甚至执行一些任务。如…

机器学习模型算法

前言 机器学习离不开数据、和模型算法,常用的套路包含数据预处理、模型学习、模型评估、样本预测几个步骤。 数据预处理:从原始raw数据,经过(特征处理幅度缩放、特征选择、维度约减、采样),输出测试集和训…

Java 16Java 17(LTS版本)新特性概述

一、Java 16 发布于2021年3月16日。Java 16主要特性有: JEP 338:Vector API (Incubator) 向量 API(第一轮孵化) JEP 387:Elastic Metaspace 弹性元空间 JEP 389:Foreign Linker API (Incubator) 外部链接…

鸿蒙OpenHarmony

开源鸿蒙系统编译指南 Ubuntu编译环境配置第一步:Shell 改 Bash第二步:安装Git和安装pip3工具第三步:远程仓配置第四步:拉取代码第五步:安装编译环境第六步:本地编译源码 Windows开发环境配置第一步&#x…

生信初学者教程(二十四):筛选交集特征

文章目录 介绍加载R包导入数据重叠的重要特征重要特征的韦恩图输出结果总结介绍 在数据分析和机器学习项目中,特征选择是一个至关重要的步骤,它有助于识别数据集中与目标变量最相关的特征。当通过不同的机器学习方法筛选出重要特征时,对这些特征取交集以识别核心特征,是一种…

【重学 MySQL】五十、添加数据

【重学 MySQL】五十、添加数据 使用INSERT INTO语句添加数据基本语法示例插入多行数据注意事项 使用LOAD DATA INFILE语句批量添加数据其他插入数据的方式注意事项 在MySQL中,添加数据是数据库操作中的基本操作之一。 使用INSERT INTO语句添加数据 使用 INSERT IN…

资源《Arduino UNO R3 proteus 仿真工程》说明。

资源链接: Arduino UNO R3 proteus 仿真工程 1.文件明细: 2.文件内容说明 包含:AD工程、原理图、PCB。 3.内容展示 4.简述 该文件为proteus工程,用于Arduino uno r3仿真。 因为软件自动运行,所以最小系统上没有…

全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字符串

全网最适合入门的面向对象编程教程:55 Python 字符串与序列化-字节序列类型和可变字节字符串 摘要: 在 Python 中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些字节的实际数据结构&am…

论文笔记:iCaRL: Incremental Classifier and Representation Learning

1. Contribution 提出了一种新的训练策略,iCaRL:允许以增量方式学习:只需要同时存在一小部分类别的训练数据,新类别可以逐步添加。同时学习分类器和数据表示:iCaRL能够同时学习强大的分类器和数据表示,这与…

OpenGL ES MVP/变换投影矩阵(8)

OpenGL ES MVP/变换投影矩阵(8) 简述 通过前面几节的学习,目前我们已经可以渲染自己想要的图像,也可以通过纹理加载图片进行渲染。接下来我们来学习一下MVP,这里的MVP不是Android应用开发里的框架MVP,而是Model,View…

电场能量磁场能量相等,注意电场能量公式也没有复数形式(和坡印廷类似)

下面是电场能量密度和磁场能量密度的公式,注意这可不是坡印廷定理。且电场能量密度没有复数表达式,即不是把E和D换成复数形式就行的。注意,一个矢量可以转化为复数形式,两个矢量做运算不能转化为两个复数形式的矢量做运算&#xf…

什么是SPI机制

什么是SPI机制 SPI机制是Java平台提供的一种强大的动态扩展机制,能够让程序在运行时灵活地加载和使用服务提供者的实现类。我们这里带大家简单的了解一下SPI机制是如何工作的 SPI(Service Provider Interface,服务提供者接口)机制…

JavaScript while循环语句

While语句包括一个循环条件和一段代码块&#xff0c;只要条件为真&#xff0c;就不断循环执行代码块。 while(条件){语句;} var i0;while(i<100){console.log(i);i1;} 注意&#xff1a;所有的for循环都可以改写为while循环

Spring Boot 和 MyBatis-Plus凑一块儿了,这份教程你得看

一、引言 MyBatis-Plus 是 MyBatis 的增强版&#xff0c;提供了 CRUD 接口、分页插件、性能分析插件等特性&#xff0c;简化了开发过程。本文将详细介绍如何在 Spring Boot 项目中集成 MyBatis-Plus。 支持的数据看也越来越多&#xff0c;值得去搞一下&#xff0c;写了一个小例…

《PMI-PBA认证与商业分析实战精析》第5章 需求启发与分析

第5章 需求启发与分析 本章主要内容&#xff1a; 需求启发 需求分析 模型化与优化需求 记录、确认、核实和批准需求 本章涵盖的考试重点&#xff1a; 需求启发的四项活动 需求启发的八项技术 启发提问的四种类型问题 启发原型的类型 访谈的四种分类 观察技术的四种类…

华三资源

华三华三官方网站华三公司官网新华三 - 融绘数字未来&#xff0c;共享美好生活华三华三文档中心华三文档资源文档中心-新华三集团-H3C华三华三 ICT百科华三 ICT知识百科H3C ICT知识百科-新华三集团-H3C华三华三文档高级查找高级文档搜索新华三 - 融绘数字未来&#xff0c;共享美…

已解决:Could not find artifact xxx

已解决&#xff1a;Could not find artifact xxx 文章目录 写在前面问题描述报错原因分析 解决思路解决办法1. 检查依赖声明的正确性2. 检查远程仓库配置3. 检查网络连接4. 清理本地缓存并强制更新5. 手动上传依赖到私有仓库6. 检查本地仓库是否已被损坏 总结 写在前面 在使用…

V2V迁移:vsphere至openstack

预检查 检测待迁移实例是否已安装并配置virtio相关的块设备驱动、网卡驱动&#xff0c;linux包括kernel、initramfs&#xff0c;windows包括磁盘控制器、网卡。 Linux 系统检查 Virtio 驱动 Windows 系统检查 Virtio 驱动 环境 1、下载安装ovftool 2、安装qemu-kvm&#x…