這篇文章來源于DevicePlus.com英語網(wǎng)站的翻譯稿。
用于OTG、被動冷卻系統(tǒng)、LED心跳燈以及大容量電容的VNC
profit_image – stock.adobe.com
什么是VNC?
VNC(虛擬網(wǎng)絡(luò)計算)一種易于使用的工具軟件,可以幫助您成功訪問所連接到的任何設(shè)備上的圖形用戶界面(GUI)。它在帶寬、延遲以及安全性方面靈活性很高。當您使用VNC時,設(shè)備在局域網(wǎng)或外網(wǎng)都可以。
您可以輕松并且安全地從Windows、macOS 或Linux連接到您的Pi。這是一款適用于共享遠程計算的通用設(shè)備。但是,當使用微型服務(wù)器就足夠時,就不要運行大型服務(wù)器。Raspberry Pi計算機的使用十分環(huán)保,如此一來您就可以為解決氣候變化問題出一份力了!
安裝和設(shè)置
該過程的實現(xiàn)不需要具備相關(guān)的網(wǎng)絡(luò)知識,但是您需要準備好一個Pi。Raspberry Pi 2 B+及以上的任何版本都可以,版本1對于響應(yīng)式VNC會話來說太慢了。
基本設(shè)置請參考本文 , 而關(guān)于如何配置您的Raspberry Pi來使用靜態(tài)IP請參考此處 。
當您身在外地想要連接家里或?qū)嶒炇业脑O(shè)備時,才會需要靜態(tài)IP,這可以保證Pi沒有從DHCP獲取別的IP地址,從而防止擾亂端口轉(zhuǎn)發(fā)。
此處可用的所有Raspberry Pi Linux鏡像都為您提供了RealVNC服務(wù)器的選項。您應(yīng)該選擇“Raspbian Buster with desktop”變體,并通過USB轉(zhuǎn)microSD適配器,使用“dd”或您的Pi,將其閃存到microSD卡中。
sudo unzip -px raspbian_latest | dd bs=1M of=/dev/sdX
其中,“X”是相關(guān)磁盤,例如如果您使用的是一個Raspberry Pi,通過USB轉(zhuǎn)microSD適配器進行閃存,“X”為/dev/sda。在這一點上請務(wù)必小心,否則將會寫入錯誤位置。在您的Pi/Linux系統(tǒng)上使用“l(fā)sblk”找出您想要寫入的磁盤。
例如:
pi@raspberry$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 1 30.2G 0 disk /media/pi/SANDISK_32GB mmcblk0 179:0 0 29.8G 0 disk ├─mmcblk0p1 179:1 0 256M 0 part /boot └─mmcblk0p2 179:2 0 29.6G 0 part / pi@raspberry$ sudo umount /media/pi/SANDISK_32GB pi@raspberry$ sudo unzip -px raspbian_latest | dd bs=1M of=/dev/sda &;&; sync &;&; echo If Raspbian has automounted your disk (again), see it with 'ls_blk' &;&; echo and then unmount it ... again.
一個更簡單的方法是使用Etcher,它甚至可以幫助您直接解壓所下載的文件。請點擊此鏈接獲取相關(guān)說明。
實例
完成microSD卡閃存后,您就可以啟動Pi了。首先,您需要決定是否通過顯示器進行操作。
一個無顯示器操作的實例是如果您的Pi在機器人中,同時您希望在系統(tǒng)運行時使用一個GUI編輯器來對代碼進行調(diào)整,而如果沒有連接顯示器,請使用“sudo raspi-config”指令。
-> ‘3 Boot Options’(三種啟動選項)
-> ‘B1 Desktop / CLI’(B1 桌面 / CLI)
-> ‘B1 Console’ (B1控制臺)來停止Xserver。這樣做可以節(jié)省RAM和CPU的消耗。
通過LAN連接Raspberry Pi
如果要將Pi與顯示器一起使用,需要連接HDMI線纜和USB鍵盤及鼠標。
然后,在您的Pi終端輸入指令“sudo raspi-config”,接下來:
然后 ……
接下來 ……
如果要求重新啟動,點擊“OK”,然后退出raspi-config。
現(xiàn)在,啟用RealVNC服務(wù)器,再次在Pi終端輸入指令“sudo raspi-config”。
然后……
接下來……
選擇“Yes”并再次退出raspi-config。如果系統(tǒng)發(fā)生更改時需要進行重新啟動,您將會收到重啟的提示,此時請選擇“是”。
重新啟動后,您可以使用用戶名“pi”和密碼進行連接。我們稍后將介紹客戶端軟件的安裝。
如果您打算進行無顯示器操作,請在“/etc/rc.local”文件種添加以下行。如果不是,請?zhí)^本節(jié)。
# HEADLESS if /usr/bin/pgrep -U pi vncserver >/dev/null ; then /bin/sh -c '/usr/bin/sudo -u pi /usr/bin/vncserver -kill :1 >/dev/null 2>&;1 || :' fi /bin/sh -c '/usr/bin/sudo -u pi /usr/bin/vncserver -depth 24 -geometry 1280x1024 :0 >/dev/null 2>&;1'
現(xiàn)在,您可以使用VNC客戶端登錄您的Pi了。目前為止我認為最好用的是Raspbian系統(tǒng)自帶或已經(jīng)安裝好的一個軟件:RealVNC Viewer。
它為macOS、Windows、Linux以及其他許多系統(tǒng)(包括Android和iPhone iOS)提供了客戶端(預(yù)編譯為二進制包)。您可以點擊此處下載您所需要的客戶端。在macOS 和Windows上并不需要什么特殊的操作,只需雙擊所要下載的軟件即可。在Ubuntu或其他類似的基于Debian的發(fā)行版上,對于modern模式的設(shè)備,在終端窗口中使用以下指令下載“DEB x64”:
sudo dpkg -i VNC-Viewer-6.19.325-Linux-x64.deb
對于其他Linux系統(tǒng),請根據(jù)需要使用RPM或者獨立的BIN,或通用腳本。安裝完成后,輸入“vncviewer”并按下回車鍵。您將會看到一個高級的GUI界面。在頂部,您需要輸入Pi的地址,您可以通過在Pi終端輸入“hostname -I”來找到該地址信息。另一種選擇是使用適用于iPhone iOS 或Android的免費Fing應(yīng)用程序。
地址格式為IP:PORTl。例如,在這個網(wǎng)絡(luò)中,10.0.9.116:5900是我的Pi上的“:0”實例,而“:1”實例將使用端口5901,因此我輸入10.0.9.116:5901。
輸入地址后,按下回車鍵,然后稍等片刻。系統(tǒng)會提示您進行身份驗證,并且可以設(shè)置VNC Viewer來存儲登錄信息。然后,您將直接進入Pi的桌面環(huán)境中。
通過網(wǎng)絡(luò)/WAN連接Raspberry Pi
通過互聯(lián)網(wǎng)連接到您的Pi這一過程有點復(fù)雜。您需要在路由器上設(shè)置端口轉(zhuǎn)發(fā),還需要將Pi設(shè)置為使用靜態(tài)IP地址。使用安裝或設(shè)置部分中的鏈接來設(shè)置一個靜態(tài)IP地址,或者如果您的路由器包含此選項,可以在網(wǎng)絡(luò)客戶端列表中選擇Pi,并設(shè)置DHCP地址保留。這樣的話就可以保證Pi始終具有相同的IP地址了。
接下來,將外部端口20202/tcp通過端口轉(zhuǎn)發(fā)傳輸?shù)侥腜i端口22/tcp。如此一來就無需暴露VNC服務(wù)器,我們將能夠確保與您的Pi之間的連接是盡可能安全的。RealVNC只為企業(yè)用戶提供256位AES,但是我們暫時不需要購買,SSH可以提供很大的幫助。
將以下指令復(fù)制到Pi的終端窗口中:
sudo service ssh start sudo systemctl enable ssh sudo apt-get update sudo apt-get -y install ufw sudo ufw enable sudo ufw default deny sudo ufw logging low sudo ufw allow log 5900/tcp sudo ufw allow log 5901/tcp sudo ufw allow log 22/tcp
請務(wù)必使用“sudo raspi-config”或“passwd pi”更改默認密碼,千萬不要在“raspberry”上公開SSH密鑰。
需要明確的是,請確保您將通過端口轉(zhuǎn)發(fā)將20202 _TCP_傳輸?shù)搅薖i靜態(tài)IP地址—端口22 _TCP_。
動態(tài)DNS?
現(xiàn)在一切都準備好了,您可以在工作場所,或者任何其他地方連接到您的Pi了。如何連接?您的Pi所在網(wǎng)絡(luò)的外部地址是什么?
通過動態(tài)DNS,您就可以使用“一般”名稱進行連接,從而解決這個問題了。“Example.com”中包含了一個使用“一般”名稱的示例,并且您無需記住IP地址就可以實現(xiàn)連接。想要記住IP地址“93.184.216.34”似乎有些麻煩,因為您有太多需要記住的事情了。
但是,您可以輕松記住諸如“risingsun.csproject.org”之類的地址。讓我們在您的Pi上安裝一個動態(tài)DNS客戶端,這樣就可以保證這個名稱始終指向您的Pi的外部網(wǎng)絡(luò)地址了。
請在您的Pi終端粘貼以下指令:
apt-get update apt-get -y install inadyn
您需要選擇一個動態(tài)DNS服務(wù)商。如果您想要免費的,請使用FreeDNS。注冊并使用指令sudo nano /etc/inadyn.conf來編輯“/etc/inadyn.conf:”。為方便起見,此處列出了相關(guān)參數(shù):
period = 300 # The FreeDNS username must be in lower case and # the password (max 16 chars) is case sensitive provider freedns.afraid.org { username = lower-case-username password = case-sensitive-pwd hostname = some.example.com }
獲取所有信息后,將這些指令粘貼到Pi的終端窗口:
# Start it now sudo service inadyn start # Persist across reboots sudo systemctl enable inadyn
要連接到您的Pi,現(xiàn)在需要在您的工作站或者筆記本電腦上執(zhí)行以下操作(這適用于macOS 和Linux,Windows上的SSH隧道不在本文討論范圍內(nèi)):
ssh -l pi -p 20202 -L 5900:localhost:5900 risingsun.csproject.org
這將為您的VNC通訊創(chuàng)建一個SSH隧道。對于Raspberry 2 B+及更高版本的型號,SSH并不會造成CPU利用率增高的問題,所以不用擔心。
為了通過隧道連接,請在VNC Viewer中輸入地址“127.0.0.1:5900”,然后通過本地SSH隧道連接到Pi上的VNC服務(wù)。
如有必要,請輸入您的憑據(jù),然后您將會返回到Pi的桌面環(huán)境。即使您在一個咖啡廳或者機場使用公共Wi-Fi也不用擔心了。
當然,您也可以僅通過SSH連接到Pi,然后使用以下指令啟動VNC服務(wù)ad-hoc:
nohup vncserver :0
這將會持續(xù)運行,直到您殺死進程(例如用“pkill -9 -U pi vncserver”指令)。
提升您的VNC體驗
您可以做一些事情來提升VNC性能。一種方法是將圖形減少到16位或16位以下,以獲得一個更加舒適的用戶體驗。
延遲是很大的問題,如果您將您的Pi通過以太網(wǎng)連接到本地網(wǎng)絡(luò),將會對緩解該問題有很大的幫助。
如果您的連接速度不夠快(或者其他正在使用的用戶占用了很大的資源空間),您可以安裝speedtest-cli來發(fā)現(xiàn)這一情況。將以下行粘貼到您的終端中:
sudo apt update sudo apt-get -y install speedtest-cli speedtest-cli --bytes --simple
我的Pi上的輸出如下:
Ping: 2.723 ms Download: 9.96 Mbyte/s Upload: 0.50 Mbyte/s
上傳速度為0.5Mbyte/s,約等于4Mbit/s,對于24位、1280×1024分辨率的VNC來說勉強夠用。
對于GUI,您應(yīng)該改掉默認界面。該默認界適用于舊的512MB RAM Raspberry Pi,但是如果您想要一個常規(guī)、直觀的界面,這就不是很好用了。
vanilla Raspberry Pi桌面主要由大量的功能包組成,這些包來自于元功能包集“raspberrypi-ui-mods”和“l(fā)xde-common”。它具有一個額外的功能,就是有助于向VNC用戶提供LXPolkit錯誤信息。
如果您有一個16-32GB microSD卡和一個Raspberry Pi 2 B+(或更高版本),我強烈建議您安裝MATE桌面環(huán)境。
MATE將能夠大大提升您的整體使用體驗!
請將以下命令行粘貼到您的Pi終端:
sudo apt-get update sudo apt-get -y remove raspberrypi-uid-mods lxde* sudo apt-get -y install mate-desktop-environment mate-themes mate-utils mate-tweak mate-terminal
如果您安裝了MATE,請將以下行粘貼到您的~/.vnc/xstartup文件中:
#! /bin/sh if [ -r ${HOME}/.Xresources ] ; then xrdb ${HOME}/.Xresources fi xsetroot -solid grey -cursor_name left_ptr &; mate-session
然后,重新啟動。如果您有了內(nèi)存高達4GB的新版Raspberry Pi 4 B,這就更好了,您再也不會需要轉(zhuǎn)換到您的microSD卡了。即使在我使用的Raspberry Pi 2 B+上,MATE也很少會需要我去轉(zhuǎn)換。就是這么好用。
附加內(nèi)容
為您的Pi添加被動冷卻系統(tǒng)
在CPU上切一個大圓孔
對于Raspberry Pi 2 B+及更高版本的型號,都存在發(fā)熱的問題。您可以通過指令“vcgencmd measure_temp”隨時查看系統(tǒng)溫度,如果溫度達到了閾值80C/176F,您的Pi將會自動降低時鐘頻率,以避免發(fā)生過熱導(dǎo)致的“未定義行為”。
因此,您的1.2GHz CPU有可能會以600MHz的頻率運行一段時間,并且在熱量消散之前不會恢復(fù)到全速運行。如果您將Pi放置在一個氣流受限的機箱中,那么那些微型散熱器將可能不會起到作用,而如果您使用了四個核,且負載均為100%,那這些散熱器就真的一點作用也沒有了。有一個名為gpio-fan的內(nèi)置config.txt參數(shù)可用于驅(qū)動風扇(參見“/boot/overlays/README”),但是我們并不想在每次刷新microSD卡時都要對其進行設(shè)置。
這時候,我們可以采取另一種方法—使用介電溫度開關(guān)。通過使用絕緣導(dǎo)熱膠帶將其連接到CPU散熱器上,它將會接通5V軌道電源到一個5V風扇之間的電路。我使用了一個常開型,可以在溫度達到華氏113度時接通電路。電路一旦接通,風扇就會驅(qū)散CPU中的熱量。0.75W的迷你風扇是一個不錯的選擇,如果我們使用一個環(huán)流二極管(ROHM BAT86肖特基),就可以防止產(chǎn)生電壓超過5V軌道電源的尖峰脈沖,這樣風扇的使用就非常安全了。
BOM
您將會需要以下部件:
1x KSD9700 溫度開關(guān),常開,45C/113F | https://www.aliexpress.com/item/10pcs-2500W-Temperature-control-switch-KSD9700-45-Degrees-Celsius-Normally-open-N-O-10A-250V-Thermal/32790498666.html |
1x BAT86 肖特基二極管 | https://www.newark.com/nexperia/bat86/rectifier-diode-single-50-v-200/dp/96K6771 |
1x 5V 風扇 | https://www.banggood.com/5v-303010mm-3010-Cooling-Fan-with-2-Pin-Dupont-Wire-for-3D-Printer-Part-p-1421461.html?rmmds=buy&;cur_wbarehouse=CN |
細絞線 | https://www.daburn.com/2671UltraFlexibleSub-MiniatureWire-U/LSTYLE15681692.aspx |
1x 40V/2200uF 電容,電解 | https://www.newark.com/illinois-capacitor/228tta050m/aluminum-electrolytic-capacitor/dp/30K6693 |
導(dǎo)熱膠帶 | https://www.adafruit.com/product/1468 |
2x Raspberry Pi 散熱器 | https://www.adafruit.com/product/3082 |
開始構(gòu)建!
實際上,只需將5V GPIO引腳上的一根電線(或一種會使保修失效的方式—在microUSB端口一邊的大功率“D5”二極管上焊接一根線)連接到介質(zhì)開關(guān)的一根電線上,然后再將其另一根電線連接到風扇的正極端子即可。
將一個BAT86肖特基環(huán)流二極管按照從風扇負極端子到正極端子的方向進行正向偏置連接,然后將風扇的負極端子連接到GND來完成電路連接。您可以自行創(chuàng)建構(gòu)成地面的條件,那么GND將是無處不在的。Pi功能性非常強,可以處理極微小的接地回路。
或者,選擇一個不會出錯的方法,即直接將其連接到一個GPIO GND引腳上。唯一要注意的細節(jié)是要確保導(dǎo)熱膠帶導(dǎo)熱性能很好,需要事先用異丙醇對散熱器和開關(guān)進行擦拭。一切準備就緒后,請使用一大塊熱膠將其固定在該位置上。
使用熱膠將其固定
KSD9700被埋在熱膠和Kapton膠帶下面,位于上圖中CPU的右側(cè)。在運行過程中,當“vcgencmd measure_temp”返回53C/127.4F時,45C/113F開關(guān)將閉合,并持續(xù)驅(qū)動風扇,直到“vcgencmd measure_temp”保持返回38C/100.4F為止。即便是在CPU四核100%負載的情況下,也只有持續(xù)時間發(fā)生變化。這是因為開關(guān)本身必須吸收足夠多的熱量才會達到133F,而CPU傳感器的讀數(shù)會超前一些。
這種類型的開關(guān)可以使用十年,并且十分耐用,獨立于config.txt 中的“gpio-fan”參數(shù)。同時,它也很容易制作。準備好您的熱膠槍吧!
為您的Pi添加一個LED心跳燈電路
BOM
4x ROHM SLR343BC4TT32 3mm 藍色 LEDs | https://www.avnet.com/shop/us/products/rohm/slr343bc4tt32-3074457345627700657?CMP=EMA_ECIA_inventoryfeed_VSE?aka_re=1 |
1x 2N7000 N-通道 MOSFET | https://www.oddwires.com/2n7000-2n7000ta-small-signal-mosfet-10-pack/ |
4x 330 ohm 電阻 | https://www.sparkfun.com/products/14490 |
細絞線 | https://www.daburn.com/2671UltraFlexibleSub-MiniatureWire-U/LSTYLE15681692.aspx |
1x 4.7kOhm 電阻 | https://www.adafruit.com/product/2783 |
開始構(gòu)建!
一個小的Pi植入板可以成為一個真正的藍色心跳燈。LED的萬向性將會通過熱膠和一些來自反編譯筆記本電腦LCD的薄膜得到增強。
關(guān)閉和啟動性能良好!陽極氧化鋁網(wǎng)可以保護風扇不受損傷,但是會減少約40%的氣流流動。
那么,為什么這個Pi上有一個大容量2200uF電容呢?是的,這里有一個電容,并且直接連接到了5V/GND GPIO 引腳上。
這里使用電容的原因和低音喇叭中使用電容的原因相同。即使您已經(jīng)一切準備就緒了,使用了官方Raspberry Pi 5.25V SMPS電源和低電阻線,但是如果您的電流消耗突然激增(比如電流需要快速從1A變?yōu)?A),可能還是會遇到問題。
對我來說,這種情況最常發(fā)生在我在寫入一個USB硬盤的同時又執(zhí)行大量CPU工作和網(wǎng)絡(luò)工作的時候。這種時候我會收到嚴重的欠壓警告。如果您的5V引腳上的電壓約為4.65V或低于這個數(shù)值,就會遇到這種情況,這非常令人心煩。
那么,如果SMPS電源無法應(yīng)對偶爾出現(xiàn)的尖峰電壓或傳輸電壓怎么辦?您需要添加一個存儲電容器,電容量越大越好,但是根據(jù)經(jīng)驗法則,系統(tǒng)每流入1A的電流需要1000uF,實際電容量要略大于這個值,所以為2200uF。Raspberry Pi 4 B的額定電流為3A,因此需要使用約3300uF的電容。您也可以選擇更高性能的電容,比如使用一個超級電容肯定會進一步提高性能。電容的另一個優(yōu)點是也可以用于點焊。
您可以在心跳燈電路中使用這個簡單的Python 3腳本。
[ begin heartbeat.py ]
#! /usr/bin/env python3 import RPi.GPIO as GPIO from time import sleep GPIO.setmode( GPIO.BCM ) # # Count 12 from the 3V3,5V pins at the top of the # GPIO header _led = 18 # BCM18/BOARD12/PWM0 pin GPIO.setup( _led , GPIO.OUT ) pwm = GPIO.PWM( _led, 100 ) pwm.start( 0 ) p=print _step = 3 def get_load(): _f = open( '/proc/loadavg', 'r' ) _buf = _f.read( 30 ) _f.close() return float ( _buf.split()[0] ) def get_delay(): _load = get_load() _delay_base = 0.2 if _load >= 0 and _load < 0.33: _delay = _delay_base elif _load < 0.66 and _load >= 0.33: _delay = _delay_base / 2 elif _load < 1 and _load >= 0.66: _delay = _delay_base / 3 elif _load < 1.33 and _load >=1: _delay = _delay_base / 4 elif _load < 1.66 and _load >= 1.33: _delay = _delay_base / 5 elif _load < 2 and _load >= 1.66: _delay = _delay_base / 6 elif _load < 2.33 and _load >= 2: _delay = _delay_base / 7 elif _load < 2.66 and _load >= 2.33: _delay = _delay_base / 8 elif _load < 3 and _load >= 2.66: _delay = _delay_base / 9 elif _load < 3.33 and _load >= 3: _delay = _delay_base / 10 elif _load < 3.66 and _load >= 3.33: _delay = _delay_base / 11 elif _load < 4 and _load >= 3.66: _delay = _delay_base / 12 else: _delay = _delay_base / 20 # GO FAST # ET CETERA return _delay if __name__ == '__main__': try: while True: for _it in range( 20, 100, _step ): pwm.ChangeDutyCycle( _it ) sleep( get_delay() ) sleep( 0.25 ) for _it in range( 100, 20, -(_step) ): pwm.ChangeDutyCycle( _it ) sleep( get_delay() ) sleep( 0.25 ) except KeyboardInterrupt: print( "[!] Caught ^C, breaking ..." ) # Stop the PWM now that we're leaving pwm.stop() # Clean up pin states, bring them all low GPIO.cleanup() exit()
[ end heartbeat.py ]
將腳本“heartbeat.py”放入“/home/pi”中,并使用如下指令確保在您的Pi啟動時會開始運行腳本:
/bin/sh -c '/usr/bin/sudo -u pi /usr/bin/python3 /home/pi/heartbeat.py >/dev/null 2>&;1' &;
同樣,請務(wù)必將其放置在“exit 0”行上方。
現(xiàn)在,當您的Pi沒有負載時,您會看到穩(wěn)定跳動的藍光,中等負載時看到以更高的頻率跳動的藍光,并且每次您的Pi加載時都會出現(xiàn)快速跳動。
然而,在這么簡單的一個事物上投入時間還有一個更重要的原因。
這是中等負載下的一張照片:
一個舒緩的藍光跳動節(jié)奏可以提示Pi操作者一切都在按照計劃進行。
“我的PI崩潰了嗎?”—設(shè)法了解這一問題的答案始終是必要的,尤其是當您在運行一個無顯示器系統(tǒng)時。如果Pi真的崩潰了,心跳燈將會死機并停止跳動,或者直接熄滅。
為了給您的Pi生成負載,請將以下內(nèi)容粘貼到您的終端中:
dd if=/dev/zero bs=1M of=/dev/zero &; dd if=/dev/zero bs=1M of=/dev/zero &; dd if=/dev/zero bs=1M of=/dev/zero &; dd if=/dev/zero bs=1M of=/dev/zero &; # Let it load, let it load, let it load ... sleep 120 kill $( jobs -p )
接下來請觀看我的小型Raspberry Pi 2 B+在重負載下的視頻剪輯(所有核的利用率均為100%):
冷卻并不容易,但是是十分必要的!我們采用被動冷卻的方式從Raspberry交換熱量。
Lasse Efrayim Jespersen
Lasse出生在以色列,后來移居到較冷的緯度地區(qū)。出于個人興趣,他逐漸了解到了Perl的直接、C/C++的高效以及MicroPython的優(yōu)雅。他喜歡用ESP8266/ESP32/Raspberry Pi和Arduino來制作機器。
審核編輯黃宇
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
8965瀏覽量
85087 -
VNC
+關(guān)注
關(guān)注
0文章
19瀏覽量
9249 -
Raspberry Pi
+關(guān)注
關(guān)注
1文章
555瀏覽量
22149
發(fā)布評論請先 登錄
相關(guān)推薦
評論