[关闭]
@plantpark 2014-11-04T09:50:59.000000Z 字数 2288 阅读 1795

#玩转Galileo系列#把Intel Galileo 当Arduino用?太屈才了吧


纵观国内社区,发现多是通过Arduino IDE对Galileo进行操作,而放着一个操作系统,这完全舍弃了Linux系统的强大性能,那么在这里,我将带着各位,如何玩转Galileo上的Linux操作系统,并充分发挥其对Arduino强大的兼容能力。

Galileo 不是简单的 Arduino 板子,实际上它运行着一个 Linux 操作系统。把它看作是 “兼容 Arduino 接口的板子” 或许更合适一些。标准Arduino接口的板子均能在Galileo上使用。

Galileo 板子上容量为 8 MB 的 SPI Flash 中已经烧写了一个精简版的 Linux 系统,因为容量的限制,这个系统去掉了一些不常用的模块,比如 wi-fi 驱动,python 支持等。

Galileo 也支持从 SD 卡启动系统,并且 Intel 提供了一个基于 Yocto 项目,已经制作好的完整版 Linux系统。当精简版系统不能满足我们的要求时,我们可以下载这个完整版系统镜像,烧录到 SD 卡中,并从 SD卡中启动即可。当然,也可以自己基于Yocto项目按照自己的需求制作系统镜像,在之后的系列文章中再做详细介绍。

纵观国内社区,发现多是通过Arduino IDE对Galileo进行操作,而放着一个操作系统,这完全舍弃了Linux系统的强大性能,那么在这里,我将带着各位,如何玩转Galileo上的Linux操作系统,并充分发挥其对Arduino强大的兼容能力。

首先,登陆Galileo的Linux系统

Intel论坛列举了如下几种登录到Galileo Linux的方法

Use the UART connector
Use the LAN connection direct to your PC
Use the LAN connection and connect to your local network
You can also connect using WiFi

考虑到我们手头的材料,没有串口线,所以我们采用第三种方案,将PC和Galileo链接在同一个路由器下,通过Ethernet登录,当然,也可以采用第二种方案将PC和Galileo直连,但考虑到后面的程序会用到网络服务,因此直接采用第三种方案。

Galileo 默认不开始Telnet服务,所以,我们就需要在Arduino IDE中写一个程序开启Telnet服务。

void setup() {
system("telnetd -l /bin/sh"); //执行Linux命令,开启Telnet服务
}
void loop() {
system("ifconfig eth0 > /dev/ttyGS0"); //将网络链接信息输出到Arduino IDE串口监视器
delay(5000); 
}

这里使用的system()函数为Galileo(和Edison)独有,这个函数可以再Arduino代码中运行Linux命令。在后续教程中再做详细描述。

打开Arduino IDE的串口监视器得到如下信息

eth0 Link encap:Ethernet HWaddr 98:4F:EE:00:1A:F3
    inet addr:192.168.1.4 Bcast:0.0.0.0 Mask:255.255.255.0 
    inet6 addr: fe80::9a4f:eeff:fe00:1af3/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:326 errors:0 dropped:0 overruns:0 frame:0
    TX packets:93 errors:0 dropped:0 overruns:0 carrier:0  
    collisions:0 txqueuelen:1000
    RX bytes:52925 (51.6 KiB) TX bytes:7511 (7.3 KiB) 
    Interrupt:41 Base address:0x8000

“inet addr”后的ip地址“192.168.1.4”即为Galileo当前IP,如果没有看到“inet addr”则需要查看Galileo是否连接到了路由器,尝试重启后重复上述步骤。

得到IP后,下一步则考虑如何连接到Galileo:

Mac OS X
1.在/Applications/Utilities 下打开Terminal。
2.输入:telnet 192.168.1.4(你的Galileo当前IP地址)
Linux
1.通过“Control+Alt+T”打开或者在launcher中查找Terminal
2.输入:telnet 192.168.1.4(你的Galileo当前IP地址)
Windows
1.开始→运行
2.输入:telnet 192.168.1.4(你的Galileo当前IP地址)

ok,链接到Galileo后会出现如下提示:

Trying 192.168.1.4... 
Connected to 192.168.1.4. 
Escape character is '^]'.
Poky 9.0 (Yocto Project 1.4 Reference Distro) 1.4.1 clanton 
/#

至此,终于进入了Galileo中的Linux操作系统,不过,由于Galileo有一个板载经过裁剪的Linux系统和一个烧写在microSD上的完整版Linux系统,而板载Linux系统重启后不会保存任何更改,so 之后的课程需要大家现将镜像文件下载并解压到microSD根目录中,开机即可。

在之后的章节中会教大家如何在Linux中操作Arduino兼容端的IO口,这将是一个非常有趣的应用哦

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注