一,Linux开发环境的介绍

window系统上:使用filezilla将使得两个系统可以进行文件互传,source insight用来编辑原码和查看linux内核源码,mobaxtren远程操作ubuntu和操作串口(window进行编辑操作)
ubuntu系统上:将源码进行编译,然后后面放置到开发板进行运行(ubuntu进行运行操作)
IMX6ULL_pro开发板:用来运行代码(开发板进行运行操作)
二,利用Mobaxterm软件远程登陆
首先我们要配置自己的虚拟机的一些基础设置

这里要设置两个网络适配器,
-
网络适配器:是给虚拟机用的,就是window系统可以上网的话,这个ubuntu也就可以进行上网。
-
网络适配器2:是给一个桥接网卡,是保证Ubuntu可以与开发板进行互通,这个时候还要运用一个USB网卡在USB线和电脑之间的一个位置连接着,但是由于运用网卡进行传输会在开发中出现很多稀奇古怪的问题,所以后面将采用adb来进行传输(所以这里使用adb的话就不用管这个了)
网络适配器的原理

当我们在ubuntu上面输入ifconfig就可以查看到各个网卡的ip地址,这个是用来进行连接用的,或者查看你有什么虚拟网卡。
book@100ask:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.112.131 netmask 255.255.255.0 broadcast 192.168.112.255
inet6 fe80::e3a4:b661:a393:9370 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:47:12:f1 txqueuelen 1000 (Ethernet)
RX packets 171878 bytes 99731614 (99.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 698792 bytes 987252116 (987.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.145 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 2409:8a55:d941:5d74:4726:ecbb:b8cc:92dd prefixlen 64 scopeid 0x0<global>
inet6 2409:8a55:d941:5d74:dc82:88bf:af20:4abe prefixlen 64 scopeid 0x0<global>
inet6 fe80::40f2:dbf7:54eb:b405 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:47:12:fb txqueuelen 1000 (Ethernet)
RX packets 7234 bytes 671660 (671.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1792 bytes 231528 (231.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
然后我们知道了网络适配器的原理,那么我们就可以利用这个,在windows上远程登录ubuntu,这也是要用到NAT网卡的地址就可以进行连接了,远程登录运用的软件是Mobaxterm
运用Mobaxterm进行远程登录

第一个就是你的en33的IP,然后第二个就是你这个虚拟机的用户名,第三个就是网络端,Port 22 是 SSH(安全远程登录协议) 的默认端口。当你发起 SSH 连接时,目标设备会通过 22 这个端口,识别并处理你的远程登录请求,这里我们直接填22即可,因为就是远程登录。
登录过后就可以输入密码进行操作了
运用FileZilla进行传输文件
在这三个地方分别输入en33的IP,虚拟机的用户名,虚拟机的密码,点击快速连接,等待片刻即可以进行传输文件
三,保存内核源码并进行阅读
book@100ask:~$ cd 100ask_imx6ull-sdk
book@100ask:~/100ask_imx6ull-sdk$ ls
Buildroot_2020.02.x DevelopmentEnvConf Linux-4.9.88.code-workspace NoosProgramProject Uboot-2017.03
Busybox_1.30.0 Linux-4.9.88 Linux-4.9.88.tar.bz2 ToolChain Uboot-2018.03
首先我们要进入到自己虚拟机的linux内核源码的目录下,然后将他进行压缩打包

执行上面这个命令就可以将linux内核压缩到当前目录下,就是上面的Linux-4.9.88.tar.bz2
然后通过FileZilla进行远程传输文件到windows上面(自己选择一个目录即可)
然后之后就是source sightlight软件进行操作查看代码了的操作了,这个操作可以去网上看教程。
四,连接开发板与启动方式
开发板的启动方式

1. EMMC 启动
- EMMC 是开发板上自带的内置存储芯片,相当于它的 "内置硬盘"。
- 这个模式是开发板的正常运行模式,当系统已经稳定烧录到 EMMC 中后,就用它来启动。
- 就像手机从自带存储启动系统一样,是长期使用的默认方式。
2. SD 卡启动
- SD 卡是外置的可移动存储。
- 这个模式是调试和测试模式,用来从 SD 卡里的镜像启动系统,而不影响 EMMC 里的内容。
- 适合你想尝试新系统、验证功能,或者在 EMMC 系统损坏时临时启动并修复。
3. USB 烧写模式
- 这个模式不是用来正常启动的,而是给开发板 "装系统" 的刷机模式。
- 当开发板是全新的(EMMC 里无系统),或者需要彻底更新 EMMC 系统时,就切换到这个模式。
- 此时开发板会进入 USB 烧录状态,你可以通过 USB 线连接电脑,用工具把系统镜像写入到 EMMC 中。
连接开发板
首先我们要将我们的开发板子连接到电脑的USB接口,然后要注意连接的是主机上,VM会弹出这样的提示

在此进行到主机上,如果错误连接到了虚拟机上的话,那就可以通过点击VM上面选项的虚拟机,然后点击可移动设备,然后点击对应的USB接口,然后断开连接,就可以连接到主机上了。

然后这样再Mobexterm上面设置串口,然后点击OK即可,记得要把你的板子开机,然后开机完之后,就会然你输入你板子对应的密码就可以进去操作
对于找不到对应的串口,就是我们的电脑在连接到板子的时候,会自动的安装对应的USB接,但是有的不会,这个时候我们就要去设备管理器 看看是否有这个USB接口

在端口看看自己的上面有没有这个包含有USB字样的COM,然后在Moboxterm上面他会让你选择端口,就直接选择这个COM9(作者这里是),根据你们实际情况决定。如果没有就要去安装对应的驱动了。
五,使用ADB代替NFS
将设备连接到ubuntu
对于此操作,就是将虚拟机上的文件直接传输到开发板上,这个不需要网络进行传输,因为问题很多,因此我们这里采用ADB模式进行进行传输文件

选择了这个之后可以使用命令 adb devices 查看你的设备是否被vm连接到

看到自己设备的名字,那就说明连接成功了。
将ubuntu上的文件拉到开发板
我们这里要选择虚拟机连接,将板子和虚拟机互通,然后再用vm进行登录板子。

利用adb shell指令登录然后就可以登录到开发板
登录到开发板,我们就可以通过指令将文件传输到开发板上面

然后再将1.txt文件传输到开发板子上面
指令是adb push 文件名 传输到的目录 如果没有指定目录则是当前所在目录
然后再到板子上进入到对应的目录进行查看

然后我们不难看到这上面显示出了我们传输的1.txt文件
将文件从开发板上拉到ubuntu

在这里我们创建一个2.txt文件,然后再ubuntu上面将此文件拉到ubuntu上面
命令:adb pull 文件名 拉去到的目录 如果没有指定目录则是当前所在目录
这里ls一下,不难看到这里已经出现了2.txt,就说明拉去成功了。
这就是利用ADB代替NFS