刚拿到的板子:IGKBoard (IoT Gateway Kit Board) 开发板。
此开发板基于 NXP i.MX6ULL 系列 Cortex-A7 高性能处理器设计,适用于快速开发一系列具有创新性的产品如物联网网关、人机界面工业4.0扫描仪、车载终端以及便携式医疗设备。
板子上自己是有wifi模块的,需要配置一下。
但是搞了半天连不上wifi,最后使用wpa_supplicant连接上了自家的wifi。
wpa_supplicant本是开源项目源码,被谷歌修改后加入 Android 移动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上的工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_supplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调动驱动来对WiFi芯片操作。
wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf。
修改配置文件:vi /etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
network={
ssid="wifi名称"
psk="wifi密码"
}
连接:wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
添加IP地址:ifconfig wlan0 192.168.1.10 up
设置路由:route add default gw 192.168.1.1
这个IP地址(192.168.1.10)需要根据你主机上的IP地址进行添加,需要在一个网段内。我的主机Ip是192.168.1.7,于是就分配一个192.168.1.10
查看wlan0情况:ifconfig wlan0
测试一下自己的电脑,在一个网段内:ping 192.168.1.7
测试:ping www.baidu.com
出问题了,出现了ping: www.baidu.com: Temporary failure in name resolution的错误提示,不急,解决一下。如果你们测试没问题就不需要修改了。
打开配置文件:vi /etc/resolv.conf
在/etc/resolv.conf配置文件末尾追加:nameserver 8.8.8.8
修改开机启动文件:/etc/rc.local(没有就新建)
vi /etc/rc.local
然后将上面执行的命令输入进去(因为我知道自己路由器的网段,所以这样可以,如果是第一次连接的话,就可能需要DHCP自动获取IP了):
#!/bin/sh
wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf
ifconfig wlan0 192.168.1.10 up
route add default gw 192.168.1.1
exit 0
然后执行命令,修改这个文件权限:
chmod +x /etc/rc.local
chmod 755 /etc/rc.local
然后重新开机就可以看见自动连接上wifi了,并且可以用。
tftp服务器是指使用tftp协议的服务器。
tftp是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
tftp作为一个传输文件的简单协议,是基于UDP协议而实现的,但是也不能确定有些tftp协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。
优点:
sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd
mkdir tftpboot
chmod 777 tftpboot/
我们要给 tftpboot 文件夹权限,否则的话 uboot 不能从tftpboot 文件夹里面下载文件。
记住文件夹的绝对路径(这里根据自己的需要放在自己想放的路径下):
cd /etc/xinetd.d/
我们到这个目录下去寻找有没有tftp这个文件,如果没有的话自行创建(目录没有也是自己创建)
sudo vim tftp
需要sudo权限,不然后面保存不了。
然后在里面输入如下内容:
server_args 后面的路径就是上面自己pwd出来的路径。进行tftp传输的时候,都是从该文件夹中搜索文件的
server tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /home/wangdengtao/wangdengtao/tftpboot -c
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
启动tftp服务器:sudo service tftpd-hpa start
sudo vim /etc/default/tftpd-hpa
打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/wangdengtao/wangdengtao/tftpboot"
TFTP_ADDRESS=":69"
TFTP_OPTIONS="--secure --create"
OPTIONS="-l -s -c /home/wangdengtao/wangdengtao/tftpboot"
TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。
重启tftp服务器:sudo service tftpd-hpa restart
我们在创建的tftpboot目录下创建一个hello.c的文件,随便写点什么都行。
然后不在这个目录下输入sudo tftp localhost
然后可以输入help
查看,然后输入get hello.c
没有反应说明成功,然后输入q
退出,可以看见我们的hello.c文件了。
首先我们的虚拟机和我们的主机不再一个网段内,所以我们需要修改一下虚拟机的ip和主机在一个网段内。
对于虚拟机外部网络能够访问有相关疑问的可以看这篇文章:
虚拟机和主机不在同一个网段内,彼此为什么可以ping通呢?
如何修改虚拟机使能够和主机在一个网段内,外网能够访问参考这篇文章:
让虚拟机与物理主机处于同一网段,并能够上网
测试我们的虚拟机能否ping通:ping 192.168.1.6
可以看到可以ping通,说明能够访问。
测试开始:
开发板的IP地址:192.168.1.10
虚拟机的ip地址:192.168.1.6
获取tftp服务器的文件:
从我们的虚拟机上获取hello.c这个文件: tftp -g -r hello.c 192.168.1.6
可以看见获取成功:
上传到tftp服务器:
开发板创建hahaha,然后上传到虚拟机中: tftp -p -l hahaha 192.168.1.6
可以看见增加了hahaha文件。
简单说一下用法:tftp [OPTION]... HOST [PORT]
Options:
-l FILE Local FILE
-r FILE Remote FILE
-g Get file
-p Put file
参数说明: