<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hellolwl的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hellolwl</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hellolwl]]></copyright><item><title><![CDATA[Linux内核bridge浅析]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/12746501</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/12746501</guid><author>hellolwl</author><pubDate>Tue, 15 Oct 2013 10:47:52 +0800</pubDate><description><![CDATA[原文地址：http://blog.chinaunix.net/uid-20662820-id-3413865.html
Linux网桥模型：
       Linux内核通过一个虚拟的网桥设备来实现桥接的，这个设备可以绑定若干个以太网接口设备，从而将它们桥接起来。如下图所示：



 
网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说，只看得到br0，因为桥接是在数据]]></description><category></category></item><item><title><![CDATA[sdio架构初解]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/9221315</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/9221315</guid><author>hellolwl</author><pubDate>Tue, 02 Jul 2013 08:08:49 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/zoe6553/article/details/6588306
一.前言


SD卡的大名是耳熟能详，但是SDIO总线确是不为人解，不过说起他的近亲SPI就知道了。我们这里主要是理解SDIO总线，并不去理解SPI总线。也许大家会畏惧其庞大的代码，其实我们并不需要详细理解其具体的实现，我们需要理解其架构。

二.主机(host)]]></description><category></category></item><item><title><![CDATA[wifi详解（三）]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/9115117</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/9115117</guid><author>hellolwl</author><pubDate>Mon, 17 Jun 2013 19:53:23 +0800</pubDate><description><![CDATA[1        WLAN驱动结构介绍

1.1      SDIO驱动

在drivers/mmc下面是mmc卡，SD卡和SDIO卡驱动部分，其中包括host驱动，card驱动和core部分，由于网络接口卡挂接在SDIO总线上，所以在此之前我们先看一下SDIO的驱动结构。其驱动在drivers/mmc目录下的结构为：

 

|-- mmc

|   |-- card]]></description><category></category></item><item><title><![CDATA[wifi详解（二）]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/9115105</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/9115105</guid><author>hellolwl</author><pubDate>Mon, 17 Jun 2013 19:51:44 +0800</pubDate><description><![CDATA[1        Wifi模块解析和启动流程

1.1      框架分析

WIFI整体框架如图所示：



首先，用户程序使用WifiManager类来管理Wifi模块，它能够获得Wifi模块的状态，配置和控制Wifi模块，而所有这些操作都要依赖 Wifiservice类来实现。

 WifiService和WifiMonitor类是Wifi框架的核心，如图所示。下面先来看]]></description><category></category></item><item><title><![CDATA[wifi详解（一）]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/9115019</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/9115019</guid><author>hellolwl</author><pubDate>Mon, 17 Jun 2013 19:32:36 +0800</pubDate><description><![CDATA[1        WLAN技术

WLAN是英文WirelessLAN的缩写，就是无线局域网的意思。无线以太网技术是一种基于无线传输的局域网技术，与有线网络技术相比，具有灵活、建网迅速、个人化等特点。将这一技术应用于电信网的接入网领域，能够方便、灵活地为用户提供网络接入，适合于用户流动性较大、有数据业务需求的公共场所、高端的企业及家庭用户、需要临时建网的场合以及难以采用有线接入方式的环境等。]]></description><category></category></item><item><title><![CDATA[浅析wlan驱动和sd卡硬件绑定的简单流程]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8816483</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8816483</guid><author>hellolwl</author><pubDate>Wed, 17 Apr 2013 22:24:09 +0800</pubDate><description><![CDATA[struct mmc_card *mmc_alloc_card(struct mmc_host *host)
{
    struct mmc_card *card;


    card = kzalloc(sizeof(struct mmc_card), GFP_KERNEL);
    if (!card)
        return ERR_PTR(-ENOMEM);]]></description><category></category></item><item><title><![CDATA[SD卡分析三]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8816434</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8816434</guid><author>hellolwl</author><pubDate>Wed, 17 Apr 2013 22:13:26 +0800</pubDate><description><![CDATA[4： CARD层分析：
因为这些记 忆卡都是块设备，当然需要提供块设备的驱动程序，这部分就是实现了将你的SD卡如何实现为块设备的。先看block.C中的probe函数
MMC 块设备用如下结构表示：
struct mmc_blk_data {
    spinlock_t    lock;
    struct gendisk    *disk;
    struct mmc_queu]]></description><category></category></item><item><title><![CDATA[SD卡分析二]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8816432</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8816432</guid><author>hellolwl</author><pubDate>Wed, 17 Apr 2013 22:12:41 +0800</pubDate><description><![CDATA[4、CORE层分析：
CORE层完成了不同协议和规范的实现，并为HOST层的驱动提供了接口函数，在HOST层我们曾经调用的两个函数：
mmc_alloc_host(sizeof(struct s3cmci_host), &pdev->dev);
mmc_add_host(mmc );
我 们就从这两个函数入手，来分析CORE层与HOST层是如何交互的。
先看mmc_alloc_host函]]></description><category></category></item><item><title><![CDATA[SD卡分析一]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8816422</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8816422</guid><author>hellolwl</author><pubDate>Wed, 17 Apr 2013 22:11:40 +0800</pubDate><description><![CDATA[本文先介绍了一下MMC 的基本框架结构，然后采用自底向上的方法来分析整个MMC 层是如何共同作用的。阅读时请结合参考资料1和2.
参考资料：
1.SD Memory Card Specifications / Part 1. Physical Layer Specification; Version 1.0  
2.LDD3 CHAPTER-16 BLOCK DEVICE
3. http:]]></description><category></category></item><item><title><![CDATA[wpa_supplicant 笔记]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8808396</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8808396</guid><author>hellolwl</author><pubDate>Tue, 16 Apr 2013 13:23:50 +0800</pubDate><description><![CDATA[原文地址：http://hi.baidu.com/leran0222/item/a4b33b77923ecd44ef1e53fc
来自于wpa_supplicant-devel文档

2、代码结构
核心功能、通用辅助功能、加密功能、TLS库、配置、控制接口、WPA提供者、EAP点、EAPOL提供、窗口端口和测试程序。
wpa_supplicant的实现被分成几个独立的模块。核心代码功能包]]></description><category></category></item><item><title><![CDATA[基于linux-2.6.38.8内核的wifi驱动分析]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8805854</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8805854</guid><author>hellolwl</author><pubDate>Mon, 15 Apr 2013 21:02:38 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/wh_19910525/article/details/7392518

//参考给一些前辈们的文章

1、sdio接口层解析

SDIO总线

     SDIO总线和USB总线类似，SDIO也有两端，其中一端是HOST端，另一端是device端。所有的通信都是由HOST端发送命令开始的，Device端只要能解析命令，就可以相互]]></description><category></category></item><item><title><![CDATA[Linux tasklet 分析笔记]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8780542</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8780542</guid><author>hellolwl</author><pubDate>Tue, 09 Apr 2013 23:22:09 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/chengqianyun2002/article/details/1607005

Chapter 1:

驱动程序在初始化时，通过函数task_init建立一个tasklet，然后调用函数tasklet_schedule将这个tasklet放在 tasklet_vec链表的头部，并唤醒后台线程ksoftirqd。当后台线程ksoftir]]></description><category></category></item><item><title><![CDATA[iwpriv 解析]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8750331</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8750331</guid><author>hellolwl</author><pubDate>Tue, 02 Apr 2013 10:53:58 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/wanggongzhen1983/article/details/5330211

iwpriv是处理下面的wlan_private_args的所有扩展命令,iwpriv的实现上,是这样的,



=>main
=>set_private
=>iw_get_priv_info获取wireless网卡所能处理的所有wlan_priv]]></description><category></category></item><item><title><![CDATA[wpa_supplicant软件架构分析]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8718882</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8718882</guid><author>hellolwl</author><pubDate>Mon, 25 Mar 2013 20:45:15 +0800</pubDate><description><![CDATA[原文地址：http://blog.youkuaiyun.com/fxfzz/article/details/6176414

1. 启动命令

wpa supplicant 在启动时，启动命令可以带有很多参数，目前我们的启动命令如下：
wpa_supplicant /system/bin/wpa_supplicant -Dwext -ieth0 -c/data/wifi/wpa_supplicant]]></description><category></category></item><item><title><![CDATA[跟一下wpa_supplicant(3-2) connect AP]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8718867</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8718867</guid><author>hellolwl</author><pubDate>Mon, 25 Mar 2013 20:42:34 +0800</pubDate><description><![CDATA[原文地址：http://blog.chinaunix.net/uid-20514606-id-3260320.html

接前面(3-1)继续:
 
5. 接分支4.
authenticate response 来了
和前面一样:
wpa_driver_nl80211_event_receive到
=> process_event
   收到 NL80211_CMD_AUTHEN]]></description><category></category></item><item><title><![CDATA[跟一下wpa_supplicant(3-1) connect AP]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8718850</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8718850</guid><author>hellolwl</author><pubDate>Mon, 25 Mar 2013 20:39:44 +0800</pubDate><description><![CDATA[原文地址：http://blog.chinaunix.net/uid-20514606-id-3260316.html
WPA-PSK连接
从packages\apps\Settings\src\com\android\settings\wifi\WifiSettings.java
  和 WifiDialog.java 开始
1.
如果你点中某个AP
=> onClick执行 (Wi]]></description><category></category></item><item><title><![CDATA[跟一下wpa_supplicant(2) wifi enable]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8718846</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8718846</guid><author>hellolwl</author><pubDate>Mon, 25 Mar 2013 20:36:32 +0800</pubDate><description><![CDATA[原文地址：http://blog.chinaunix.net/uid-20514606-id-3259410.html

在wifi setting 中 check enanble 开始继续
1.  收到MESSAGE_ENABLE_WIFI
setWifiEnabledBlocking(wifiService.java)
  => mWifiStateTracker.loadDrive]]></description><category></category></item><item><title><![CDATA[跟一下wpa_supplicant(1) 初始化]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/8718811</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/8718811</guid><author>hellolwl</author><pubDate>Mon, 25 Mar 2013 20:27:05 +0800</pubDate><description><![CDATA[原文地址： http://blog.chinaunix.net/uid-20514606-id-3259402.html

一切从 main.c 开始: (=>表示第1级, 那么==>表示下一级,类推)
os_program_init => 参数解析& 获取
=> wpa_supplicant_init(&params)
   ==> eap_register_methods /* 注册]]></description><category></category></item><item><title><![CDATA[Linux设备驱动之I2C架构分析]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/7699566</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/7699566</guid><author>hellolwl</author><pubDate>Thu, 28 Jun 2012 15:27:14 +0800</pubDate><description><![CDATA[一:前言


I2c是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL.正因为这样,它方便了工程人员 的布线.另外,I2C是一种多主机控制总线.它和USB总线不同,USB是基于master-slave机制,任何设备的通信必须由主机发起才可以.而 I2C 是基于multi master机制.一同总线上可允许多个master.关于I2C协议的知识,这里不]]></description><category></category></item><item><title><![CDATA[为Android应用程序读取/dev下设备而提权（一）]]></title><link>https://blog.youkuaiyun.com/hellolwl/article/details/7286991</link><guid>https://blog.youkuaiyun.com/hellolwl/article/details/7286991</guid><author>hellolwl</author><pubDate>Thu, 23 Feb 2012 14:18:01 +0800</pubDate><description><![CDATA[倘若应用程序需要对/dev/xxx进行读写操作，就需要提升其权限。提权方法不唯一，需要根据具体需求情况而选择。归根结底，终究都落到chmod 777 /dev/xxx 上，不同的是，chmod操作被执行在何时何地，在此做个分析总结。
        内核启动后会执行/system/init，传说中的系统1号进程，init程序起初的任务是初始化，包括各种mkdir来构建文件系统，得到硬件信息建立设]]></description><category></category></item></channel></rss>