前言:

移植AR6000 到android 时候, 开始总是去找网上的开源驱动代码。

结果,发现总是因为linux kernel的版本问题,编译出现一些问题。仔细研究网上一下帖子,发现,有很多版本问题和staging 有关,

再查看,发现其实android的内核里面,其实已经包含了 staging的目录,那么,staging的目录究竟是什么意义呢?此外还有 linux-next tree

同样被牵扯进去的有      -- Linus Torvalds

这里转一篇文章写得比较详细看看。

具体如何编译使用staging里面的驱动,请看我的另外一个文章:

#####################################################################################################

起因:

Randy Dunlap
10-9-28
Re: linux-next: Tree for September 27 (staging: ath6kl, spectra, & vt6655)
将帖子翻译为中文  
On Mon, 27 Sep 2010 16:21:43 +1000 Stephen Rothwell wrote:
> Hi all,
>
> Changes since 20100924:

drivers/staging/ath6kl/os/linux/ar6000_drv.c:1370:1: warning: "CONFIG_AR600x_BT_RESET_PIN" redefined
./include/generated/autoconf.h:419:1: warning: this is the location of the previous definition
drivers/staging/ath6kl/os/linux/ioctl.c:4673: warning: the frame size of 2052 bytes is larger than 1024 bytes
drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:288: error: 'struct mmc_host' has no member named 'max_hw_segs' #【我编译源码遇到的问题】
drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:289: error: 'struct mmc_host' has no member named 'max_hw_segs'

drivers/staging/spectra/ffsport.c:659: error: implicit declaration of function 'blk_queue_ordered'
drivers/staging/spectra/ffsport.c:659: error: 'QUEUE_ORDERED_DRAIN_FLUSH' undeclared (first use in this function)

drivers/staging/vt6655/device_main.c:3579: warning: the frame size of 1868 bytes is larger than 1024 bytes

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Vipin Mehta
10-9-28
RE: linux-next: Tree for September 27 (staging: ath6kl, spectra, & vt6655)
将帖子翻译为中文  
> Hi all,
>
> Changes since 20100924:

drivers/staging/ath6kl/os/linux/ar6000_drv.c:1370:1: warning: "CONFIG_AR600x_BT_RESET_PIN" redefined
./include/generated/autoconf.h:419:1: warning: this is the location of the previous definition
drivers/staging/ath6kl/os/linux/ioctl.c:4673: warning: the frame size of 2052 bytes is larger than 1024 bytes
drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:288: error: 'struct mmc_host' has no member named 'max_hw_segs'
drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:289: error: 'struct mmc_host' has no member named 'max_hw_segs'

The problem is because the mmc stack is out of sync in Greg's staging tree and Stephen's linux-next tree. Greg asked me to generate a patch which I did and emailed to Greg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Geert Uytterhoeven
11-8-8
Re: linux-next: Tree for September 27 (staging: ath6kl, spectra, & vt6655)
将帖子翻译为中文  
On Mon, Sep 27, 2010 at 21:28, Vipin Mehta <Vipin...@atheros.com> wrote:
>> Changes since 20100924:
>
> drivers/staging/ath6kl/os/linux/ar6000_drv.c:1370:1: warning: "CONFIG_AR600x_BT_RESET_PIN" redefined
> ./include/generated/autoconf.h:419:1: warning: this is the location of the previous definition
> drivers/staging/ath6kl/os/linux/ioctl.c:4673: warning: the frame size of 2052 bytes is larger than 1024 bytes
> drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:288: error: 'struct mmc_host' has no member named 'max_hw_segs'
> drivers/staging/ath6kl/hif/sdio/linux_sdio/src/hif_scatter.c:289: error: 'struct mmc_host' has no member named 'max_hw_segs'
>
> The problem is because the mmc stack is out of sync in Greg's staging tree and Stephen's linux-next tree. Greg asked me to generate a patch which I did and emailed to Greg.

And the 'warning: "CONFIG_AR600x_BT_RESET_PIN" redefined' is still there...

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

#####################################################################################################

【转】小议Linux staging tree

