從零到Raspberry 交叉編譯


由於在樹莓派上開發的種種不便,考慮在PC上使用交叉編譯工具開發樹莓派應用。

1. 下載Ubuntu

個人有且僅使用過Ubuntu系統,因此選擇Ubuntu。

登錄Ubuntu官網,下載最新的桌面系統(Ubuntu 20.04 LTS)。

2. 安裝虛擬機

很久之前在電腦上安裝了VMware Workstation,這次終於派上用場了。

選擇“新建虛擬機”,簡單設置就自動安裝,很方便省心。

3. 虛擬機基礎配置

經過大約1個小時的安裝,虛擬機終於安好了。

用戶名:pi;密碼:raspberry

1 $ sudo passwd root
2 [sudo] password for pi: 
3 New password: 
4 Retype new password: 
5 passwd: password updated successfully

3.1. update

剛進入系統后,系統彈出對話框提醒更新,索性就點擊更新了。

以我電腦的性能,安裝更新大約需要很久吧。

3.2. 下載交叉編譯工具鏈

等着系統更新,先把raspberry的交叉工具鏈下載下來,使用 git clone 已不能夠正常下載了。

在此處,我將使用Github代下載服務,進入Github代下載網站,將工具鏈git地址“https://github.com/raspberrypi/tools.git”復制粘貼至文本框,獲取下載鏈接。

Github代下載服務的好處是下載包中帶有.git文件夾,這樣以后也可以更新了。

3.3. 安裝git

將工具鏈壓縮包加壓到 /home/pi/rpi/tools 下,在拉取最新代碼前,需要為新系統安裝git。

sudo apt-get update
sudo apt-get install git build-essential

在獲取、安裝軟件前,需要將軟件源修改為國內的站點,我這兒選擇的是阿里雲。

3.3. 工具鏈

查看工具鏈,網上搜尋也沒有發現這幾項的區別,先按照大多數網友選擇的 gcc-linaro-arm-linux-gnueabihf-raspbian-x64

1 pi@ubuntu:~/rpi/tools/arm-bcm2708$ ls -l
2 total 20
3 drwxrwxrwx 7 pi pi 4096 Jun  2 01:32 arm-bcm2708hardfp-linux-gnueabi
4 drwxrwxrwx 7 pi pi 4096 Jun  2 01:32 arm-bcm2708-linux-gnueabi
5 lrwxrwxrwx 1 pi pi   29 Jun  2 02:08 arm-linux-gnueabihf -> arm-rpi-4.9.3-linux-gnueabihf
6 drwxrwxrwx 8 pi pi 4096 Jun  2 01:32 arm-rpi-4.9.3-linux-gnueabihf
7 drwxrwxrwx 7 pi pi 4096 Jun  2 01:32 gcc-linaro-arm-linux-gnueabihf-raspbian
8 drwxrwxrwx 7 pi pi 4096 Jun  2 01:32 gcc-linaro-arm-linux-gnueabihf-raspbian-x64

3.4. 環境變量

看到大多數網友直接將gcc路徑添加至環境變量中,我選擇單獨寫一份環境變量的腳本,將路徑放在之中,以后使用時先source就可以了。

#!/bin/bash

export PATH=~/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin:$PATH

4. 交叉編譯

4.1. 小試牛刀

1. 寫一份hello.c

#include <stdio.h>

int main() {
printf("hello kitty!\n");
return 0;
}

2. 交叉編譯

source ./environment-setup-rpi

arm-linux-gnueabihf-gcc -o hello-rpi hello.c

3. 通過SSH拷貝至rpi中

scp hello-rpi pi@192.168.0.110:/home/pi/project/tmp

4. 在rpi中運行程序

pi@raspberrypi:~/project/tmp $ ./hello-rpi
hello kitty!

5. 系統美化

5.1. zsh + agnoster

狂拽炫酷的終端與主題肯定不能少,詳見 Linux安裝並配置zsh

5.2. vscode

宇宙第一代碼編輯器,詳見 VSCode Setup

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM