- 博客(39)
- 资源 (65)
- 收藏
- 关注
转载 ebtables之BROUTING和PREROUTING的redirect的区别
ebtables和iptables实用工具都使用了Netfilter框架,这是它们一致的一方面,然而对于这两者还真有一些需要联动的地方。很多人不明白ebtales的broute表的redirect和nat表PREROUTING的redirect的区别,其实只要记住两点即可,那就是对于相同点,它们都将数据包导向了本地的IP层;对于不同点,broute表的redirect将数据包的接收设备设置成了实际
2014-12-31 10:38:34 1205
转载 802.11n 原理解析
1.1 802.11n标准发展历程IEEE 802.11工作组意识到支持高吞吐将是WLAN技术发展历程的关键点,基于IEEE HTSG (High Throughput Study Group)前期的技术工作,于2003年成立了Task Group n (TGn)。n表示Next Generation,核心内容就是通过物理层和MAC层的优化来充分提高WLAN技术的吞吐。由于802.11n涉及
2014-12-30 17:33:08 9621
转载 开源代码网站 收集
http://search.csdn.net/CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。http://www.codase.com/index.html它是一个代码搜索引
2014-12-30 14:39:40 717
转载 automake,autoconfig使用详解
http://www.laruence.com/2009/11/18/1154.html,很详细,验证OK 作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的Makefile就不那么容易了.在本文中,将给大家介绍如何使用autoconf和a
2014-12-29 17:42:23 2629
转载 OpenWRT添加模块(二)configure.in和Makefile.am
前一章实现了一个模块的添加和编译,本章介绍基于autoconf/automake的生成机制将menuconfig中的设置传递到编译系统(Makefile和source code)对menuconfig设置后,Package/$(PKG_NAME) 和 config/Config.in中定义的变量将获取到对应项的值package makefile此时,在Package Makefile中
2014-12-29 17:41:38 1097
转载 OpenWRT添加模块(一)Makefile和Config.in
第一次接触到openwrt,真是被毁三观啊,不要说makefile,连源代码在哪里都找不到,知道嵌入式系统水深,没想到迈出第一步就没过了脖子。好在旁边有人指点,直接在芯片厂商提供的既有代码上做二次开发,项目进展倒也完全满足了前期计划的目标。但是哥奔的就是嵌入式,这么好的学习机会怎容错过?!目标:在芯片厂商提供的开发包上添加自己的用户态模块和内核态模块,以使我们自己开发的代码与芯片厂商的代码尽可
2014-12-29 17:40:25 1376
原创 收录linux内核学习
1. 了解操作系统基本概念。如果不会,可以学习《操作系统:设计与实现》Andrew S.Tanenbaum 写的那本。以MINIX为例子讲解操作系统的概念。非常推荐。2. 有了操作系统的基本概念以后,可以了解Linux的机制了。推荐《Linux内核设计与实现》Robert Love 写的。这本书从概念上讲解了Linux有什么,他们是怎么运行的。这本书要反复认真看透。3. 有了Linux内核
2014-12-26 13:35:35 1202 1
转载 linux shell数据重定向(输入重定向与输出重定向)详细分析
在了解重定向之前,我们先来看看linux 的文件描述符。linux文件描述符:可以理解为linux跟踪打开文件,而分配的一个数字,这个数字有点类似c语言操作文件时候的句柄,通过句柄就可以实现文件的读写操作。 用户可以自定义文件描述符范围是:3-num,这个最大数字,跟用户的:ulimit –n 定义数字有关系,不能超过最大值。 linux启动后,会默认打开3个文件描述符,分别是:标准输
2014-12-25 13:44:25 3397
转载 shell内部命令
bash命令解释套装程序包含了一些内部命令。内部命令在目录列表时是看不见的,它们由Shell本身提供。常用的内部命令有:echo, eval, exec, export, readonly, read, shift, wait和点(.)。下面简单介绍其命令格式和功能。 1.echo 命令格式:echo arg 功能:在屏幕上显示出由arg指定的字串。
2014-12-25 10:51:08 790
转载 无线配置工具介绍
Wireless tools for Linux是一个Linux命令行工具包,用来设置支持Linux Wireless Extension的无线设备。Wireless tools for Linux 和 Linux Wireless Extension 由 Jean Tourrilhes在维护,由Hewlett-Packard(HP惠普)赞助。大多数基于Linux内核的操作系统都包含Wirel
2014-12-24 16:01:49 1969
转载 Iwpriv工作流程及常用命令使用
iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,=>main=>set_private=>iw_get_priv_info获取wireless网卡所能处理的所有wlan_private_args类型.dev_ioctl=>we
2014-12-24 14:24:55 2076
转载 Linux内核网络协议栈代码分析
一.linux内核网络栈代码的准备知识 1. linux内核ipv4网络部分分层结构: BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件 主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以
2014-12-23 17:24:02 4781 1
转载 IEEE802.11协议基础知识
1. 802.11管理功能–用户接入过程 STA (工作站)启动初始化、开始正式使用、AP 传送数据幀之前,要经过三个阶段才能接入: (1) 扫描(SCAN) (2) 认证(Authentication) (3) 关联(Association) 1.1 802.11管理–扫描(SCAN) 1) 若无线站点
2014-12-23 16:40:46 1809
原创 hostapd wpa_supplicant madwifi详细分析(七)——hostapd整体梳理
这篇主要对hostapd这个程序做一个整体的梳理,自己也觉得前面说的都好乱,尽是一些代码的分析,过于细节了。 关于EAP状态机的转化,这里就不多说了,点击打开链接 这里可以下载原文档,知道的是自己不会比原文档写的还好的,所以就放弃了介绍状态机了。 先理解一下 struct hapd_interfaces interfaces 这个结构体对象, 这个结构
2014-12-23 09:16:44 5252 2
原创 hostapd wpa_supplicant madwifi详细分析(六)——疑问整理
1. 中断处理函数在哪里注册? 注册了哪些中断处理函数呢? 在main函数的开始,定义了一个对象: struct hostapd_interfaces interfaces 这个对象在整个程序中起到一定贯穿作用,我们来看看hostapd_global_init()中对中断注册函数的调用(这个调用其他版本也可能在别的地方): eloop_registe
2014-12-22 15:19:53 3498
原创 hostapd wpa_supplicant madwifi详细分析(五)——hostapd_global_run函数
main函数的前面部分做好了传入参数的处理、config文件的读取、初始化等准备工作,这里将进入最主要的部分,hostapd_global_run函数。 这里就不贴繁琐的代码了,这个函数主要分三步:1. 调用tncs_global_init完成tnc相关的初始化,这里就不详细说了2. 调用os_daemonize函数实现将该程序以后台进程运行,它主要实现过程是调用os_
2014-12-22 12:26:25 3264
原创 hostapd wpa_supplicant madwifi详细分析(四)——interface的初始化
前面讲了的初始,这一节将介绍interface的初始化 关于interface这个词在这里具体指的是什么,开始的时候自己也很模糊,经过多次询问和验证,个人将这个interface理解为无线网卡物理口,即我们用ifconfig打印出的wifi0和wifi1这样的接口。我们知道,hostapd的一个主要功能是将一个无线网卡切换成ap模式,让它以server端的角色运行,能够让其他无线
2014-12-22 08:48:55 5017
原创 hostapd wpa_supplicant madwifi详细分析(三)——hostapd_global_init()函数
一、预备知识(eap_sm、eap_method结构体)struct eap_sm { //状态机,存储eap的状态 enum { //枚举eap的各种状态 EAP_DISABLED, EAP_INITIALIZE, EAP_IDLE, EAP_RECEIVED, EAP_INTEGRITY_CHECK, EAP_METHOD_RESPONSE, EAP_METHOD_REQ
2014-12-19 15:40:24 4711
原创 hostapd wpa_supplicant madwifi详细分析(二)——main之for循环
欢迎转载,转载请注明出处。下面从main函数开始源代码的分析,这一篇主要对开始处的for循环介绍,里面的选项和参数的处理方式,主要依赖于命令行或者脚本调用hostapd时,传进来的参数是什么 int main(int argc, char *argv[]) { struct hapd_interfaces interfaces;
2014-12-19 14:23:09 5731
原创 hostapd wpa_supplicant madwifi详细分析(一)——hostapd是干嘛的
最近在学习无线,看了许多脚本和代码,虽然在整体上对这个模块实现的大致流程有了一定的掌握,但是对一些细节还不是很清楚,所以用这种方式来记录学习过程中的一些总结和体会,有理解错误或者描述不当的地方,还望有识者指正。 看代码的时候主要借鉴的是 hostapd的radius/eap server代码分析系列和源代码,里面讲的很具体,很清楚。 hostapd是干嘛
2014-12-19 13:46:37 14479
原创 AP常用配置命令
AP 常用命令介绍一、 AP 配置命令:1、 createif [devname] [vapname] [mode] [channel] [essid] [qos] [chainmask]命令作用:在相应射频卡创建空口,前且设置对应参数如 essid、信道、射频卡工作模式等。参数含义:devname:指相应射频卡接口,即 wifi 接口.vppname: 指要创建的空口
2014-12-19 13:39:22 11556 1
原创 wireless常用缩写词
RF (radio frequency) 射频WDS (wireless distribution system) 无线分布式系统WDS功能充当无线网络中的中继器,能够拓展延伸无线信号,从而覆盖更大的范围,简而言之,WDS就是可以昂无线ap或无线路由器之间通过无线进行桥接(中继),而在中继的过程中并不影响其无线设备覆盖效果的功能。STA模式: station,类似于无线
2014-12-19 13:12:53 2121
转载 getopt和getopt_long
GNU/Linux的命令行选项有两种类型:短选项和长选项,前者以 '-' 作为前导符,后者以 '--' 作为前导符 。比如有一个命令: $ myprog -a vv --add -b --file a.txt b.txt - -- -e c.txt 在GNU/Linux系统,对这种情况的一种合理解释是: a是短选项,带一个参数vv; add是长选项,无参数; b
2014-12-19 10:52:23 1122
转载 WLAN:BSS,ESS,SSID
SSID(Service SetIdentifier),用来区分不同的网络,最多可以有32个字符,无线网卡设置了不同的SSID就可以进入不同网络,SSID通常由AP或无线路由器广播出来,通过XP自带的扫描功能可以相看当前区域内的SSID。出于安全考虑可以不广播SSID,此时用户就要手工设置SSID才能进入相应的网络。简单说,SSID就是一个局域网的名称,只有设置为名称相同SSID的值的电脑才能互相
2014-12-19 08:59:58 11841 1
转载 Socket通信原理和实践
我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览器浏览网页时,浏览器的进程怎么与web服务器通信的?当你用QQ聊天时,QQ进程怎么与服务器或你好友所在的QQ进程通信?这些都得靠socket?那什么是socket?socket的类型有哪些?还有socket的基本函数,这些都是本文想介绍的。本文的主要内容如下:1、网络中进程之间如何通信?2、Socket是什么?
2014-12-18 17:36:18 724
转载 getopt解析命令行选项参数
getopt被用来解析命令行选项参数。#include extern char *optarg; //选项的参数指针 extern int optind, //下一次调用getopt的时,从optind存储的位置处重新开始检查选项。 extern int opterr, //当opterr=0时,getopt不向stderr输出
2014-12-18 11:04:10 2088
原创 AP 配置常用命令
AP 常用命令介绍一、 AP 配置命令:1、 createif [devname] [vapname] [mode] [channel] [essid] [qos] [chainmask]命令作用:在相应射频卡创建空口,前且设置对应参数如 essid、信道、射频卡工作模式等。参数含义:devname:指相应射频卡接口,即 wifi 接口.
2014-12-17 17:07:56 7992
转载 Iwpriv工作流程及常用命令使用
iwpriv工具通过ioctl动态获取相应无线网卡驱动的private_args所有扩展参数iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,=>main=>set_private=>iw_get_priv_info获取wireless网卡所能处理的所有wlan_private_args类型.dev_ioctl=>we
2014-12-17 15:24:42 2419
转载 iwpriv命令
使用iwpriv命令时,尽量往radio层设置,即wifiN接口上强制HT40iwpriv ath0 disablecoext00 = 强制1 = 关闭查看~ # iwpriv ath0 get_disablecoextath0 get_disablecoext:0 设置国家码iwpriv wifi0setCountry CNiwpriv w
2014-12-17 15:24:12 9130
转载 内核启动参数详解
bootload在启动linux内核时可以传递一些参数,对linux内核进行配置。bootload 用的是uboot_1_1_4linux内核用的是linux_2_6_24一、uboot启动内核当在uboot下敲bootm,或啥都不做等上N秒后,uboot会调用do_bootm函数文件uboot_1_1_4/common/cmd_bootm.cint do_bo
2014-12-12 09:43:30 2224
原创 源代码阅读方法
分析一个源代码,一个有效的方法是:1、阅读源代码的说明文档,比如本例中的README, 作者写的非常的详细,仔细读过之后,在阅读程序的时候往往能够从README文件中找到相应的说明,从而简化了源程序的阅读工作。2、如果源代码有文档目录,一般为doc或者docs,最好也在阅读源程序之前仔细阅读,因为这些文档同样起了很好的说明注释作用。3、从makefile文件入手,分析源代码
2014-12-11 09:50:04 981
转载 详解Unix/Linux中Shell脚本的输入输出
Shell的I/O语法比较复杂,难以理解,更难以正确使用。Shell的输入输出语法有两个难点:重定向和文件描述符。我以前对Shell脚本输入/输出的理解也有错误。最近重新整理思路,决定写一篇文章来总结I/O重定向。一、先介绍几个基本概念:(1)文件(File):在Unix/Linux中,文件类型有七种,这七种类型是:目录、符号链接(指向另一个文件)、套接字文件、块设备文件、字符
2014-12-09 09:11:44 2731
转载 Linux中查看各文件夹大小命令du -h --max-depth=1
du [-abcDhHklmsSx] [-L ][-X ][--block-size][--exclude=] [--max-depth=][--help][--version][目录或文件]常用参数:-a或-all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。-b或-bytes 显示目录或文件大小时,以byte为单位。-c或–tota
2014-12-05 16:29:49 2090
转载 ARM汇编指令(B/BL/BX)
跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: (1) 使用专门的跳转指令。 (2) 直接向程序计数器 PC 写入跳转地址值。 通过向程序计数器 PC 写入跳转地址值,可以实现在 4GB 的地址空间中的任意跳转,在跳转之前结合使用 MOV LR , PC 等类似指令,可以保存将来的返回地址值,从而实现在 4GB 连续的
2014-12-05 15:58:01 16841
原创 arm汇编—bic ,orr
1. bicBIC指令的格式为:BIC{条件}{S} 目的寄存器,操作数1,操作数2BIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。操作数1应是一个寄存器,操作数2可以是一个寄存器、被移位的寄存器、或一个立即数。操作数2为32位的掩码,如果在掩码中置了某一位1,则清除这一位。未设置的掩码位保持不变。bic r0,r0,#0x1f0x1f=11111
2014-12-05 15:52:16 22076 7
转载 ARM中MRS汇编指令
ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。针对32位的ARM处理器,状态寄存器就是一个32位长的寄存器。每个位的含义如下图: 分成了4部分:1,条件标志位N(Negative), Z(Zero), C(Carry), V(Verflow)统称为条件标志位。ARM指令可以根据CPSR中的这些条件标志位来选择性的执行。2,Q标志位ARM v5的E系列处
2014-12-05 15:41:16 4449
转载 ubuntu如何利用minicom
minicom是linux下串口通信的软件,它的使用完全依靠键盘的操作,虽然没有“超级终端”那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解minicom的安装和配置。一、安装minicom:使用以下命令:# sudo apt-get install minicom以下为安装的详细信息:# sudo apt-get install minicom
2014-12-04 11:04:22 644
转载 ubuntu安装nfs并挂载文件系统
用网线将主机与开发板连接起来,主机开启nfs服务后,就可以像tftp一样传文件到开发板了,有的人会问,不如直接用tftp好了,但是nfs还可以挂载根文件系统啊!我等屌丝先这样比较吧(本文主要是记录安装使用步骤)!相关阅读:Ubuntu 12.04安装NFS server http://www.linuxidc.com/Linux/2012-09/70728.htmNFS服务器安装配
2014-12-02 17:14:18 1036
转载 git-archive
--everything-is-local About DocumentationReference Book Videos External Links Blog Downloads Community Topics ▾Version 2.1.2 ▾git-archive last updated in 2.1.2NAME
2014-12-02 12:34:05 2724
深入理解Android:WiFi模块 NFC和GPS卷 - 邓凡平
2016-06-03
sed awk讲解资料全集
2015-06-11
精通UNIX Shell脚本编程 第二版 免费 包含脚本文件
2015-06-11
80211r的无线局域网漫游技术的研究与实现
2018-07-01
Linux内核精髓-精通Linux内核必会的75个绝技 完整版
2017-03-19
TCP IP详解卷1:协议 原书第2版 压缩二
2017-03-19
Linux设备驱动开发详解:基于最新的Linux 4.0内核 高清完整.pdf版下载
2017-03-12
windows-use-vim-ctags-and-git
2016-08-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人