最近公司有項目想要在樹莓派上作,代替原來的工控機(咱們是把工控主機看成小的主機用,一臺小的工控主機最少也要600左右,而樹莓派只要200多)。因而,公司買了一個Raspberry Pi B+和一個Raspberry Pi 2 B,並要求能在B+上作就儘可能用B+,緣由很簡單,B+比Raspberry Pi 2要便宜70左右。拿到聞名已久的樹莓派以後非常興奮,試着從官網下載了官方推薦的鏡像raspbian,用Win32DiskImager燒錄到SD卡上,而後上電,起初屏幕上什麼都沒顯示,無論從新燒寫了多少次SD卡,屏幕都是黑的,後來發現原來屏幕是否顯示,是須要配置一下config.txt文件裏面的一些參數屏幕纔會顯示,我用的是HDMI接顯示器,因此只要把config.txt裏面跟HDMI有關的選項前面的#去掉就能夠了。剩下的就比較簡單了,配置一下就能夠用了,初始登陸用戶是pi。
本人用的比較熟的語言是C#,樹莓派上能用嗎?答案是確定的,Mono 4是支持ARM設備的,這就意味着樹莓派能夠用C#寫程序,但問題來了,怎麼安裝Mono 4呢?若是你用官方的鏡像raspbian-wheezy,你會發現,經過apt-get怎麼都裝不上Mono 4,顯示缺乏依賴項。因而,我想到有沒有其餘能夠用的鏡像,是否是鏡像的問題,wheezy是debian的上一個版本,debian當前的版本是jessie,那麼jessie(下載地址http://sjoerd.luon.net/posts/2015/02/debian-jessie-on-rpi2/)能夠在樹莓派上用嗎?答案是能夠,可是僅限於Raspberry Pi 2,由於jessie的ARM版系統是基於ARMv7的,Raspberry Pi 2是ARMv7的芯片,可是上一代的樹莓派都是ARMv6的芯片。我試了一下,在jessie的系統裏能夠很輕鬆地安裝Mono 4,不過B+的板子要怎麼安裝Mono 4呢?看到jessie上能夠安裝Mono 4,我想到了是否是找不到軟件源,既然raspbian是基於wheezy的,那我把wheezy的debian官方源加上試試,結果,兩個都不行。jessie確實能夠裝啊,因而我就直接把jessie的軟件源加上了,結果是Raspberry Pi 2在raspbian上添加jessie源就能夠順利的安裝Mono 4,而B+仍是不行,緣由很簡單,Mono 4是支持ARM設備,但官方的軟件源只支持ARMv7架構,若是要想在B+上用,就只剩下一條路了,直接在樹莓派上編譯源碼,Mono官方有教程,這裏簡單的貼一下代碼:架構
wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
下載官方源碼包 tar -xvf mono-4.0.1.44.tar.bz2 解壓 cd mono-4.0.1 切換路徑 ./configure --prefix=/usr/local 配置編譯安裝路徑 make 編譯 make install 安裝
這裏雖然只有幾行命令,可是中間的過程是極其緩慢的,B+編譯安裝完要8個小時,Raspberry Pi 2要3個小時……
看到這個極其緩慢的過程,我確定是不想再來第二回的,因此,我很想把它們作成安裝包,之後要用就直接安裝一下就能夠了,不用漫長的編譯過程,找了不少辦法,走了不少彎路……不少彎路……真的不少彎路……
……
終於讓我找到了一個能夠比較簡單的製做安裝包的方法,就是用checkinstall,這是一個工具,須要提早用apt-get安裝,因而上面的代碼須要修改一下:工具
wget http://download.mono-project.com/sources/mono/mono-4.0.1.44.tar.bz2
下載官方源碼包 tar -xvf mono-4.0.1.44.tar.bz2 解壓 cd mono-4.0.1 切換路徑 ./configure --prefix=/usr/local 配置編譯安裝路徑 make 編譯 checkinstall 將編譯後的文件製做成deb安裝包,製做過程當中有一些參數要設置,不想費神的話,就直接用默認值吧。
折騰了兩天,終於達到了本身的目的,暮然回首,個人週末,個人六一,哎,這就是程序猿啊……
最後,說一個小技巧,若是你也想不開要在樹莓派上編譯軟件,並且通過漫長的等待也編譯好了,可是忽然不知道下一步該怎麼辦了,請注意,必定要把你當前的SD卡燒錄到IMG文件裏,無論你之後想怎麼作,直接燒寫一遍SD卡就好了,不用再經歷漫長的等待,這但是血的教訓!
最後的最後固然是作點好事,把我編譯好的安裝包分享出來,親測可用哦!
ARMv6(B+) : http://yunpan.cn/cw6NYzXkD9kHq 訪問密碼 63ae
ARMv7(Raspberry Pi 2) : http://yunpan.cn/cw6NMKUztiSDu 訪問密碼 4efbpost
(PS:我測試Mono是否正常運行是用的Jexus,若是能正常運行Jexus就認爲是能夠了,剛開始弄出了一版,mono -V有反應,csharp指令也能夠用,可是由於編譯路徑問題,Jexus運行不了,因而折騰好久,最終能夠正常運行Jexus了,Jexus怎麼用我就不說了,宇內大神作的很簡潔,直接看官網就能夠了,http://www.jexus.org/)測試