Lazy loaded image
🥳嵌入式 Linux开发
Linux驱动基础01-驱动开发环境搭建
Words 1761Read Time 5 min
2024-9-11
2024-12-4
type
date
slug
category
icon
password

一、配置VMware 使用双网卡

  1. NAT 网卡:Ubuntu 通过它上网,只要 Windows 能上网,Ubuntu 就能上网
    1. 桥接网络:Ubuntu 通过它跟开发板联通
      1. 添加桥接网卡
        1. notion image
      2. 配置桥接网卡
      3. PC 配置
        notion image
        Vmware 配置
        修改虚拟网络配置
        notion image
        将VMnet0 桥街道USB网卡上
        notion image
        确认 ens36 没有 IP 后,它就是要设置的桥接网卡。点击它右边的“设置”图标,在弹出的设置界面内,点击“IPV4”切换出设置页面,之后选择“Manual”表示手工设置 IP 地址,在“Address、Netmask、Gateway”输入框分别填入:192.168.1.101、255.225.225.0、192.168.1.1。填写完毕后,点击“Apply”
        notion image
        开发板配置
        /etc/init.d/S40network restart
        三者验证(若单向,关闭防火墙)
        windows(PING ubuntu 和 开发板)
        开发板 (PING ubuntu 和 Windows)
        Ubuntu(PING 开发板和 Windows)

    二、下载 BSP

    1. 下载 Linux-4.9.88
      1. 压缩后传回windows
        1. 注意:在 Windows 解压内核时会提示一些错误,会提示是否覆盖文件,选择“覆盖”即可。这是 因为 Linux 下的文件区分大小写,a.c 和 A.c 以不同的文件,但是 Windows 下不区分大小写, 这 2 个文件是同一个。这些错误不会影响我们阅读源码。
      1. 更新源码

        三、配置交叉编译工具链

        1. 打开vim ~/.bashrc,编辑
          1. 设置生效并测试
            1. 测试交叉编译工具链

              四、安装软件

              4.1 一键初始化开发环境

               

              4.2 使用 MobaXterm 远程登录 Ubuntu

              4.3 使用 FileZilla 在 Windows 和 Ubuntu 之间传文件

              notion image

              4.4 开发板挂载 Ubuntu 的 NFS 目录

              什么是NFS协议?
              NFS实现了一个跨越网络的文件访问功能,如下图可以简要说明其原理。其整个架构为Client-Server架构,客户端和服务端通过RPC协议进行通信,RPC协议可以简单的理解为一个基于TCP的应用层协议,它简化命令和数据的传输。NFS最大的特点是将服务端的文件系统目录树映射到客户端,而在客户端访问该目录树与访问本地文件系统没有任何差别,客户端并不知道这个文件系统目录树是本地的还是远在另外一台服务器。
               
              notion image
              我们为什么要挂载ubuntu的nfs目录?
              我们有些时候需要多次调试开发板文件系统内的某个应用程序,这就需要多次进行编译拷贝等操作,所以我们在前期进行调试时可以直接让开发板使用ubuntu的nfs目录下文件系统来进行远程调试,用以提高调试效率,加快研发速度。
              1. 确定 ubuntu 的桥接网卡 IP
              1. 安装nfs服务
                1. 打开nfs服务器配置文件/etc/exports,指定nfs服务器共享目录及其属性,内容如下: /nfsroot *(rw,sync,no_root_squash) 解析:
                  • /nfsroot:指定/nfsroot为nfs服务器的共享目录
                  • *:允许所有的网段访问,也可以使用具体的IP
                  • rw:挂接此目录的客户端对该共享目录具有读写权限
                  • sync:资料同步写入内存和硬盘
                  • no_root_squash:root用户具有对根目录的完全管理访问权限
                  • no_subtree_check:不检查父目录的权限
                  Ubuntu安装nfs服务器的过程就完成了,可以执行下面这个命令查看nfs服务器的共享目录:
                  showmount -e localhost
              1. 在开发板上执行 mount nfs 命令

                4.5 使用 FileZilla 在 Windows 和开发板之间传文件

                 

                五、测试编译内核、内核模块

                编译驱动程序之前编译内核
                1. 驱动程序需要asm内核链接文件,只有编译内核才会生成;
                1. 编译内核和开发板使用内核要一致
                1. 开发板更换内核,开发板上驱动也要更换。
                编译驱动步骤
                1. 编译内核
                1. 编译内核模块
                1. 安装内核模块到nfs_rootfs
                1. 安装内核和模块到开发板上
                1. 重启开发板
                 
                编译内核
                编译内核模块
                安装内核模块到nfs_rootfs
                安装内核和模块到开发板上,以下操作在开发板上
                最后重启开发板,它就使用新的 zImage、dtb模块了。

                参考资料

                1. 需科学上网
                Video preview
                 
                上一篇
                Guide to Linux System
                下一篇
                Linux驱动基础02-第一个内核模块

                Comments
                Loading...