当前位置:首页 » 操作系统 » linuxsdio

linuxsdio

发布时间: 2023-07-31 05:56:04

㈠ 求助,linux SDIO WIFI realtek8189 驱动移植

应该可以支持,你这种情况可能是无线网卡没有加载到linux里面去。 如果在linux的可移动设备里不能直接加载的话,需要你把无线网卡拔掉再插上,linux就能找到并加载你的无线网卡了。健康好心情您好!仅供参考,相互交流!更多交流在CSDN,365testin

㈡ linux下如何开发sdio设备驱动

以LinuxKernelSdioMx28 / LinuxKernelSdioMx53项目代码为例:

- mole_init(DibBridgeTargetMoleInit)
驱动模块初始化入口

- DibBridgeTargetMoleInit():模块初始化函数。
1.调用sdio_register_driver()注册sdio接口驱动,
2.调用register_chrdev()注册驱动模块为字符设备。

- sdio_register_driver():向系统注册sdio接口驱动,调用以后,系统会触发sdio设备id检测,如果设备id和接口驱动里.id_table里定义的id一致,则系统调用probe函数。
1. 可以在DibBridgeTargetMoleInit()里调用,这样insmod之后,驱动接口即被注册(设备id被注册),有相应设备插入则probe会被调用(此种做法参考LinuxKernelSdioMx28)
2. 也可以在sdio初始化时调用,这样设备插入时,probe不会被调用,只有在sdio初始化,sdio_register_driver()被调用时,系统才会重新检测设备id,并调用probe。(此种做法好处是,模块初始化不涉及何种设备,具有更好的通用性。参考LinuxKernelSdioMx53)

- static struct sdio_driver Dib_sdio_driver
是sdio接口驱动的结构体,包括.id_table, .probe()函数等,如下
static struct sdio_driver Dib_sdio_driver = {
.name = "Dib_sdio",
.id_table = Dib_sdio_ids,
.probe = Dib_sdio_probe,
.remove = __devexit_p(Dib_sdio_remove),
};
其中.id_table很重要,它里面定义了此sdio驱动模块关心的sdio设备id号,只有插入的sdio设备的id号和这里面定义的id对应上,系统才会调用.probe函数。

- register_chrdev()
将驱动模块向系统注册为字符设备,并将操作该设备的接口函数file_operations也一起注册了。
1.可以在DibBridgeTargetMoleInit()里调用。(参考LinuxKernelSdioMx53/LinuxKernelSdioMx28代码)
2.也可以在probe函数里调用,即只有在系统检测到硬件设备时才去注册字符设备(参考sdk8remote代码)

- struct file_operations
包含如下最基本的文件操作函数,
struct file_operations fops =
{
.ioctl = DibBridgeTargetMoleIoctl, //控制命令传输或数据传输
.open = DibBridgeTargetMoleOpen,
.read = DibBridgeTargetMoleReadData, //数据传输
.write = DibBridgeTargetMoleWriteData
.release = DibBridgeTargetMoleRelease,
};

- .ioctl/.read 等等

user space和kernel space的传输通道,通过使用_from_user和_to_user这样的函数来实现数据传递
Linux方面的想相关知识可以网络搜索《Linux就该这么学》进行学习了解

㈢ Linux也疯狂 夏普Zaurus SL6000L评测

【IT168 专稿】这款Zaurus SL-6000L是Sharp(夏普)最新发布的一款基于linux操作系统的多功能PDA。它配备了400 MHz Intel XScale PXA255处理器,内存为64MB SDRAM可用空间为25MB。


#$[*168665.jpg*#a*#0*#0*#center*]$#


从某些方面来看这款Zaurus SL-6000L就象是之前发布的Zaurus SL-5600和Zaurus SL- C750/760/860的混合产物。在Zaurus SL-6000L上最主要的特点是配备了更好的显示屏、内置了Wi-Fi和蓝芽无线模块和增强了扩展性。在机身的底部还有一个Mini A USB连接器,此外还有一支长的触控笔。我测试的这款是Zaurus SL-6000L是面向普通的消费群所以只内置了Wi-Fi无线模块。


