This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/WL1807MOD:WL1807MOD

Guru**** 1818760 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/722986/linux-wl1807mod-wl1807mod

器件型号:WL1807MOD
Thread 中讨论的其他器件:WL1835WL1271

工具/软件:Linux

您好!

我一直在使用 WL18XX 在 IMX28处理器中通过 SPI 实现 WLAN0接口。  我的内核版本是3.14.79-rt85。 Linux 中存在 wl18xx、wlcore、wl12xx 和 wl1251驱动程序文件。 此外、我 还提供了 WL18xx 模块的入门指南。根据本指南、我实现了配置文件。 此外,根据  我的设备树,我还会对文件实施此修补程序( patchwork.kernel.org/.../),我的实施就像这样,

ssp2:SSP@80014000{
#address-cells =<1>;
#size-cells =<0>;
兼容="FSL、imx28-SPI";
pinctrl-names ="默认值";
pinctrl-0 =<&SPI2_PINS_a>;
时钟频率=<48000000>;
状态="确定";
电源=<&wlan_en_reg>;

wlcore:wlcore@1{

兼容="ti、wl1271"、"ti、wlcore";
reg =<1>;
SPI-max-frequency =<48000000>;
interrupt-parent =<&GPIO0>;
中断=<10 2>;
VMMC-supply =<&wlan_en_reg>;
时钟 xtal;
参考时钟频率=<38400000>;
}; 

我认为我在这里做了一些错误、因为在压缩了编译的 wlcore wl12xx 和 wl18xx 文件后 、我 无法使用"ifconfig -a " 命令看到任何 wlan0接口。  我想知道我是否应该实现 Linux 回向内核的移植。 我的内核版本是否有任何正确的 wilink8版本。 如果您能为我提供帮助、我将不胜感激。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    您如何物理连接 wl18xx 模块和 IMX 主机处理器?
    您是否连接了 SPI 引脚?

    接下来、如果您使用的是 wl18xx 模块、它应该是:
    兼容="ti、wl1835";

    而不是:
    兼容="ti、wl1271"、"ti、wlcore";

    接下来、您需要在引导内核时加载内核模块。
    您是否正在加载以下模块?
    cfg80211.ko
    mac80211-ko
    wlcore.ko
    wlcore_spi.ko
    wl18xx.ko

    请提供您的内核引导和上述模块加载的完整日志。

    此致、
    Eyal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好[ 报价用户="Eyal Reizer "]

    您如何物理连接 wl18xx 模块和 IMX 主机处理器?
    您是否连接了 SPI 引脚?

    接下来、如果您使用的是 wl18xx 模块、它应该是:
    兼容="ti、wl1835";

    而不是:
    兼容="ti、wl1271"、"ti、wlcore";

    接下来、您需要在引导内核时加载内核模块。
    您是否正在加载以下模块?
    cfg80211.ko
    mac80211-ko
    wlcore.ko
    wlcore_spi.ko
    wl18xx.ko

    请提供您的内核引导和上述模块加载的完整日志。

    此致、
    Eyal

    [/引述] Eyal、

    实际上、我没有  将 wl18xx 模块物理连接到主机处理器。 首先、我将连接到实现驱动程序、然后连接到主机。 但我的第一个优先级是,我想查看是否可以实施驱动程序。

    在实施之前,是否应该连接模块? 会有帮助吗?

    是的、您是对的、我需要写入"ti、wl18xx"、但我 尝试使用 compatible ="ti、wl18xx"。 我想我在这里做错了。 我可以像 编写 compatible 一样编写="ti,wl1835" 吗?

    实际上 、在内核引导时不加载 cfg80211-ko、mac80211-ko、wlcore.ko、wlcore_spi.ko、wl18xx.ko 内核模块。 我将在从控制台引导后添加它们。

    这是我的内核日志;

    正在启动内核...
    
    [0.000000]在物理 CPU 上引导 Linux 0x0
    [0.000000] Linux 版本3.14.79-rt85 (ptxdist@ptxdist)(gcc 版本4.9.2 ( OSELAS.Toolchain-2014.12.2)#21 preempt RT 2016-04-01
    [0.000000] CPU:ARM926EJ-S [41069265]修订版5 (ARMv5TEJ),CR=00053177
    [0.000000] CPU:V000000数据高速缓存,VIVT 指令高速缓存
    [0.000000]机器模型:TQ Systems TMBa28]
    内存策略:TQMaQ28 [0.000000] 数据高速缓存写回
    [0.000000]在区域顺序和移动分组中构建了1个区域列表。 总 PAG ES:32512
    [0.000000]内核命令行:root=/dev/mmcblk1p3 rw rootwait console=tty0 consoleBlank=0 console=ttyAPP3,115200 lcd_panel=fg0700 ssp1 panel=1
    [0.000000] PID 哈希表条目:512 (顺序:-1、2048字节)
    [0.000000]条目高速缓存哈希表条目:16384 (顺序:7、589824字节)
    [0.000000] inode-cache 哈希表:832K
    (命令:32760/28K)条目、381K (命令:32755K ,1892K rodata,237K init,5535K BSS,14744K reserved)
    [0.000000]虚拟内核内存布局:
    [0.000000] 向量:0xffffff0000 - 0xffffff1000 (4KB)
    [0.000000] Fixmap:0xFF00000 - 0xFFE0000 (896 KB)
    [0.000000] vmalloc:0xc8800000 - 0xc000000 (872 MB)
    [0.000000] 低内存:0xC0000000 - 0xc8000000 (128 MB)
    [0.000000] 模块:bbf000000 - 0xC0000000 (16 MB)
    [0.000000] .text:0xc0008000 - 0xc06b83b8 (6849KB)
    [0.000000] init:0xc06b9000 - 0xc06f455c (238KB)
    [0.000000] .data:0xc06f6000 - 0xc0748c5c (332KB)
    [0.000000] .bss:0xc0748c5c - 0xc0cb0ae0 (5536 KB)
    [0.000000] slub:HWalign=32、order=0-3、MinObjects=0、CPU=1、Nodes =1
    [0.000000]可抢占的分层 RCU 实现。
    [0.000000] NR_IRQ:16 nr_IRQ:16
    16 [0.000000] of _IRQ_init:儿童保留、但无父
    [ 0.000049] sched_clock:32位、24MHz、分辨率41ns、每17895次换行 6969942ns
    [ 0.002869]控制台:彩色虚拟设备80x30
    [ 0.008633]控制台[tty0]已启用
    [ 0.008649]锁定相关性验证器:版权所有(c) 2006 Red Hat, Inc., Ingo 摩尔纳尔
    [0.008658]... MAX_LOCKDEP_SUBCLASSES:8
    [0.008668]... MAX_LOCK_DEPTH: 48[0.008677]...
    MAX_LOCKDEP_KEY: 8191
    [0.008686]... CLASSHASH_SIZE: 4096
    [0.008695]... MAX_LOCKDEP_ENTERINES: 16384
    [0.008704]... MAX_LOCKDEP_链: 32768[0.008713]...
    CHAINHASH_SIZE:
    由锁依赖项信息使用的16384 [ 0.008723]内存:每个
    任务结构内存占用量为3695 KB [ 0.008733]:1152字节
    [ 0.01230]校准延迟循环... 226.09 BogoMips (lpj=1130496)
    [0.081255] pid_max:默认值:32768最小值:301
    [0.082012]安全框架已初始
    化[0.082598]安装高速缓存哈希表条目:1024 (顺序:0、4096字节)
    [0.082656]安装点高速缓存
    一致性哈希表条目:1024 (顺序:0、写入测试:0.4096字节) CPU OK
    [0.185824]为0x404b7450 - 0x404b74a8
    [0.221443] devtmpfs 设置静态标识映射:已初始
    化[0.239212] pinctrl 内核:已初始化 pinctrl 子系统
    [0.253529]稳压器-
    
    虚拟池:无参数[0.261986] NET:已注册协议系列16[0.264499] pinctrl 内核:已初始化 pinctrabus 预分配[0.7429] dma 池[0.7429]
    AMBA PL011 UART 驱动
    程序[0.412097] 80074000.serial: tmio 0x80074000处的 ttyAMA0 (IRQ = 239、base_baud = 0)是 PL011 rev2
    [0.492931] bio:create slab 0
    [0.519748] MXs-DMA 80004000.dma-apbh:初始
    化[0.536195] MXs-DMA 800240.dma-apbx:初始化
    [0.540456] 3P3V:3300mV
    [0.543535353535] VDDIO-sd0:3300mV
    [0.547850] usb0_VBUS:0.55456mV [0.55456mV]
    
    
    
    虚拟子系统[0.5545548][0.55455mVb1mV]
    注册的新接口驱动程序 usbfs
    [0.568652] usbcore:注册的新接口驱动程序集线
    器[0.569879] usbcore:注册的新设备驱动程序 USB
    [0.639785] pps_core:LinuxPPS API 版本。 1寄存
    式[0.639958] pps_core:软件版本。 5.3.6 -版权所有2005-2007 Rodolfo Giome TI 
    已注册[0.640355] PTP 时钟支持
    [0.645405]高级 Linux 声音架构驱动程序已初始化。
    [0.663301]切换到时钟源 MXs_timer
    [1.315909] FS 高速缓存:已加载
    [1.318293]高速缓存文件:已加载
    [1.433686] NET:已注册协议系列2[1.444182]
    TCP 建立哈希表条目:1024 (顺序:0、4096字节)
    [1.445086] TCP 绑定表条目:1024 (顺序:1.444139、1.3728字节)
    配置的哈希表(建立的1024 BIND 1024)
    [1.450241] TCP:Reno registered
    [1.450551] UDP 哈希表条目:256 (顺序:3、40960字节)
    [1.451722] UP-Lite 哈希表条目:256 (顺序:3、40960字节)
    [1.457238] NET:Registered protocol family 1[1.465553]
    RPC:registered UNIX transport module。
    [1.465757] RPC:注册的 UDP 传输模块。
    [1.465891] RPC:注册的 TCP 传输模块。
    [1.466016] RPC:注册的 TCP NFSv4.1反向通道传输模块。
    [1.479959] futex 散列表条目:256 (顺序:2、20480字节)
    [1.666865] NFS: 注册 id_resolver 密钥类型
    [1.670568]注册的密钥类型 id_resolver
    [1.670764]注册的密钥类型 id_legacy
    [1.672009] msgmgmni 已设置为227
    [1.678229]注册的密钥类型 big_key
    [1.70439]块层 SCSI 通用(BSG)驱动程序版本0.4 (已加载主要版本2) 49)
    [1.705270]已注册 IO 调度程序 NOP (默认)
    [1.705483] GPIO_TEST:初始化 GPIO_TEST LKM
    [1.709290] GPIO_TEST:按钮状态当前为:0
    [ 1.709466] GPIO_TEST:按钮映射到 IRQ:56
    [ 1.7107721] GPIO_TEST:中断请求结果为
    :1.7653]控制台[1.4753] 切换到彩色帧缓冲器器件100x30
    [ 1.778827] mxsfb 80030000.lcdif:已初始化
    [1.785508] of_dma_request_slave_channel:节点'/APB@80的 dma-names 属性 000000/apbx@80040000/串行@8004000'缺失或为空
    [1.794003] UART-pl011 80074000.serial:无 DMA 平台数据
    [1.801679] 8006a000.serial: ttyAPP0 at MMIO 0x8006a000 (IRQ = 235、base_baud) = 1500000)是8006a000.serial
    [ 1.813888] MXs-auart 8006a000.serial:在
    MMIO 0x8006c000 (IRQ = 236、base_baud)处找到 APPUART 3.1.0 [ 1.821032] 8006c000.serial: ttyAPP1 = 1500000)是8006c000.serial
    [ 1.833878] MXs-auart 8006c000.serial:、在
    MMIO 0x80070000 (IRQ = 237、BASE_BAUD)处找到 APPUART 3.1.0 [ 1.841581] 80070000.serial: ttyAPP3 = 1500000)是启用
    
    的80070000.serial [ 2.448810]控制台[ttyAPP3][ 2.461079] MXs-auart 80070000.serial:在
    MMIO 0x80072000 (IRQ = 238、base_baud)处找到了 APPART 3.1.0 [ 2.474403] 80072000.serial: ttyAPP4 = 1500000)是80072000.serial
    [ 2.498951] MXs-auart 80072000.serial:找到 APPART 3.1.0[2.512145]
    at24 0-0050:4096字节24c32 EEPROM、只读、0字节/写
    [2.525124] at24 1-0050:8192字节24c64 EEPROM、
    可写、32字节/写[
    Krasnyc64 EEPROM、2.6793] tun]通用 tunc:tunc 器件(tun.00002004) 
    [2.593907] CAN 器件驱动程序接口
    [2.615456] FlexCAN 80032000.can:器件寄存寄存器(reg_base=c88ac000、IRQ=2 12)
    [2.6380] Flexcan 80034000.can:注册的器件(reg_base=c88b0000、IRQ=2 13)
    [ 2.802443] libphy:fec_enet_MII_bus:probed
    [ 2.820725] fec 800f4000.ethernet:无法获取 phy-reset-gpos:-16
    [ 2.842564] ehci_hcd:USB 2.0 '增强型'主机控制器(EHCI)驱动
    程序[ 2.85572] usbci:新的
    rdci 控制器[2.842564] edrc.hci:hr_drci_drci_drci_drci_drci_drci_dr0]
    已注册的新 USB 总线、分配的总线编号1
    [2.927008] CI_hdrc CI_hdrc.0:USB 2.0已启动、EHCI 1.00
    [ 2.967421]集线器1-0:1.0:找到 USB 集线器
    [ 2.978056]集线器1-0:1.0:1检测到端口
    [ 3.014792] CI_hdrc CI_hdrcI_hdrci_hdrci_hci_hdrc.1:hci_hdrci 控制器[3.0ci_hdrci_hci_hdrc
    已注册的新 USB 总线、分配的总线编号2
    [3.056765] CI_hdrc CI_hdrc.1:USB 2.0已启动、EHCI 1.00
    [ 3.077204]集线器2-0:1.0:找到 USB 集线器
    [ 3.085943]集线器2-0:1.0:1个检测到的端口
    [3.116034] stmp3xxx-RTC 568000.800000:RTC 内核已注册 RTC tc0
    [ 3.131400] i2c /dev/entries 驱动程序
    [ 3.153756] lm73 1-0049:传感器'lm73'
    [ 3.164168] lm73 1-004A:传感器'lm73'
    [ 3.180891] stmp3xxx_RTC_WDT stmp3xxx_RTC_WDT:具有听力功能的初始化看门狗 tbt 19s
    [3.251946] MXs-MMC 8001000.SSP:已初始化
    [3.279149] MXs-MMC 800120.SSP:已获取 WP GPIO #28。
    [3.302361] mmc0:未设置 BKOPS_EN 位
    [3.317466] mmc0:地址0001
    [3.326789]的新高速 MMC 卡 MXs-800MMC 12000.SSP:已初始
    化[3.375051] mmcblk0:0001 Q1J54A 3.64 GiB
    [3.9800DCP] MX830.89]未能将 DCP] MMC08A1哈希寄存器设置为[3.928000]
    [3.397268] mmcblk0boot0:mmc0:0001 Q1J54A 分区1 2.00 mib
    [3.407027] mmcblk0boot1:mmc0:0001 Q1J54A 分区2 2.00 mib
    [3.447900] mmcblk0:P1 p3 p4
    [3.461243] mc800s-dCP]新
    的 dp 2b64] mb:dCP 错误[ 3.447900] mcdcp] mbus-64] mb:dcp2 mb:dcpu.us-dcpu.usb
    USB HID 内核驱动
    程序[3.516946] mmcblk0boot1:未知分区表
    [3.541676] mmcblk0boot0:未知分区表
    [3.599191]输入:作为/devices/soc0/80000000.apb/80040000.apbx/8005的 MXs-lradc 0000.lradc/input/input0
    [3.618856] mmc1:位于地址 b368
    [3.626875]的新高速 SD 卡 mmcblk1:mmc1:b368 AF SD 1.86 GiB
    [3.638569] mmcblk1:p1 p3 p4
    [3.707005] sgtl5000 gtls1
    :gskr1:gdlc 3.00012] s5000 gskr 请求无法获取
    音频源代码[3.6382cr:mblk1:mscr-cc1:gk1:msps 未注册编解码器(空)
    [3.757948] MXs-sgtl5000 sound.12:Snd_soc_register_card failed (-517)
    [3.769302] platform sound.12:driver MXs-sgtl5000请求探测器延迟
    [3.782626]通过 NetLink v0.30发出 Netfilter 消息。
    [3.791855] NF_conntrack 版本0.5.0 (1817桶、最大7268)
    [3.812257] NF_Tables:(c) 2007-2009 Patrick McHardy 
    [3.823309] Nf_tables_compat:(c) 2012 Pablo Neira Ayuso 
    [ 3.836232] IPVS:注册协议()
    [ 3.848015] IPVS:已配置连接哈希表(大小=4096、存储器=32K 字节) s)
    [ 3.862926] IPVS:创建网络大小=1472 id=0
    [ 3.874435] IPVS:已加载 IPVS。
    [3.887641] IP_Tables:(c) 2000-2006 Netfilter Core Team
    [3.898964] TCP:立方注册
    [3.907188] NET:注册协议系列17
    [3.918494]桥防火墙注册
    [3.928467] CAN:控制器局域网核心(修订版20120528 ABI 9)
    [3.940543] NET:注册协议系列[3.95029]
    CAN:注册协议系列[3.950688] 原始协议(修订版20120528)
    [ 3.960905] CAN:广播管理器协议(修订版20120528 t)
    [ 3.973996]注册的密钥类型 DNS_旋 变传感器
    [3.989765]注册的任务状态第1版
    [ 4.020459]注册的密钥类型[4.031689]
    wlantlreg:禁用
    [4.03998]稳压器-虚拟:禁用
    [ 4.058707]注册的密钥类型[4.05000-0001]n g0001[4.00001]n 修订版[4.0000170-0001]n
    1200mV 正常
    值[4.105321] sgtl5000 1-000A:使用内部 LDO 而不是 VDDD
    [4.148150] MXs-sgtl5000 sound.12:sgtl5000 <-> 80042000.Saif 映射正常
    [4.162146] MXs-sgtl5000 sound.12:sgtl174<-> 80042000.0004[UTC 30000064]MHz rtc 时钟映射正常[4.162146]MXs-s-01-0001.0004]MXs-s-01-0004xxx
    :srtl5000隔振荡12:s5000 <-> 8004240004[8004]rtc:8004[800000429604[4.000:8004
    
    [4.319627]#0:MXs_sgtl5000
    [4.370263] EXT2-FS (mmcblk1p3):警告:安装未检查的 FS、建议运行 e2fsck
    [4.392518] VFS:在器件179:27上安装根(ext2文件系统)。
    [4.412998] devtmpfs:已安装
    [4.424237]释放未使用的内核内存:236K (c06b9000 - c06f4000)
    安装文件系统...完成。
    正在运行 rc.d 服务...
    正在恢复混频器 state...no /etc/asound.state、正在中止
    启动 udev
    正在创建静态节点
    正在启动 udev...[5.695138] udev[150]:stdone
    正在等待
    设备...[10.259102]随机:非阻塞池已初始化
    done
    syslogd 正在启动
    klogd 正在
    启动 crond 启动
    系统消息总线:dbus。
    正在启动 dropbear...正在启动
    telnetd...
    正在启动网络接口...
    [18.589001] FEC 800f4000.ethernet eth1:Freescale FEC PHY 驱动程序[SMSC LAN8710/LAN8720](MII_bus:phy_addr=800f0000.etherne:01、IRQ=1)
    udhcpc (v1.24.1)开始
    发送 discover...
    [20.595860] libphy:800f0000.etherne:01 -链路已建立- 100/全
    发送发现...
    正在发送192.168.1.123...的选择
    租用192.168.1.123,租用时间3600
    删除路由器
    路由:SIOCDELRT:没有此过程
    添加 DNS 192.168.1.1
    启动 udhcpd...
    正在加载模块
    

    这些是我的内核模块日志;

    [384.317699] cfg80211:调用 CRDA 以更新世界监管范围

    root@TQMa28:~ lsmod
    wl12xx 54928 0 - Live bbf198000
    wl18xx 76347 0 - Live bbf17d000
    wlcore 173593 2 wl12xx、wl18xx、Live bbbf145000
    mac80211 494477 3 wl12xx、wl18xx、wlcore、Live bbf0a5000
    cfg80211 467514 3 wl18xx、wlcore、mac80211、Live bbf005000
    wlcore_SPI 6982 0 - Live bf000000

    谢谢、

    此致。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、

    是的、您必须使用所有相关的硬件信号(SPI 引脚、WLAN_ENABLE WLAN_IRQ)通过 SPI 物理连接模块、并在您的板级器件树文件(.dts)中正确多路复用相关引脚
    只有在加载模块(使用 insmod)后、驱动程序才会尝试加载、如果成功、它将创建 wlan0接口。

    此致、
    Eyal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢 Eyal Reizer、

    这对我有很大帮助。

    此致
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、我想知道我需要实现到内核的反向端口。

    在我进行研究时、我意识到大多数开发人员都使用了移植。

    谢谢、

    此致。