顯示器的處理
我借了我一個同學(xué)的顯示器,含有VGA以及HDML 雙輸入的好家伙按樽唷牢酵! 然后用一根我那臺05年之前的電腦的VGA線彩掐,配上我從團隊拿回來的HDML轉(zhuǎn)VGA的轉(zhuǎn)換器搪搏,好歹是讓我的樹莓派成功投影到了顯示器上洪碳。以前都是直接網(wǎng)線連接递览,搞得我沒法給我的樹莓派聯(lián)網(wǎng),而且前期經(jīng)常就是一堆子毛病瞳腌,比如樹莓派連接wifi 無法自動獲取IP 然后還有就是一些wpa——supplicant的使用配置 簡直是日了狗一樣的快感敖柿濉!幸好這次沒出啥岔子嫂侍,這一步一切順利
電腦連接VNC
前面大概是6.00--7.30 這一點毫無緊張儿捧,因為樹莓派沒法連上網(wǎng),接上網(wǎng)線之后不知道是不是因為系統(tǒng)過舊 還是raspberry的系統(tǒng)跟ubuntu的軟件的不兼容挑宠,但是按道理來說都是linux系列菲盾,沒道理出問題啊。報錯也都沒有依賴各淀,給我說的是語法懒鉴,sysnax 錯誤, 多了個(還是啥的碎浇。反正好煩临谱,結(jié)果我的室友劉建勛拉完大便出來 hiahia 一股子臭氣跟網(wǎng)絡(luò)連接成功的ssid 名稱就出來了。簡直是奴璃,愛死了!!!! :D)
iwconfig #查看網(wǎng)絡(luò)連接狀況的悉默,比較詳細具體包括ssid 以及一些亂七八糟的其實沒卵用的東西
ifconfig #查看本地ip以及一些參數(shù)的好命令,這個過程各種驚險簡直是無與倫比
還有很多的東西我參考了不少地方苟穆,下面給出連接抄课,以及關(guān)鍵字,樹莓派 VNC 顯示屏 無法連接 ·
對了我還遇到了那個startx不能開啟的狀況雳旅,但是貌似重新
sudo raspi-config
一下剖膳,之后選擇第三個BOOT Option 然后進去選擇第三個或者第四個就OK!
<h6>程序員這一行啊岭辣。實在是有意思吱晒,莫名其妙的可能就Debug了。就跟一個鬧氣的女朋一樣的沦童!</h6>
另外有一些很有用的文章
http://www.zhihu.com/question/20764621
還有一篇適合在校大學(xué)生玩樹莓派的:相當(dāng)經(jīng)典仑濒,我覺得要是我來總結(jié)叹话,除了一些我自己遇到的比較奇葩的Bug之外,還有一些正常機器不會出的問題之外不會比這個做的更好了墩瞳。當(dāng)然驼壶,這個也不是萬能的,還是要靠自己才是最好的:碜谩热凹!
沒有顯示器可以使用樹莓派么,初次安裝過程中呢
自動連接wifi設(shè)置
wifi這個小妖精折磨的我啊泪电。簡直是欲仙欲死般妙,但是就是那么的神奇啊。
Linux 自動啟動程序
1.開機啟動時自動運行程序
Linux 加載后, 它將初始化硬件和設(shè)備驅(qū)動, 然后運行第一個進程init相速。init根據(jù)配置文件繼續(xù)引導(dǎo)過程碟渺,啟動其它進程。通常情況下突诬,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目錄下的腳本文件苫拍,可以使init自動啟動其它程序。例如:編輯 /etc/rc.d/rc.local 文件(該文件通常是系統(tǒng)最后啟動的腳本)旺隙,在文件最末加上一行“xinit”或“startx”绒极,可以在開機啟動后直接進入X-Window。
主要用三種方式進行這一操作:
ln -s 在/etc/rc.d/rc.d目錄中建立/etc/init.d/服務(wù)的軟鏈接(代表0~6七個運行級別之一)
chkonfig 命令行運行級別設(shè)置
ntsysv 偽圖形運行級別設(shè)置
注意:1.這三種方式主要用于以redhat為基礎(chǔ)的發(fā)行版
2.如果還不知道運行級別是什么蔬捷,那么最好先看看相關(guān)資料再實驗
第一種方式:ln -s 建立啟動軟連接
在Linux中有7種運行級別(可在/etc/inittab文件設(shè)置)集峦,每種運行級別分別對應(yīng)著/etc/rc.d/rc[0~6].d這7個目錄
Tips:/etc/rc[06].d其實是/etc/rc.d/rc[06].d的軟連接,主要是為了保持和Unix的兼容性才做此策
這7個目錄中抠刺,每個目錄分別存放著對應(yīng)運行級別加載時需要關(guān)閉或啟動的服務(wù)
由詳細信息可以知道塔淤,其實每個腳本文件都對應(yīng)著/etc/init.d/目錄下具體的服務(wù)
K開頭的腳本文件代表運行級別加載時需要關(guān)閉的,S開頭的代表需要執(zhí)行
因此速妖,當(dāng)我們需要開機啟動自己的腳本時高蜂,只需要將可執(zhí)行腳本丟在/etc/init.d目錄下,然后在/etc/rc.d/rc*.d中建立軟鏈接即可
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此處sshd是具體服務(wù)的腳本文件罕容,S100ssh是其軟鏈接备恤,S開頭代表加載時自啟動
如果需要在多個運行級別下設(shè)置自啟動,則需建立多個軟鏈接
這種方式比較繁瑣锦秒,適用于自定義的服務(wù)腳本
如果系統(tǒng)中已經(jīng)存在某些服務(wù)(比如安裝apache時就會有httpd服務(wù)項)露泊,可以使用下面的兩種方式
第二種方式:chkconfig
如果需要自啟動某些服務(wù),只需使用chkconfig 服務(wù)名 on即可旅择,若想關(guān)閉惭笑,將on改為off
在默認情況下,chkconfig會自啟動2345這四個級別,如果想自定義可以加上--level選項
上面我們先將sshd服務(wù)的所有啟動級別關(guān)閉沉噩,然后使用--level選項啟動自定義級別
Tips:--list選項可查看指定服務(wù)的啟動狀態(tài)捺宗,chkconfig不帶任何選項則查看所有服務(wù)狀態(tài)
第三種方式:ntsysv 偽圖形
ntsysv和chkconfig其實是一樣的,只不過加上了圖形而已
啟動ntsysv有兩種方式川蒙,一是直接在命令行中輸入ntsysv蚜厉,二是使用setup命令,然后選擇系統(tǒng)服務(wù)
默認情況下畜眨,當(dāng)前運行級別為多少昼牛,在ntsysv中設(shè)置的啟動服務(wù)的級別便是多少
比如,我當(dāng)前的運行級別是3,那么我在偽圖形界面中選擇啟動服務(wù)后康聂,它的運行級別也會是3
如果想自定義運行級別可使用ntsysv --level方式
以上三種操作需要保證服務(wù)腳本文件可執(zhí)行贰健,并且要有root權(quán)限
其中,第一種方式多用于自定義腳本早抠,第二霎烙、三種多用于系統(tǒng)已存在的服務(wù)
比如ftp撬讽、samba蕊连、ssh、httpd等等
并且游昼,要做相關(guān)設(shè)置需要弄清楚運行級別的問題
Tips:如果想手動啟動某服務(wù)甘苍,傳統(tǒng)的方式是 /etc/init.d 服務(wù)名 start
實際上還可以這樣,service 服務(wù)名 start
樹莓派自動連接WiFi
將USB無線網(wǎng)卡插入樹莓派任一USB接口烘豌,插上網(wǎng)線载庭,接通電源;在個人電腦上通過ssh連接樹莓派廊佩,默認帳號是pi囚聚,默認密碼是raspberry(如何通過ssh連接樹莓派,請自行網(wǎng)上查找标锄,當(dāng)然如果樹莓派已配備好了鍵鼠顽铸,也可以本機操作)。
連接成功后料皇,用lsusb命令谓松,可以看到:
可以看到已經(jīng)識別硬件了,然后再用ifconfig践剂,看到wlan0信息如下:
然后可以開始配置網(wǎng)絡(luò)了鬼譬,修改/etc/network/interfaces文件,把它修改成這個樣子
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid YOUR-SSID-HERE
wpa-psk YOUR-PASSWORD-HERE
主要是添加wpa-ssid和wpa-psk逊脯,直接把你要連接的wifi的ssid和對應(yīng)密碼寫上就行了优质。
重啟網(wǎng)絡(luò)
/etc/init.d/networking restart
or: service networking restart
自動連接多個WiFi網(wǎng)絡(luò)
當(dāng)你經(jīng)常切換到不同WiFi網(wǎng)絡(luò)中時,你可以配置多個WiFi網(wǎng)絡(luò),讓樹莓派能自動連接到可用WiFi網(wǎng)絡(luò)中盆赤。這里就要用到高大上的wpa_supplicant.conf了
修改/etc/wpa_supplicant/wpa_supplicant.conf贾富,下面是我使用的配置文件:
ctrl_interface=/var/run/wpa_supplicant
#ap_scan=1
network={
ssid="wo_shi_yige_wifi_ssid"
scan_ssid=1
psk="wo_shi_mi_ma"
priority=5
}
network={
ssid="pi"
psk="onlyforpi"
priority=1
}
**ap_scan:**1是默認值,因此我注掉了
1:這個模式下總是先連接可見的WiFi牺六,如果掃描完所有可見的網(wǎng)絡(luò)之后都沒有連接上颤枪,則開始連接隱藏WiFi。2:會按照network定義的順序連接WiFi網(wǎng)絡(luò)淑际,遇到隱藏的將立刻開始連接畏纲,因此在這個模式下連接順序不受priority影響
ctrl_interface:這個文件夾里面存的是一個當(dāng)前使用的interface的socket文件,可以供其他程序使用讀取WiFi狀態(tài)信息
network:
是一個連接一個WiFi網(wǎng)絡(luò)的配置春缕,可以有多個盗胀,wpa_supplicant會按照priority指定的優(yōu)先級(數(shù)字越大越先連接)來連接,當(dāng)然锄贼,在這個列表里面隱藏WiFi不受priority的影響票灰,隱藏WiFi總是在可見WiFi不能連接時才開始連接。
ssid:網(wǎng)絡(luò)的ssidpsk:密碼priority:連接優(yōu)先級宅荤,越大越優(yōu)
scan_ssid:連接隱藏WiFi時需要指定該值為1
修改/etc/network/interfaces使用wpa_supplicant.conf來配置無線網(wǎng)絡(luò)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
以后每次啟動時屑迂,樹莓派都會主動去連接配置文件中預(yù)定義的這些wifi網(wǎng)絡(luò)。
在這個配置里面有一個ssid=’pi’網(wǎng)絡(luò)冯键,這是一個最低優(yōu)先級網(wǎng)絡(luò)惹盼,是用來在陌生網(wǎng)絡(luò)中配置樹莓派的。當(dāng)處 在一個樹莓派配置里面的沒有的WiFi網(wǎng)絡(luò)中時惫确,我會自己創(chuàng)建一個叫pi的WiFi手报,當(dāng)其他網(wǎng)絡(luò)都不可用時,樹莓派連到這個網(wǎng)絡(luò)里改化,然后我便可以ssh進 樹莓派掩蛤,添加網(wǎng)絡(luò)配置,然后重啟陈肛,就可以讓樹莓派加入到新的網(wǎng)絡(luò)中揍鸟。
參考文章如下:
樹莓派自動連接WiFi - 踏雪無痕何處是 - 博客園
ubuntu下設(shè)置開機自啟動項 - 風(fēng)生水起 - 博客園
Linux中設(shè)置服務(wù)自啟動的三種方式 - Nerxious - 博客園
內(nèi)網(wǎng)外網(wǎng)IP獲取以及發(fā)郵件
我的主要想法是:要是每次我都得把?我的樹莓派連接到電腦上,然后傻逼一樣的知道了IP之后再來辛辛苦苦的著wifi鏈接進去燥爷,這他么也太慘了蜈亩。一點都不符合我極客風(fēng)范啊G棒帷V膳洹!港华!這怎么可以道川,一定要讓樹莓派用最低的姿態(tài)告訴我它自己的ip wifi名稱,然后等待我的臨幸。所以就有了用python 寫一個發(fā)送郵件的代碼冒萄,然后寫一個腳本臊岸,一邊登陸Wi-Fi,一邊把網(wǎng)絡(luò)信息處理好發(fā)送給我尊流,然后我再跟著這個信息去進去VNC界面帅戒。另外要把腳本設(shè)置為自啟動,不然很容易GG的
獲取自己內(nèi)網(wǎng)和外網(wǎng) ip 地址
通過ifconfig 和grep和 cut 和 curl 命令即可
如下:
ifconfig | grep 'Bcast' | cut -d B -f 1 >> /home/pi/Desktop/ip.log
curl http://members.3322.org/dyndns/getip >>/home/pi/Desktop/ip.log
第一句是找到自己內(nèi)網(wǎng)Ip
第二句是找到自己外網(wǎng)Ip
發(fā)送郵件的程序:
網(wǎng)上有很多做法崖技,通過web.py自帶的庫來發(fā)送郵件最為方便
先配置python +web.py
shell中輸入
<code>python</code>
如果顯示 Python 2.7.3逻住,說明打開python2成功(如果要退出,ctrl+z)
繼續(xù)輸入<code>import web</code>
如果ImportError: No module named xxx,則未安裝web.py
如果不報錯迎献,則已安裝web.py
安裝web.py如下
shell中輸入
wget http://webpy.org/static/web.py-0.37.tar.gz
然后 tar -xf web.py-0.37.tar.gz **
然后sudo python setup.py install**
再次嘗試**import web ** 瞎访,如果不報錯,則 安裝成功
發(fā)送ip到郵箱程序的實現(xiàn):
在終端中nano mail.py吁恍,然后寫入這些內(nèi)容扒秸,配置自己的賬號密碼,如果報錯冀瓦,可能是程序縮進的原因
#!\usr\bin\env python
#encoding: utf-8
import web
#程序通過直接調(diào)用web.py里面的庫 來實現(xiàn)發(fā)郵件
#cc,bcc 使用了默認參數(shù)
def send_mail(send_to, subject, body, cc=None, bcc=None):
try:
web.config.smtp_server = 'smtp.163.com' ##郵件發(fā)送服務(wù)器
web.config.smtp_port = 25 ##不設(shè)置將使用默認端口
web.config.smtp_username = '你的郵箱用戶名伴奥,無@xx.com' ##郵件服務(wù)器的登錄名
web.config.smtp_password = '你郵箱的密碼' ##郵件服務(wù)器的登錄密碼
web.config.smtp_starttls = True
send_from = '你的郵箱賬號,xxx@163.com' ##發(fā)送的郵件
web.sendmail(send_from, send_to, subject, body, cc=cc, bcc=bcc)
return 1 #pass
except Exception, e:
print e
return -1 #fail
if __name__=='__main__':
send_to = ['發(fā)送給誰']
subject = '郵件標(biāo)題'
body = '郵件內(nèi)容\n試一下噻'
cc = ['抄送給誰'] ##抄送
bcc = ['密送給誰'] ##密抄
send_mail(send_to, subject, body, cc, bcc)
配置完成之后咕幻,python mail.py 這時候你的郵箱就成功發(fā)送了
其中:body 是你在信中要寫的內(nèi)容
注意: 程序調(diào)用web.sendmail較慢渔伯,估計2s左右顶霞。
以下是我的mail.py:
#!\usr\bin\env python
#encoding: utf-8
import web
def send_mail(send_to, subject, body, cc=None, bcc=None):
try:
web.config.smtp_server = 'smtp.163.com' ##郵件發(fā)送服務(wù)器
web.config.smtp_port = 25 ##不設(shè)置將使用默認端口
web.config.smtp_username = 'xxxx' ##郵件服務(wù)器的登錄名
web.config.smtp_password = 'xxxx' ##郵件服務(wù)器的登錄密碼
web.config.smtp_starttls = True
send_from = 'xxxx@163.com' ##發(fā)送的郵件
web.sendmail(send_from, send_to, subject, body, cc=cc, bcc=bcc)
return 1 #pass
except Exception, e:
print e
return -1 #fail
if __name__=='__main__':
f=file('/home/pi/Desktop/ip.log')
f1=f.read()
f.close()
send_to = ['xxxx@qq.com']
subject = 'connection check'
body = 'hello , xxxx! I am still alive. I will send you an email in another hour.',f1
send_mail(send_to, subject, body)
此時的效果:
你已經(jīng)收到了你樹莓派的內(nèi)網(wǎng)和外網(wǎng)ip了肄程!
參考文章:
樹莓派實戰(zhàn)2:發(fā)送ip地址到自己郵箱 - make_APP的博客 - 博客頻道 - CSDN.NET
樹莓派實戰(zhàn)一:查詢自己內(nèi)網(wǎng),外網(wǎng)ip - 綜合