git笔记之多账户的使用

一:加载wifi驱动模块

在hardware/libhardware_legacy/wifi/wifi.c调用函数

insmod(DRIVER_MODULE_PATH, DRIVER_MODULE_ARG)

其中

DRIVER_MODULE_PATH = /system/lib/dhd.ko

DRIVER_MODULE_ARG  = "firmware_path=/etc/wifi/40181/fw_bcm40181a2.bin nvram_path=/etc/wifi/40181/nvram.txt"

二:wifi驱动模块运行

wifi驱动入口dhd_module_init(void) dhd_linux.c

dhd_module_init(void)
{
	int error = 0;

	DHD_TRACE(("%s: Enter\n", __FUNCTION__));

	wl_android_init(); //初始化dhd_msg_level |= DHD_ERROR_VAL,给iface_name赋值为wlan

	do {
		sema_init(&dhd_chipup_sem, 0);
		dhd_bus_reg_sdio_notify(&dhd_chipup_sem); //注册sdio driver,支持如下图wifi列表,sdio驱动获取wifi列表的设备后调用                                                                    //dummy_probe() --> up(dhd_chipup_sem);
		dhd_customer_gpio_wlan_ctrl(WLAN_POWER_ON);

		if (down_timeout(&dhd_chipup_sem,        //2000ms超时等待dhd_chipup_sem
			msecs_to_jiffies(POWERUP_WAIT_MS)) == 0) {
			dhd_bus_unreg_sdio_notify();
			chip_up = 1;
			break;
		}
		DHD_ERROR(("\nfailed to power up wifi chip, retry again (%d left) **\n\n",
			retry+1));
		dhd_bus_unreg_sdio_notify();
		dhd_customer_gpio_wlan_ctrl(WLAN_POWER_OFF);
	} while (retry-- > 0);

	if (!chip_up) {
		DHD_ERROR(("\nfailed to power up wifi chip, max retry reached, exits **\n\n"));
		return -ENODEV;
	}

	sema_init(&dhd_registration_sem, 0);

	error = dhd_bus_register();     //注册dhd_sdio驱动,最终会调用到dhd_net_attach();

	if (!error)
		printf("\n%s\n", dhd_version);
	else {
		DHD_ERROR(("%s: sdio_register_driver failed\n", __FUNCTION__));
		goto fail_1;
	}

	/*
	 * Wait till MMC sdio_register_driver callback called and made driver attach.
	 * It‘s needed to make sync up exit from dhd insmod  and
	 * Kernel MMC sdio device callback registration
	 */
	if ((down_timeout(&dhd_registration_sem,  //函数dhd_net_attach() --> up(&dhd_registration_sem);
		msecs_to_jiffies(DHD_REGISTRATION_TIMEOUT)) != 0) ||
		(dhd_registration_check != TRUE)) {
		error = -ENODEV;
		DHD_ERROR(("%s: sdio_register_driver timeout or error \n", __FUNCTION__));
		goto fail_2;
	}

	wl_android_post_init();

	return error;

fail_2:
	dhd_bus_unregister();

fail_1:

	/* Call customer gpio to turn off power with WL_REG_ON signal */
	dhd_customer_gpio_wlan_ctrl(WLAN_POWER_OFF);

	return error;
}

git笔记之多账户的使用,布布扣,bubuko.com

时间: 2024-10-01 19:58:09

git笔记之多账户的使用的相关文章

git笔记:通过给grunt-inline打tag看tag操作

晚上review了下grunt-inline的issues,看到有个兄弟pull request,修正了0.3.0版本的一个bug.于是就merge了下,然后发布了0.3.1版本(这里). npm publish后,突然想到一个问题,发布了这么多个版本了,但好像都没有打过tag,这个不利于版本回溯以及bug trace.svn版本管理里有tag的概念,git里八九不离十也有,虽然还没用过.就简单百度了下,打完tag后顺便做下笔记: 查看tag git tag 比如我在grunt-inline的项

