㈠ 樹莓派 編譯 platform選哪個
1、獲取升級所需源碼
1)下載地址:
官方網址:https://github.com/raspberrypi
上面列出了樹莓派所有的開源軟體:
firmware:樹莓派的交叉編譯好的二進制內核、模塊、庫、bootloader
linux:內核源碼
tools:編譯內核和其他源碼所需的工具——交叉編譯器等
我們只需要以上三個文件即可,下面的工程可以了解一下
documentation:樹莓派離線幫助文檔,教你如何使用、部署樹莓派(樹莓派官方使用教程)
userland:arm端用戶空間的一些應用庫的源碼——vc視頻硬浮點、EGL、mmal、openVG等
hats:Hardware Attached on Top,樹莓派 B+型板子的擴展板資料
maynard:一個gtk寫成的桌面環境
scratch:一個簡易、可視化編程環境
noobs:一個樹莓派鏡像管理工具,他可以讓你在一個樹莓派上部署多個鏡像
weston:一個應用程序
target_fs:樹莓派最小文件系統,使用busybox製作
quake3:雷神之錘3有線開發源碼firmwareb
2)下載方法:
a、網頁直接下載:
點到所需要下載的工程,左上角選版本,右方有一個download ZIP按鈕可直接下載(筆者下載完成後,在linux中解壓提示出錯,windows又非常慢切內核建議不要在windows環境解壓,所以筆者不建議使用這種辦法)
b、使用git下載
$ mkdir raspeberrypi_src
$ cd raspberrypi_src
$ git clone git://github.com/raspberrypi/firmware.git
$ git clone git://github.com/raspberrypi/linux.git
$ git clone git://github.com/raspberrypi/tools.git
會得到三個文件夾:
firmware linux tools
2、編譯、提取內核及其模塊
1)獲得內核配置文件
在運行的樹莓派中運行:
$ls /proc/
可看到一個叫config.gz的文件,他是當前的樹莓派配置選項記錄文件,我們將他拷出,放入我們的內核源碼目錄樹下
$cp /proc/config /home/pi
我們這里使用前面交過的samba拷出並拷入內核源碼目錄下,不熟悉的人可參考前面文章
在linux內核源碼下執行:
$zcat config.gz > .config
2)配置、編譯內核
a、修改內核源碼makefile ARCH類型和編譯器路徑
$vi Makefile +195
找到以上類似代碼,改為如圖所示
b、查看、修改配置選項
$make menuconfig
可出現以下界面
如果不做修改,直接選中exit即可(注意使用鍵盤操作)
c、編譯內核鏡像
$make
在arch/arm/boot目錄下可以看到一個叫zImage的文件,就是我們新的內核
但是樹莓派需要另外一種格式的鏡像,需要進行處理一下,執行以下命令
$cd tools/mkimage
$./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage
即可在當前文件夾下看到一個叫:kernel.img的文件,就是我們需要的新內核了
d、提取moles
上一步其實不但編譯出來了內核的源碼,一些模塊文件也編譯出來了,這里我們提取一下
$cd raspberrypi_src
$mkdir moles
$cd linux
$ make moles_install INSTALL_MOD_PATH=../moles
即可在moles得到我們需要的模塊文件
2、升級RPi的kernel、Firmware、lib
將SD卡拔下插在電腦上(可使用讀卡器)
1)升級內核
將新編好的內核拷入SD卡,改名為:kernel_new.img
打開boot目錄下
找到config.txt文件,加入:kernel=kernel_new.img這一行
2)升級boot
將firmware/boot/目錄下 以下文件拷入SD卡boot目錄:fbootcode.bin fixup.dat fixup_cd.dat start.elf
3)更新vc庫及內核moles
將第3步d步中編譯出來的moles/lib/moles拷入樹莓派文件系統/lib下
㈡ 如何為樹莓派2編譯內核
入手一塊樹莓派2開發板,想利用樹莓派這個平台總結一些內核和應用程序調試手段。目前已經為樹莓派安裝了一個arch linux系統。要總結linux內涵調試手段,搭建相應的實驗環境,必須重新編譯內核才行。所以一個新的編譯樹莓派2內核的任務就是第一要緊的事情。
首先在ubuntu編譯機器上建立編譯工作目錄
raspberry
|-kernel
|-moles
|-mounts
|-scripts
下載源代碼,編譯工具,編譯腳本
下載源代碼
cd ~/raspberry/kernel
git clone https://github.com/raspberrypi/linux.git
git clone很容易被中斷,中斷不能進行斷點續傳,運行上面的命令之後,在kernel目錄下面又會形成一個linux的目錄。
下載編譯工具
git clone https://github.com/raspberrypi/tools.git
運行上面的命令之後就會在kernel目錄下會形成一個tool目錄
編譯腳本下載
cd ~/raspberry/kernel/scripts
git init
git remote add origin https://github.com/veccsolutions/RaspberryPi2Scripts.git
git pull origin master
目前已經將編譯需要的代碼,工具,腳本都准備妥當,那就開始吧
編譯過程
1,配置內核
到~/raspberry/kernel/linux目錄
運行命令 make ARCH=arm CROSS_COMPILE=~/raspberry/kernel/linux/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-bcm2708hardfp-linux-gnueabi- bcm2709_defconfig
該目錄中存在4個文件夾,本例使用gcc-linaro-arm-linux-gnueabihf-raspbian 或 gcc-linaro-arm-linux-gnueabihf-raspbian-x64。前者對應32位系統後者對應64位系統。
arm-bcm2708hardfp-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian
arm-bcm2708-linux-gnueabi
gcc-linaro-arm-linux-gnueabihf-raspbian-x64
2,利用腳本編譯內核
進入到目錄目錄~/raspberry/kernel/scripts
./makekernel.sh
3,安裝內核
安裝內核的工作主要是將boot分區中的kernel image替換掉,同時將moles中的ko文件做相應的拷貝,同時將firmware中的相應文件做拷貝。moles,和firmware在root分區下面。
㈢ 樹莓派python 有哪些編譯器
編譯器還是編輯器?
編譯器估計都是 python,編輯器有nano,vi之類的。也可以使用sublime通過sftp上傳。這樣在windows下寫代碼。Windows下的編輯器那就海了。
㈣ 如何為樹莓派安裝Ubuntu Core並在Snap系統中進行編譯
准備
下載系統:
在網站Raspberry Pi/ubuntu官網下載對應版本的鏡像壓縮文件
由於我用的是樹莓派3,因此選擇已經編譯好的鏡像文件 ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz
實驗硬體:
Raspberry Pi 3、7寸液晶觸摸屏或者液晶顯示器、TF卡(microSD)
安裝過程
將SD卡放入USB讀卡器,並插入到電腦中,識別為sdb,並用 fdisk 命令清除SD卡中的原有內容
在linux系統中運行命令 $ xzcat ubuntu.img.xz | sudo dd of=/dev/sdb
至此已經完成基本系統的安裝,卸載SD卡,將SD卡插入樹莓派的插槽中,接上電源即可使用SSH遠程登錄樹莓派,默認的用戶名和密碼見上面的官網
遠程登錄有點麻煩,為了能夠從接上顯示器或者觸摸屏後直接使用,需要修改文件 config.txt(位於SD卡的第一個分區的boot文件夾下面),加入下面內容; 保存 config.txt文件,接入顯示器或者觸摸屏即可,然後上電啟動系統(注意:如果啟動過程中,遇到停止情況,嘗試給樹莓派插上網線後再啟動)
下面的內容適用於7寸1024*600的顯示器和觸摸屏
disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=16
config_hdmi_boost=4
hdmi_ignore_edid=0xa5000080
如果是觸摸屏根據實際的硬體參數更改hdmi有關參數可以使顯示效果更加完善,如添加以下配置
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
㈤ 如何在樹莓派liunx系統下重新編譯桌面版liu
首先准備好arm-linux-gcc的包,比如說是arm-linux-gcc-fh.tar.gz。 首先是解壓縮,路徑可以隨便放,最好放在/opt這個目錄下面。 使用如下命令: tar xvzf arm-linux-gcc-fh.tar.gz(空格)C(空格/(注意這之間的空格)。 然後就解壓縮好了,接下來就是要修改一下配置文件了。 切換到root許可權,輸入如下命令: vi /etc/bash.bashrc 在最後面一行加入如下語句: export PATH=$PATH:/opt/***(***表示你的arm-linux-gcc這個可執行文件的路徑); 最後,重啟一下配置文件,使用如下命令: source /etc/bash.bashrc,
㈥ 如何編譯armlinux的go
Golang也就是Go語言,現在已經發行到1.4.1版本了,語言特性優越性和背後Google強大靠山什麼的就不多說了。Golang的官方提供了多個平台上的二進制安裝包,遺憾的是並非沒有發布ARM平台的二進制安裝包。ARM平台沒辦法直接從官網下載二進制安裝包來安裝,好在Golang是支持多平台並且開源的語言,因此可以通過直接在ARM平台上編譯源代碼來安裝。整個過程主要包括編譯工具配置、獲取Golang源代碼、設置Golang編譯環境變數、編譯、配置Golang行環境變數等步驟。
註:本文選用樹莓派做測試,因為樹莓派是基於ARM平台的。
1、編譯工具配置
據說下個版本的golang編譯工具要使用golang自己來寫,但目前還是使用C編譯工具的。因此,首先要配置好C編譯工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安裝,樹莓派的RaspBian系統是基於Debian修改的,所以可以使用這種方法安裝。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安裝。
安裝完成後可以輸入gcc--version命令驗證是否成功安裝。
2、獲取golang源代碼
2.1直接從官網下載源代碼壓縮包。
golang官網提供golang的源代碼壓縮包,可以直接下載,最新的1.4.1版本源代碼鏈接:/golang/go1.4.1.src.tar.gz
2.2使用git工具獲取。
golang使用git版本管理工具,也可以使用git獲取golang源代碼。推薦使用這個方法,因為以後可以隨時獲取最新的golang源代碼。
2.2.1首先確認ARM平台上已經安裝了git工具,可以使用git--version命令確認。一般linux平台都安裝了git,沒有的話可以自行安裝,不同平台的安裝方法可以參考:download/linux
2.2.2克隆遠程golang的git倉庫到本地
在終端cd到你想要安裝golang的目錄,確保該目錄下沒有名為go的目錄。然後以下命令獲取代碼倉庫:
gitclone/go
大陸地區可能會獲取失敗,在不翻牆的情況下我試了幾次都沒成功,原因大家都懂的。好在google已經將golang也託管到github上面,所以也可以通過下面命令獲取:
gitclone/golang/go.git
視網路情況,下載可能需要不少時間。我2M的帶寬花了將近兩個小時才下載完,雖然整個項目不過幾十兆==
下載完成後,可以看到目錄下多了一個go目錄,裡面即為golang的源代碼,在終端上執行cdgo命令進入該目錄。
執行下面命令檢出go1.4.1版本的源代碼,因為現在汪敏指已經有新的代碼提交上去了,最新的代碼可能不是最穩定的:
gitcheckoutgo1.4.1
至此,最新1.4.1發行版的源代碼獲取完畢
3、設置golang的編譯環境變數
主要有GOROOT、GOOS、GOARCH、GOARM四個環境變數需要設置,先解釋四個環境變數的意義。
3.1GOROOT
主要代表golang樹結構目錄的路徑,也就是上面git檢出的go目錄。一般可以不用設置這個環境變數,因為編譯的時候默認會以go目錄下src子目錄中的all.bash腳本困配運行時的父目錄作為GOROOT的值。為了保險起見,可以直接設拿芹置為go目錄的路徑。
3.2GOOS和GOARCH
分別代表編譯的目標系統和平台,可選值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是這兩個值代表的是目標系統和平台,而不是編譯源代碼的系統和平台。樹莓派的RaspBian是linux系統,所以這些GOOS設置為linux,GOARCH設置為arm。
3.3GOARM
表示使用的浮點運算協處理器版本號,只對arm平台有用,可選值有5,6,7。如果是在目標平台上編譯源代碼,這個值可以不設置,它會自動判斷需要使用哪一個版本。
總結下來,在樹莓派上設置golang的編譯環境變數,可編輯$HOME/.bashrc文件,在末尾添加下面內容:
exportGOROOT=你的go目錄路徑
exportGOOS=linux
exportGOARCH=arm
編輯完後保存,執行source~/.bashrc命令讓修改生效。
4、編譯源代碼
環境變數配置完成自後就可以開始編譯源代碼。在go目錄下的src子目錄中,主要有all.bash和make.bash兩個腳本(另外還有兩個all.bat和make.bat腳本適用於window平台)。編譯實際上就是執行其中一個腳本,兩者的區別在於all.bash在編譯完成後還會執行一些測試套件。如果希望只編譯不測試,可以運行make.bash腳本。使用cd命令進入go下src目錄,執行./all.bash或者./make.bash命令即可開始編譯。由於硬體情況不同,編譯耗費的時間不同。在我的B型樹莓派編譯過程花費了將近半個小時,編譯完成後執行的測試套件又花費了差不多一個小時,總共花費了一個半小時左右。
5、配置golang運行環境變數
編譯完成後,go目錄下會生成bin目錄,裡面就是go的運行腳本。為了以後使用方法,可以將這個bin路徑添加到PATH環境變數中。同樣編輯~/.bashrc文件,因為前面設置過GOROOT環境變數指向go目錄了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存後同樣執行source~/.bashrc命令讓環境變數生效。
至此,golang源代碼編譯安裝成功。執行goversion應該就能看到當前golang的版本信息,表示編譯安裝成功。
㈦ 樹莓派b+ gcc lwiringPi 編譯錯誤 gpio控制led
新建一個名為led.py的程序,程序的具體內容如下:
123456789101112131415 #!/usr/bin/env python# -*- coding: utf-8 -*- import RPi.GPIO as GPIOimport time GPIO.setmode(GPIO.BOARD)# need to set up every channel which are using as an input or an outputGPIO.setup(11, GPIO.OUT) while True: GPIO.output(11, GPIO.HIGH) time.sleep(1) GPIO.output(11, GPIO.LOW) time.sleep(1)
使用cd命令進入文件所在目錄,然後輸入指令
1 sudo python led.py
使用這種方法實現LED閃爍的最容易的方法,網上的教程也非常多,是入門樹莓派的好方法。
2.2 wiringPi
新建一個名為blink.c的程序,程序內容如下
1234567891011 #include <wiringPi.h>main (){ wiringPiSetup () ; pinMode (0, OUTPUT) ; for (;;) { digitalWrite (0, HIGH) ; delay (500) ; digitalWrite (0, LOW) ; delay (500) ; }}
使用cd命令進入所在文件目錄,然後輸入以下命令生成可執行文件blink
1 gcc -Wall -o blink blink.c -lwiringPi