樹莓派交叉編譯環境
⑴ 一 . 樹莓派A20 基本環境搭建 1
我的實驗環境:
1.交叉編譯工具鏈:gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux(4.8.2).tar.xz
2.SDK文件:MarsBoard-A20-Linux-SDK-V1.1.tar.bz2
在安裝gcc-arm-linux-gnueabi的時候,會自動安裝上gcc-4.6-arm-linux-gnueabi,如下圖所示:
第二個文件的安裝很重要,盡管後面提示的編譯錯誤,缺少的是arm-linux-...,但是安裝這個文件還是挺好用的。
根據前面安裝的一些安裝包,其實本節的交叉編譯工具鏈可以不用操作。因為已經包含了本節所做的了。
我得先將vim改一下,否則按住上下左右,會出現A,B,C,D。
再/etc/profile最後一行添加內容:
然後:
這里做一些簡要的說明,在網址: 鏈接 上有一些說明,從說明中,我們可以看到我們用的sdk的架構。
pack文件夾
選擇2,server版本。
之後:
能找到的livesuit_marsboard_a20_debian.img就是生成的鏡像文件。如果要修改名字,可以:
這裡面就包含了image.cfg,找到裡面的一項:
修改為其他的名字即可。
選擇2,server版本。
1.若出現如下報錯:
可以:
如果出現:
但是其實這些文件都是有的,可以不妨:
再次編譯,則問題如下:
仔細找編譯的shell輸出文件,發現是rootfs/下的gz文件找不到,這是因為我做前面的操作的時候,希望生成自己的rootfs_my.tar.gz文件。現在我重新將該文件放到rootfs/下,再次編譯,我將最後的結果放在下面:
這樣表示成功了。
下面列入生成的鏡像:
livesuit_superpi3.img即是。
1.我在做上面的操作的時候,夾雜的使用了兩個開發板,一個是marsboard出品的a20開發板,另外一個是風火輪出品的a20樹莓派3卡片電腦,說實在的,看起來風火輪附帶板子資料挺多,但是其真正寫的資料可沒用心做,實在不是一個榜樣,在該開發板上做非核心開發,是可以的,但是做研發,還是需要做考量。
燒寫成功後,列印的內容如下,作為日誌信息,留作以後分析:
⑵ 如何交叉編譯Python到ARM-Linux平台
沒有用過,建議有兩條思路:
辦法1,用交叉編譯 ,需要下載相應的交叉編譯工具包(又叫工具鏈),比如在linux下編譯arm需要arm-linux-gcc等工具鏈
辦法2,找一個性能好的arm平台,直接在arm平台下編譯。比如樹莓派的操作系統編譯就是程序用多台高性能的arm平台單板機,分工合作共同編譯完成的。
⑶ 樹莓派Linux內核編譯選項如何開啟TPM 2.0
本文更新於2018-08-11
首發於, 文章鏈接 http://www.jianshu.com/p/174844b99716
同步至GitHub: https://github.com/liuqun/linux/wiki
定製樹莓派內核源碼, 通過樹莓派SPI介面載入並訪問TPM2.0設備
所需硬體: X86主機一台, 樹莓派3-B型號開發板一塊, 大容量Micro-SD卡+USB讀卡器一個, 英飛凌TPM2.0評估板一套
所需軟體: 任意版本樹莓派固件(推薦使用 最新版本 ), Ubuntu Linux 虛擬機, gcc-arm-linux-gnueabihf 交叉編譯器, libncurses5(編譯Linux內核配置菜單界面)
取出樹莓派的SD卡, 通過讀卡器插入 Ubuntu 主機或將讀卡器 USB 設備接入 VMware 虛擬機。Ubuntu 默認自動將 U 盤掛載到 /media/$USER/boot 和 /media/$USER/【根文件系統分區】
(以下為覆蓋式安裝, 如果不放心請自行備份SD卡上的原有內核及模塊文件)
選中 5. Interfacing Options --- P4 SPI(啟用/禁用SPI串口)
重啟樹莓派,開機後檢查/dev/tpm0設備文件是否已經載入就緒
⑷ 樹莓派中設置Python虛擬開發環境
我們可以創建虛擬開發環境,避免開發時所使用的環境與本機環境發生沖突。首先,為開發環境創建一個子目錄
然後使用下面的命令創建虛擬環境目錄:
然後進入虛擬環境
這是,我們可以升級虛擬環境中的pip:
升級完成後,查看一下pip的版本:
可以看到,虛擬環境中的pip版本如下:
從虛擬環境中退出:
再看一下pip的版本:
可以看到,虛擬開發環境中的工具是獨立於系統的,這樣,針對不同的版本,我們可以創建不同的虛擬環境。
⑸ x86 平台編譯的二進制包是否都不能運行在樹莓派中
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下
⑹ 如何將android linux燒到Raspberry Pi及其調試
一.Raspberry Pi入門向導。
可以在以下地址下載Raspberry向導
4.設置引導區
引導區必須包含以下文件,你可以從官方鏡像里獲取(bootable/fat32 partition)也可以從書面步驟中復制過來:
bootcode.bin:第二階段的引導程序,
loader.bin:第三階段的引導程序,
start.elf:GPU二進制固件映像,
kernel.img操作系統的內核鏡像文件,
cmdline.txt:傳遞給內核的參數.
5.設置root文件系統分區
ROOTFS分區包含android文件系統,是從<your_android_framework_path>/out/target/proct/rpi/root復制過來的。
cp -r <your_android_framework_path>/out/target/proct/rpi/root/* /media/ROOTFS/
6.完成上述步驟之後,將其放在Raspberry Pi上跑。
七.如何在Raspberry Pi使用adb?
1.查看網路
當android linux在Raspberry Pi運行時,切換到控制台,執行以下命令:
ifconfig eth0
記下ip地址。
如果不能找到ip,可以輸入以下命令:/system/xbin/dhcp-eth0,來啟動網路連接程序。
ps:如果屏幕沒有顯示控制台,只要按CTRL+ALT+F2即可切換到控制台。如果你想要切換到Android界面,只要按CTRL+ALT+F7即可。
2.遠程連接adb伺服器
在主機上執行以下命令即可與同一區域網的Raspberry Pi相連
adb connect ip
連接成功後,你就可以用adb工具輸出日誌,執行shell命令等。
3.也可以用數據線連接主機,直接在主機上調試。
進入調試的命令為:
screen /dev/ttyUSB0 115200
名詞解釋:
交叉編譯(cross compile):交叉編譯呢,簡單地說,就是在一個平台上生成另一個平台上的可執行代碼。這里需要注意的是所謂 平台,實際上包含兩個概念:體系結構(Architecture)、操作系統(Operating System)。同一個體系結構可以運行不同的操作系統;同樣,同一個操作系統也可以在不同的體系結構上運行。舉例來說,常說的x86 Linux平台實際上是Intel x86體系結構和Linux for x86操作系統的統稱;而x86 WinNT平台實際上是Intel x86體系結構和Windows NT for x86操作系統的簡稱。
⑺ 樹莓派需要配置pycharm環境嗎
需要。樹莓派是為學習計算機編程教育而設計,只有信用卡大小的微型電腦,其系統基雹世於Linux,運行pycharm需要配置Java環境和pycharm環境,樹莓派才能運行。樹莓派攜行由注冊於英國的慈善組織「RaspberryPi基金會」辯肆嘩開發,EbenUpton/埃·厄普頓為項目帶頭人。
⑻ 樹莓派如何搭建c/c++開發環境
安裝raspbian默認已經安裝好了gcc,直接就可以編譯c/c++程序。