高级进阶

初级

  • Atom默认SSID: IntoRobot-AtomXXXX

  • 默认WiFi密码: intorobot

步骤1: 插上电源,连接Atom

用Micro USB给Atom上电,状态灯会按红-绿-蓝颜色顺序显示(uboot启动),紧接着灯变成浅蓝色(OpenWrt系统启动)。 约20s后,第一次会进入到红灯闪烁配置模式,配置完成后会进入到正常的启动模式,可以搜索到Atom的WiFi SSID,输入Atom默认WiFi密码就可以连入Atom。
第一次会进入到红灯闪烁配置模式,此时不能够搜索到Atom的WiFi SSID, 只有正确配置成功,并退出配置模式,才可以正常搜索到Atom的WiFi SSID。
可以通过网线连入Atom里面的openwrt系统,或者配置成功后,通过连接Atom 的WiFi SSID 进行登录。

步骤2: 使用ssh登陆Atom的linux系统

  • 对于安装Windows的电脑,安装并运行Putty或者是SecureCRT;对于Linux或MacOS的电脑,直接打开终端(terminal)。使用如下命令,判断是否已经正常链接Atom (Atom默认IP地址192.168.8.1):

   # ping 192.168.8.1

  • 用ssh登陆Atom的Linux系统(以下在Ubuntu系统下操作):

Atom-login

   $ ssh root@192.168.8.1

   输入root密码,就会出现如右图登陆界面。

Atom-login

注意:
Atom出厂OpenWrt默认不设置密码,第一次请用telnet登录,并设置密码:

   # telnet 192.168.8.1

   # passwd

   输入您想设置的root密码,如intorobot。

Atom出厂OpenWrt默认密码为intorobot, 只能通过ssh登录。

步骤3: 将Atom连入因特网!

要将Atom连入因特网,需要一个WiFi路由器,比如家里的无线路由器。

我们提供了以下三种方法将Atom连入因特网,前两种方法不仅可以连上网络,而且可以绑定设备到云平台。

3.1:通过APP接入云平台,连入因特网

长按MODE键,使得状态灯变红灯常亮并松手,进入配置模式(红灯闪烁),在APP上登录上您的账户,参考快速入门中Atom接入云平台进行配置。配置成功后,状态灯会白灯闪烁。

3.2:通过luci登录云平台,连入因特网(目前仅支持旧版固件)

1.将电脑连接上您的Atom WiFi,默认Atom WiFi密码:intorobot。

Atom-login

2.打开浏览器输入192.168.8.1后,输入OpenWrt密码(如果出厂第一次使用,且没有进行上面设置密码的操作,可以输入任意密码),点击“登录”。

3.进入到 luci 主界面,点击网页左侧的“配置”选项。

4.进入到 luci 配置界面,输入您需要设置的Atom密码(如果之前设置了,请忽略),选择您需要绑定的WiFi名称和密码,点击“配置重启”。
这样您就可以设置您的密码和连上您的WiFi。

Atom-login

Atom-login

5.重新进入到配置界面,设置配置界面的右半边可以在云平台创建您的的Atom设备。

6.首先您需要让您的Atom进入到配置模式,然后输入您的账户和密码,最后点击“创建与绑定”,即可以在云平台创建您的Atom设备。
您可以在APP或WEB网页上登入您的账户就可以看到您创建的设备了。

Atom-login

3.3:通过配置OpenWrt系统上的网络信息来连入网络

这种方法,涉及到一些Linux的操作,步骤比较多。

3.3.1: 搜索热点

使用Atom搜索并列出周围的热点:

Atom-login

   root@Atom:~# aps    'aps' 是一个很简单的自定义脚本命令,其借助Ralink Wi-Fi驱动,扫描周围区域的所有WiFi热点的SSID。扫描结果类似右边图片所示。(假设您家的WiFi为eth) client的缩写,其能将Atom连入到另外一个路由器),先执行如下命令修改无线配置文件:

3.3.2:配置网络信息

Atom-login

   root@Atom:~# vw    'vw' 是一个很简单的脚本命令,即使用vi/vim来修改openWrt的无线配置文件/etc/config/wireless。运行vw,就会得到类似右图的配置内容。


