ARM uboot 的移植0-从三星官方 uboot 开始移植的准备工作

news2024/12/29 9:34:35

一、移植前的准备工作

1、三星移植过的uboot源代码准备

(1) 三星对于 S5PV210 的官方开发板为 SMDKV210,对应的移植过的 uboot 是:三星官方为210移植过的uboot和kernel/android_uboot_smdkv210.tar.bz2。
在这里插入图片描述


(2) 这个源代码网上是下载不到的,三星官方是不会把这些东西放在官网上下载的。这些东西都是随着官方的开发板一起流出的。


2、代码阅读工具的准备

(1) 移植的时候最重要的工作就是看代码、改代码,然后编译运行测试。

(2) 编译代码必须在 linux 中(在 windows 共享文件夹中,配置 uboot 不行的),那么看代码和改代码可以在 linux 中(vim、gedit)也可以在 windows 中(Sourceinsight)。

(3) 一般习惯的方式是:在 windows 中解压一份 uboot 源代码,在 linux 中也解压一份,注意这两份代码原始情况是一模一样的。然后移植的时候是,在 windows 中这一份中去看代码、改代码;在 linux 中这一份去编译烧写。这种做法需要在 windows 中和 linux 中, 2 份代码之间保持同步(直白点说就是 windows 中改过了后,要把改过的源代码复制到 linux 中那一份,去覆盖 linux 中那一份里面的同目录同文件)。

(4) 问题来了,怎么在 windows 中和 linux 中同步代码?通过共享文件夹,在 linux 中进行复制(cp /mnt/hgfs/winshare/xxx.c ./ );通过一些专用工具,譬如 sshsecureshell。


3、虚拟机上网

不同的 ubuntu 版本中,网卡重启的命令不同。

在 ubuntu10.04 中网卡重启使用:/etc/init.d/networking restart 或者 service network restart 就可以;

但是在 ubuntu14.04 中这两个都不行了,要重启网卡需要使用:ifdown eth0, 然后 ifup eth0 即可。


二、ubuntu14.04 上网及安装 openssh

1、ubuntu14.04 上网问题

(1) 虚拟机上网有 2 种模式,NAT 和桥接。

(2) 虚拟机上网配置要注意这几个地方:

第一个要注意选择 NAT 还是桥接模式;

第二个要注意 ubuntu 中网络配置文件 /etc/network/interfaces ,这个文件中是配置网卡信息的(譬如静态 ip 还是 dhcp,静态 ip 地址是多少等);

第三个如果是桥接模式,要注意桥接到哪个网卡上(一般笔记本都有 2 个网卡,一个是有线网卡,一个是无线网卡),如果是 NAT 模式则无所谓。


(3) ubuntu14.04 中重启网卡的命令变了。

(4) 演示:NAT 方式下,上网的配置过程

前提是主机 windows 通过无线 wifi 上网了(或者 windows 通过有线上网也可以)。然后在虚拟机中配置 2 点:

第一,选择 NAT 方式;

在这里插入图片描述


第二,配置 /etc/network/inerfaces 文件中,使用 dhcp 方式;然后重启网卡,确认 ip 地址得到后即可上网。

在这里插入图片描述

实验现象:

root@ubuntu:/home/aston# ifdown eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:5f:95:ee
Sending on   LPF/eth0/00:0c:29:5f:95:ee
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 192.168.124.254 port 67 (xid=0x796df21f)
root@ubuntu:/home/aston# 
root@ubuntu:/home/aston# ifup eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:5f:95:ee
Sending on   LPF/eth0/00:0c:29:5f:95:ee
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x27f1e102)
DHCPREQUEST of 192.168.124.128 on eth0 to 255.255.255.255 port 67 (xid=0x27f1e102)
DHCPOFFER of 192.168.124.128 from 192.168.124.254
DHCPACK of 192.168.124.128 from 192.168.124.254
bound to 192.168.124.128 -- renewal in 782 seconds.
root@ubuntu:/home/aston# 
root@ubuntu:/home/aston# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:0c:29:5f:95:ee  
          inet addr:192.168.124.128  Bcast:192.168.124.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe5f:95ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:83 errors:0 dropped:0 overruns:0 frame:0
          TX packets:152 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:10699 (10.6 KB)  TX bytes:21038 (21.0 KB)
          Interrupt:19 Base address:0x2000 

