WhyCan Forum

本站无需注册,无需积分,无需回复可下载所有资料,如果真的喜欢小站,请您注册之后请至少回复一个帖子激活Id,谢谢支持! 站长QQ: 516333132 (挖坑网/填坑网) admin@whycan.cn

您尚未登录。

#1 2019-06-03 09:49:36

阿黄
会员
注册时间: 2018-10-03
累计积分: 90

分享一个在nano 4.15.0上使用的RTL8188EU/RTL8188ETV的驱动

Step:
1、在linux/drivers/net/wireless/realtek 目录下,git clone https://gitee.com/buyadong/TL-WN722N-V2.git
2、cd TL-WN722N-V2
3、修改Makefile文件
     

CONFIG_POWER_SAVING = n


CONFIG_PLATFORM_I386_PC = n

# 增加型号
CONFIG_PLATFORM_ARM_SUNIV = y

# 增加编译路径
ifeq ($(CONFIG_PLATFORM_ARM_SUNIV), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_PLATFORM_ARM_SUNIV
# default setting for Android 4.1, 4.2
EXTRA_CFLAGS += -DCONFIG_CONCURRENT_MODE
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT
EXTRA_CFLAGS += -DDCONFIG_P2P_IPS

EXTRA_CFLAGS += -DCONFIG_PLATFORM_OPS
ifeq ($(CONFIG_USB_HCI), y)
EXTRA_CFLAGS += -DCONFIG_USE_USB_BUFFER_ALLOC_TX
_PLATFORM_FILES += platform/platform_ARM_SUNxI_usb.o
endif
ifeq ($(CONFIG_SDIO_HCI), y)
# default setting for A10-EVB mmc0
#EXTRA_CFLAGS += -DCONFIG_WITS_EVB_V13
_PLATFORM_FILES += platform/platform_ARM_SUNxI_sdio.o
endif

ARCH := arm
CROSS_COMPILE := arm-none-linux-gnueabi-
#CROSS_COMPILE=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/buildroot/output/external-toolchain/bin/arm-none-linux-gnueabi-
KVER  := 4.15.0
KSRC:= ../../../../../
#KSRC=/home/android_sdk/Allwinner/a10/android-jb42/lichee-jb42/linux-3.0
endif
     

4、修改TL-WN722N-V2/platform/platform_ARM_SUNxI_usb.c
  //#include <mach/sys_config.h>

5、修改realtek目录下Kconfig,增加一行 source "drivers/net/wireless/realtek/TL-WN722N-V2/Kconfig"

6、修改realtek目录下Makefile,增加一行 obj-$(CONFIG_RTL8188EU)        += TL-WN722N-V2/

7、配置kernel的menuconfig : make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm   menuconfig
    [ * ]  Device Drivers  ---> [ * ] Network device Support ---> [ * ] Wireless LAN ---> [ * ] Realtek devices ---> <M> Realtek 8188E USB Wifi

8、编译 make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm   -j4

9、拷贝TL-WN722N-V2文件中 8188eu.ko文件到nano,并加载.



======================================================================
不知道怎么回事,我加载了8188eu之后,内核会崩溃

# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 003: ID 1a86:7523
Bus 001 Device 002: ID 05e3:0608
Bus 001 Device 004: ID 0bda:8179
# 
# 
# 
# 
# insmod /mnt/8188eu.ko 
[   32.081646] RTL871X: module init start
[   32.089295] RTL871X: rtl8188eu v4.3.0.8_13968.20150417
[   32.098202] RTL871X: build time:  __DATE__  __TIME__
[   32.107163] RTL871X: 
[   32.107163] usb_endpoint_descriptor(0):
[   32.120353] RTL871X: bLength=7
[   32.126832] RTL871X: bDescriptorType=5
[   32.134016] RTL871X: bEndpointAddress=81
[   32.141319] RTL871X: wMaxPacketSize=512
[   32.148464] RTL871X: bInterval=0
[   32.154880] RTL871X: RT_usb_endpoint_is_bulk_in = 1
[   32.162958] RTL871X: 
[   32.162958] usb_endpoint_descriptor(1):
[   32.175160] RTL871X: bLength=7
[   32.181282] RTL871X: bDescriptorType=5
[   32.188123] RTL871X: bEndpointAddress=2
[   32.194960] RTL871X: wMaxPacketSize=512
[   32.201790] RTL871X: bInterval=0
[   32.207952] RTL871X: RT_usb_endpoint_is_bulk_out = 2
[   32.215789] RTL871X: 
[   32.215789] usb_endpoint_descriptor(2):
[   32.227398] RTL871X: bLength=7
[   32.233146] RTL871X: bDescriptorType=5
[   32.239593] RTL871X: bEndpointAddress=3
[   32.245987] RTL871X: wMaxPacketSize=512
[   32.252375] RTL871X: bInterval=0
[   32.258157] RTL871X: RT_usb_endpoint_is_bulk_out = 3
[   32.265609] RTL871X: nr_endpoint=3, in_num=1, out_num=2
[   32.265609] 
[   32.277090] RTL871X: USB_SPEED_HIGH
[   32.301718] RTL871X: CHIP TYPE: RTL8188E
[   32.308359] RTL871X: register rtw_netdev_ops to netdev_ops
[   32.318645] RTL871X: rtw_wdev_alloc(padapter=b91c52d3)
[   32.327620] RTL871X: Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_D_CUT_1T1R_RomVer(0)
[   32.340765] RTL871X: RF_Type is 3!!
[   32.346704] RTL871X: _ConfigNormalChipOutEP_8188E OutEpQueueSel(0x05), OutEpNumber(2) 
[   32.363568] RTL871X: EEPROM type is E-FUSE
[   32.370461] RTL871X: ====> _ReadAdapterInfo8188EU
[   32.378038] RTL871X: Boot from EFUSE, Autoload OK !
[   32.389555] RTL871X: SetHwReg8188EU: bMacPwrCtrlOn=1
[   32.400388] bFWReady == _FALSE call reset 8051...
[   32.408722] RTL871X: =====> _8051Reset88E(): 8051 reset success .
[   32.434492] RTL871X: efuse_read_phymap_from_txpktbuf bcnhead:0
[   32.446915] RTL871X: efuse_read_phymap_from_txpktbuf len:109, lenbak:109, aaa:109, aaabak:109
[   32.469120] RTL871X: efuse_read_phymap_from_txpktbuf read count:107
[   32.482135] RTL871X: EEPROM ID=0x8129
[   32.489087] RTL871X: VID = 0x0BDA, PID = 0x8179
[   32.496749] RTL871X: Customer ID: 0x00, SubCustomer ID: 0xCD
[   32.508679] RTL871X: Hal_ReadPowerSavingMode88E...bHWPwrPindetect(0)-bHWPowerdown(0) ,bSupportRemoteWakeup(1)
[   32.525229] RTL871X: ### PS params=>  power_mgnt(0),usbss_enable(0) ###
[   32.538660] RTL871X: ======= Path 0, Channel 1 =======
[   32.547404] RTL871X: Index24G_CCK_Base[0][1] = 0x28
[   32.555765] RTL871X: Index24G_BW40_Base[0][1] = 0x31
[   32.564286] RTL871X: ======= Path 0, Channel 2 =======
[   32.572993] RTL871X: Index24G_CCK_Base[0][2] = 0x28
[   32.581446] RTL871X: Index24G_BW40_Base[0][2] = 0x31
[   32.589908] RTL871X: ======= Path 0, Channel 3 =======
[   32.598520] RTL871X: Index24G_CCK_Base[0][3] = 0x28
[   32.606791] RTL871X: Index24G_BW40_Base[0][3] = 0x31
[   32.615168] RTL871X: ======= Path 0, Channel 4 =======
[   32.623715] RTL871X: Index24G_CCK_Base[0][4] = 0x28
[   32.632025] RTL871X: Index24G_BW40_Base[0][4] = 0x31
[   32.640328] RTL871X: ======= Path 0, Channel 5 =======
[   32.648821] RTL871X: Index24G_CCK_Base[0][5] = 0x28
[   32.657034] RTL871X: Index24G_BW40_Base[0][5] = 0x31
[   32.665288] RTL871X: ======= Path 0, Channel 6 =======
[   32.673737] RTL871X: Index24G_CCK_Base[0][6] = 0x28
[   32.681948] RTL871X: Index24G_BW40_Base[0][6] = 0x31
[   32.690193] RTL871X: ======= Path 0, Channel 7 =======
[   32.698600] RTL871X: Index24G_CCK_Base[0][7] = 0x28
[   32.706597] RTL871X: Index24G_BW40_Base[0][7] = 0x31
[   32.714705] RTL871X: ======= Path 0, Channel 8 =======
[   32.722940] RTL871X: Index24G_CCK_Base[0][8] = 0x28
[   32.730862] RTL871X: Index24G_BW40_Base[0][8] = 0x31
[   32.738814] RTL871X: ======= Path 0, Channel 9 =======
[   32.746839] RTL871X: Index24G_CCK_Base[0][9] = 0x28
[   32.754655] RTL871X: Index24G_BW40_Base[0][9] = 0x31
[   32.762575] RTL871X: ======= Path 0, Channel 10 =======
[   32.770766] RTL871X: Index24G_CCK_Base[0][10] = 0x28
[   32.778652] RTL871X: Index24G_BW40_Base[0][10] = 0x31
[   32.786496] RTL871X: ======= Path 0, Channel 11 =======
[   32.794522] RTL871X: Index24G_CCK_Base[0][11] = 0x28
[   32.802257] RTL871X: Index24G_BW40_Base[0][11] = 0x31
[   32.810031] RTL871X: ======= Path 0, Channel 12 =======
[   32.817969] RTL871X: Index24G_CCK_Base[0][12] = 0x28
[   32.825561] RTL871X: Index24G_BW40_Base[0][12] = 0x31
[   32.833310] RTL871X: ======= Path 0, Channel 13 =======
[   32.841225] RTL871X: Index24G_CCK_Base[0][13] = 0x28
[   32.848874] RTL871X: Index24G_BW40_Base[0][13] = 0x31
[   32.856552] RTL871X: ======= Path 0, Channel 14 =======
[   32.864461] RTL871X: Index24G_CCK_Base[0][14] = 0x28
[   32.872130] RTL871X: Index24G_BW40_Base[0][14] = 0x31
[   32.879882] RTL871X: ======= TxCount 0 =======
[   32.886942] RTL871X: CCK_24G_Diff[0][0]= 0
[   32.893683] RTL871X: OFDM_24G_Diff[0][0]= 0
[   32.900516] RTL871X: BW20_24G_Diff[0][0]= 0
[   32.907308] RTL871X: BW40_24G_Diff[0][0]= 0
[   32.913980] RTL871X: EEPROMRegulatory = 0x2
[   32.920715] RTL871X: mlmepriv.ChannelPlan = 0x20
[   32.927892] RTL871X: CrystalCap: 0x20
[   32.934000] RTL871X: EEPROM Customer ID: 0x 0
[   32.940878] RTL871X: EEPROM : AntDivCfg = 0, TRxAntDivType = 3
[   32.951623] RTL871X: Board Type: 0x 0
[   32.957851] RTL871X: ThermalMeter = 0x1a
[   32.964263] RTL871X: <==== _ReadAdapterInfo8188EU in 590 ms
[   33.004059] RTL871X: init_channel_set ChannelPlan ID 20 Chan num:13  
[   33.018616] RTL871X: pwrctrlpriv.bSupportRemoteWakeup~~~~~~
[   33.029750] RTL871X: pwrctrlpriv.bSupportRemoteWakeup~~~[1]~~~
[   33.041216] RTL871X: can't get autopm: 
[   33.047972] RTL871X: rtw_macaddr_cfg MAC Address  = 4c:0f:c7:5c:aa:64
[   33.060099] RTL871X: bDriverStopped:1, bSurpriseRemoved:0, bup:0, hw_init_completed:0
[   33.075447] RTL871X: register rtw_netdev_ops to netdev_ops
[   33.087120] RTL871X: register rtw_netdev_if2_ops to netdev_ops
[   33.099429] RTL871X: rtw_wdev_alloc(padapter=a383325a)
[   33.109914] RTL871X: Chip Version Info: CHIP_8188E_Normal_Chip_TSMC_D_CUT_1T1R_RomVer(0)
[   33.124604] RTL871X: RF_Type is 3!!
[   33.131452] RTL871X: _ConfigNormalChipOutEP_8188E OutEpQueueSel(0x05), OutEpNumber(2) 
[   33.147774] RTL871X: init_channel_set ChannelPlan ID 20 Chan num:13  
[   33.162958] Unable to handle kernel NULL pointer dereference at virtual address 00000004   <---------------------------------
[   33.178489] pgd = 582847d4
[   33.184819] [00000004] *pgd=81045831, *pte=00000000, *ppte=00000000
[   33.198424] Internal error: Oops: 817 [#1] ARM
[   33.206542] Modules linked in: 8188eu(+)
[   33.214138] CPU: 0 PID: 93 Comm: insmod Not tainted 4.15.0-rc8-licheepi-nano+ #8
[   33.228930] Hardware name: Allwinner suniv Family
[   33.237384] PC is at memcpy+0xb4/0x330                                                                    <---------------------------------
[   33.244824] LR is at 0x5cc70f4c
[   33.251571] pc : [<c0612d74>]    lr : [<5cc70f4c>]    psr: 00000013
[   33.264938] sp : c1befcbc  ip : 0000001c  fp : bf0a646c
[   33.273746] r10: c2a3f22b  r9 : c2a3f200  r8 : c1aeb000
[   33.282522] r7 : c1aeb184  r6 : 00000000  r5 : c1040000  r4 : c2a3c000
[   33.296066] r3 : 00000030  r2 : ffffffe6  r1 : c2a3f258  r0 : 00000004
[   33.309610] Flags: nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   33.323722] Control: 0005317f  Table: 81038000  DAC: 00000051
[   33.336425] Process insmod (pid: 93, stack limit = 0x92c6ddb1)
[   33.349260] Stack: (0xc1befcbc to 0xc1bf0000)
[   33.357152] fca0:                                                                c1040000
[   33.372259] fcc0: 00000000 c1aeb184 c1aeb000 00000004 c2a3c000 bf0400f4 c2a3c000 bf041f6c
[   33.387401] fce0: c2aa8254 bf03aaa0 c2aa5000 c2aa8254 c2a3c000 bf041cb4 0f4e0000 c2a3c000
[   33.402551] fd00: c1aeb000 c1bcfa00 c2aa5000 c1ae1730 000000a8 c1bbf870 00000003 bf043ae4
[   33.417692] fd20: c1af3c48 c1bbf870 c1bbf870 00000000 bf0baa58 c1bcfa20 ffffffed c1bcfa00
[   33.432987] fd40: c1bbf870 c1bbf800 bf0baa08 c0447094 c0446f78 c1bcfa20 c0a6e8ac 00000000
[   33.448314] fd60: bf0baa08 0000000f 00000000 c2a3abec 00000024 c03eef40 c1bcfa20 bf0baa08
[   33.463744] fd80: c1bcfa54 00000000 c1bf73e4 00000001 c2a3abec c03ef0c8 00000000 bf0baa08
[   33.479196] fda0: c03ef024 c03ed49c c187ce8c c1bcd270 bf0baa08 c1044420 c0a26e44 c03ee488
[   33.494753] fdc0: bf0a7018 c0a30b50 bf0baa08 bf0baa08 bf0baa08 bf0d2a40 c0a26e44 c03ef97c
[   33.510437] fde0: bf0ba9d8 bf0baa08 bf0d2a40 c0446080 bf0ba9d8 00000000 bf0f9000 c1bf73c0
[   33.526191] fe00: c1bf73e4 bf0f908c ffffe000 c0101854 00000001 c1fab7f4 00000000 0080007f
[   33.542096] fe20: c1fab7f0 c1fab7e8 bf0d2a88 c1fab7e8 00000001 00080000 00000001 0080007f
[   33.558039] fe40: 00000001 c2a3abec 00000024 c018a154 20000013 00000001 bf0d2a40 00000001
[   33.574000] fe60: c1286560 c1bf73c0 c1bf73e4 c01680d8 00000001 c0167334 c1beff50 00000001
[   33.589959] fe80: bf0d2a40 c016733c bf0d2a4c 00007fff bf0d2a40 c0164be0 bf0d2a88 c0701c10
[   33.605916] fea0: 00000031 c0701bf4 bf0d2b50 bf0d2bd4 bf0d2b34 00000000 ffffe000 bf000000
[   33.621982] fec0: 00132c14 00000000 c1beff48 00000000 00000000 00000000 00000000 00000000
[   33.638184] fee0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[   33.654362] ff00: 00000000 00000000 7fffffff 00000000 00000003 000c2008 0000017b c0107f08
[   33.670492] ff20: c1bee000 00000000 00000000 c0167b28 7fffffff 00000000 00000003 00000000
[   33.686620] ff40: c1010000 c2908000 00132c14 00000000 c29bd96f c2908000 00132c14 c2a3a64c
[   33.702725] ff60: c2a3a4dc c29f3dcc 000d9000 000eafe0 00000000 00000000 00000000 000296e0
[   33.718839] ff80: 00000022 00000023 0000001a 00000000 0000000b 00000000 000c2008 ffffffff
[   33.734946] ffa0: beabdf49 c0107ce0 000c2008 ffffffff 00000003 000c2008 00000000 beabdf49
[   33.751060] ffc0: 000c2008 ffffffff beabdf49 0000017b 000c179c 00000000 b6fd8000 00000000
[   33.767129] ffe0: beabdca8 beabdc98 0001ce24 b6f3f020 60000010 00000003 00000000 00000000
[   33.784859] [<c0612d74>] (memcpy) from [<bf0400f4>] (_rtw_memcpy+0x8/0xc [8188eu])                 <---------------------------------
[   33.803696] [<bf0400f4>] (_rtw_memcpy [8188eu]) from [<bf041f6c>] (rtw_drv_register_netdev+0xe0/0x14c [8188eu])
[   33.825172] [<bf041f6c>] (rtw_drv_register_netdev [8188eu]) from [<bf043ae4>] (rtw_drv_init+0x2bc/0x460 [8188eu])
[   33.845212] [<bf043ae4>] (rtw_drv_init [8188eu]) from [<c0447094>] (usb_probe_interface+0x11c/0x270)
[   33.862467] [<c0447094>] (usb_probe_interface) from [<c03eef40>] (driver_probe_device+0x250/0x334)
[   33.879461] [<c03eef40>] (driver_probe_device) from [<c03ef0c8>] (__driver_attach+0xa4/0xa8)
[   33.895909] [<c03ef0c8>] (__driver_attach) from [<c03ed49c>] (bus_for_each_dev+0x50/0x9c)
[   33.912105] [<c03ed49c>] (bus_for_each_dev) from [<c03ee488>] (bus_add_driver+0x170/0x204)
[   33.928440] [<c03ee488>] (bus_add_driver) from [<c03ef97c>] (driver_register+0x78/0xf4)
[   33.944598] [<c03ef97c>] (driver_register) from [<c0446080>] (usb_register_driver+0x60/0x12c)
[   33.962984] [<c0446080>] (usb_register_driver) from [<bf0f908c>] (rtw_drv_entry+0x8c/0x1000 [8188eu])
[   33.982116] [<bf0f908c>] (rtw_drv_entry [8188eu]) from [<c0101854>] (do_one_initcall+0x3c/0x16c)
[   33.999180] [<c0101854>] (do_one_initcall) from [<c01680d8>] (do_init_module+0x58/0x1e4)
[   34.015441] [<c01680d8>] (do_init_module) from [<c016733c>] (load_module+0x1bbc/0x21b0)
[   34.031607] [<c016733c>] (load_module) from [<c0167b28>] (SyS_finit_module+0x98/0xb4)
[   34.047610] [<c0167b28>] (SyS_finit_module) from [<c0107ce0>] (ret_fast_syscall+0x0/0x50)
[   34.063987] Code: e4805004 e4806004 e4807004 e4808004 (e480e004) 
[   34.078371] ---[ end trace 775bd7fd7e30c5a5 ]---
Segmentation fault
# 
[   35.047046] Unable to handle kernel NULL pointer dereference at virtual address 00000178             <---------------------------------
[   35.063402] pgd = ae781fd2
[   35.070104] [00000178] *pgd=00000000
[   35.077656] Internal error: Oops: 17 [#2] ARM
[   35.085912] Modules linked in: 8188eu(+)
[   35.093751] CPU: 0 PID: 0 Comm: swapper Tainted: G      D          4.15.0-rc8-licheepi-nano+ #8
[   35.110094] Hardware name: Allwinner suniv Family
[   35.120285] PC is at rtw_get_on_cur_ch_time+0x8/0x1c [8188eu]                                            <---------------------------------
[   35.135327] LR is at rtw_signal_stat_timer_hdl+0x194/0x208 [8188eu]
[   35.149213] pc : [<bf0244e0>]    lr : [<bf029598>]    psr: 60000013
[   35.162971] sp : c0a01e40  ip : 00000004  fp : c0a3aa20
[   35.171959] r10: 00000000  r9 : c0a3aa24  r8 : c0a01e8c
[   35.180930] r7 : c0a0e600  r6 : 00000000  r5 : 00000000  r4 : c2a3d838
[   35.194675] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : c2a3d838
[   35.208398] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
[   35.222716] Control: 0005317f  Table: 81bfc000  DAC: 00000051
[   35.235627] Process swapper (pid: 0, stack limit = 0x4cb10c6f)
[   35.248612] Stack: (0xc0a01e40 to 0xc0a02000)
[   35.256572] 1e40: ffffe000 00000100 bf029404 c0a0e600 c0a01e8c c0a3aa24 00000100 c0150358
[   35.271841] 1e60: a0000093 ffffffff c0a01e90 00000200 00000000 c015043c c0a01e8c c0a0e600
[   35.287101] 1e80: c0a0e5e0 c0a0e600 c0a01e8c c01504d8 00000000 c0a34f48 c07c6948 c04bbd84
[   35.302444] 1ea0: c1807100 c01475c8 c0a5f908 c0a60200 00000002 ffffe000 00000002 40000001
[   35.317842] 1ec0: 00000001 c0101474 c1804200 c0a00000 c0a3aa20 0000000a ffff9881 00200102
[   35.333424] 1ee0: 00000000 00000000 c0a34610 00000000 00000001 c1804200 c0a00000 c0a34f40
[   35.349145] 1f00: 00000001 c0119740 00000000 c014701c c0a6acbc c0a01f38 ffffffff c0a01f6c
[   35.364913] 1f20: c0a2d058 c01013c4 c0108d20 60000013 ffffffff c010c0e8 00000000 0005317f
[   35.380703] 1f40: 0005217f 60000013 00000000 ffffe000 c0a030a0 00000000 c0a2d058 c0a030b0
[   35.396491] 1f60: c0a34f40 00000001 600000d3 c0a01f88 c0108d28 c0108d20 60000013 ffffffff
[   35.412314] 1f80: 00000053 00000000 00000000 c013ce10 00000000 c0a3a380 c0a3a340 ffffffff
[   35.428207] 1fa0: c0a03020 c1fb4aa0 c0924a28 00053177 00000000 c013d0fc c0a3a380 c0900bdc
[   35.444243] 1fc0: ffffffff ffffffff 00000000 c090066c 00000000 c0924a28 00000000 c090032c
[   35.460315] 1fe0: 00000053 00003135 00000000 80e60000 41069265 00000000 00000000 00000000
[   35.479718] [<bf0244e0>] (rtw_get_on_cur_ch_time [8188eu]) from [<bf029598>] (rtw_signal_stat_timer_hdl+0x194/0x208 [8188eu])<---------------------------------
[   35.504711] [<bf029598>] (rtw_signal_stat_timer_hdl [8188eu]) from [<c0150358>] (call_timer_fn+0x20/0x98)  
[   35.522441] [<c0150358>] (call_timer_fn) from [<c015043c>] (expire_timers+0x6c/0x7c)
[   35.538290] [<c015043c>] (expire_timers) from [<c01504d8>] (run_timer_softirq+0x8c/0x174)
[   35.554560] [<c01504d8>] (run_timer_softirq) from [<c0101474>] (__do_softirq+0x94/0x25c)
[   35.570767] [<c0101474>] (__do_softirq) from [<c0119740>] (irq_exit+0xd8/0xec)
[   35.586087] [<c0119740>] (irq_exit) from [<c014701c>] (__handle_domain_irq+0x50/0xa8)
[   35.601996] [<c014701c>] (__handle_domain_irq) from [<c01013c4>] (sun4i_handle_irq+0x38/0x50)
[   35.618649] [<c01013c4>] (sun4i_handle_irq) from [<c010c0e8>] (__irq_svc+0x68/0x84)
[   35.634400] Exception stack(0xc0a01f38 to 0xc0a01f80)
[   35.643524] 1f20:                                                       00000000 0005317f
[   35.659685] 1f40: 0005217f 60000013 00000000 ffffe000 c0a030a0 00000000 c0a2d058 c0a030b0
[   35.675779] 1f60: c0a34f40 00000001 600000d3 c0a01f88 c0108d28 c0108d20 60000013 ffffffff
[   35.691933] [<c010c0e8>] (__irq_svc) from [<c0108d20>] (arch_cpu_idle+0x24/0x34)
[   35.707334] [<c0108d20>] (arch_cpu_idle) from [<c013ce10>] (do_idle+0x104/0x190)
[   35.722712] [<c013ce10>] (do_idle) from [<c013d0fc>] (cpu_startup_entry+0xc/0x10)
[   35.738122] [<c013d0fc>] (cpu_startup_entry) from [<c0900bdc>] (start_kernel+0x320/0x390)
[   35.754258] Code: e593017c e12fff1e e590301c e5d015b6 (e5d32178) 
[   35.768253] ---[ end trace 775bd7fd7e30c5a6 ]---
[   35.776845] Kernel panic - not syncing: Fatal exception in interrupt
[   35.791052] Rebooting in 5 seconds..

看第二个问题:
inline u32 rtw_get_on_cur_ch_time(_adapter *adapter)
{
    if (adapter->mlmeextpriv.cur_channel == adapter_to_dvobj(adapter)->oper_channel)
        return adapter_to_dvobj(adapter)->on_oper_ch_time;
    else
        return 0;
}

主要是adapter_to_dvobj(adapter) 也就是 adapter->dvobj 是空指针,导致出错,但是如果加上判断 if (adapter_to_dvobj(adapter) == NULL) return 0; 就会包mod_timer那里空指针。 搞不定了

离线

#2 2019-06-03 11:58:46

晕哥
Administrator
注册时间: 2017-09-06
累计积分: 7,389

Re: 分享一个在nano 4.15.0上使用的RTL8188EU/RTL8188ETV的驱动

感谢楼主分享!

离线

页脚