DIGI ConnectCore 6UL开发套件上手指南
在开始使用DIGI ConnectCore 6UL开发套件/单板计算机之前,您需要按照下面操作步骤更新一下固件,来熟悉Digi Embedded Yocto(简称DEY)的嵌入式Linux系统环境和固件更新方法。Yocto是一个开源的项目,是用于定制Linux系统的工具和方法集合。DEY是集成有Digi Layer的Yocto开发平台。而DEY系统是一套基于Yocto的方式开发的,能运行在Digi的嵌入式核心板上的嵌入式Linux系统。
在Digi出厂的i.MX6UL模块中,默认提供了深度定制的UBoot,您可以在UBoot中利用uSD卡或以太网口更新官方的最新固件,或是自行裁减定制编译出来的固件。DEY编译出来的固件包括分区固件和二进制固件,比如常用的可在U-Boot中更新的uboot固件,内核分区固件,根文件系统分区固件,内核文件,设备树等。
一、从官网下载DEY固件
ConnectCore i.MX6UL开发板的固件可以从Digi的官方FTP下载,当前最新的支持版本是DEY 2.6。您可以根据开发板的类型来下载不同固件,以便后面进行固件更新操作。因为Digi FTP服务器在境外,建议您采用迅雷等下载工具下载,以保证文件的完整性。
国内一般拿到的是ConnectCore® i.MX6UL SBC Pro是使用全部的LGA针脚设计的单板计算机,采用这套工控板开发套件可以到官方的FTP去下载ccimx6ulsbc-installer.zipCC6UL SBC PRO的DEY2.6卡刷包。
二、连接好硬件并使用uSD卡更新固件
找一张uSD卡并格式化为FAT分区,将下载的压缩包的内容解压到uSD卡中。然后将uSD卡插入到CC6UL开发板的卡槽。按下图所示连接好硬件,其中液晶屏是可选配件,如果没有也没有关系。用uSD卡更新固件时,网口也可以不接。
只需接好Console口和电源即可。上电后CC6UL单板机的console口会输出相关的启动信息,我们需要一个串口终端程序来显示它;可使用超级终端或是putty等终端程序(linux下则常用minicom作为终端程序),串口终端的波特率设置为115200/8/n/1。
ConnectCore® i.MX6UL SBC Pro开发板自动打印出来的启动信息如下:
上电后按任意建停在Uboot中,在Console口中执行脚本:
run install_linux_fw_sd
脚本会自动执行一系列UBoot命令,并将固件更新到NAND闪存中。在更新过程中会自动重置环境变量,其中出厂的mac地址等是写保护的,所以会有出错提示,这是正常的,没有关系。
上面的uSD卡更新用uboot命令的脚本来自动执行一系列更新命令,您在生产和调试时,更一般的方法是用UBoot中的update命令来更新三个分区uboot,linux,rootfs;update命令支持从TFTP服务器或SD卡,USB等源来更新固件镜像到flash中。一般地,我们常采用TFTP的方法来更新指定的固件。
熟悉和了解Digi核心板的固件刷新方法,以及一些简单的UBoot命令和参数后,你可以开始学习搭建DEY的开发环境,或是直接进行应用程序开发。
三、网络配置
DEY下网络设置:
不论是桌面Linux还是嵌入式Linux,早期的net-tools命令行配置工具已经逐渐被Linux主流发行版所淘汰。也就是ifconfig命令,虽然有些Linux下仍保留这个命令,但已经不作为主流配置工具。作为替代工具的是iproute2工具。这些工具一般只作用于/etc/network/interfaces。
除了配置工具外,主流的Linux发行版一般会有专门的网络管理服务,比如NetworkManager。网络服务替代了Linux的/etc/network/interface配置,因此当系统运行有网络管理服务时,正确的网络操作是去操作NetworkManager的配置,该配置文件是在/etc/NetworkManager/system-connections下。我们可以用命令行nmcli工具或是更改配置文件来更改网络连接设置。
命令行下更改IP地址:
可以用交互式或非交互式的nmcli命令来更改网络接口的IP地址。直接输入nmcli命令,可以显示它所支持的对象和命令,我们最常用的是nmcli connection命令,可以用缩写nmcli c来表示。注意DEY系统默认的eth0对应的是CC6UL SBC Pro上的ETH2,也就是板子边缘的那个以太网口。
交互式:
nmcli c edit eth0
nmcli> set ipv4.method manual
nmcli> set ipv4.addresses 192.168.42.30/24
nmcli> set ipv4.gateway 192.168.42.1
nmcli> set ipv4.dns 8.8.8.8
nmcli> save
nmcli> quit
nmcli c up eth0
如果要设置dhcp,则:
nmcli> set ipv4.method auto
nmcli> set ipv4.dns
输入dns值:
nmcli> set ipv4.gateway
输入默认网关值:
nmcli> save
nmcli> quit
nmcli c up eth0
值得注意的是,iproute2支持网卡配多个IP,因此如果你用nmcli多次配置网口为不同IP,它会忠实地保存到/etc/NetworkManager/system-connections/nm.eth0。而习惯于用ifconfig的命令的用户只会看到address1那行的值。如果您不想设置多个IP,可以把先在nmcli中用remove ipv4.addresses来删除IP. 配置完IP地址后,相应的配置文件也会发生变化。如果您熟练掌握nmcli命令行,也可以一个命令直接设置好IP地址,请自行查阅相关的网络文档。
同样地,我们可以用这种方式配置WiFi。
nmcli device status
nmcli device wifi rescan
nmcli device wifi list
查到wifi的ssid列表后:
nmcli con edit wlan0
进入交互配置,如果你不懂有什么交互命令,可以用print打印一下,NetworkManager中可以用wifi来代替802.11-wireless属性。
nmcli> set wifi.ssid myssid
nmcli> set wifi-sec.key-mgmt wpa-psk
nmcli> set wifi-sec.psk 12345678
nmcli> save
nmcli>quit
然后重启网卡:
nmcli c down wlan0
nmcli c up wlan0
无线网络就可以用了。
四、测试例程
Digi提供了各种接口的测试例程。一些系统镜像已经预编译好例程,可以在命令行中直接执行。如果您的文件系统不带有例程,可以烧一下集成好例程的文件系统镜像,也可以利用DEY应用程序开发章节提供IDE来编译所需的例程。
部分例程用法请参考Digi嵌入式Linux例程和测试说明,除了Digi提供的官方例程外,许多github上的开源程序都可以很轻松集成到DEY文件系统中。
五、进行应用程序开发
经过上述的步骤,CC6UL单板机中已经有一套上电后就运行的嵌入式Linux,您可以参考DEY应用程序开发来开发可以在板子上运行的程序。
六、进行DEY系统开发
Digi提供的预编译好的DEY嵌入式系统可以方便开发人员进行测试各项功能和接口,但不同的应用需要的接口和软件包等各不相同。DEY系统开发是指利用DEY的系统开发环境和工具来裁减和定制适合自己使用的嵌入式linux系统。