正点原子Imx6ull(Mini)开发板设置静态IP并挂载第一个驱动

1.下载出厂系统到开发板

使用Mftool固化正点原子出厂系统到开发板,如果检测不到开发板需要复位一下开发板(固化教程参考正点原子的快速体验手册)

2.设置静态IP,并挂载网络文件系统

这里的Ubuntu,开发板,Windows之间的局域网搭建参考韦东山教程,我这里用的是USB转网口来与开发板进行连接。

开发板设置静态IP。

连接到MobXterm,串口波特率115200

 启动开发板

编辑/etc/network/interfaces文件

vi /etc/network/interfaces
//可以看到如下内容
# Wireless interfaces
iface wlan0 inet dhcp
        wireless_mode managed
        wireless_essid any
        wpa-driver wext
        wpa-conf /etc/wpa_supplicant.conf
​
iface atml0 inet dhcp
​
# Wired or wireless interfaces
auto eth0
iface eth0 inet dhcp
iface eth0 inet static
​
iface eth1 inet dhcp
​
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
        address 192.168.7.2
        netmask 255.255.255.0
        network 192.168.7.0
        gateway 192.168.7.1
 

接着注释掉eth0

在后面添加如下,

iface eth0 inet static  //静态IP
address 192.168.150.8   //开发板IP
netmask 255.255.255.0   //子网掩码

添加完之后文件内容如下

# The loopback interface
auto lo
iface lo inet loopback
​
# Wireless interfaces
iface wlan0 inet dhcp
        wireless_mode managed
        wireless_essid any
        wpa-driver wext
        wpa-conf /etc/wpa_supplicant.conf
​
iface atml0 inet dhcp
​
# Wired or wireless interfaces
auto eth0
#iface eth0 inet dhcp   //注释掉
iface eth0 inet static
address 192.168.150.8   //添加的IP
netmask 255.255.255.0
​
iface eth1 inet dhcp
​
# Ethernet/RNDIS gadget (g_ether)
# ... or on host side, usbnet and random hwaddr
iface usb0 inet static
        address 192.168.7.2
        netmask 255.255.255.0
        network 192.168.7.0
        gateway 192.168.7.1
​
 

然后设置开机自启动

vi /etc/init.d/rc

在文件最后添加如下内容

上面是你的IP,下面是网关,根据自己的实际IP添加

ifconfig eth0 192.168.150.8 netmask 255.255.255.0
route add default gw 192.168.150.1

重启网卡

/etc/init.d/networking restart

可以ping一下Ubuntu服务器检验

挂载网络文件系统

这里默认Ubuntu nfs服务已经开启,并且创建有共享文件夹nfs(如果没创建的话可以自搜教程创建)

正点原子教程里边设置的开机自动启动并挂载,而且要在ubuntu创建根文件系统,这里的话不需要,只需要一个nfs的共享文件夹即可

使用mount命令挂载将ubuntu的nfs文件夹挂载到开发板根目录的mnt目录下(出厂系统烧录的文件系统中有mnt目录,没有的话自行创建),使用mount命令前建议ping一个服务器进行网络检验。

mount -t nfs -o nolock,vers=4 192.168.150.16:/home/lxy/linux/nfs /mnt

挂载好之后进入mnt目录就能到到共享文件夹中的文件了。命令:cd /mnt

3.移植与开发板相同版本的Linux内核

将内核源码拷贝到ubuntu系统,正点原子的在 例程源码->正点原子Uboot和Linux出厂源码,

解压之后使用自带build.sh脚本进行编译,编译完成之后要修改顶层Makefile,不然后续会出问题,笔者在第二遍做的时候忘记了,这里碰到许多问题。

ARCH		?= arm
CROSS_COMPILE ?= arm-linux-gnueabihf-


 

之后从 例程源码->驱动例程中拷贝例程源码到Ubuntu,修改Makefilede上的内核路径,这里以源码中第一个驱动为例

KERNELDIR := /home/lxy/linux/board/kernel   //将这里改为刚才移植过来并编译好的内核源码路径
CURRENT_PATH := $(shell pwd)
obj-m := chrdevbase.o
​
build: kernel_modules
​
kernel_modules:
    $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
    $(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean

进入驱动文件夹下,使用make -j32命令重新编译驱动,会生成.ko文件,使用交叉编译器编译应用程序chrdevbaseApp.c文件,

arm-linux-gnueabihf-gcc chrdevbaseApp.c -o chrdevbaseApp

将生成的驱动.ko文件和应用的可执行文件也拷贝到nfs文件夹。

4.挂载驱动

在开发板中进入mnt目录,找到存放.ko文件的文件夹(这里文件系统中的文件夹自己随意建立,我这里创建的nfs/rootfs/imx6ulll_project),

使用命令

dmesg -c //清除显示的缓冲区
insmod chrdevbase.ko //挂载驱动
lsmod //查看模块

此外还要手动创建设备节点

mknod /dev/chrdevbase c 200 0

成功后会在/dev生成chrdevbase文件,可以进入/dev目录下查看

然后运行可执行的App文件即可

./chrdevbaseApp /dev/chrdevbase 1

注意命令行参数

结果如下

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值