openwrt入门经典案例

一:下载编译

编译出来的镜像位于 bin 目录下面

其中 openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin 这个就是我们要的镜像。烧写到板子上面即可启动。这样最简单的 OpenWrt 就可以启动了。

二:设置开发板的IP地址

开发板中设置IP地址

在开发板上面,通过修改/etc/config 目录下的 network 配置文件,可以达到目的,首先输入一些命令

# cd /

# vi etc/config/network

在源码中设置IP地址

        如果大家对OpenWrt系统的启动流程有一定的了解的话,我们就知道,系统在启动的时候,会通过运行uci-defaults.sh这个脚本程序来设置IP等基本参数。该脚本文件位于系统源码的openwrt/trunk/,package/base-files,/files/lib./unctions目录下,那么接下来我们就来修改该脚本文件,从而修改IP地址。
(注意:新版本的openwrt修改IP的地方在:openwrt/trunk/package/base-file/files/bin/目录下的config._generate文件) 

首先打开配置文件

# cd openwrt/trunk/package/base-files/files/lib/functions

# vim uci-defaults.sh

新版本命令如下

# cd openwrt/trunk/package/base-file/files/bin/

# vim config_generate

 三 WAN 与 LAN 的切换

        我们就来通过修改开发板上面的配置文件的 方式来将网口灵活的配置成 WAN 口或者 LAN 口。同样是通过修改/etc/config 目录下 的 network 配置文件,可以达到目的。首先输入一些命令。
# cd /
# vi etc/config/network
此时,我们可以看到 network 配置文件关于 VLAN 的内容如下。
1 config switch
2 option name 'rt305x'
3 option reset '1'
4 option enable_vlan '1'
5 config switch_vlan
6 option device 'rt305x'
7 option vlan '1'
8 option ports '0 1 2 3 6t'
9 config switch_vlan
10 option device 'rt305x'
11 option vlan '2'
12 option ports '4 6t'
        其中第 4 行代表开启 vlan,6,7,8 行为 vlan0 的设置,10,11,12 行为 vlan1 的设置。这样配置的话重启网络会自动生成 2 个设备接口,eth0.0 (vlan0), eth0.1 (vlan1),这样你可以配置这两个 valn 做为 lan 口或者 wan 口。其中端口 0,端口 1,端口 2,端口 3 都属于 vlan0,端口 4 属于 vlan1。
因为开发板只用 vlan 2 个端口,可以把 option ports '0 1 2 3 6t'这一行的 0,1,2 去掉,这样就配置个两个 vlan,端口 3 作为第一个 vlan,端口 4 作为第 2 个 vlan,这样网络环境就配置好了。端口 3 为 LAN,端口 4 为 WAN。如果想将开发板端口 3、 端口 4 全部设置成 LAN 口, 则对/etc/config/network 做如下修改。
(1)将
20 option ports '0 1 2 3 6t'
改为
20 option ports '0 1 2 3 4 6t'
(2)将
21 config switch_vlan
22 option device 'rt305x'
23 option vlan '2'
24 option ports '4 6t'
给注释掉。
(3)将
9 config interface 'wan'
10 option ifname 'eth0.2'
11 option proto 'dhcp'
12 option macaddr ':
给注释掉。
OK!
重启开发板就可以了:
reboot

四 为 OpenWrt 配置支持 Web 界面

 

五 开发板做无线接入点、做站点、做中继器

无线接入点:(做设备,如手机等)
站点:(做路由器)
中继器:(路由转发器、做B,使A、C远距离连接)

六 开发板访问虚拟机Ubuntu文件

1、Ubuntu中安装SSH网络服务
2、开发板登录到Ubuntu的SSH服务器中
登录的命令格式为:
ssh servername@serverip
其中servername是Ubuntu的用户名,serverip是Ubuntu的ip地址
比如我们登录到一个用户名为if的Ubuntu的ssh服务器中
# ssh if@192.168.10.233
接下来我们要从Ubuntu上面下载文件到开发板中,下载方式很简单
scp 源(服务器目标文件路径) 目标(用户名@用户ip:文件路径)
scp /home/if/test/a.c root@192.168.10.1:/

七 添加 OpenWrt 软件包概述

        OpenWrt 是一个比较完善的嵌入式 Linux 开发平台, 在无线路由器应用上已有 4000 多个软件包。我们可以在其基础上增加软件包,以扩大其应用范围。在 OpenWrt 中增加软件包极其方便,按照 OpenWrt 的约定就可以很简单的完成。加入的软件包可以是网上可下载的开源软件或自行开发的软件。为加入软件包需要在 package 目录下创建一个目录,以包含该软件包的各种信息和与 OpenWrt 建立联系的文件。然后创建一个Makefile 与 OpenWrt 建立联系,Makefile 需要遵循 OpenWrt 的约定。另外可以创建一個 patchs 目录保存 patch 文件,对下载的源代码进行适量修改。
Makefile 语法
引入文件
OpenWrt 使用三个 makefile 的子文件,分别为:
        include $(TOPDIR)/rules.mk
        include $(INCLUDE_DIR)/kernel.mk
        include $(INCLUDE_DIR)/package.mk
        由这些 makefile 子文件确立软件包加入 OpenWrt 的方式和方法。
$(TOPDIR)/rules.mk 一般在 Makefile 的开头,
$(INCLUDE_DIR)/kernel.mk 文件对于软件包为内核时是不可缺少,$(INCLUDE_DIR)/package.mk 一般在软件包的基本信息完成后再引入。
编写软件包的基本信息
软件包的信息均以 PKG_开头,其意思和作用如下:
PKG_NAME 表示软件包名称,将在 menuconfig 和 ipkg 可以看到。
PKG_VERSION 表示软件包版本号。
PKG_RELEASE 表示 Makefile 的版本号。
PKG_SOURCE 表示源代码的文件名。
PKG_SOURCE_URL 表示源代码的下载网站位置。@SF 表示在 sourceforge 网站,
@GNU 表示在 GNU 网站,還有@GNOME、@KERNEL。
PKG_MD5SUM 表示源代码文件的效验码。用于核对软件包是否正确下载。
PKG_CAT 表示源代码文件的解压方法。包括 zcat, bzcat, unzip 等。
PKG_BUILD_DIR 表示软件包编译目录。它的父目录为$(BUILD_DIR)。如果不指定
默认为$(BUILD_DIR)/$( PKG_NAME)/$( PKG_VERSION)。
#
# Copyright (C) 2014-2016 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

PKG_NAME:=acl
PKG_VERSION:=2.3.1
PKG_RELEASE:=$(AUTORELEASE)

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://git.savannah.nongnu.org/cgit/acl.git/snapshot
PKG_HASH:=8cad1182cc5703c3e8bf7a220fc267f146246f088d1ba5dd72d8b02736deedcc
PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
PKG_LICENSE:=LGPL-2.1 GPL-2.0
PKG_LICENSE_FILES:=doc/COPYING doc/COPYING.LGPL

PKG_INSTALL:=1
PKG_FIXUP:=autoreconf

include $(INCLUDE_DIR)/package.mk

define Package/acl/Default
  TITLE:=Access control list (ACL) manipulation
  URL:=https://savannah.nongnu.org/projects/acl
  SUBMENU:=Filesystem
endef

define Package/acl/Default/description
  Access control list support
endef

define Package/acl
$(call Package/acl/Default)
  SECTION:=utils
  CATEGORY:=Utilities
  TITLE+=utils
  DEPENDS:=+libacl
endef
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值