2.6.28版本起,内核代码的drivers下增加了一个staging目录,这个目录也是用来存放驱动程序,只是这里的驱动和上层目录的不同,加载的时候内核log会打印如下的语句:

MODULE_NAME: module is from the staging directory, the quality is unknown, you have been warned.

drivers/staging究竟所谓何物,需要从Linux staging tree说起。

Greg KH于2008年6月10号在Linux内核邮件列表里发出一封信,宣布建立了另外一棵kernel tree,这就是Linux staging tree。Greg解释到,staging tree建立之目的是用来放置一些未充分测试或者因为一些其他原因未能进入内核的新增驱动程序和新增文件系统。在信中,Greg罗列了开发者把代码提交到staging tree应该遵循哪些规则,以及哪些行为是在staging tree不受欢迎的:

The rules of what can be included here is as follows:- the code must be released under a Linux kernel-compatiblelicense- the goal of the developers must be to merge this code into themain kernel tree in the near future, but not for the nextkernel release.- the code must build properly on the x86 platform- this is not a tree for bugfixes or rewrites of existing kernelcode, this should be for new features, drivers, andfilesystems.- the patches included must detail exactly what is needed to becompleted in order for them to be included into the mainkernel tree.- there must be some email address associated with the patchthat can be used for bug reporting and questions aboutcleanups and testing the code.What this tree is not:- it is not a place to dump features that are being activelydeveloped by a community of people (reiserfs4 for example.)- it is not a place to dump code and then run away, hoping thatsomeone else will do the cleanup work for you.  While thereare developers available to do this kind of work, you need toget someone to agree to "babysit" the code.

但是,也有人对staging tree建立的必要性有些疑问的,毕竟,在此之前我们已经有了linux-next tree。Greg对这些疑问解释到,staging tree只是收留新增的驱动程序和文件系统,并不接收对已有代码的修改补丁。因此可以说,Greg的staging tree在很大程度上分担了Stephen Rothwell身上的压力,但并不意味着linux-next tree的角色定位发生了变化。

到这里,我们似乎应该比较了然了,对于新增的驱动我们提交的对象就是staging tree。但Greg在2009年3月18号发表的一篇博文带来了一些变故。

在文章中,Greg提到在数月前的Linux内核开发者的会议上,经过讨论Linux-staging tree的定位发生了变化,但还是很多人对staging tree究竟是什么有些疑惑。因此,Greg在这篇文章里重申了staging tree究竟是什么和不是什么(大概意思和上面引用的那封信里的内容类似)。并且,staging tree里的代码也已经被合并到了Linux内核代码里,位置正是本文开始提到的drivers/staging。也就是说,自2.6.28内核开始,我们如果要测试staging tree里的驱动程序或者文件系统,并不需要clone一个staging tree再合并到mainline内核里,mainline本身就已经包含了staging tree的代码了。对于Linux驱动开发者来说,我们也可以clone linux-next tree并以它为基础来提交驱动程序。

那这样是不是意味着Greg的linux staging tree已经没用了呢?我在提交驱动的时候也有这样的疑问,因此特意写信向Greg求证。Greg的回复说,如果我们要把新增的driver提交给他本人处理,还是可以继续基于linux staging tree来做patch;如果我们的工作不止是开发staging driver,比如还在为其他内核代码开发补丁,那么基于linux-next tree来制作patch也是可以的。

附:

Linux-next tree: 

git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

http://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git

Linux-staging tree:

git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git

http://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git

https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6.git

这里需要注意的是,git协议的端口号是9418,因为很多公司的防火墙只会开放80端口,所以clone代码仓库时如果git协议超时,不妨试试http协议。

ref:

http://www.cnblogs.com/wwang/archive/2011/03/08/1970432.html

####################################################################################################################################

作者:wwang
出处:http://www.cnblogs.com/wwang
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

--------懒人评论(请勿重复点击)--------

####################################################################################################################################

madeby: Franklin @ QQ or huang.makin@gmail.com

