查看: 3659|回复: 6

远程连接RioTboard

[复制链接]
  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-8-3 16:15:32 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 bruce_helen 于 2014-8-3 21:32 编辑

    本篇主要内容
    1. RT3070 USB wifi驱动移植和wpa_supplicant移植;
    2. OpenSSH移植;
    3. 远程连接测试。

    在局域网上远程连接RioTboard可以让多人同时使用同一块RioTboard,方便开发。当然你也可以把RioTboard放到互联网,远程连接。
    注意:这里的移植建立在busybox构建的根文件系统上。

    一、RT3070 USB wifi驱动移植
    xinxinyuan已经有了驱动移植部分,我这里只对不同的地方作出说明。另外我还加入了wpa_supplicant。为什么要加入wpa_supplicant程序呢?因为现在大部分的路由器都是WPA加密,单单一个RT3070 USB wifi的驱动还不足以让RioTboard连接上无线网络。@xinxinyuan 的系统是Ubuntu,系统可能已经包含无线连接管理程序,因此他只需要移植一个3070的驱动即可。
    附xinxinyuan 《RT3070 USB wifi模块驱动移植 imx6》
    https://www.cirmall.com/bbs/thread-32167-1-1.html

    具体过程如下,首先到Ralink官网上http://www.mediatek.com/en/downloads/下载最新linux驱动代码。
    这里下载的是DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.bz2,然后到解压后的文件夹,打开readme_sta_usb文档,里面有具体修改地方的指导。下面的内容为补充说明:
    根目录下的Makefile
    1. 在最上面加
    MODE = STA
    2. 改平台
    PLATFORM = RALINK_2880

    修改os/linux/config.mk
    1. 156行
    ifeq ($(PLATFORM), RALINK_2880)
    LINUX_SRC = /home/bruce/share/imx6/L3.0.35_4.1.0_130816_source/source/ltib/rpm/BUILD/linux-3.0.35
    CROSS_COMPILE = arm-linux-
    endif

    2. 864行
    ifeq ($(PLATFORM), RALINK_2880)
    #CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -G 0 -mno-abicalls -fno-pic -pipe -finline-limit=100000 -march=mips2 -mabi=32 -Wa,--trap -DLINUX -nostdinc -iwithprefix include $(WFLAGS)
    EXTRA_CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -I$(RT28xx_DIR)/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -D__LINUX_ARM_ARCH__=7 -march=armv7-a -msoft-float -Uarm -DMODULE -DMODVERSIONS $(WFLAGS)
    export EXTRA_CFLAGS
    endif

    编译make
    完成后在os/linux/目录下生成rt5572sta.ko文件。
    将这个文件放到rootfs相应的目录下。
    将源代码根目录下的RT2870STA.dat放到rootfs/etc/Wireless/RT2870STA目录下

    移植wpa_supplicant
    因为现在的无线wifi网络大多是wpa加密。所以需要移植wpa_supplicant工具。
    参考下面的帖子,里面的讲解非常详细。注意最好使用和文章中一样的软件版本,否则可能会出现编译不通过的情况。
    http://blog.csdn.net/hongtao_liu/article/details/5679195
    然后,在根目录etc/下编写一个连接脚本/etc/wpa_supplicant.conf。将下面的内容放到配置文件中,这个配置适合大部分应用,不同的路由器只需要将红色部分替换即可。ssid为无线网络名,psk为无线密码。
    # WPA-PSK/TKIP
    ctrl_interface=/var/run/wpa_supplicant
    network={
       ssid="xxxxx"
       scan_ssid=1
       key_mgmt=WPA-EAP WPA-PSK IEEE8021X NONE
       pairwise=TKIP CCMP  
       group=CCMP TKIP WEP104 WEP40   
       psk="yyyyy"
    }
    以上准备好后下载到开发板中。然后开始连接网络
    连接无线网络操作步骤
    1. 装载RT3070驱动
    insmod rt5572sta.ko
    2. 将RT3070的固件放到目录下
    etc/Wireless/RT2870STA
    3. 打开无线网络,设置IP地址
    ifconfig ra0 192.168.1.179 up
    4. 设置网关
    route add default gw 192.168.1.1
    5. 新建目录,只需要建立一次即可,当前的文件系统已经自带这个目录
    mkdir -p /var/run/wpa_supplicant
    6. 连接网络,网络信息在/etc/wpa_supplicant.conf这个文件中
    wpa_supplicant -B -ira0 -c /etc/wpa_supplicant.conf -Dwext
    7. 设置DNS服务器,要不然不能使用域名解析
    cat /etc/resolv.conf 查看当前DNS配置
    echo "nameserver 202.102.128.68" >> /etc/resolv.conf
    这时候就能ping通www.baidu.com了
    8. 查看无线网络状态
    iwconfig ra0

    1.png

    OpenSSH移植
    参考资源:
    http://www.nenew.net/openssh-port-arm9-board.html
    http://www.2cto.com/os/201302/188376.html
    相同的内容就不贴了,下面主要记录不一致的地方。
    编译时指定的路径:
    zlib
    ./configure--prefix=/home/bruce/share/work/WiFi/openssh/install/zlib
    make
    make install
    openssl
    ./Configure--prefix=/home/bruce/share/work/WiFi/openssh/install/opensslos/compiler:arm-linux-gcc
    make
    make install
    openssh
    ./configure--host=arm-linux --prefix=/usr/local/openssh--with-zlib=/home/bruce/share/work/WiFi/openssh/install/zlib--with-ssl-dir=/home/bruce/share/work/WiFi/openssh/install/openssl--disable-etc-default-login --disable-strip CC=arm-linux-gcc AR=arm-linux-ar
    make
    这里不需要install,直接将生成的文件拷贝到开发板的文件系统中。
    注意事项
    在开发板中操作
    cd/usr/local/openssh/etc
    ssh-keygen -t rsa1-f ssh_host_key -N ""
    ssh-keygen -t rsa-f ssh_host_rsa_key -N ""
    ssh-keygen -t dsa-f ssh_host_dsa_key -N ""
    ssh-keygen-t ecdsa -f ssh_host_ecdsa_key -N ""      //原文中这里写错了
    另外,把这个文件/usr/local/openssh/etc/ sshd_config 中的PermitRootLogin yes前的注释“#”号去掉。方便我们使用root账号远程登录。
    我们系统中使用的是busybox构建的根文件系统,有些文件不合乎标准。/etc/passwd,该文件要特别关注,因为OpenSSH(SSHD)对用户管理校验要求很严,所以Busybox添加的用户基本是不符合要求的,主要表现为密码失效等,要手动修改,示例如下:
    使用Busybox添加用户时,/etc/shadow文件大概形式如下:
    # cat /etc/shadow
    root:$1$m.jegaqA$vA.rBTVryyUAcRvyZ2gOL1:0:0:99999:7:::
    telnetd:$1$N4uZUEcU$yotoDExxgGXs6PE7PQuIR1:0:0:99999:7:::
    honey:$1$SwtHyL/h$MsEX6Vnqz/qhwDsivDqD20:0:0:99999:7:::
    sshd:$1$elylgRon$FOHgkwpPMcNI5s.iL8ZS/.:0:0:99999:7:::

    这样的话,使用SSH登录就会出现用户登录失败,提示诸如“WARNING: Your password has expired. You must change yourpassword now and login again!”等等。
    需要手工修改,大致如下:
    # cat /etc/shadow
    root:$1$m.jegaqA$vA.rBTVryyUAcRvyZ2gOL1:15695:5:99999:7:5:20000:
    telnetd:$1$N4uZUEcU$yotoDExxgGXs6PE7PQuIR1:15695:5:99999:7:5:20000:
    honey:$1$SwtHyL/h$MsEX6Vnqz/qhwDsivDqD20:15695:5:99999:7:5:20000:
    sshd:$1$elylgRon$FOHgkwpPMcNI5s.iL8ZS/.:15695:5:99999:7:5:20000:

    设置root用户密码
    passwd root
    输入密码即可
    开启/sbin/sshd服务后使用SecureCRT工具即可登录。
    当前开发板上电后手动启动无线网络
    cd/home/bruce/wifi
    将上面连接无线网卡的步骤写成start脚本,运行start启动脚本,这个脚本中会装载无线网卡驱动,并且自动连接实验室的TP-604路由器。注意,在脚本中使用了固定IP192.168.1.179,这个IP地址不能和无线网络中的其他IP地址冲突,如果需要可以修改start脚本。
    ./start
    然后启动sshd服务
    /sbin/sshd
    没有错误的话就可以通过ssh工具远程连接开发板了。
    账号:root
    密码:自己设定
    附:使用SecureCRT工具进行连接远程连接的方法
    打开SecureCRT,选择SSH2连接。
    1.png
    下一步,输入IP地址和密码
    1.png
    Next后直接Finish
    在左边的Sessions中双击选择刚才新建的名称,打开后会弹出输入密码的对话框,输入密码,点击OK即可进入开发板shell命令提示行。
    1.png
    1.png
    例子:使用top命令查看系统当前状态
    1.png

    使用注意事项
    由于是我们内部用来作嵌入式开发,我们这里使用了root账号。root账号拥有系统全部权限,使用时不要删除系统中其他文件。最好的方法是在/home目录下建立自己的用户名目录,然后切换到此目录,测试程序都可以放在这个目录下。这样大家同时使用,但又不相互影响。
    如果想提高系统的安全性,请添加用户名,不要使用root账号登陆。

    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-8-3 16:27:33 | 显示全部楼层
    上传使用到的源代码
    RT3070和wpa_supplicant
    wireless_tools.29.tar.gz (287.52 KB, 下载次数: 0)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-8-3 16:29:19 | 显示全部楼层
    另外LZ位出现的表情无法转换成纯文本,谁知道怎么禁止显示表情?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2014-8-3 20:12:02 | 显示全部楼层
    bruce_helen 发表于 2014-8-3 16:29
    另外LZ位出现的表情无法转换成纯文本,谁知道怎么禁止显示表情?

    是discuz自动转了么?还没遇到过,研究一下
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-8-3 21:30:46 | 显示全部楼层
    EEboard爱板网 发表于 2014-8-3 20:12
    是discuz自动转了么?还没遇到过,研究一下

    是的,直接放到页面和放到引用效果是一样的,都会自动转成表情。

    顺便提个建议:论坛最好加上显示程序源代码(C/C++/java...)的格式,方便大家贴代码。像CSDN那样。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

     楼主| 发表于 2014-8-3 21:33:54 | 显示全部楼层
    EEboard爱板网 发表于 2014-8-3 20:12
    是discuz自动转了么?还没遇到过,研究一下

    哈哈,在编辑器旁边找到一个附件选项,可以禁用表情功能~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2016-8-15 09:28
  • 签到天数: 222 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-8-6 23:20:10 | 显示全部楼层
    楼主很牛,多谢分享~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-22 18:09 , Processed in 0.181260 second(s), 28 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.