除了SL-6000L之外SL-6000系列还包括其它的两个机型:只内置了蓝芽的SL-6000N和内置了蓝芽和802.11b无线模块的SL-6000W。我在测试这款Zaurus SL-6000的时候使用了一个Viking 512 MB Compact Flash卡和一个Sandisk 64 MB Secure Digital卡。使用中没有出现兼容问题。在关闭蓝芽的情况下,我还用一个Aerlink NPC卡把SL-6000连接到我的Sony Ericsson T610手机上而且顺利的接入了互联网。


包装:


Zaurus SL-6000L的包装盒非常的简单。只是一个上面印有蓝色图案的白色硬纸板盒,上面没有现在包装盒上非常流行的可以看到里面产品的透明塑料窗口。重量很轻而且非常环保。在包装盒里PDA被放在一个隔开的另外的空间里,其它还有USB连接线、塑料底座、电源连接器、CD-ROM、快速上手向导和一本104页的使用指南。




设计:


Zaurus SL-6000L的表面材质较为粗糙,这样的设计可以有效的防止PDA在使用中从手中滑落。SL-6000L的屏幕翻盖弹力很大打开/关闭时感觉有点费力,而且也限制了触控笔的使用。我还是比较喜欢SL-5600的屏幕翻盖。SL-6000L和SL-5600的底座非常类似都比较大。


#$[*168690.JPG*#a*#0*#0*#center*]$#


SL-6000L的机身右侧没有任何的按钮和端口。


#$[*168691.JPG*#a*#0*#0*#center*]$#


在机身的左侧的顶部是一个开/关按钮、IR端口和一个银色的录音按钮,它可以启动录音功能你可以方便的录制声音日记或会议记录。按钮下面是一个非标准的2.5mm音频插孔,如果你想使用标准的3.5mm耳机必需得有一个转接器。


#$[*168699.JPG*#a*#0*#0*#center*]$#


在SL-6000L机身的顶端是一个支持CF(type I或 II)卡和SD卡的内存卡插槽(不能支持SDIO)。机身的后面可以看到一个内置喇叭和不同于早先的Zaurus机型的电池。


#$[*168702.JPG*#a*#0*#0*#center*]$#


机身的底部是DC电源插孔、标准的Zaurus I/O端口、扩充连接器和一个Mini-A USB接口。在USB接口的下面是麦克风插孔。用来连接底座的塑料附件可以取下来,所以SL-6000L也可以允许你把它直接插在底座的扩充接口上。




显示屏:


#$[*168712.jpg*#a*#0*#0*#center*]$#


这款Zaurus SL-6000L配备的是一个480×640分辨率,65536色的4英寸背光显示屏。清晰度和对比度都非常出色,是我在掌上电脑上所见过的最好的显示屏。明显要比Zaurus SL- C750/760/860上的显示屏好的多,尽管它们的显示屏已经非常好了。屏幕上的彩色应用程序图标非常的漂亮,并且网页的显示也非常精细就象是在图片浏览器中打开的照片。我认为SL-6000L的屏幕的显示质量完全可以与桌面电脑的显示器媲美。先前的SL- C860的屏幕亮度虽然非常出色,但是在高亮度设置下对比度较差图像显得非常虚。SL-6000L的屏幕在高亮度设置下则仍然可以保持极好的对比度和色彩深度。屏幕背光的亮度可以在设置页中使用工具进行多种设定,但是不能象SL- C750那样用键盘的快捷键设置。在测试中手写区响应灵敏精确给我留下了非常深的印象。


按钮:


#$[*168708.JPG*#a*#0*#0*#center*]$#


在SL-6000L的前面板上一共有九个按钮和一个导航键,Action按钮在导航键的中心。导航键的左侧是Cancel按钮右侧是OK按钮,上面有一个圆点的是Dot按钮,上面画了一个灯泡的是背光开/关按钮。


触控笔:


SL-6000L附带的是一支4英寸长的黑色塑料制成的触控笔。它只是采用翻盖设计的5000系列上触控笔的加长版。它的设计不是非常好手感太轻。在不使用时可以把它插在屏幕右侧边缘的插槽内。这对于象我这样的左撇子来说非常的不便。如果你安装了屏幕翻盖情况会更糟,你几乎不可能把它取出来。




键盘:


#$[*168731.JPG*#a*#0*#0*#center*]$#


SL-6000L的键盘与早先的机型一样也是通过向下滑动按钮区把它露出来。键位的响应非常灵敏,但是按上去键位显得有些硬长时间的键入手指会有些疲劳。键盘上的Fn键是橙色的非常醒目但是说实话不是太好看。在直接的光照下想看清每个键非常困难,这是一个非常令人讨厌的问题。


#$[*168733.JPG*#a*#0*#0*#center*]$#


与SL- C860扁平的键盘按压式相比,SL-6000L的键盘更加真实立体但是小了许多(左侧是SL- C860右侧是SL-6000L)。与SL- C860的键盘相比除了尺寸之外,SL-6000L的键盘还少了一行数字键,这意味着你在键入数字时必须按住Fn键。除了物理键盘之外SL-6000L的主要输入方式还有屏幕键盘和手写识别。


电池:


SL-6000L配备的是一块可抽取式1500 mAh电池。在SL-5500上倍受批评的电池寿命在SL-5600上就得到了改进。在SL-6000L上的电池采用了外形又宽又薄的全新设计。


#$[*168735.jpg*#a*#0*#0*#center*]$#


在手册上标称的电池寿命是11小时。在我的测试中,在打开Wi-Fi连接的情况下处理日常的工作SL-6000L的电池寿命比标称的下降了百分之25。在测试中把背光亮度设置成最大而且也打开Wi-Fi连接,从完全充满电到不能用只维持了几乎整整两小时。在关闭Wi-Fi连接的情况下进行与上面测试相同的操作SL-6000L可以维持6到8小时。在这种情况下编辑文档和运行程序2小时以后屏幕上的电池指示器图标几乎没有移动,屏幕上显示的剩余电量在百分之90到百分之95之间。整体来看SL-6000L的电池寿命还是非常的不错。




音频:


#$[*168740.JPG*#a*#0*#0*#center*]$#


SL-6000L的内置喇叭非常不错。音质相当于小无线电的质量,音量也足够高完全可以当闹钟来用。我甚至还可以用它来听MP3。内置麦克风的录音效果也非常不错。最初当我看到SL-6000L上的2.5mm音频插孔时感到非常惊讶,这显然是因为我以前的SL-5600的主要特点非常象一款MP3播放器的原因。我用一个手机上的耳机对它进行了测试音质非常的细腻。


结论:


这款SL-6000L外型设计漂亮,机身结实防滑,电池寿命优秀而且还配备了极好的显示屏和功能强大的操作系统。整体性能超出了大多数人的预期。经过一周的使用我对这款SL-6000L的表现非常满意,它操作容易机身结实但有不是太重最重要的是体积不是非常大。如果你的大部分需求只是PIM功能,那这款SL-6000L也许并不适合你。如果用它来进行办公应用、网络应用、浏览图片那它的确是一个极好的设计。整体来看尽管价格有点高但是你为它花的每一分钱都非常的值。

㈣ 内核模块编译怎样绕过insmod时的版本检查