在图中标识了6个可能需要修改的地方:

  • 改动 1:设置Atom的Wi-Fi信道,使之与您家路由器"eth"一致 (也就是aps命令显示ch栏的内容),如果设置成自动,则填写"auto"
  • 改动 2:你可以改成你想要的SSID名称。
  • 改动 3和5: 设置ApCliAuthMode 和 ApCliEncrypType与 'eth' 一致 注意: aps扫描出来的Security(安全格式)与需要设置的 ApCliAuthMode/ApCliEncrypType 存在一定转换关系,如表所示:
Security ApCliAuthMode/
ApCliEncrypType
WPA1PSKWPA2PSK/TKIPAES WPA2PSK/AES
WPA2PSK/AES WPA2PSK/AES
WPA2PSK/TKIP WPA2PSK/TKIP
WPAPSK/TKIPAES WPAPSK/TKIP
WPAPSK/AES WPAPSK/AES
WPAPSK/TKIP WPAPSK/TKIP
WPA2/TRIPAES WPA2PSK/TKIP
WEP WEP/WEP
NONE NONE/NONE

  • 改动 4: 设置ApCliSsid为 'eth'

  • 改动 6:将 ApCliPassWord 设置为'eth'的Wi-Fi密码。如果你的路由器使用ASCII WEP密码,那么你得先用下面的命令,转成HEX码填入ApCliPassWord:

   root@Atom:~# echo -n 'abcde' | hexdump -e '13/1 "%02x" "\n"'    上述命令把“abcde”转化成“6162636465”

上述改动是不是很麻烦呢,没关系,我们还提供了另外两个脚本命令(wifi_set_credential和wifi_connect),只需要填入家里路由器的SSID和密码,就可以自动连接了,不需要改这改那,轻松搞定

   root@Atom:~# wifi_set_credential ”eth“ ”abcde“ 1 "WPA2PSK/AES”    root@Atom:~# wifi_connect

3.3.3: 重启网络设置

与linux系统一样,设置完后,我们需要重新启动设置,命令如下:

   root@Atom:~# nr    'nr' 是一个很简单的脚本命令,运行之后即可重启网络. 大约10s后,就可以重新连接Atom的SSID,那么怎么判断Atom是否已经连上你家用的路由器‘eth’了呢? 请运行如下命令:

   root@Atom:~# ia    运行之后会出现如右图所示.如果已经成功分配了IP地址,那说明已经连上了。

Atom-login

   最后让我们来验证下是否连入因特网了:

   root@Atom:~# ping www.google.com    如果出现如右图所示,那么太棒了! Atom已经连到因特网了,现在你可以从网上下载、上传或者其他您想干的事情了。注:国内请ping www.baidu.com。


恢复出厂设置

  • 方法1: firstboot firstboot命令为OpenWrt系统提供,其会擦除所有设置,并移除所有已安装的软件包.

   root@Atom:~# firstboot    运行后提示 Are you sure? [n/y] 输入 y, 即可恢复出厂设置。 最后重启使得出厂设置生效:    root@Atom:~# reboot

  • 方法 2: 出厂设置复位按钮 该方法更为简单便捷,不需要输入任何命令,只要一直按住MODE键13s直到状态灯变成浅蓝色松开,Atom 就会自动恢复到出厂设置并重启重新烧录STM32固件。

中级

刷固件

以下是刷新OpenWrt固件刷新方法。

1: 准备好固件

您可以直接下载Atom固件

2: 刷机方法

我们提供两种刷固件的方法(本质都是调用OpenWrt的脚本run-sysupgrade)

  • 方法 1:先把你的电脑通过WiFi或者以太网线连接到Atom,在电脑上打开任何一种浏览器,并在地址栏上输入192.168.8.1。 在Atom的luci配置界面输入OpenWrt的登陆密码(不是WiFi密码,而是ssh登陆密码(例如上面例子:intorobot))。进入luci后,在 主页右侧“上传OpenWrt固件”下,选择电脑上的固件,点击“上传并重置”。

    等个几分钟,期间千万别断开电源,待Atom重启之后,SSID Intorobot-AtomXXXX 会重新出现,这时候就可以重新连接了。