git笔记之eclipse使用github远程仓库进行版本管理

这里记录一下eclipse开发工具中git的使用说明. 环境:centOS,eclipse-jee-kepler-SR2-linux-gtk-x86_64.tar.gz eclipse的使用需要依赖Java环境,这边CentOS系统里面已经安装好了JDK: 不能使用open-jdk,此版本会出现不明异常. 1.eclipse安装egit插件: eclipse里面,help --> Eclipse Marketplace 搜索egit 按照eclipse默认要求一步一步安装即可. 2.New Pr

git笔记之安装使用

git是什么? 简单介绍一下,Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git是目前世界上最先进的分布式版本控制系统,没有传说中的之一. Git诞生? Git 是 Linus为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.在过去一段时间里,Linux的开发并没有使用到版本控制,天呐!Linux这么牛逼的系统曾经在开发过程中居然没有使用到版本控制,这个放眼于现在这个阶段觉得很不可思议,当时确实是这样的,世界各地的志愿者把源代码文件

GIT笔记:将项目发布到GITHUB

GIT笔记:将项目发布到GITHUB 本机配置 1.在项目目录初始化GIT $ git init 2.用命令git add告诉Git,把文件添加到仓库 $ git add . // 这里是所有文件,用了(.) 3.用git commit把项目提交到仓库 -m 必填 $ git commit -m 'All Code' [master(根提交) 11e6a9a] All Code 62 files changed, 3680 insertions(+) create mode 100644 .gi

每天学点Git -- 笔记(四)

现在,我们考虑一种情况,当你修改了文件,但是此时你想撤销它,怎么办?下面,我们用代码试验一下: (1)在readme.txt中添加新的一行: $ cat readme.txt Git is a distributed version control system. Git is free software distributed under the GPL. Git has a mutable index called stage. Git tracks changes of files. My

【Git笔记】"error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm"的解决方法

       备注:本笔记所描述的问题的前提是机器上已安装成功git且通过配置ca证书支持以https方式获取远程仓库,如果使用git时碰到这篇文章描述的问题,那么按那篇文章给出的办法解决即可. 最近从github clone repo时,git clone命令报错如下(以vim代码补全插件youcompleteme为例): $ git clone https://github.com/Valloric/YouCompleteMe.git Cloning into 'YouCompleteMe'

版本控制之道 — 使用Git 笔记

第一次看这本书,是在两年以前了,最近又看了一遍,发现好多东西已经忘记了,另外,在最近两年的工作中,有些很有用的命令我居然一次都没用过, 所以,为以后查阅方便和更有效率的工作,写一篇笔记吧. 一.概述 版本库和工作目录树: 1.使用Git相关命令初始化版本库,即生成".git"目录,于是,".git"目录的父目录就是工作目录树 2.克隆(clone)一个已有的版本库,也就连带创建了工作目录树 Git安装完成之后,配置相关参数: --global参数代表配置的是全局参数

Git笔记

1.版本控制系统 VCS - Version Control System 版本控制是一种记录一个或若干文件内容变化,以便将来查看特定版本修订情况的系统. 记录文件所有的历史变化 随时可恢复到任何一个历史状态 多人协作开发或修改 错误恢复 多功能并行开发 2.Git分布式版本控制系统 Git是最初开发是为了取代 BitKeeper ,由 Linux 创始人 Linus Torvalds 开发,作为 Linux 内核代码管理系统使用.

android studio的git笔记

git公钥修改(公钥在c盘user下面的.ssh/id_rsa.pub里):我修改用的是:gitGUI工具(http://www.cnblogs.com/banzhuan/p/6544951.html) 命令是: ssh-keygen -t rsa -C "[email protected]"     //注册github的邮箱 说一下:默认是不用修改的(),直接把公钥弄到github上新建一个公钥就可以了(在setting/SSH and GPG keys,然后new一个,用.ssh