root@ubuntu:/home/aston# ping www.baidu.com
PING www.a.shifen.com (163.177.151.110) 56(84) bytes of data.
64 bytes from 163.177.151.110: icmp_seq=1 ttl=128 time=57.7 ms
64 bytes from 163.177.151.110: icmp_seq=2 ttl=128 time=31.9 ms
64 bytes from 163.177.151.110: icmp_seq=3 ttl=128 time=28.8 ms
64 bytes from 163.177.151.110: icmp_seq=4 ttl=128 time=68.4 ms
64 bytes from 163.177.151.110: icmp_seq=5 ttl=128 time=31.6 ms
64 bytes from 163.177.151.110: icmp_seq=6 ttl=128 time=143 ms
64 bytes from 163.177.151.110: icmp_seq=7 ttl=128 time=41.6 ms
64 bytes from 163.177.151.110: icmp_seq=8 ttl=128 time=66.7 ms
^C
--- www.a.shifen.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 8102ms
rtt min/avg/max/mdev = 28.884/58.835/143.660/35.367 ms
root@ubuntu:/home/aston# 

如果无法 ping 通外网,可以尝试重启 ubuntu 虚拟机,或者可能是其他网络配置问题,比如 DNS 服务等。


(5) 演示:桥接方式上网的配置过程

前提是主机 windows 通过无线 wifi 上网了(主机通过有线网卡上网的配置方式有不同)。然后虚拟机中配置注意三点:

第一,选择 桥接 方式;

在这里插入图片描述


第二,配置桥接到无线网卡(如果主机 windows 是通过有线上网的,则桥接到有线网卡);

在这里插入图片描述


第三,配置 /etc/network/inerfaces 文件中,使用 dhcp 方式;然后重启网卡,确认 ip 地址得到后即可上网。
在这里插入图片描述

实验现象:

root@ubuntu:/home/aston# ifdown eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:5f:95:ee
Sending on   LPF/eth0/00:0c:29:5f:95:ee
Sending on   Socket/fallback
DHCPRELEASE on eth0 to 192.168.124.254 port 67 (xid=0x299584b2)
root@ubuntu:/home/aston# 
root@ubuntu:/home/aston# ifup eth0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/00:0c:29:5f:95:ee
Sending on   LPF/eth0/00:0c:29:5f:95:ee
Sending on   Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 interval 3 (xid=0x4ea857b1)
DHCPREQUEST of 192.168.101.23 on eth0 to 255.255.255.255 port 67 (xid=0x4ea857b1)
DHCPOFFER of 192.168.101.23 from 192.168.101.94
DHCPACK of 192.168.101.23 from 192.168.101.94
bound to 192.168.101.23 -- renewal in 1537 seconds.
root@ubuntu:/home/aston# 
root@ubuntu:/home/aston# 
root@ubuntu:/home/aston# ping www.baidu.com
PING www.a.shifen.com (163.177.151.109) 56(84) bytes of data.
64 bytes from 163.177.151.109: icmp_seq=1 ttl=53 time=62.9 ms
64 bytes from 163.177.151.109: icmp_seq=2 ttl=53 time=36.6 ms
64 bytes from 163.177.151.109: icmp_seq=3 ttl=53 time=45.6 ms
64 bytes from 163.177.151.109: icmp_seq=4 ttl=53 time=50.1 ms
64 bytes from 163.177.151.109: icmp_seq=5 ttl=53 time=37.1 ms
^C
--- www.a.shifen.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4016ms
rtt min/avg/max/mdev = 36.648/46.507/62.915/9.671 ms
root@ubuntu:/home/aston# 


(6) 演示:虚拟机要 ping 通开发板 的配置过程。

