- 博客(47)
- 收藏
- 关注
转载 关闭error, forbidden warning
最近在编译android kernel时,遇到error, forbidden warning, 导致编译中断,大大降低了debug效率。关闭方法如下:在kernel/scripts/gcc-wrapper.py中注释掉interpret_warning(line)即可。--- a/scripts/gcc-wrapper.py+++ b/scripts/gcc-wr
2015-11-21 16:08:19
686
转载 autoreconf: not found
./autogen.sh: 4: autoreconf: not found 是在不同版本的 tslib 下执行 autogen.sh 产生。它们产生的原因一样,是因为没有安装 automake 工具, (ubuntu 8.04)用下面的命令安装好就可以了。 sudo apt-get install autoconf automake libtool
2015-11-20 16:21:17
14955
1
转载 linux内核的 等待队列 使用方法,wait_queue_head_t,进程休眠
假设我们在 kernel 里产生一个 buffer,user 可以经由 read,write 等 system call 来读取或写资料到这个 buffer 里。如果有一个 user 写资料到 buffer 时,此时 buffer 已经满了。那请问你要如何去处理这种情形呢 ? 第一种,传给 user 一个错误讯息,说 buffer 已经满了,不能再写入。第二种,将 user 的要求 block 住
2015-11-18 14:57:35
539
转载 linux INIT_WORK 创建工作队列
Linux 2.6内核使用了不少工作队列来处理任务,他在使用上和 tasklet最大的不同是工作队列的函数可以使用休眠,而tasklet的函数是不允许使用休眠的。工作队列的使用又分两种情况,一种是利用系统共享的工作队列来添加自己的工作,这种情况处理函数不能消耗太多时间,这样会影响共享队列中其他任务的处理;另外一种是创建自己的工作队列并添加工作。(一)利用系统共享的工作队列添加工作:
2015-11-18 14:41:01
507
转载 ARM中关于绝对寻址相对寻址LDR,ADR的理解
LDR:是与位置有关的,是个绝对寻址,其后的地址值是在程序编译的时候就确定位置了.例如当程序在内部stepping stone中执行时候,如果使用ldr pc, =copy_proc_beg ,则程序就是把copy_proc_beg的绝对地址,即在编译时候确定的地址0x30000000加上偏移量的地址付给pc,实现跳转。其中,ldr伪指令的实际寻址空间是32位的
2015-11-11 00:28:59
1290
转载 ARM的位置无关程序设计
ARM处理器支持位置无关的程序设计,这种程序加载到存储器的任意地址空间都可以正常运行,其设计方法在嵌入式应用系统开发中具有重要的作用。尤其在裸机状态下开发Bootloader程序及进行内核初始化设计;利用位置无关的程序设计方法还可以在具体应用中用于构建高效率动态链接库,因而了解位置无关的程序设计方法,有助于开发人员设计出结构简单、清晰的应用程序。应用程序必须经过编译、汇编和链接后才变成可执行文
2015-11-11 00:05:54
1437
原创 install and run tftp dhcp nfs server
1. install sudo apt-get install tftpd-hpasudo apt-get install isc-dhcp-serversudo apt-get install nfs-kernel-server2.configurenfs:编辑/etc/exports nfs-dir 192.168.101.0/24(rw,fsid=0,ins
2015-11-10 00:47:35
378
转载 sema api
内核同步机制-信号量信号量通用信号量用户类进程之间使用信号量(semaphore)进行同步,内核线程之间也使用了信号量。信号量与自旋锁类似,保护临界区代码。但信号量与自旋锁有一定的区别,信号量在无法得到资源时,内核线程处于睡眠阻塞状态,而自旋锁处于忙等待状态。因此,如果资源被占用时间很短时,使用自旋锁较好,因为它可节约调度时间。如果资源被占用的时间较长,使用信号量较好,
2015-11-05 10:51:29
484
转载 list_for_each()与list_for_each_safe()的区别
list_for_each()的定义:[plain] view plaincopyprint?/** * list_for_each - iterate over a list * @pos: the &struct list_head to use as a loop counter. * @head: the head for y
2015-11-05 00:46:08
433
转载 Scheduling while atomic
"Scheduling while atomic" indicates that you've tried to sleep somewhere that you shouldn't - like within a spinlock-protected critical section or an interrupt handler.改进程序,在计时器里使用了workqueue,搞定问题。
2015-11-04 23:58:26
609
原创 opensource codes configure and compile with toolchain
./configure -build,-host,-target设置build:执行代码编译的主机,正常的话就是你的主机系统。这个参数一般由config.guess来猜就可以。当然自己指定也可以。host:编译出来的二进制程序所执行的主机,因为绝大多数是如果本机编译,本机执行。所以这个值就等于build。只有交叉编译的时候(也就是本机编译,其他系统机器执行)才会build和host
2015-11-03 17:08:02
404
转载 MACHINE_START与MACHINE_END
在移植Linux时,有个结构体需要填写,它以MACHINE_START开始并以MACHINE_END结束,如下mini2440开发板的移植为示例[cpp] view plaincopyMACHINE_START(MINI2440, "MINI2440") .phys_io = S3C2410_PA_UART, .io_pg_offst =
2015-11-03 11:00:22
367
原创 Makefile常见问题汇总
1。Makefile 命令行以tab建开始, 对于vim设置的用空格代替tab的可以使用set noexpandtab来取消vim里的设置。
2015-11-02 19:58:55
571
原创 Makefile && subdir template
SUBDIR = sub-dirall: cd ${SUBDIR} && $(MAKE)clean: cd ${SUBDIR} && $(MAKE)===============================================CFLAGS += -g -DDEBUG -I../shared -DLINUX_
2015-10-29 11:09:09
923
转载 802.11n相关技术详解
802.11n关键技术详解1.1 802.11n标准发展历史2003年9月:IEEE成立802.11n任务组,负责创设100+MbpsWLAN标准。2005年7月:11n草案1获通过. 2007年3月:草案2获通过。2009年9月11日:IEEE标准委员会终于批准通过802.11n成为正式标准。1.2 802.11n关键技术介绍 1.2.1 核心技术—MIMO
2015-09-21 11:30:16
1581
转载 802.11n 协议浅析
物理层的改进:1、MIMO,传说中的空分复用,频点相同。AP和client成对出现。•利用多天线传输,将串行映射为并行•各天线独立处理,自主运行•各天线用各自的调制方式发送电波•各天线用各自的解调方式接收电波 MIMO变态版:1)、diversity(分集)天线数量多于空间流数量,使用两根天线的输出组合来接收一个空间流,获得更远的传输距离。2
2015-09-20 23:20:19
768
转载 iptables 的防火墙正常运行时间和安全性 使用此高效应用程序设置并维护 Linux 防火墙
简介Iptables 是一种应用程序,充许对 Linux 内核防火墙中的表进行管理。对于防火墙修改和常见的系统管理任务,您无需预先具备有关内核或其实际表的知识。在一些 Linux 发行版中,默认启用 iptables。通常建议无经验的用户完全禁用 iptable,以避免出现网络问题。本文将帮助您快速上手并根据您的需求操作 iptables。有时会使用 iptables 来指 Linux
2015-09-18 17:12:26
1010
转载 VLAN原理详解
目录--------------------------------------------------------------------------------1.为什么需要VLAN2.实现VLAN的机制3.VLAN的访问链接(Access Link)4.VLAN的汇聚链接(Trunk Link)5.VLAN的汇聚方式——IEEE802.1Q与ISL6.VLAN
2015-09-18 15:47:02
471
转载 WPA/WPA2安全认证加密原理详解
1. WPA加密版本介绍WPA加密算法的的两个版本介绍WPA = 802.1x + EAP + TKIP +MIC= Pre-shared Key + TKIP + MIC802.11i(WPA2)= 802.1x + EAP + AES + CCMP= Pre-shared Key + AES + CCMPl 802.1x + EAP,Pre-shared Key
2015-09-11 17:38:05
21734
3
原创 ubuntu12.04 create SAP issues
1 question: dnsmasq: failed to create listening socket for port 53: Address already in use??solutin:在/etc/dnsmasq.conf打开bind-interfaces2.dnsmasq: failed to create listening socket for 127.0.
2015-09-10 14:10:09
930
转载 hostapd error “nl80211: Could not configure driver mode”
I would like to make a Virtual Router on Ubuntu 12.04but i am getting this error message when i run the last terminal commandConfiguration file: hostapd.confnl80211: Could not configure driver mo
2015-09-10 10:01:14
5842
原创 kernel <==> user via nl
user:use command such as NL80211_CMD_GET_KEY in netlink socket to kernel.driver:wiphy_new(&xx_cfg80211_ops, size);(need to pad struct cfg80211_ops xx_cfg80211_ops)---->create struct cfg80211_r
2015-09-09 23:52:03
472
转载 WifiDocs/WirelessAccessPoint
URL:https://help.ubuntu.com/community/WifiDocs/WirelessAccessPoint#Optional:_Disabling_IPv6WifiDocs/WirelessAccessPoint目录IntroductionSetting up a wireless-to-wireless r
2015-09-09 15:46:44
1041
转载 Makefile 连接库文件的方法
Linux的静态库是以.a结尾的,要连接静态库有两种方法,一种是在编译命令最后直接加上库路径/库名称。例如你的库在绝对目录/lib/libtest.a下面你就可以这样来编译$(CC) $(CFLAGS) $^ -o $@ /lib/libtest.a另外一种方法是,你可以用-L制定库德路径,用-l指定库的名称例如库的名称为libtest.a 那么就用-ltestCROS
2015-09-08 16:00:31
8993
转载 makefile中的patsubst
1、wildcard : 扩展通配符2、notdir: 去除路径3、patsubst:替换通配符例子:建立一个测试目录,在测试目录下建立一个名为sub的子目录$mkdir test$cd test$mkdir sub在test下,建立a.c和b.c2个文件,在sub目录下,建立sa.c和sb.c2个文件建立一个简单的Makefilesrc=$(w
2015-09-08 15:58:42
550
转载 wpa_supplicant软件架构分析
1. 启动命令wpa supplicant 在启动时,启动命令可以带有很多参数,目前我们的启动命令如下:wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0-c/data/wifi/wpa_supplicant.conf -f/data/wifi/wpa_log.txt wpa_supplicant对于启动命
2015-09-08 11:00:06
980
转载 内存和I/O访问
内存管理单元MMUMMU具有虚拟地址和物理地址转换,内存访问权限保护等功能(1)TLB也就是我们说的快表,他缓存了小量的虚拟地址与物理地址的转换关系;(2)TTW,当TLB中没有缓存对应的地址转换关系时,需要通过内存中转换表(多为多级页表)来获得虚拟地址和物理地址的对应关系。linux内存管理对于包含MMU的处理器,使得进程能访问的内存达到4G,在linux系统中4G内存空间被
2015-09-07 18:00:10
551
转载 nl80211 & cfg80211 库是如何工作的?
问题:想了解nl80211和cfg80211的工作细节。以及功能流程,nl80211是如何与网络工具如wpa_supplicant进行交互的。解答:为了能够从用户空间控制无线驱动程序,一些IPC被用于内核和用户态之间。最早使用由厂商提供ioctl的API。在1996年,Jean Tourrilhes创建了wireless extensions (WE or WEXT)。
2015-09-06 17:21:36
2363
转载 Linux中的无线架构
随着开放源代码的出现,开发的时间已经快速下降,同时质量也迅速提高。 对于所有参与WLAN /WiFi开发的人来说,让我们来研究一下基于开源mac80211框架的Linux的WLAN架构吧。下面的框图说明了Linux的WLAN架构。 请看下面的详细资料。用户空间:配置:wpa_supplicant和hostapd:所有直接与用户交互的应用程序都在这里。 例如可
2015-09-06 16:52:11
625
转载 Linux Wireless基础知识
1. 基本概念 • cfg80211: 用于对无线设备进行配置管理。与FullMAC, mac80211和nl80211一起工作。(Kernel态) • mac80211: 是一个driver开发者可用于为SoftMAC无线设备写驱动的框架 (Kernel态)。 • nl80211: 用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议(Use
2015-09-06 16:40:15
329
原创 vim config
set nuau BufReadPost * if line("'\"") > 0|if line("'\"") set ts=4set expandtabset shiftwidth=4set autoindentif has("cscope") set csprg=/usr/bin/cscope set csto=0 set c
2015-08-28 10:46:31
350
转载 ubuntu alt tab 无法切换应用程序
安装完ubuntu,发现不能使用ALT + TAB切换应用程序,翻遍所有百度结果,没有可行,都是拷这个拷那个。。。真实无语。。。翻墙google,看的第一个就完美解决。记录下来,方便国人少走弯路。首先执行以下2条命令:sudo apt-get install compizconfig-settings-managersudo apt-get install compiz-plu
2015-08-26 10:48:43
1199
转载 sigaction 的使用
使用 sigaction 函数: signal 函数的使用方法简单,但并不属于 POSIX 标准,在各类 UNIX 平台上的实现不尽相同,因此其用途受到了一定的限制。而 POSIX 标准定义的信号处理接口是 sigaction 函数,其接口头文件及原型如下: #include int sigaction(int signum, const struct sigaction *
2015-08-03 18:05:34
430
原创 大小端引发的问题
memmove和memcpy操作时, 应该谨记大小端的问题, 因为拷贝的是从低端地址拷贝, 所以大小端有区别。0x11223344如果是大端拷贝,拷贝之后就是从低地址到高地址是44332211, 如果是小端, 则是从低地址到高地址11223344.sprintf则不会受到大小端的影响, sprintf()之后都是11223344.
2015-07-28 22:51:48
809
转载 socket编程备忘录
#include int socket(int domain, int type, int protocol);socket的三个形参搭配整理如下:------------------------------------------------------------------TCP、UDP socket: 最常用的socket,不解释tcp_socket = socke
2015-07-28 10:11:02
272
转载 Ubuntu 14.04系统的安装与使用:[3]搜狗输入法安装
安装命令sudo apt-get install fcitx libssh2-1查看是否安装了这些依赖搜索命令dpkg -l | grep fcitxdpkg -l | grep libssh接下来我们从搜狗官方下载deb包下载地址在 http://pinyin.sogou.com/linux/ 根据你的系统选择32位或者64位安装下
2015-07-27 22:49:26
334
转载 WIFI基本知识整理
主要内容:一、基本概述二、实践基础三、一些原理四、补充五、其它 一、基本概述============================1、有线和无线网络 目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会完全取代以太网,但是它正拥有越来越多
2015-05-20 13:28:49
563
转载 libevent: evbuffer缓冲
前言 可以说对于任何网络库(模块)而言,一个缓冲模块都是必不可少的。缓冲模块主要用于缓冲从网络接收到的数据,以及用户提交的数据(用于发送)。很多时候,我们还需要将网络模块层(非TCP层)的这些缓冲数据拷贝到用户层,而这些内存拷贝都会消耗时间。 在这里,我简要分析下libevent的相关代码(event.h和buffer.c)。结构 关于libe
2015-05-12 00:09:28
427
转载 结构体struct sockaddr_in, struct sockaddr,struct in_addr
一、结构体 struct sockaddr_in, struct sockaddr, struct in_addrstruct sockaddr_in, struct sockaddr,struct in_addr,这是网络编程中常用的结构体,每次都记不住它们各自的成员是啥,需要临时查,为方便以后的查看,在这里总结下。struct sockaddr {unsigned short
2015-04-29 15:37:37
347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人