当前位置: 技术问答>linux和unix
2.6.33自带的sd8688的wifi驱动为神马不好使呢?(显示加载固件失败)
来源: 互联网 发布时间:2016-11-13
本文导语: 本帖最后由 HEHE8737 于 2011-03-10 15:21:31 编辑 我用的村田封装的marvell 8688的模块,SDIO接口,启动信息中有关SDIO的如下所示(固件我已经放在了linux-2.6.33/firmware目录下,并指定了位置,USB的RT73曾今这样驱动成功): s3c-s...
s3c-sdi s3c2440-sdi: powered down.
s3c-sdi s3c2440-sdi: mmc0 - using pio, sw SDIO IRQ
s3c-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
s3c-sdi s3c2440-sdi: running at 400kHz (requested: 400kHz).
s3c-sdi s3c2440-sdi: running at 400kHz (requested: 400kHz).
s3c-sdi s3c2440-sdi: running at 400kHz (requested: 400kHz).
lib80211: common routines for IEEE802.11 drivers
s3c-sdi s3c2440-sdi: running at 400kHz (requested: 400kHz).
s3c-sdi s3c2440-sdi: running at 400kHz (requested: 400kHz).
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
s3c-sdi s3c2440-sdi: running at 50000kHz (requested: 50000kHz).
s3c-sdi s3c2440-sdi: running at 50000kHz (requested: 50000kHz).
mmc0: new SDIO card at address 0001
libertas_sdio mmc0:0001:1: firmware: using built-in firmware sd8688_helper.bin
libertas_sdio mmc0:0001:1: firmware: using built-in firmware sd8688.bin
libertas: failed to load firmware
libertas_sdio: probe of mmc0:0001:1 failed with error -110
以上是全部有关启动信息,我在源代码中找,发现
static int if_sdio_prog_real(struct if_sdio_card *card)中的
timeout = jiffies + HZ;
while (1) {
u16 scratch;
scratch = if_sdio_read_scratch(card, &ret);
if (ret)
goto release;
if (scratch == IF_SDIO_FIRMWARE_OK)
break;
if (time_after(jiffies, timeout)) {
ret = -ETIMEDOUT;
goto release;
}
msleep(10);
}
中的scratch一直等于0,然后直接跳到了release,没有正常跳出函数,看下面的函数,我怎么觉得scratch必然会等于0呢,呵呵
*************************************************************************************************************
static u16 if_sdio_read_scratch(struct if_sdio_card *card, int *err)
{
int ret;
u16 scratch;
scratch = sdio_readb(card->func, card->scratch_reg, &ret);
if (!ret)
scratch |= sdio_readb(card->func, card->scratch_reg + 1,
&ret) num, addr, 0, &val);
if (ret) {
if (err_ret)
*err_ret = ret;
return 0xFF;
}
return val;
}
*************************************************************************************************************
int mmc_io_rw_direct(struct mmc_card *card, int write, unsigned fn,
unsigned addr, u8 in, u8* out)
{
struct mmc_command cmd;
int err;
BUG_ON(!card);
BUG_ON(fn > 7);
/* sanity check */
if (addr & ~0x1FFFF)
return -EINVAL;
memset(&cmd, 0, sizeof(struct mmc_command));
cmd.opcode = SD_IO_RW_DIRECT;
cmd.arg = write ? 0x80000000 : 0x00000000;
cmd.arg |= fn > 8) & 0xFF;
else
*out = cmd.resp[0] & 0xFF;
}
return 0;
}
**************************************************************************************************************
有了解的大侠请给我答疑解惑,这究竟是什么问题呢???
|
libertas_sdio mmc0:0001:1: firmware: using built-in firmware sd8688_helper.bin
libertas_sdio mmc0:0001:1: firmware: using built-in firmware sd8688.bin
libertas: failed to load firmware
===================================
首先, 对 Marvell 的 wifi 网卡以及驱动 表示无限鄙视。
其次,你的固件放的位置可能还是不对。所以,看源码,放对固件的位置应该就可以了。
至于固件要放在什么位置, 还得看源码。
libertas_sdio mmc0:0001:1: firmware: using built-in firmware sd8688.bin
libertas: failed to load firmware
===================================
首先, 对 Marvell 的 wifi 网卡以及驱动 表示无限鄙视。
其次,你的固件放的位置可能还是不对。所以,看源码,放对固件的位置应该就可以了。
至于固件要放在什么位置, 还得看源码。
|
你方到
/lib/firmware/
/lib/firmware/
|
那你的网卡叫什么名字?
ifconfig -a 看看。
ifconfig -a 看看。
|
http://blog.chinaunix.net/space.php?uid=13889805&do=blog&id=120361
看起来还是没有配mdev啊
看起来还是没有配mdev啊
|
做成模块加载试试
|
网卡都识别不到。。。。
你还是去 marvell 的官网上找驱动去吧。。。。
你还是去 marvell 的官网上找驱动去吧。。。。
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。