前提是,开发板和电脑之间通过网线连接好。然后虚拟机中配置注意三点:

第一,选择桥接方式

在这里插入图片描述


第二,配置桥接到有线网卡(如果配置为自动,或者配置桥接到无线网卡,则肯定无法 ping 通开发板);

在这里插入图片描述


第三,配置 /etc/network/inerfaces 文件中使用 static 方式,ip 地址配置保证和主机 windows、开发板三者处于同一网段;然后重启网卡,确认 ip 地址得到后,即可 ping 通开发板。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


(7) windows 系统中有一个 bug,如果 windows 没有检测到有线网卡连接了外部网络,则 windows 中本地连接是不工作的,网卡不工作。解决方案是用网线随便连接一个有联网能力的东西即可,譬如网线连接你的电脑到旁边兄弟的电脑上,譬如插上你的开发板(开发板中运行了 linux 系统),譬如插上路由器端口。


2、搭建 openssh 环境

(1) 安装ssh-server。(sudo apt-get install openssh-server)如果报错提示依赖错误,可以参考:http://www.cnblogs.com/mliudong/p/4094519.html

(2) securecrt 登录。如果使用 root 用户登录不上,可以切换为普通用户尝试(我的情况是,root 登录不成功,普通用户可以登录成功)

(3) sshsecureshell 登录

ssh登录不上,要修改/etc/ssh/sshd_config,参考:http://blog.sina.com.cn/s/blog_5f435c130102v6pv.html。 修改完重启时如果/etc/init.d/ssh restart不起作用,可以使用:ps -e | grep ssh,看sshd的进程号,然后kill -9 进程号杀死 ssh 进程以达到重启的目的,或者直接重启 ubuntu 系统。


源自朱友鹏老师.

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

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

相关文章

Leetcode.2397 被列覆盖的最多行数

题目链接 Leetcode.2397 被列覆盖的最多行数 Rating : 1719 题目描述 给你一个下标从 0 开始的 m x n二进制矩阵 mat和一个整数 cols,表示你需要选出的列数。 如果一行中,所有的 1 都被你选中的列所覆盖,那么我们称这一行 被覆盖…

RabbitMQ的使用以及整合到SpringBoot中

RabbitMQ的使用以及整合到SpringBoot中 一、比较: (1)、传统请求服务器: (2)、通过MQ去操作数据库: 通过MQ去操作数据库,从而达到削峰的效果; 问题现象: (1)、海量数据; (2)、高并发&#…

Python如何获取弹幕?给你介绍两种方式

前言 弹幕可以给观众一种“实时互动”的错觉,虽然不同弹幕的发送时间有所区别,但是其只会在视频中特定的一个时间点出现,因此在相同时刻发送的弹幕基本上也具有相同的主题,在参与评论时就会有与其他观众同时评论的错觉。 在国内…

【SQLAlchemy】第二篇——连接失效及连接池

一、背景 为了节约资源,MySQL会对建立的连接进行监控,当某些连接处于不活跃状态的时间超过一个阈值时,则关闭它们。 用户可以执行show variables like %wait_timeout%;来查看这个阈值: 可以看到,在默认的情况下&…

Multi-modal Graph Contrastive Learning for Micro-video Recommendation

模型总览如下: 解决问题:同种重要性对待每种模态,可能使得得到的特征表示次优,例如过度强调学习到的表示中的特定模态。以MMGCN为例,下图为MMGCN模型总览。 如上图所示MMGCN在每种模态上构建用户-物品二部图&#xff0…

【云原生】Gateway网关选型

网关一般分为流量网关和业务网关,流量网关负责接入所有的流量,并分发给不同的子系统,那在具体的业务接入之前,还有一层业务网关。流量网关提供全局性的、与后端业务应用无关的策略,例如 HTTPS证书卸载、Web防火墙、全局…

[vue]vue3.x 组合式API不同写法

[vue]vue3.x 组合式API不同写法改进后组合API实际实际使用中的疑问组件名称问题两种写法的优缺点对比优点缺点组合式API,采用了更加灵活的方式,官网推荐的语法糖,但仅限于比较简单的单文件,作为尝试 改进后组合API实际实际使用中的疑问 改进…