Flash Firmware

  • 方法 2: 通过ssh往Atom上传固件。对于通过WiFi或者以太网线连到Atom的Windows系统,可以使用winscp来上传固件到Atom(由于固件可能比较大,建议把所传文件放在Atom的/tmp/openwrt 文件夹内,如果没有此文件夹,请新建一个--也就是内存里,Atom有512Mbits的内存容量,所以尽管用)。如果你使用Linux系统,那就简单了,直接使用scp命令将固件考到Atom上。 使用winscp 上传固件时,文件协议中要选择"SCP" ,主机名为192.168.8.1,用户名为root。传送完毕后,就可以运行mtd命令:

   root@Atom:~# run-sysupgrade /tmp/openwrt/openwrt-ramips-mt7620n-atom-squashfs -sysupgrade.bin    耐心等候,直到Atom重启,期间千万别断开电源

如果这两种方法都搞不定,请参考救砖大法.

如何使用网线连接Atom

如果您喜欢使用网线,这里我们提供了网线连接方式。我们使用的是一种特殊接头的Ethernet网线, 一头是RJ45插头((T568B),另一头是2x2的2.54mm母槽(Dupont),如右图所示, 这里我们姑且把这种线叫做Eth-A-线。这种网线很容易在淘宝网 上买到,也可以自制一条。

Ethernet cable


Eth-A-线的RJ45头是T568B脚式

T568A


另一头,是一个2x2 2.54mm 母槽(随便一种杜邦线就可以),分别连接网线的绿,绿白,橙,橙白线,其他的四根线都不需要,剪掉。

做好了这种Eth-A-线,就可以把电脑通过以太网线连到Atom了

CONNECT DEMO


连接网络

通过网线连接好Atom和电脑后,参考将Atom连入因特网配置Ap Client,连接因特网。

救砖大法

如果您的Atom出现如下异常状态:

  1. 不能连WiFi
    如果可以连网线,请参考固件升级
  2. 网线也连不了
    如果OpenWrt系统还没崩溃,参考 恢复出厂设置选择按钮恢复。
  3. OpenWrt系统都崩溃了或者启动不了
    如果OpenWrt系统都进不去了,我们可以通过uboot来救砖

变砖急救方案

  1. 下载Atom固件
  2. 把Atom插到扩展板上,使用网线把扩展板和PC直接连接或者按照这里连接网线
  3. PC设置为固定IP:192.168.8.100
  4. 先按住MODE键不放,再给Atom重新上电直到状态灯变为黄色后释放按键
  5. 在PC上打开浏览器在网址输入栏输入:192.168.8.2并回车
  6. 进入如右图界面,并点击“选择文件”并选择刚才下载的文件:openwrt-ramips-mt7620n-atom-squashfs-sysupgrade.bin点击“Update firmware”
  7. 等待大约2分钟,状态灯从黄色消失,系统自动重启完成了

UbootSafe.


高级

为了方便爱好者们使用Atom的mt7620n硬件资源和linux系统,我们在github上开放了atom的openwrt源码及脚本。按照说明中的步骤,就可以编译出在atom上使用的linux固件了。 详情点击这里

UbootSafe.

<name="atom-compilefirmware" id="atom-compilefirmware">

搭建OpenWrt编译环境,编译自己的程序

配置Linux编译环境,如果你使用下面的Linux,请预先安装所需软件

  • Ubuntu 13.10:

    $ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt xsltproc

  • Ubuntu 12.04LTS:

    $ sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip

  • Arch Linux:

    $ pacman -S --needed subversion asciidoc bash bc binutils bzip2 fastjar flex git gcc util-linux gawk intltool zlib make cdrkit ncurses openssl patch perl-extutils-makemaker rsync sdcc unzip wget gettext libxslt zlib boost libusb bin86 sharutils b43-fwcutter findutils

创建工作目录:

   $ mkdir OpenWrt    $ cd OpenWrt

下载AtomSdk_V1a.tar.bz2

把压缩文件放在OpenWrt编译目录:

解压缩 Atom SDK:

   $ tar -jxvf AtomSdk_V1a.tar.bz2    $ cd AtomSdk_V1a

进入编译选项界面,当前为Atom默认配置,如果您想添加或者移除某些程序包,则通过这个界面重新配置,配置完后保存退出:

   $ make menuconfig

执行下面命令开始编译:

   $ make V=s    编译结束后,进入bin/ramips/package/base 就可以找到新编成功的固件了。

OpenWrt开发

600Mhz主频,Atom可是个强大的小电脑,您可以在SDK里面开发你自己的程序了。好吧,地球人都知道,第一个程序“helloworld”。

编一个`“helloworld”安装包

  • 1 . 进入编译环境下的package目录:

   $ cd package

   在package目录下创建helloworld目录,并进入该目录:

   $ mkdir helloworld    $ cd helloworld

  • 2 . 在helloword目录下,创建src目录,并在该目录下创建helloworld.cMakefile

   $ mkdir src    $ cd src    $ touch helloworld.c    $ touch Makefile

  • 3 . 编辑helloword.c文件(该文件在src目录下):

   $ vim helloworld.c

#include <stdio.h>
#include <unistd.h>
int main(void)
{
    printf("Hellowrold,my name is Atom!!! \n");
    return 0;
}


  • 4 . 编辑Makefile

   $ vim Makefile

#build a makefile for helloworld
PROGS     = helloworld

INSTMODE  = 0755
INSTOWNER = root
INSTGROUP = root

OBJS = helloworld.o
LDLIBS += -lm

all: $(PROGS)
$(PROGS): $(OBJS)
    $(CC) $(CFLAGS) $(LDFLAGS) $^ $(LDLIBS) -o $@

%.o: %.c
    $(CC) -c $(CFLAGS) $^ -o $@

install: $(PROGS)
    $(INSTALL) -d $(INSTDIR)
    $(INSTALL) -m $(INSTMODE) -o $(INSTOWNER) -g $(INSTGROUP) $(PROGS) $(INSTDIR)

clean:
    rm -f $(PROGS) *.o



  • 5 . 现在让我们来编写另一个在父目录里的Makefile(即helloworld目录下)。

    该Makefile用于生成OpenWrt的安装包(这个与src下Makefile作用不一样),当我们打开这里的Makefile文件,很难认出这是一个Makefile。它的格式跟一般的Makefile不一样,因为它的功能跟普通Makefile就是不一样的。它是一种编写方便的模板。Makefile文件最关键,一般来说它提供了下载、编译、安装这个软件包的步骤。

   $ cd ../    $ touch Makefile    $ vim Makefile

###############################################
# Copyright (C) 2015 Intorobot team
#helloworld OpenWrt安装包所需要的Makefile
##############################################

include $(TOPDIR)/rules.mk


# 自定义的安装包的名字和版本号

PKG_NAME:=helloworld
PKG_RELEASE:=1.0


# 定义编译程序的工作目录.
# 默认的编译根目录 $(BUILD_DIR)是OpenWrt SDK的build_mipsel目录

PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install

include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk


# 声明安装包的相关信息
define Package/helloworld
    SECTION:=helloworld
    CATEGORY:=Intorobot
    TITLE:=MT7620 helloworld
endef


#描述
define Package/helloworld/description
    This package provides a way that Atom helloworld.
endef


#编译前的准备工作,把源文件拷贝到编译的工作目录下<br>
define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(CP) ./src/helloworld.c $(PKG_BUILD_DIR)/
    $(CP) ./src/Makefile $(PKG_BUILD_DIR)/
endef

#编译
define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR) \
        $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)"
endef


# install 项定义了程序包的安装相关内容,其中 $(1) 表示OpenWrt系统的根目录,$(INSTALL_DIR) 会创建$(1)/bin目录,如果已存在则忽略
# $(INSTALL_BIN) 把所生生成的二进制可执行文件(即helloworld)拷贝到$(1)/bin/目录下。
define Package/helloworld/install
    $(INSTALL_DIR) $(1)/usr/bin/
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/helloworld $(1)/usr/bin/
endef


# 这一条命令很重要,他最终使用上述选项内容,并调用BuildPackage编译程序包
$(eval $(call BuildPackage,helloworld))



  • 6 . 回到SDK的顶层目录,执行如下命令:

   $make V=s    编译结束后,进入bin/ramips/packages/base就能找到所生成的安装包 helloworld_1_ramips_24kec.ipk

  • 7 . 将helloworld_1_ramips_24kec.ipk 上传到Atom (如果是windows系统,请使用winscp):

   $scp xxx/helloworld_1_ramips_24kec.ipk root@192.168.8.1:~/     xxx/ 表示helloworld_1_ramips_24kec.ipk所在目录,192.168.8.1 是Atom的IP地址.

  • 8 . 在Atom里运行这个新创建的安装包

   root@Atom:~# cd    root@Atom:~# opkg install helloworld_1_ramips_24kec.ipk    让我们来看看运行helloworld的结果

   root@Atom:~# helloworld

   看看效果:

   Hellowrold,my name is Atom!!!