原创 wpa_supplicant軟件架構分析

1. 啓動命令 wpa supplicant 在啓動時,啓動命令可以帶有很多參數,目前我們的啓動命令如下: wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0-c/dat

原创 Makefile 連接庫文件的方法

Linux的靜態庫是以.a結尾的,要連接靜態庫有兩種方法,一種是在編譯命令最後直接加上庫路徑/庫名稱。例如你的庫在絕對目錄/lib/libtest.a下面 你就可以這樣來編譯 $(CC) $(CFLAGS) $^  -o $@  /lib

原创 makefile中的patsubst

1、wildcard : 擴展通配符2、notdir: 去除路徑3、patsubst:替換通配符例子:建立一個測試目錄,在測試目錄下建立一個名爲sub的子目錄$mkdir test$cd test$mkdir sub在test下,建立a.

原创 linux INIT_WORK 創建工作隊列

Linux 2.6內核使用了不少工作隊列來處理任務,他在使用上和 tasklet最大的不同是工作隊列的函數可以使用休眠,而tasklet的函數是不允許使用休眠的。 工作隊列的使用又分兩種情況,一種是利用系統共享的工作隊列來添加自己的工

原创 linux內核的 等待隊列 使用方法,wait_queue_head_t,進程休眠

假設我們在 kernel 裏產生一個 buffer,user 可以經由 read,write 等 system call 來讀取或寫資料到這個 buffer 裏。如果有一個 user 寫資料到 buffer 時,此時 buffer 已經

原创 opensource codes configure and compile with toolchain

./configure -build,-host,-target設置 build:執行代碼編譯的主機,正常的話就是你的主機系統。這個參數一般由config.guess來猜就可以。當然自己指定也可以。 host:編譯出來的二進制程序所執行

原创 list_for_each()與list_for_each_safe()的區別

list_for_each()的定義: [plain] view plaincopyprint? /**   * list_for_each    -   iterate over a list   * @pos:    th

原创 WPA/WPA2安全認證加密原理詳解

1.  WPA加密版本介紹 WPA加密算法的的兩個版本介紹 WPA = 802.1x + EAP + TKIP +MIC = Pre-shared Key + TKIP + MIC 802.11i(WPA2) = 802.1x + EA

原创 Makefile && subdir template

SUBDIR = sub-dir all:     cd ${SUBDIR} && $(MAKE) clean:    cd ${SUBDIR} && $(MAKE) ===============

原创 802.11n 協議淺析

物理層的改進: 1、MIMO,傳說中的空分複用,頻點相同。AP和client成對出現。 • 利用多天線傳輸,將串行映射爲並行 • 各天線獨立處理,自主運行 • 各天線用各自的調製方式發送電波 • 各天線用各自的解調方式接收電波   MIM

原创 install and run tftp dhcp nfs server

1. install sudo apt-get install tftpd-hpa sudo apt-get install isc-dhcp-server sudo apt-get install nfs-kernel-server

原创 關閉error, forbidden warning

最近在編譯android kernel時,遇到error, forbidden warning, 導致編譯中斷,大大降低了debug效率。 關閉方法如下:在kernel/scripts/gcc-wrapper.py中註釋掉interp

原创 sema api

內核同步機制-信號量 信號量 通用信號量 用戶類進程之間使用信號量(semaphore)進行同步,內核線程之間也使用了信號量。信號量與自旋鎖類似,保護臨界區代碼。但信號量與自旋鎖有一定的區別,信號量在無法得到資源時,內核線程處於睡

原创 autoreconf: not found

  ./autogen.sh: 4: autoreconf: not found  是在不同版本的 tslib 下執行 autogen.sh 產生。它們產生的原因一樣,是因爲沒有安裝  automake 工具,      (ubuntu

原创 ARM中關於絕對尋址相對尋址LDR,ADR的理解

LDR:是與位置有關的,是個絕對尋址,其後的地址值是在程序編譯的時候就確定位置了. 例如當程序在內部stepping stone中執行時候,如果使用ldr pc, =copy_proc_beg ,則程序就是把copy_proc_be