zoukankan      html  css  js  c++  java
  • 从零到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!
    ");
    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

  • 相关阅读:
    渗透利器-kali工具 (第六章-1) 密码破解
    渗透利器-kali工具 (第五章-6) Metasploit后门生成模块
    渗透利器-kali工具 (第五章-5) Metasploit漏洞利用模块二
    渗透利器-kali工具 (第五章-4) Metasploit漏洞利用模块一
    渗透利器-kali工具 (第五章-3) Metasploit密码爆破模块
    渗透利器-kali工具 (第五章-2) Metasploit扫描漏洞模块
    渗透利器-kali工具 (第五章-1) Metasploit框架介绍与基本命令
    关于计算机网络的性能指标你需要知道这些
    写给大忙人看的计算机网络参考模型
    PHP基础编程之鬼斧神工的正则表达式-正则表达式基本语法+简单实例
  • 原文地址:https://www.cnblogs.com/ezrealiu/p/cross-compile-from-0-to-raspberry.html
Copyright © 2011-2022 走看看