• 配置树莓派3的openwrt中的网络


    在上一篇中讲到openwrt的编译安装:

    http://www.cnblogs.com/yeqluofwupheng/p/7296218.html

    但是烧写进去,启动系统后发现它的默认配置是路由器,所以地址是192.168.1.1的形式,如果你不是把它做路由器的系统来用,那就要重新配置openwrt的网络。下面介绍一些它的网络设置。

    在此之前先远程登录树莓派openwrt

    首先检查是否安装了ssh(使用dpkg -l | grep ssh),没有的话,使用命令:

    apt-get install ssh

    然后使用命令:ssh username@address来连接,其中username是远程的计算机账户名,address是远程计算机IP,例如:ssh root@192.168.1.109

    注意:
    首次连接,可能提示“the authenticity of the host can’t be established”。没有关系,回答yes进行连接,输入密码即可。
    如果你登录一个标准的Shell会话,命令行提示符是“用户名@远程计算机的名称”
    如果希望通过SSH运行图形程序,可以使用:ssh -X username@address
    连接以后,输入程序的名称即可。譬如,启动gedit,输入gedit即可。另外注意,尽管程序出现在你的计算机上面,但是它依然是运行在远程计算机上面。如果启动OpenOffice或者其他复杂的图形程序,可能有一段时间的延迟。

    然后介绍如何修改IP地址
    方法一:

    vi etc/config/network

    将option ipaddr '192.168.1.1'中的地址改为 192.168.1.109(按i进入修改,修改完成按esc退出编辑,接着:wq保存退出),然后保存退出,然后再重启树莓派(如果使用命令可以使用reboot),就发现IP地址被改为192.168.1.109了.

    方法二:在源代码中设置IP
    前面是通过在树莓派上面修改配置文件的方式来修改IP,这样做虽然简单,但是每当我们重新烧写固件后,都要通过这个方式重新修改IP,这样太麻烦。那么,接下来我们就来通过修改源码的方式,来修改IP,这样就能编译出一个初始IP是192.168.1.109的镜像。
    如果大家对OpenWrt系统的启动流程有一定的了解的话,我们就知道,系统在启动的时候,会通过运行uci-defaults.sh这个脚本程序来设置 IP 等基本参数。该脚本文件位于系统源码的openwrt/trunk/package/base-files/files/lib/functions目录,那么接下来我们就来修改该脚本文件,从而修改IP 地址,输入命令:

    /home/Linux/openwrt/trunk$vi./package/base-files/files/lib/functions/uci-defaults.sh

    新版本在目录:

    ./package/base-files/files/bin/config_generate

    然后我们就可以在该脚本程序中看到,它的IP地址设置为192.168.1.1,将它改成你希望的IP就可以了。

    更改了IP之后,可能还是无法上网,可以按照下面的流程检查:

    1.网络设置有问题
    因为openwrt配置是按照路由器的方式配置的,连上网线后可能与当前路由器冲突。例如:我是使用ssh远程登录树莓派,如果不关闭dhcp,就会出现树莓派和原本的路由器两边给我的主机分配ip使得主机这边冲突而无法上网。所以需要关闭openwrt中的dhcp。
    如何关闭openwrt上的dhcp服务:

    #./etc/init.d/dnsmasq stop
    #./etc/init.d/dnsmasq disable

    但是这样树莓派上的openwrt还是不能上网,原因是openwrt上的网络设置是路由器的设置,因此,他是没有设置网关,但是现在我不把他当作路由来用,只是使用它的系统,就要修改网络配置。

    很简单,在/etc/config/network里面有树莓派的网络配置,跟正常的设置比较一下发现没有网关的设置,于是加上

    option gateway '192.168.2.1'

    这样ping 202.108.22.5就可以ping通。

    2.dns有问题
    但是,有了上面的设置你会发现"ping www.baidu.com"还是ping不通。这说明dns的配置有问题。
    先介绍一个工具用来检查dns,就是nslookup命令。
    nslookup命令用于查询DNS的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题。而且,它在linux下和windows下面都能用。
    用法参考:blog.csdn.net/violet_echo_0908/article/details/52033725

    那么如何配置dns呢?

    首先最直接的方法在/etc/resolv.conf中添加dns地址:

    vi /etc/resolv.conf
    
    nameserver 8.8.8.8
    nameserver 8.8.4.4

    但是这样只能使用一时,你会发现每次重启网络或重启系统就要重新添加上面的dns地址。

    那么怎样永久的添加dns的地址呢?

    从文件的链接关系可以看出来dns地址是记录在/tmp/resolv.conf.auto里面的,其他/etc/resolv.conf和/tmp/resolv.conf都是/tmp/resolv.conf.auto的链接,正常的思路是在/tmp/resolv.conf.auto里面添加dns地址就可以保证dns正常,但是实际上,在这里添加后,重启系统/tmp/resolv.conf.auto就会被清空,正确说应该是每次重启系统/tmp/resolv.conf.auto都会重新新建一次,你可以尝试删除它,重启后还是会恢复。

    这样只要找到创建改文件的脚本然后不让它重新创建,后者创建后自动添加dns就可以了,但是可惜我没有找到脚本的位置,没办法我尝试在编译的时候就将dns的地址写进去,可不可以这样做呢?

    我在下面这五个文件(整个编译的代码里面只有这个五个文件有直接设置dns的)中添加了dns的地址,这是我的思路不能保证都成功:
    /home/openwrt/openwrt-master/staging_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/init.d/dnsmasq:
    /home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/init.d/dnsmasq:
    /home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/dnsmasq-nodhcpv6/dnsmasq-2.75/ipkg-brcm2708/dnsmasq/etc/init.d/dnsmasq:
    /home/openwrt/openwrt-master/package/network/services/dnsmasq/files/dnsmasq.init:
    /home/openwrt/openwrt-master/build_dir/target-arm_cortex-a53+neon-vfpv4_musl-1.1.14_eabi/root-brcm2708/etc/rc.d/S60dnsmasq:

    /home/openwrt/openwrt-master/package/network/services/ipset-dns/files/ipset-dns.config:(改文件是配置文件可以不用添加dns的地址)

    3.扩展SD卡空间

    处理好上面的问题,也还不能开始使用openwrt系统,因为,你运行#df -h命令,发现它的磁盘空间只有几百M,但是TF卡是有几十G的,这是怎么回事呢?

    熟悉树莓派的就知道,树莓派第一次安装系统也是这样,需要在配置选项里面选择扩展SD卡空间,才能使他的空间和SD的实际空间一样大,但是openwrt里面没有这样的配置选项,那么如何扩充空间呢?

    实际上可以下载一个工具gparted,通过那个工具来扩充SD卡的空间。网上有教程我这里就不赘述了,操作也很简单,可以参考这篇博客:

    http://blog.csdn.net/eric_lmy/article/details/51785912

    其他

    上面是安装openwrt但是不使用它路由器的功能,而是使用它的SDK的一些设置,但实际上你就是想做个路由器,那可以参考下面的几篇博客:

    http://shumeipai.nxez.com/2015/07/28/install-openwrt-will-be-transformed-into-a-versatile-router-raspberry-pi.html

    http://blog.csdn.net/AGrapier/article/details/51971535

  • 相关阅读:
    文本框设置只读,后台可获取
    div 在同一行的 CSS处理
    在标签中添加属性
    (转)如何使用SignalTap II觀察reg與wire值? (SOC) (Verilog) (Quartus II) (SignalTap II)
    (转)如何使用ModelSim對Megafunction或LPM作仿真? (SOC) (MegaCore) (ModelSim)
    (笔记)TSL235新型光感器件强烈推荐使用
    (转)如何增加SignalTap II能觀察的reg與wire數量? (SOC) (Quartus II) (SignalTap II)
    (转) 如何將10進位轉2進位? (C/C++) (C)
    (转)如何使用ModelSim作前仿真與後仿真? (SOC) (Quartus II) (ModelSim)
    (笔记)关于LM3S片内FLASH编程的一点建议
  • 原文地址:https://www.cnblogs.com/yeqluofwupheng/p/7296236.html
Copyright © 2020-2023  润新知