Commit 302a7da1 by Zeng Rixuan

no message

parent 9a1de503
000
\ No newline at end of file
```
Hi,all,全志H3开发板已经拿到手了,昨天晚上上电跑了一下:
1、系统默认是安卓,接电脑可以看到挂载的data目录,就跟个没屏幕的手机一样
2、调试串口我接了UART0,需要下载CP21XX的驱动,去官网下统一CP21XX统一驱动即可
百度网盘资料我都下载了,讲的不详细,对新手非常不友好,而且侧重点是安卓开发,所以要找他们的技术支持,把这个linux开发流程整理出来,例如开发环境、编译工具、烧写方法等等,让linux系统跑起来.
项目的目标:是将HSL的边缘网关移植到H3运行,移植本身不复杂,但是先要把arm-linux运行起来;后续评估基于H3的边缘网关盒子的硬件开发
我们的目标是把系统跑起来,把基本的开发环境、工具给搭建好
http://wiki.friendlyarm.com/wiki/index.php/Building_U-boot_and_Linux_for_H5/H3/H2%2B/zh
H3资料
链接: https://pan.baidu.com/s/1a6F_0xYCsZj9S1xIl0FRmg
密码:amxc
板子连接:
https://item.taobao.com/item.htm?spm=a1z09.2.0.0.16062e8dqioepr&id=573519041992&_u=92ilom6ae778
ubuntu18.04、虚拟机需要装64位的
```
开发手册 -- 交叉编译hello world (远程ssh连接板子、gcc编译器、交叉编译器(英文)、放入板子用sd卡?(Linux如何读取sd卡?执行的命令)、尝试在板子里搭samba(下载离线包导入执行)
测一下个网口(蓝牙、usb、网卡 ……
任务:
​ 1.搭建ubuntu18.04版本的虚拟机。
2.helloworld程序简单交叉编译进板子里运行。验证代码开发环境。
3.编译镜像内核、开发板固件烧写。验证内核编译。
上述内容结合VSCODE来实现远程操作。
效果:编译可执行文件
注意:做好备份镜像(当前哪些工具(samba、ssh)已经装好,即使导出备份。做好日志。
## 日志
### 搭建ubuntu18.04环境
​ 虚拟机镜像为ubuntu18.04空环境
#### 设置静态IP为192.168.9.99
**问题:**ifconfig查看Linux的IP地址时,enp0s8 没有inet 这个属性,那么就没法通过IP地址连接虚拟机
![1636786831194](H3.assets/1636786831194.png)
下面是之前所用虚拟机的IP
![1636786915283](H3.assets/1636786915283.png)
**解决:**[Ubuntu18.04的网络配置(静态IP和动态IP) - OpsDrip - 博客园 (cnblogs.com)](https://www.cnblogs.com/opsprobe/p/9979234.html)
[(12条消息) Ubuntu18.04输入ifconfig找不到IP地址,只有lo问题_全村的希望的博客-CSDN博客](https://blog.csdn.net/qq_29720657/article/details/108746097)
```
空镜像需要先安装vim: apt install vim
初次安装提示失败:
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列软件包有未满足的依赖关系:
vim : 依赖: vim-common (= 2:7.4.826-1ubuntu1) 但是 2:7.4.1689-3ubuntu1.1 正要被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
解决
sudo apt-get remove vim-common
sudo apt-get install vim
之后便能执行指令编辑网卡配置:vim /etc/netplan/01(按下Tab键自动补全)
```
**补充:**由于新建的虚拟机和原有的虚拟机设置为了同一个环回适配器,导致原有的虚拟机ssh连接失败。把新建虚拟机的网络设置改为环回适配器#2即可。
#### 设置虚拟机镜像源
首先备份系统自带apt-get源配置文件/etc/apt/sources.list
```
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
```
2、编辑源配置文件/etc/apt/sources.list,替换内容为:
```
sudo vi /etc/apt/sources.list
```
该虚拟机Ubuntu版本为16.04,对应镜像源
[(13条消息) Ubuntu 16.04 几个国内更新源_识物专栏-CSDN博客](https://blog.csdn.net/l641208111/article/details/87189578)
#### 安装ssh
```
sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
apt install openssh-server
```
https://blog.csdn.net/swiftfake/article/details/79861320
https://blog.csdn.net/yuanxiang01/article/details/79235089
配置sshd_config
```
sudo gedit /etc/ssh/sshd_config #打开配置文件1
```
把配置文件中的”PermitRootLogin without-password“前面的”#”号去除
再增加一句”PermitRootLogin yes“
并在文本的最下方复制粘贴以下内容:
```
Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc
MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org123
```
#### SSH进行远程连接
**问题:**连接失败:Could not connect to '192.168.9.99' (port 22): Connection failed.
**解决:**[(12条消息) Xshell链接错误:Could notconnect to '192.168.18.128' (port 22): Connection failed._何新生(Daniel) 勇敢坚毅真正之才智乃刚毅之志向。 —— 拿破仑-CSDN博客](https://blog.csdn.net/u013067756/article/details/76086835/)
​ 注:Ubuntu下安装使用apt-get
如要ssh远程连接,Linux下需要有openssh-server
**问题:**apt-get install openssh-server 安装失败
**解决:**[(12条消息) 安装openssh-server时,出现“下列软件包有未满足的依赖关系:“_htx1020的博客-CSDN博客](https://blog.csdn.net/htx1020/article/details/114281808)
**问题:**
​ 1.重启Ubuntu和virtualbox无效
​ 2.安装并开启ssh-server无效
​ 3.可以看到ssh的端口22已开启,并处于监听状态,依旧无效
![1637042939895](H3.assets/1637042939895.png)
​ 4.可以看到ssh服务器和客户端都已启动,依旧无效
![1637044723212](H3.assets/1637044723212.png)
​ 5.service NetworkManager stop //关闭NetworkManager
​ service network restart //启动network服务 依旧无效
**解决:**最终原因是桥接网卡配置出错,所选的环回适配器#2未进行适配
​ 起初为了避免和原有虚拟机环回适配器重合,选择了#2(理论上两个虚拟机只要不同时开,可以用一个环回适配器)![1637054589585](H3.assets/1637054589585.png)
最后选择了环回适配器#2,那么要对网卡进行适配,IP改为192.168.9.8,避免与#1重合
![1637054736457](H3.assets/1637054736457.png)
![1637054861156](H3.assets/1637054861156.png)
**注:**ssh连接的用户名必须是Ubuntu主机的用户名,否则输入密码时会提示错误
![1637138272673](H3.assets/1637138272673.png)
#### 搭建samba服务器
https://www.cnblogs.com/dylancao/p/5856255.html
安装Samba
使用apt-get安装:
```
sudo apt-get install samba samba-common
```
**问题:**有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件包尚未被创建或是它们已被从新到(Incoming)目录移出。
​ (可能是我在虚拟机安装设置时的问题,没遇到则不管)
**解决:**[(13条消息) 有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是因为系统无法达到您要求的状态造成的_Kunaly-CSDN博客](https://blog.csdn.net/qq_33406883/article/details/100971183)
**问题:**出现软件包有未满足的依赖关系 (依赖问题与网上有所不同,但处理逻辑一样)
**解决:**https://blog.csdn.net/euler1983/article/details/107907882
#### 安装git
[在Linux系统上安装Git - 在树上唱歌w - 博客园 (cnblogs.com)](https://www.cnblogs.com/wulixia/p/11016684.html)
```
指令安装:sudo apt install git
```
#### 安装gcc
```
指令安装:sudo apt install gcc //如需其他指定版本可参考以下连接
```
[在Linux系统上安装Git - 在树上唱歌w - 博客园 (cnblogs.com)](https://www.cnblogs.com/wulixia/p/11016684.html)
[(13条消息) GCC G++ 多版本安装和切换_zhangxin4832的专栏-CSDN博客](https://blog.csdn.net/zhangxin4832/article/details/79225394)
#### **搭建cmake环境**
```
指令安装:sudo apt install cmake
```
### 交叉编译环境
[玩转开发板之交叉编译器安装 - BlackMamba24 - 博客园 (cnblogs.com)](https://www.cnblogs.com/wclinux/p/5975720.html)
以下环境配置参考friendly开发手册整个过程较为顺利
#### 安装交叉编译器
访问此处[下载地址](http://download.friendlyarm.com/nanopineo)的toolchain目录,下载交叉编译器arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz,然后解压编译器:
```
$ mkdir -p /opt/FriendlyARM/toolchain
$ tar xf arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/FriendlyARM/toolchain/
```
然后将编译器的路径加入到PATH中,用vi编辑vi ~/.bashrc,在末尾加入以下内容:
```
$ export PATH=/opt/FriendlyARM/toolchain/4.9.3/bin:$PATH
$ export GCC_COLORS=auto
```
执行一下~/.bashrc脚本让设置立即在当前shell窗口中生效,注意"."后面有个空格:
```
$ . ~/.bashrc
```
这个编译器是64位的,不能在32位的Linux系统上运行,安装完成后,你可以快速的验证是否安装成功:
```
$ arm-linux-gcc -v
gcc version 4.9.3 (ctng-1.21.0-229g-FA)
```
#### 编译U-boot
下载U-boot源码,并切换分支:
```
$ git clone https://github.com/friendlyarm/u-boot.git -b sunxi-v2017.x --depth 1
```
**问题:**克隆失败
![1637846798816](H3.assets/1637846798816.png)
**解决:**clone http方式换成SSH的方式,即 https:// 改为 git://
```
git clone git://github.com/friendlyarm/u-boot.git -b sunxi-v2017.x --depth 1
```
[(13条消息) error: RPC failed; curl 18 transfer closed with outstanding read data remaining的解决_shareye1992的博客-CSDN博客](https://blog.csdn.net/shareye1992/article/details/81626554)
编译U-boot:
```
$ apt-get install swig python-dev python3-dev
$ cd u-boot
$ make nanopi_h3_defconfig ARCH=arm CROSS_COMPILE=arm-linux-
$ make ARCH=arm CROSS_COMPILE=arm-linux-
```
**注:下载很慢**
这里使用的配置文件nanopi_h3_defconfig可以支持友善电子所有的H3/H2+的开发板。
编译成功后会生成文件u-boot-sunxi-with-spl.bin。
**另:**
进行嵌入式开发,配置交叉编译环境时,开发板ping不通?:https://bbs.csdn.net/topics/380196097/close
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment