一块arm开发板,带有以太网口,还有一个在京东上买的usbwifi模块,wifi模块在ubuntu上直接可以用,输入lsusb,发现其使用的wifi模块竟然是realtek的8192,于是想用这两个网口实现无线路由的转发功能,即板子的以太网接到局域网,以太网与wifi的wlan0直接存在一定转发规则,然后手机或者笔记本连上8192的AP即可上网。

实现这一功能稍微有些繁琐,需要移植和配置一些东西,这里只说一下步骤与注意细节,不再详细的去写过程。

1以太网部分。我的板子文件系统是nfs的,挂到虚拟机192.168.1.248,板子以太网ip是192.168.1.100;

2AP部分。先移植8192驱动,把固件放到指定位置,insmod 8192.ko,出现wlan0节点。ifconfig wlan  192.168.0.1 ,指定wlan0的ip地址。然后让8192作为AP,需要移植hostapd,配合配置文件,配置文件里主要是创建ap的一些参数,如ap名称、密码、加密方式等,然后运行hostapd,此时用手机扫描wifi出现 “rtwap”。8192的hostapd在驱动源码里有。

   3ip分配与获取。通过udhcpd与udhcpc实现,udhcpd一般运行在路由器端,负责分发ip,udhcpc运行与终端,负责获取ip,只有当路由器端运行了udhcpd,终端才可以通过udhcpc获取ip,否则你是获取不到ip的,移植udhcpd,编写配置文件,配置文件描述了ip分发规则,当有客户端连上AP后,udhcpd会跟据配置文件的规则自动分配一个IP地址。例子中的配置文件ip分配从 192.168.0.2开始,这样一般第一个连上的ip是192.168.0.2,下一个是192.168.0.3......。waln0的ip是192.168.0.1相当于路由器的网关。

4ip转发。路由器具有路由和ip转发功能,这里我们只实现转发功能。ip转发依赖于内核的防火墙,需要先在内核里选上相关配置选项,然后移植iptables,由iptables去实现。

移植iptables的时候需要注意,移植的时候库使用什么路径,那么文件系统里要把库放到和移植时相同路径,否则提示某些参数命令找不到。iptables移植好之后,即可进行转发规则设置。

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables  -t nat -I POSTROUTING -o eth0 -j MASQUERADE

iptables -A FROWARD -s 192.168.0.0/24 -j ACCEPT

iptables -A FROWARD -d 192.168.0.0/24 -j ACCEPT

有这四条命令后,会将192.168.0.0网段的ip伪装成eth0的192.168.1.x通过eth0转发 。

5客户端的设置。pc连上rtwap,获取到ip 192.168.0.2,ping 192.168.1.248,但是ping超时,为什么? 因为一般的笔记本有以太网口和无线网口,默认 192.168.1.x ip通过以太网发出去,而我们想让192.168.1.248通过192.168.0.1发出去,这样192.168.1.248到192.168.0.1网关之后,iptables进行转发,然后选择相应路由。指定ip地址由哪个网口发出去,要看pc的路由表,所以ping 不通的原因是我们没有在本地添加相应路由。

sudo  route add -net 192.168.1.0  netmask 255.255.255.0 gw 192.168.0.1

这样设置以后,ping  192.168.1.248 就可以ping 通,然后 ssh   linux@192.168.1.248 ,输入密码后可以登上虚拟主机。

6调试工具。 移植tcpdump,可以对指定网卡抓包。tcpdump -i wlan0 -v 可以显示wlan0的数据传递情况。我当时一直没有ping通,后来通过tcpdump发现是pc端路由设置不对。

7备注。具体各个工具的移植网上资料较多,不再赘述。

arm linux无线路由相关推荐

  1. arm linux 启动之一:汇编启动到start_kernel

    描述arm linux启动的概要过程,以S5PV210(Cortex A8)为例,本文描述第一个阶段. 一.arm linux的引导 uboot在引导arm linux(uImage镜像)到SDRAM ...

  2. ARM Linux 3.x的设备树(Device Tree)【转】

    转自:http://blog.csdn.net/21cnbao/article/details/8457546 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] ARM Devi ...

  3. arm linux嵌入式网络控制系统,基于ARMLinux的嵌入式网络控制系统的研究与设计

    摘要: 随着计算机技术.控制技术和网络技术的蓬勃发展,嵌入式系统与网络控制系统的应用越来越广阔.当前控制系统正经历一场前所未有的变革,远程监控和智能控制成为控制系统发展的重要方向.通过嵌入式网络控制系 ...

  4. python linux arm_[Python]python for ARM/LINUX

    按照下面的方法,可以成功将python2.5 build到 ARM /linux , 我已经成功了: Download latest from www.python.org Save into /ho ...

  5. 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...

    [Qt开发][VS开发][Linux开发]OpenCV.Qt-MinGw.Qt-msvc.VS2010.VS2015.Ubuntu Linux.ARM Linux中几个特别容易混淆的内容 标签:[Qt ...

  6. ARM linux的启动部分源代码简略分析

    ARM linux的启动部分源代码简略分析 以友善之臂的mini2440开发板为平台,以较新的内核linux-2.6.32.7版本为例,仅作说明之用. 当内核映像被加载到RAM之后,Bootloade ...

  7. ARM+linux+2440嵌入式开发相关经典书籍(转)

    源:ARM+linux+2440嵌入式开发相关经典书籍 转载于:https://www.cnblogs.com/LittleTiger/p/7992971.html

  8. linux pfn,ARM Linux下的page和pfn之间转换的宏。

    ARM Linux下的page和pfn之间转换的宏如下: 1)page_to_pfn 2)pfn_to_page 这两个宏依赖于内核编译时,选择的内存模型.在include/asm-generic/m ...

  9. Arm Linux 交叉编译(交叉编译是什么?CROSS_COMPILE)(交叉编译工具链【待更】)

    文章目录 交叉编译 1.编译 2.本地编译 3.交叉编译 交叉编译工具链 交叉编译 在嵌入式系统开发中,经常会听到一个词:交叉编译.到底什么是"交叉编译"呢?为什么要使用" ...

最新文章

  1. HTML(二):表格元素
  2. iOS开发-文件上传原理
  3. hyperworks2018安装教程
  4. go与JAVA差异_20190312_浅谈gojava差异(二)
  5. 计算机视觉---4---多视角几何学
  6. java socket 多次write_java NIO2异步socket的write事件与read事件的完成次数不一致是怎么回事...
  7. FineUI(专业版)v3.0.0 发布,手机、平板和桌面全支持!
  8. 戴着口罩也要开心过年吖!
  9. android shell检查是否锁屏_android打开关闭屏幕
  10. react 对象渲染_不要过度使用React.useCallback()
  11. java之xml编程
  12. 用setTimeout代替setInterval
  13. 掌上百度2011java_掌上百度2011通用版 掌上百度 Java空间版
  14. 面试总结-2023届安全面试题总汇
  15. PTA IP地址转换
  16. 史上最全的大数据开发八股文【自己的吐血总结】
  17. CTFshow 击剑杯 部分WP
  18. CentOS下修改IRedMail的邮件附件大小
  19. 创建群晖共享文件夹,并进行电脑访问
  20. 圣诞节快乐:来自程序员们的问候~

热门文章

  1. UDP协议的详细解析
  2. snap 计算机英语,美国习惯用语:460 a real snap... - VOA英语教学
  3. 《ASP.NET MVC 4 实战》----2.3 Guestbook示例应用程序
  4. 黄渤沈腾吐槽宁浩拍戏疯狂 徐峥自曝出演外星人
  5. 不愿做「奴隶」的程序员们组建了一个帝国
  6. 当代大学生想进入IT行业,要做好哪些准备呢?
  7. APP手机应用(android和ios)接口(restcontroller, @ResponseBody)
  8. WebService客户端调用常见5种方式
  9. StreamReader与StreamWriter乱码问题
  10. MHA理论实验过程简介