4-2 Linux进程和内存概念

文章目录前言进程状态进程优先级内存模型进程内存关系前言 进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝。 进程状态…

36_2 On Chip Bus —— AXI总线介绍

目录 1.AXI总线介绍(读2写3) 1.1流量控制 1.2 AXI signals 信号线 1.3重点信号线的介绍 1.4原子操作——让读改写一套操作 永远是一个master对一个slave 1.5AXI BURST Boundary——一个burst不能跨4k boundary,master要保证 1.6读/写通…

k8s中的PV和PVS

前言:容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)…

Python 算法交易实验51 Step2 Signals 信号生成

说明 不可不读书 先从经典的一些超简单信号开始 使用移动平均指标SMA(算术) 给出了信号的产生方法,还有一些测算结果,反正看起来都是盈利的 首先使用离线方法实验一组结果,然后就使用ADBS来进行类似的处理。 内容 1 原理分析…

【python中的列表和元组】

文章目录前言一、列表及其使用1.列表的特点2. 列表的使用方法二、元组及其特点1.元组的类型是tuple1.元组的查找操作2. 计算元组某个元素出现的次数3.统计元组内元素的个数总结前言 本文着重介绍python中的列表和元组以及列表和元组之间的区别 一、列表及其使用 1.列表的特点…

JavaSE学习进阶day2_02 抽象类和接口

第四章 抽象类 4.1 概述 4.1.1 抽象类引入 先看一张图: 这张图时之前学习继承时用的,但是现在有一个疑问,吃饭这个行为猫和狗都有,但是它们吃的东西却又不同,这个时候我们不能确定父类吃饭这个方法到底该写什么&…

数据库分库分表策略

一、MySQL扩展具体的实现方式 随着业务规模的不断扩大,需要选择合适的方案去应对数据规模的增长,以应对逐渐增长的访问压力和数据量。 关于数据库的扩展主要包括:业务拆分、主从复制,数据库分库与分表。这篇文章主要讲述数据库分库…

03-SQLPlus的常用命令和使用

本章内容讲解SQLPlus的常用命令使用方法,参数的设置,帮助的使用,详细讲解如下: 登录SQL*Plus DOS方式登录SQL*Plus C:\>sqlplus 提示输入用户名、密码 C:\>sqlplus scott/tiger 连到默认数据库,注册表或环境变量中设 …

Blender——植物生长动画制作

效果图前言参考链接:https://www.bilibili.com/video/BV1aY411G7bk/?spm_id_from333.788.recommend_more_video.10&vd_source5212838c127b01db69dcc8b2d27ca517建议Blender的版本在3.0.0或以上。制作完成的植物生长动画blender文件下载:https://dow…

SpringCloud之ElasticSearch笔记

ElasticSearch 初识ElasticSearch ElasticSearch是什么 ElasticSearch一个基于Lucene的底层的开源的分布式搜索引擎,可用来实现搜索,日志统计,分析,系统监控 正向索引和倒排索引 正向索引:逐条扫描(my…

Databend v1.0 Release 正式发布

尊敬的 Databenders,在 Databend Labs 成立两周年之际,我们非常高兴地宣布 Databend v1.0 正式发布。 Databend 社区一直在致力于解决大数据分析的成本和复杂度问题,并正在被顶级场景和顶级需求所推动。 根据可统计信息,每天约 7…

2023年“中银杯”安徽省职业院校技能大赛网络安全A模块全过程解析

A模块基础设施设置/安全加固(200分) 一、项目和任务描述: 假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全…

K8S 实用工具之三 - 图形化 UI Lens

开篇 📜 引言: 磨刀不误砍柴工工欲善其事必先利其器 第一篇:《K8S 实用工具之一 - 如何合并多个 kubeconfig?》第二篇:《K8S 实用工具之二 - 终端 UI K9S》 像我这种,kubectl 用的不是非常溜,经…