伽利略 G2 板研究 (各种)

3.0 版本的 Image:
http://iotdk.intel.com/images/3.0/galileo/: 20160315(396Mb)

3.5 版本的 Image:
http://iotdk.intel.com/images/3.5/galileo/: 20160606  (403Mb)

下载以上 zip 文件解压后,得到一个 1.7Gb 左右的 iot-devkit-prof-dev-image-galileo-20160606.direct 文件,

把该文件写到 microSD 卡上,
Linux 平台说明: https://software.intel.com/en-us/get-started-galileo-linux-step1
Mac 平台: https://software.intel.com/en-us/get-started-galileo-mac-step1
Windows:https://software.intel.com/en-us/get-started-galileo-windows-step1

在 Linux/Mac 上用:
dd bs=8m if=iot-devkit-version-mmcblkp0.direct of=/dev/disk#

写好卡以后,插入开发板,上电,默认是 DHCP 取网口地址的,板子默认的主机名为 galileo.local,ping 到 galileo.local 有 IP地址返回,表明板子成功启动, 因此去路由器上查看板子拿到的 IP 地址,然后 ssh root@galileo.local(没有密码),就可以进入板子操作了。 默认的根文件系统是 1.6GB 左右,根文件系统留下的空间已经不多。
我们需要启动 fdisk 删除根文件系统所在分区,重新创建,输入新的分区开始和结束扇区(都可以用默认提供的分区号),然后用 w 写分区,重新启动后,用 resize2fs 就可以把分区扩展为整个 microSD 卡的空间了。 详细操作见:伽利略板 Galileo G2 写SD卡后,根文件系统只有 2GB 的解决办法

系统默认启动的进程树:

root@galileo:/lib/systemd# pstree
systemd-+-2*[agetty]
|-avahi-autoipd—avahi-autoipd
|-avahi-daemon—avahi-daemon
|-bluetoothd
|-connmand
|-dbus-daemon
|-lighttpd
|-mdnsd
|-ofonod
|-redis-server
|-sh-+-clloader
| `-galileo_sketch_
|-sshd—sh—pstree
|-systemd-journal
|-systemd-logind
|-systemd-timesyn
|-systemd-udevd
|-tcf-agent
|-wpa_supplicant
`-xdk-daemon—node—node

时间服务器没有设置 ntp 服务器时,会默认连接到 Google 的时间服务器,例如 time1.google.com,在我朝被墙,需要修改 /etc/systemd/timesyncd.conf 添加自己的时间服务器(例如 NTP=time.apple.com),然后重启服务后,时间即可自动校正。
# systemctl restart systemd-timesyncd

修改为天朝的时区:
# unlink /etc/localtime ; ln -s /usr/share/zoneinfo/PRC /etc/localtime

(待定)设置硬件时间,把本地时间写入时钟(否则 uptime 会显示错误的天数)。
# Set hardware Clock
echo “/sbin/hwclock -w -l” >> /etc/profile

设置为新的主机名,下次需要用 gl.local 来管理板子了。
root@galileo:~# hostnamectl set-hostname gl

mdns 的作用是为本地的 DNS 查询低提供服务,如果板子正常启动的话,我们可以用 # ping galileo.local 查找到 IP,而不必登录到路由器上查看 IP 地址。

oFono 是一套移动应用的开发框架
TCF 是一套目标通信框架,用于嵌入式系统的通信。采用 JSON 作为主要数据格式,支持目标和服务的自动发现。
wpa_supplicant 是各种操作系统上的 WPA/WPA2 无线客户端的实现。

设置静态 IP 地址:(例如,设置为 192.168.7.77,其中的网卡名,需要用 connmanctl services 查看 )

root@galileo # connmanctl config ethernet_984fee058d75_cable –ipv4 manual 192.168.7.77 255.255.255.0 192.168.7.1 –nameservers 192.168.7.1 114.114.114.114 8.8.8.8

设置后 ssh 会断开,需要按板子上的 reboot 按钮,或者新开终端重新用新的 IP 地址登录。

关闭不需要的服务:

root@galileo:/tmp# systemctl disable -lighttpd
root@galileo:/tmp# systemctl disable redis-servre

系统默认 /var/tmp 指向 /tmp ,重启以后会丢失 /var/tmp 下的文件,去掉 /var/tmp 的软连接。
# unlink  /var/tmp; mkdir /var/tmp

包管理软件采用 opkg,配置文件: /etc/opkg/iotdk.conf
root@galileo:~# cat /etc/opkg/iotdk.conf
src iotdk-all http://iotdk.intel.com/repos/3.5/iotdk/galileo/all
src iotdk-i586 http://iotdk.intel.com/repos/3.5/iotdk/galileo/i586
src iotdk-quark http://iotdk.intel.com/repos/3.5/iotdk/galileo/quark
src iotdk-x86 http://iotdk.intel.com/repos/3.5/iotdk/galileo/x86

  • # opkg list 可以查看所有的软件包,
    查看已经安装的包:
    # opkg list-installed
    # opkg update
  • 安装 npm:
    # opkg install nodejs-npm
  • 编译安装 tcpdump
    官网下载最新版本的 tcpdump 和 libpcap ,分别编译安装,先安装 libpcap。
    libpcap 没有 make install 命令, 需要把 生成的 .so 文件手工拷贝到  /lib 目录下。
    # ./configure ; make; make install
  • 编译 MQTT 客户端 mosquitto
    官网下载源代码
    # make WITH_SRV=no
    需要把  “/usr/local/lib” 写到  /etc/ld.so.conf 文件里, 然后运行 ldconfig
  • 安装一些 npm 模块
    root@galileo:~# npm install express ejs socket.io galileo-io
  • 安装 dmidecode (Optional),很好的查看硬件信息
    # opkg install dmidecode
  • 设置中文语言支持
    # opkg install locale-base-zh-cn
    # opkg install locale-base-zh-cn.gb18030
    # echo “export LC_ALL=zh_CN.UTF-8” >> /etc/profile
    # echo “export LANG=zh_CN.UTF-8” >> /etc/profile

需要编译的程序:
lua (cjson.safe失败)
ps (仍旧在使用 busybox)

作者: 甬洁网络

--移动互联网&物联网技术提供商