一、先把 Moudle version 检查关掉。
user@host # ARCH=arm make menuconfig
--- Enable loadable mole support │ │
│ │ [ ] Forced mole loading │ │
│ │ [*] Mole unloading │ │
│ │ [*] Forced mole unloading │ │
│ │ [ ] Mole versioning support │ │
│ │ [ ] Source checksum for all moles
二、 使用modinfo时,可以看到目前这driver的vermagic
filename: external_drivers/omap3530/Linux/sdio/sdio.ko
author: Texas Instruments Inc
alias: TIWLAN_SDIO
license: GPL
description: TI WLAN SDIO driver
depends:
vermagic: 2.6.28-271-gec75a15 preempt mod_unload ARMv7
parm: g_sdio_debug_level:debug level (int)
三、 修改 kernel 的 vermagic,再重新编译driver
vermagic 的第一个值 2.6.28-noneed 是由这 include/linux/utsrelease.h里的 UTS_RELEASE 所定义。
#define UTS_RELEASE "2.6.28-271-gec75a15"
之后再由 include/linux/vermagic.h 里的 macro
去组合出 VERMAGIC_STRING , 也就是 kernel 的vermagic。
#include
#include
#ifdef CONFIG_SMP
#define MODULE_VERMAGIC_SMP "SMP "
#else
#define MODULE_VERMAGIC_SMP ""
#endif
#ifdef CONFIG_PREEMPT
#define MODULE_VERMAGIC_PREEMPT "preempt "
#else
#define MODULE_VERMAGIC_PREEMPT ""
#endif完成编译后,你就可以得
#ifdef CONFIG_MODULE_UNLOAD
#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
#else
#define MODULE_VERMAGIC_MODULE_UNLOAD ""
#endif
#ifndef CONFIG_MODVERSIONS
#define MODULE_VERMAGIC_MODVERSIONS "modversions "
#else
#define MODULE_VERMAGIC_MODVERSIONS ""
#endif
#ifndef MODULE_ARCH_VERMAGIC
#define MODULE_ARCH_VERMAGIC ""
#endif
#define VERMAGIC_STRING \
UTS_RELEASE " " \
MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
MODULE_ARCH_VERMAGIC
所以, 我们只要把 UTS_RELEASE 改成我们的数字即可,当然若是懒得去try组合后的字串,也可以直接将VERMAGIC_STRING改成你要的字串
建议修改完 vermagic.h, utsrelease.h后,还是把kernel重编完再编kernel,比较保险。

㈤ 为什么SD卡在Linux下/dev下的设备名叫mmcblk0p1

SD/MMC 卡的设备构造差不多,MMC 应该是 SD 的前身,不过 MMC 当时的设计比 SD 小一半。

所以,SD/MMC 的驱动通用,进一步的,Linux 的设备节点就延续了 MMC 的这个名字,后面的 blk 是块设备这个英文的简写, mmcblk 也就是“ mmc/sd 块设备”,0 就是这个 mmc/sd 设备的顺序编号,p1 就是第一个分区。

mmc卡与sd卡的区别:

1、mmc卡和sd卡的长宽是一样的,SD卡略厚。

2、SD卡的触点比MMC卡多一个,是用于数字版权保护(DRM)的。

3、SD卡的侧边比MMC卡多一个写保护的开关。


(5)linuxsdio扩展阅读:

SD模式

驱动模式

SD卡有两种驱动模式:SPI模式与SDIO模式。它们所使用的接口信号是不同的。在SPI模式下,只会用到SD卡的4根信号线,即CS、DI、SCLK与DO(分别是SD卡的片选、数据输入、时钟与数据输出)。

传输模式

SD卡共支持三种传输模式:SPI模式(独立序列输入和序列输出),1位SD模式 (独立指令和数据通道,独有的传输格式), 4位SD模式 (使用额外的针脚以及某些重新设置的针脚。支持四位宽的并行传输)。

热点内容
瑞影无损图片压缩大师 发布:2025-03-13 13:27:33 浏览:451
应用怎样加密 发布:2025-03-13 13:18:10 浏览:673
李弘毅访问 发布:2025-03-13 13:17:30 浏览:655
服务器搭建直播平台源码 发布:2025-03-13 12:54:38 浏览:813
c语言的题 发布:2025-03-13 12:45:01 浏览:609
小学试算法 发布:2025-03-13 12:39:06 浏览:999
更改手机服务器节点有什么用 发布:2025-03-13 12:39:04 浏览:307
python基础视频教程下载 发布:2025-03-13 12:37:38 浏览:803
笔记本怎么配置扬声器 发布:2025-03-13 12:32:03 浏览:543
台湾虚拟服务器云主机 发布:2025-03-13 12:18:07 浏览:355