【linux 001】【利用staging Driver】【001】wifi AR6000 驱动移植引发的 staging 的问题相关推荐

  1. Linux(ubuntu)重新装完系统WIFI没有驱动、无法连接简易上网教程

    Linux(ubuntu)重新装完系统WIFI没有驱动.无法连接简易上网教程 1.换一个无线网卡管理器: wicd 执行下载程序 中间会有一次提示按回车 sudo apt-get install wi ...

  2. Linux WIFI模块驱动移植

    作者 QQ群:852283276 微信:arm80x86 微信公众号:青儿创客基地 B站:主页 https://space.bilibili.com/208826118 参考 请问有知道atheros ...

  3. WiFi模块驱动移植

    项目背景 WiFi模块rlt8812au 替换成rlt8812cu,支持rlt8812cu驱动且保持兼容原有模块 驱动移植 根据厂家提供的驱动包,修改makefile和Kconfig文件,根据需要修改 ...

  4. linux可以用9260无线网卡,基于AT91SAM9260开发板的WiFi无线网卡驱动移植

    1.驱动Makefile文件修改 一般只需在$(MAKE) 添加 -C /嵌入式内核目录 例如: modules: $(MAKE) -C/home/work/linux-2.6.20  M=$(TOP ...

  5. MT7601 无线wifi网卡驱动移植

    注意:本博客来源于朱老师项目积木-usb wifi移植部分,本博客仅供学习和交流 一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb ...

  6. USB无线网卡-----MT7601 无线wifi网卡驱动移植

    备注:次博客为转载,原作者地址请点击此处 注意:本博客来源于朱老师项目积木-usb wifi移植部分,本博客仅供学习和交流 一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi ...

  7. RT73 wifi无线网卡驱动移植过程 和wpa支持

    转 移植环境: 主机操作系统:Ubantu 8.10 目标系统:linux-2.6.22.6 交叉编译器:arm-softfloat-linux-gnu-gcc-3.4.5 一.RT73驱动编译 1. ...

  8. amlogic ap6210 wifi bt驱动移植

    外设配置 - wifi SDIO wifi: AP6210 1 配置 kernel 配置 deconfig 文件 AP6210 kernel 的配置主要是修改 common/customer 目录下对 ...

  9. 嵌入式linux 零基础-实践起步 --- 001 --- linux的版本

    1 linux的版本: 1.1 linux的发行版本( distribution): Fedora.SuSE.Redhat.Ubuntu等都是著名版本: 但是,需要注意的是: Gentoo 最初由Da ...

最新文章

  1. 菜鸟系列docker——docker基本概念(1)
  2. update empty content to text instance - where is B mode changed to D by frame
  3. 数据结构之线段树入门(单点更新区间查询)
  4. java显示星期几_Java 使用日历显示星期几
  5. js 高级-创建对象
  6. Recurrent Neural Networks
  7. kettle升级jetty10实验(未完成jaas认证)
  8. Elasticsearch核心知识大纲脑图
  9. Go黑魔法之cgo reflect访问list存储C指针
  10. java中怎么改变白天模式,android 白天黑夜模式切换例子源码
  11. Typo: In word ‘worklist‘
  12. 我的高中时代──纪念1995年进入高中20周年
  13. 01背包问题,多重背包问题-分组背包问题-完全背包问题-总结-内含4种经典背包问题
  14. 手把手教会你如何玩转SpringMVC
  15. Friedman 检验--Matlab
  16. 快速找到python第三方库
  17. Mysql—数据模型
  18. p2psear正在连接服务器,P2PSearcher怎么用?无法连接问题解决
  19. 职场工具:SMART、PEST、PDCA、SWOT、四象限、二八法则
  20. 适用于南方电网61850icd模型文件的模型定义导出工具

热门文章

  1. 内网学习之MySQL服务提权
  2. Android BGradualProgress 多种渐变、直角or弧角、进度条、加载条
  3. 使用docker运行dotnetcore站点
  4. 【Day01】你有封装过 axios 吗?主要是封装哪些方面?如何中断 axios 请求?
  5. Vercel反向代理做CDN,免费给网站加速隐藏源站,可绑定域名
  6. C#LeetCode刷题之#101-对称二叉树(Symmetric Tree)
  7. create-react-app第一步
  8. 网络IO模型详细分析
  9. 利用 Python 写个七夕表白神器
  10. Python网络爬虫开发实战,微博宫格验证码的识别