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那里空指针。 搞不定了
离线