【Linux驱动】环境搭建和开发板操作 上篇

一,Linux开发环境的介绍

window系统上:使用filezilla将使得两个系统可以进行文件互传,source insight用来编辑原码和查看linux内核源码,mobaxtren远程操作ubuntu和操作串口(window进行编辑操作)

ubuntu系统上:将源码进行编译,然后后面放置到开发板进行运行(ubuntu进行运行操作)

IMX6ULL_pro开发板:用来运行代码(开发板进行运行操作)

二,利用Mobaxterm软件远程登陆

首先我们要配置自己的虚拟机的一些基础设置

这里要设置两个网络适配器,

  1. 网络适配器:是给虚拟机用的,就是window系统可以上网的话,这个ubuntu也就可以进行上网。

  2. 网络适配器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 22SSH(安全远程登录协议) 的默认端口。当你发起 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

相关推荐
一个人旅程~1 小时前
电脑启动分区表MBR到GPT以及BIOS到UEFI如何区分操作?
linux·windows·电脑
空空空空空空空空空空空空如也2 小时前
QT通过编译宏区分x86 linux arm的方法
linux·开发语言·qt
浩浩测试一下2 小时前
内网---> ForceChangePassword 权限滥用
java·服务器·网络·安全·web安全·网络安全·系统安全
Yana.nice2 小时前
chrony中“prefer”指定首选服务器
运维·服务器
小猪写代码2 小时前
Linux核心梳理
linux·运维·服务器
Cx330❀2 小时前
深入理解 Linux 基础 IO:从 C 库到系统调用的完整剖析
linux·运维·服务器·c语言·数据库·人工智能·科技
小草cys2 小时前
【未解决】华为鲲鹏920B服务器Ubuntu25下安装mindspore(搭载昇腾Ascend 910B AI 芯片
运维·服务器
CC.GG2 小时前
【Linux】基础I/O----C语言文件操作与系统调用文件操作
linux·c语言·网络
HWL56792 小时前
控制浏览器如何预先加载视频资源
java·服务器·前端