linux rtl8188eu ap模式 密码错误 disassoc reason code(8)
2018-05-30
14:12:46
于深圳南山科技园
最近有个项目,客户需要通过手机app通过机器wifi热点连接,从而实现对机器的设置及视频的实时预览等各种功能。这两天一直在搞rtl8188eu的wifi热点,驱动服务都搭建好了,但是出现设置密码后无法连接,折腾了好几天也没找到原因及解决办法,
硬件平台:全志T3 + rtl8188euwifi模块(usb连接)
系统:linux kernel-3.10
ap启动脚本:ap-start.sh
hostapd版本:0.8x
DHCp版本:4.1.1-P1
ap-start.sh
ifconfig wlan0 192.168.1.24 netmask 255.255.255.0
sleep 1
hostapd /etc/hostapd.conf -B
touch /var/lib/dhcp/dhcpd.leases
dhcpd
/etc/hostapd.conf
##### hostapd configuration file ############################################## interface=wlan0
ctrl_interface=/var/run/hostapd
ssid=carwifi
channel=9
wpa=1
wpa_passphrase=88888888 # Device Name
# User-friendly description of device; up to 32 octets encoded in UTF-8
device_name=RTL8192CU # Primary Device Type
# Used format: <categ>-<OUI>-<subcateg>
# categ = Category as an integer value
# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
# default WPS OUI
# subcateg = OUI-specific Sub Category as an integer value
# Examples:
# 1-0050F204-1 (Computer / PC)
# 1-0050F204-2 (Computer / Server)
# 5-0050F204-1 (Storage / NAS)
# 6-0050F204-1 (Network Infrastructure / AP)
device_type=6-0050F204-1 ##### default configuration ####################################### driver=rtl871xdrv
beacon_int=100
hw_mode=g
ieee80211n=1
wme_enabled=1
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=TKIP CCMP
max_num_sta=8
wpa_group_rekey=86400
/etc/dhcpd.conf
#
# Sample configuration file
# default-lease-time 600;
max-lease-time 7200; # If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative; # Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7; # No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology. subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.8 192.168.1.128;
}
开机启动log如下
[ 5.600133] insmod_host_driver
[ 5.600133]
[ 5.606765] [ehci0-controller]: sunxi_usb_enable_ehci
[ 5.609585] RTL871X: module init start
[ 5.609593] RTL871X: rtl8188eu driver version = v4.2.5_9909.20131204_beta
[ 5.609597] RTL871X: build time: May 21 2018 17:49:00
[ 5.630092] [sunxi-ehci0]: probe, pdev->name: 1c14000.ehci0-controller, sunxi_ehci: 0xc0a7a474, 0x:f1c14000, irq_no:47
[ 5.642162] sunxi-ehci 1c14000.ehci0-controller: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 5.652338] sunxi-ehci 1c14000.ehci0-controller: new USB bus registered, assigned bus number 1
[ 5.662652] sunxi-ehci 1c14000.ehci0-controller: irq 71, io mem 0xce0e21c0
[ 5.690130] sunxi-ehci 1c14000.ehci0-controller: USB 0.0 started, EHCI 1.00
[ 5.697960] ehci_irq: highspeed device connect
[ 5.697961] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[ 5.697969] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.697976] usb usb1: Product: SW USB2.0 'Enhanced' Host Controller (EHCI) Driver
[ 5.697981] usb usb1: Manufacturer: Linux 3.10.65 ehci_hcd
[ 5.697987] usb usb1: SerialNumber: sunxi-ehci
[ 5.739687] usbcore: registered new interface driver rtl8188eu
[ 5.740200] hub 1-0:1.0: USB hub found
[ 5.740248] hub 1-0:1.0: 1 port detected
[ 5.740903] [ohci0-controller]: sunxi_usb_enable_ohci
[ 5.740914] [sunxi-ohci0]: probe, pdev->name: 1c14000.ohci0-controller, sunxi_ohci: 0xc0a79c94
[ 5.740988] sunxi-ohci 1c14000.ohci0-controller: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 5.741031] sunxi-ohci 1c14000.ohci0-controller: new USB bus registered, assigned bus number 2
[ 5.741124] sunxi-ohci 1c14000.ohci0-controller: irq 72, io mem 0xce0e21c0
[ 5.797124] RTL871X: module init ret=0
[ 5.804269] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[ 5.811983] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[ 5.820065] usb usb2: Product: SW USB2.0 'Open' Host Controller (OHCI) Driver
[ 5.827902] usb usb2: Manufacturer: Linux 3.10.65 ohci_hcd
[ 5.834168] usb usb2: SerialNumber: sunxi-ohci
[ 5.841066] hub 2-0:1.0: USB hub found
[ 5.845235] hub 2-0:1.0: 1 port detected
[ 6.050213] usb 1-1: new high-speed USB device number 2 using sunxi-ehci
[ 6.203434] usb 1-1: New USB device found, idVendor=0bda, idProduct=8179
[ 6.210984] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6.218838] usb 1-1: Product: 802.11n WLAN NIC
[ 6.223950] usb 1-1: Manufacturer: Realtek
[ 6.243032] bFWReady == _FALSE call reset 8051...
[ 6.337470] RTL871X: rtw_ndev_init(wlan0)
[ 6.353064] RTL871X: rtw_ndev_init(wlan1)
[ 8.221550] ==> rtl8188e_iol_efuse_patch
[ 8.677931] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
Configuration file: /etc/hostapd.conf
drv->ifindex=6
l2_sock_recv==l2_sock_xmit=0x0xb17648
+rtl871x_sta_deauth_ops, ff:ff:ff:ff:ff:ff is deauth, reason=2
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
rtl871x_set_key_ops
Using interface wlan0 with hwaddr 14:6b:9c:08:f7:df and ssid 'carwifi'
rtl871x_set_wps_assoc_resp_ie
rtl871x_set_wps_beacon_ie
rtl871x_set_wps_probe_resp_ie
rtl871x_set_beacon_ops
[ 10.490315] gpu cooling callback set freq limit 384
[ 10.894119] RTL871X: assoc success
rtl871x_set_hidden_ssid ignore_b[ 10.898742] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
roadcast_ssid:0, carwifi,7
rtl871x_set_acl
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Listening on LPF/wlan0/14:6b:9c:08:f7:df/192.168.1.0/24
Sending on LPF/wlan0/14:6b:9c:08:f7:df/192.168.1.0/24
Sending on Socket/fallback/fallback-net
问题现象:
wifi热点已经可以正常扫描识别,在设置wpa=0(不采用wpa加密,无需密码可以直接连接)时候,设备可以正常连接到该热点。
/var/run/hostapd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.1.1-P1 lease 192.168.1.8 {
starts 4 1970/01/01 04:30:12;
ends 4 1970/01/01 04:40:12;
cltt 4 1970/01/01 04:30:12;
binding state active;
next binding state free;
hardware ethernet 2c:f0:a2:98:01:8d;
uid "\001,\360\242\230\001\215";
client-hostname "iPhone-9S";
}
但是如果设置成1或者2、3设备都无法连接到改热点,一直弹出密码错误。同事内核输出log
[ 59.865837] RTL871X: ap recv disassoc reason code(8) sta:2c:f0:a2:98:01:8d
[ 59.876976] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
根据log中提供的信息ap recv disassoc reason code(8)去网上搜索了一下提供的解释如下。
https://blog.michaelfmcnamara.com/2007/11/80211-dissassociation-codes/
Value |
802.11 or Symbol/WPA Reason Code |
Description |
0 |
REASON_CODE_80211_SUCCESS |
Reserved internally to indicate success |
1. |
REASON_CODE_80211_UNSPECIFIED_ERROR |
Unspecified Reason |
3. |
DISASSOCIATION_REASON_CODE_STATION_LEAVING_ESS |
Deauthenticated because sending station has left or is leaving IBSS or ESS |
4. |
DISASSOCIATION_REASON_CODE_INACTIVITY |
Disassociated due to inactivity |
5. |
DISASSOCIATION_REASON_CODE_STATION_LIMIT_EXCEEDED |
Disassociated because AP is unable to handle all currently associated stations |
6. |
DISASSOCIATION_REASON_CODE_CLASS_2_PKT_FROM_NON_AUTH |
Class 2 frame received from non-authenticated station |
7. |
DISASSOCIATION_REASON_CODE_CLASS_3_PKT_FROM_NON_ASSOC |
Class 3 frame received from non-associated station |
8. |
DISASSOCIATION_REASON_CODE_STATION_LEAVING_BSS |
Disassociated because sending station has left or is leaving BSS |
9. |
DISASSOCIATION_REASON_CODE_STATION_NOT_AUTHENTICATED |
Station requesting re-association is not authenticated with responding station |
13. |
DISASSOCIATION_REASON_CODE_INVALID_INFORMATION_ELEMENT |
Invalid Information Element |
14. |
DISASSOCIATION_REASON_CODE_MIC_FAILURE |
Michael MIC failure |
15. |
DISASSOCIATION_REASON_CODE_4WAY_HANDSHAKE_TIMEOUT |
4-Way Handshake timeout |
16. |
DISASSOCIATION_REASON_CODE_GROUP_KEY_UPDATE_TIMEOUT |
Group key update timeout |
17. |
DISASSOCIATION_REASON_CODE_4WAY_IE_DIFFERENCE |
Information element in 4-Way Handshake different from Re-associated request/Proberesponse/Beacon |
18. |
DISASSOCIATION_REASON_CODE_MULTICAST_CIPHER_INVALID |
Multicast Cipher is not valid |
19. |
DISASSOCIATION_REASON_CODE_UNICAST_CIPHER_INVALID |
Unicast Cipher is not valid |
20. |
DISASSOCIATION_REASON_CODE_AKMP_NOT_VALID |
AKMP is not valid |
21. |
DISASSOCIATION_REASON_CODE_UNSUPPORTED_RSNE_VERSION |
Unsupported RSN IE version |
22. |
DISASSOCIATION_REASON_CODE_INVALID_RSNE_CAPABILITIES |
Invalid RSN IE Capabilities |
23. |
DISASSOCIATION_REASON_CODE_8021X_AUTHENTICATION_FAILED |
IEEE 802.1X Authentication failed |
44. |
DISASSOCIATION_REASON_CODE_PSP_TX_PKT_BUFFER_EXCEEDED |
Symbol defined (non 802.11 standard) code. The Wireless Switch has exceeded it’s time limit in attempting to deliver buffered PSP frames to the Mobile Unit without receiving a single 802.11 PS Poll or NULL data frame. The Wireless Switch begins the timer when it sets the Mobile Unit’s bit in the TIM section of the 802.11 beacon frame for the BSS. The time limit is at least 15 seconds. The Mobile Unit is probably gone (or may be faulty). |
77. |
DISASSOCIATION_REASON_CODE_TRANSMIT_RETRIES_EXCEEDED |
Symbol defined (non 802.11 standard) codes. The Wireless Switch has exceeded it’s retry limit in attempting to deliver a 802.1x EAP message to the Mobile Unit without receiving a single 802.11 ACK. The retry limit varies according to traffic type but is at least 64 times. The Mobile Unit is either gone or has incorrect 802.1x EAP authentication settings. |
但是依然找不到原因和解决办法,继续研究中。
用安卓手机或者thinkpad连接,客户端一直在转圈圈无法连接,但是server输出如下log,与iphone连接失败的有所不同。
[73684.499271] RTL871X: ap recv deauth reason code(3) sta:20:5d:47:63:75:30
[73684.510355] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
[73699.455878] RTL871X: ap recv deauth reason code(3) sta:20:5d:47:63:75:30
[73699.466855] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
[73714.509250] RTL871X: ap recv deauth reason code(3) sta:20:5d:47:63:75:30
[73714.520095] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
[73726.111798] RTL871X: ap recv deauth reason code(3) sta:20:5d:47:63:75:30
[73726.122729] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
[73732.809624] RTL871X: ap recv deauth reason code(3) sta:20:5d:47:63:75:30
[73732.820605] RTL871X: set pairwise key to hw: alg:0(WEP40-1 WEP104-5 TKIP-2 AES-4) camid:0
根据log提示log跟踪驱动源码,看看有什么有用的信息。
ap recv disassoc reason code(8)
linux-3.10/drivers/net/wireless/rtl8188eu$ /core/rtw_mlme_ext.c
unsigned int OnDisassoc(_adapter *padapter, union recv_frame *precv_frame)
{
unsigned short reason;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
u8 *pframe = precv_frame->u.hdr.rx_data;
#ifdef CONFIG_P2P
struct wifidirect_info *pwdinfo= &(padapter->wdinfo);
#endif //CONFIG_P2P //check A3
if (!(_rtw_memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN)))
return _SUCCESS; #ifdef CONFIG_P2P
if ( pwdinfo->rx_invitereq_info.scan_op_ch_only )
{
_cancel_timer_ex( &pwdinfo->reset_ch_sitesurvey );
_set_timer( &pwdinfo->reset_ch_sitesurvey, 10 );
}
#endif //CONFIG_P2P reason = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN)); DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason); rtw_lock_rx_suspend_timeout(8000); #ifdef CONFIG_AP_MODE
if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE)
{
_irqL irqL;
struct sta_info *psta;
struct sta_priv *pstapriv = &padapter->stapriv; //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
//rtw_free_stainfo(padapter, psta);
//_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL); DBG_871X_LEVEL(_drv_always_, "ap recv disassoc reason code(%d) sta:%pM\n",
reason, GetAddr2Ptr(pframe)); psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
if(psta)
{
u8 updated = _FALSE; _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
if(rtw_is_list_empty(&psta->asoc_list)==_FALSE)
{
rtw_list_delete(&psta->asoc_list);
pstapriv->asoc_list_cnt--;
updated = ap_free_sta(padapter, psta, _FALSE, reason); }
_exit_critical_bh(&pstapriv->asoc_list_lock, &irqL); associated_clients_update(padapter, updated);
} return _SUCCESS;
}
else
#endif
{
DBG_871X_LEVEL(_drv_always_, "sta recv disassoc reason code(%d) sta:%pM\n",
reason, GetAddr3Ptr(pframe)); receive_disconnect(padapter, GetAddr3Ptr(pframe), reason);
}
pmlmepriv->LinkDetectInfo.bBusyTraffic = _FALSE;
return _SUCCESS; }
ap recv deauth reason code(3)
unsigned int OnDeAuth(_adapter *padapter, union recv_frame *precv_frame)
{
unsigned short reason;
struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
struct mlme_ext_priv *pmlmeext = &padapter->mlmeextpriv;
struct mlme_ext_info *pmlmeinfo = &(pmlmeext->mlmext_info);
u8 *pframe = precv_frame->u.hdr.rx_data;
#ifdef CONFIG_P2P
struct wifidirect_info *pwdinfo= &(padapter->wdinfo);
#endif //CONFIG_P2P //check A3
if (!(_rtw_memcmp(GetAddr3Ptr(pframe), get_my_bssid(&pmlmeinfo->network), ETH_ALEN)))
return _SUCCESS; #ifdef CONFIG_P2P
if ( pwdinfo->rx_invitereq_info.scan_op_ch_only )
{
_cancel_timer_ex( &pwdinfo->reset_ch_sitesurvey );
_set_timer( &pwdinfo->reset_ch_sitesurvey, 10 );
}
#endif //CONFIG_P2P reason = le16_to_cpu(*(unsigned short *)(pframe + WLAN_HDR_A3_LEN)); DBG_871X("%s Reason code(%d)\n", __FUNCTION__,reason); rtw_lock_rx_suspend_timeout(8000); #ifdef CONFIG_AP_MODE
if(check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE)
{
_irqL irqL;
struct sta_info *psta;
struct sta_priv *pstapriv = &padapter->stapriv; //_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL);
//rtw_free_stainfo(padapter, psta);
//_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL); DBG_871X_LEVEL(_drv_always_, "ap recv deauth reason code(%d) sta:%pM\n",
reason, GetAddr2Ptr(pframe)); psta = rtw_get_stainfo(pstapriv, GetAddr2Ptr(pframe));
if(psta)
{
u8 updated = _FALSE; _enter_critical_bh(&pstapriv->asoc_list_lock, &irqL);
if(rtw_is_list_empty(&psta->asoc_list)==_FALSE)
{
rtw_list_delete(&psta->asoc_list);
pstapriv->asoc_list_cnt--;
updated = ap_free_sta(padapter, psta, _FALSE, reason); }
_exit_critical_bh(&pstapriv->asoc_list_lock, &irqL); associated_clients_update(padapter, updated);
} return _SUCCESS;
}
else
#endif
{
int ignore_received_deauth = 0; // Commented by Albert 20130604
// Before sending the auth frame to start the STA/GC mode connection with AP/GO,
// we will send the deauth first.
// However, the Win8.1 with BRCM Wi-Fi will send the deauth with reason code 6 to us after receieving our deauth.
// Added the following code to avoid this case.
if ( ( pmlmeinfo->state & WIFI_FW_AUTH_STATE ) ||
( pmlmeinfo->state & WIFI_FW_ASSOC_STATE ) )
{
if ( reason == WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA )
{
ignore_received_deauth = 1;
} else if (WLAN_REASON_PREV_AUTH_NOT_VALID == reason) {
// TODO: 802.11r
ignore_received_deauth = 1;
}
} DBG_871X_LEVEL(_drv_always_, "sta recv deauth reason code(%d) sta:%pM, ignore = %d\n",
reason, GetAddr3Ptr(pframe), ignore_received_deauth); if ( 0 == ignore_received_deauth )
{
receive_disconnect(padapter, GetAddr3Ptr(pframe) ,reason);
}
}
pmlmepriv->LinkDetectInfo.bBusyTraffic = _FALSE;
return _SUCCESS; }
现在一个reason code(3) 解释是Deauthenticated because sending station has left or is leaving IBSS or ESS
reason code(8) 解释是Disassociated because sending station has left or is leaving BSS
百度来百度去一个星期没找到靠谱有用的信息,周末把apn访问的弄好了,于是google了一下,果断找到了同病相怜之人
https://github.com/lwfinger/rtl8723bu/issues/26
按照Mh6的说法首更换hostapd版本,重新编译打包,然后修改hostapd.conf配置文件。
driver=rtl871xdrv
改为
driver=nl80211
(事实上之前更改过这个driver验证但是因为旧版本的hostapd不支持这个驱动的加载,所以放弃了。)
重新启动后貌似看到了新的希望,但是又出现了新的问题
random种子不够
Using interface wlan0 with hwaddr 28:f3:66:8d:f8:07 and ssid 'carwifi'
random: Only 11/20 bytes of strong random data available from /dev/random
random: Not enough entropy pool available for secure operations
WPA: Not enough entropy in random pool for secure operations - update keys later when the first station connects
Internet Systems Consortium DHCP Server 4.1.1-P1
Copyright 2004-2010 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Wrote 0 leases to leases file.
Listening on LPF/wlan0/28:f3:66:8d:f8:07/192.168.1.0/24
Sending on LPF/wlan0/28:f3:66:8d:f8:07/192.168.1.0/24
Sending on Socket/fallback/fallback-net
[root@t3_p3 ~]# cat /proc/sys/kernel/random/entropy_avail
129
这个数值太小了,参考网上的说法至少要大于1000才能满足。
切换到 /dev/urandom
mv /dev/random /dev/random.orig
ln -s /dev/urandom /dev/random
But 解决了随机数的问题,然并卵,wifi还是连不上,一样报错,无可救药。。。
============================
更新hostapd.conf
##### hostapd configuration file ############################################## interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
channel=9
ieee80211n=1
hw_mode=g
ignore_broadcast_ssid=0
wpa=2
rsn_pairwise=CCMP
ssid=test_ap
wpa_passphrase=12345678
linux rtl8188eu ap模式 密码错误 disassoc reason code(8)的更多相关文章
- Linux系统救援模式应用:单用户模式找回密码
利用Linux系统救援模式找回密码 方法一: 开机时手要快按任意键,因为默认时间5s grub菜单,只有一个内核,没什么好上下选的,按e键.升级了系统或安装了Xen虚拟化后,就会有多个显示. 接下来显 ...
- linux rdesktop远程Win7老是提示密码错误问题解决
最近使用rdesktop远程Win7老是提示密码错误,输了N次,无比确认密码是正确的. 在Win7系统本身登录也是正常的. 但rdesktop远程就是报密码错误. 开始怀疑更新了最新版本问题,但是使用 ...
- 树莓派配置AP模式
所需硬件:树莓派.无线网卡 1.查看无线网卡是否被识别 pi@raspberrypi ~ $ sudo lsusb Bus Device : ID : Standard Microsystems Co ...
- Android KitKat 4.4 Wifi移植AP模式和网络共享的调试日志
Tethering技术在移动平台上已经运用的越来越广泛了.它能够把移动设备当做一个接入点,其它的设备能够通过Wi-Fi.USB或是Bluetooth等方式连接到此移动设备.在Android中能够将Wi ...
- linux软AP--hostapd+dhcpd
linux软AP--hostapd+dhcpd 2018年05月08日 ⁄ 综合 ⁄ 共 4908字 ⁄ 字号 小 中 大 ⁄ 评论关闭 随着手机.笔记本等无线设备的增多,公司里的家用三个无线路由器已 ...
- Linux系统下root密码遗忘等系统故障的修复方法 - 运维总结
IDC机房有一台centos系统的服务器,由于这台服务器的系统装了好长时间,且root密码中间更新过几次,后面去机房现场维护时,登陆密码遗忘了,悲催啊~没办法,只能开机进入“单用户模式”进行密码重置了 ...
- Linux 忘记root登录密码解决方法
很多朋友经常会忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码即可. 步骤如下: 重启linux系统 3 ...
- VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程
VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...
- 关于 RTL8723BS 同时开启 STA/AP 模式
最近接到一个调试 wifi 驱动的任务,使用的是 rtl8723bs 芯片组.要求是让无线设备工作在 station 模式的时候同时开启一个 ap 热点.简单来讲就是连接其他 wifi 的同时发出一个 ...
随机推荐
- 动态规划精讲(一)A单串
单串 单串 dp[i] 线性动态规划最简单的一类问题,输入是一个串,状态一般定义为 dp[i] := 考虑[0..i]上,原问题的解,其中 i 位置的处理,根据不同的问题,主要有两种方式: 第一种是 ...
- scrum项目冲刺_day06总结
摘要:今日完成任务. 1.服务器部署完成 2.由于将数据库放到了服务器上,搜索功能需要修改 总任务: 一.appUI页面(已完成) 二.首页功能: 1.图像识别功能(已完成) 2.语音识别功能(已完成 ...
- 学习PHP中的国际化功能来查看货币及日期信息
做为一门在世界范围内广泛使用的编程语言,国际化能力往往是衡量一个编程语言是否能够大范围流行的重要内容.特别是对于 PHP 这种以 Web 页面编程为主战场的语言来说,国际化能力更是重中之重.在 PHP ...
- html 随笔-水平控件不对齐的解决办法
分别在左右两个控件的css代码中加上 vertical-align:top. 便可对齐:(推荐使用,因为这样可以避免脱标流). 来源: https://www.jianshu.com/p/f00d51 ...
- Java基础系列(27)- 什么是方法
何谓方法 System.out.println();它是什么呢 # System:类 # out:对象 # println():方法 Java方法是语句的集合,它们在一起执行一个功能 方法是解决一类问 ...
- 鸿蒙内核源码分析(文件句柄篇) | 深挖应用操作文件的细节 | 百篇博客分析OpenHarmony源码 | v69.01
百篇博客系列篇.本篇为: v69.xx 鸿蒙内核源码分析(文件句柄篇) | 深挖应用操作文件的细节 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说 ...
- YbtOJ#903-染色方案【拉格朗日插值,NTT,分治】
正题 题目链接:https://www.ybtoj.com.cn/contest/115/problem/3 题目大意 两个长度为\(n+1\)的序列\(a,b\) \(a_i\)表示涂了\(i\)个 ...
- 使geoJSONLayer能够加载两种数据类型的geojson数据
问题描述 在使用geoJSONLayer加载geojson数据时,官方文档只支持单一类型的geojson数据加载,当一个geojson数据中出现两种类型的数据时可以尝试一下方法进行解决 本场景为:点击 ...
- Excel备忘录
1. 导入文本文件(.txt) 2. 排序 3. 批量填充空白 选定区域,Ctrl+G,定位,空值. 输入内容,Ctrl+Enter. 4. 清除无法修改的背景色. 5. 身份证号 数字精度为15位, ...
- Java-爬虫-小项目
爬取数据:(获取请求返回的页面信息,筛选出我们想要的数据就可以了!) 项目地址:https://gitee.com/zwtgit/java-reptile 导入依赖,写一个工具类 <depend ...