当前位置:首页 » 编程软件 » 树莓派的交叉编译环境

树莓派的交叉编译环境

发布时间: 2023-01-03 01:27:16

㈠ 树莓派上使用rust:交叉编译

树莓派Zero 用的 BCM2835 是 armv6 架构的。 arm-linux-gnueabihf-gcc

需要给 cargo 的配置文件里面指定 arm-unknown-linux-gnueabihf 的 linker.
默认配置一般在 ~/.cargo/config 这里, 没有就创一个.

来告诉 cargo 在编译到 arm-unknown-linux-gnueabihf target 的时候用之前安装的 gcc 做 linker, 不然会默认用 cc 做 linker, 那这当然是不行的.

用scp传到树莓派上就可以了

用 cross ,非常方便,强烈推荐!!!

㈡ 一 . 树莓派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卡片电脑,说实在的,看起来风火轮附带板子资料挺多,但是其真正写的资料可没用心做,实在不是一个榜样,在该开发板上做非核心开发,是可以的,但是做研发,还是需要做考量。

烧写成功后,打印的内容如下,作为日志信息,留作以后分析:

㈢ 树莓派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设备文件是否已经加载就绪

㈣ 树莓派 编译 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下

㈤ QT交叉编译环境

将安装全套的Qt开发环境,可以在PC端进行qt开发。

Ubuntu14.04的Qt版本为5.2.1,16.04的Qt版本为5.5.1,高版本Qt库可以向下兼容运行低版本工具链编译的程序,因此这里选用5.2.1版本作为编译工具链。

进入Qt工程目录中,目录下会有个<工程名>.pro文件,如果目录中存在<工程名>.pro.user文件,是之前qtcreator生成的配置文件,请先删除。然后运行:

即可完成编译,编译好的程序可以放到树莓派上直接运行。

另外,工程的配置可以通过修改 工程名.pro文件,例如添加链接库,只需要在文件中添加如下选项:

添加c99支持:QMAKE_CFLAGS += -std=c99

㈥ 怎么替换raspberry的toolchain

我们有两个选择,第一是直接在 Raspberry Pi 上编译。第二是先在我们的个人电脑用 Raspberry Pi 的 toolchain 编译完成后,再上传到 Pi。
这里简介如何在个人电脑安装 Raspberry Pi 的 toolchain,以在 ubuntu 上安装 gcc-linaro-arm-linux-gnueabihf-raspbian 为例。
1. 在个人电脑安装必要的套件。
sosorry@ubuntu:~$ sudo apt-get install make git-core ncurses-dev

2. 下载最新版的 toolchain。
sosorry@ubuntu:~$ mkdir rpi
sosorry$ubuntu:~$ cd rpi
sosorry@ubuntu:~/rpi$ git clone https://github.com/raspberrypi/tools.git
remote: Reusing existing pack: 17273, done.
remote: Total 17273 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (17273/17273), 311.52 MiB | 343 KiB/s, done.
Resolving deltas: 100% (11698/11698), done.
Checking out files: 100% (15860/15860), done.

3. 安装 toolchain。安装方法是将 gcc-linaro-arm-linux-gnueabihf-raspbian 加到环境变数里。
sosorry@ubuntu:~/rpi$ vi ~/.bashrc
export PATH=$PATH:/home/sosorry/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin # add this line at the end of file

4. 测试。先开启一个新的终端机,输入 arm 后连续按两次 tab 键,如果跑出来一堆像下面的提示表示安装成功。
arm-linux-gnueabihf-addr2line arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gfortran arm-linux-gnueabihf-objmp
arm-linux-gnueabihf-ar arm-linux-gnueabihf-gcc-4.7.2 arm-linux-gnueabihf-gprof arm-linux-gnueabihf-pkg-config
arm-linux-gnueabihf-as arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-ld arm-linux-gnueabihf-pkg-config-real
arm-linux-gnueabihf-c++ arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-ld.bfd arm-linux-gnueabihf-ranlib
arm-linux-gnueabihf-c++filt arm-linux-gnueabihf-gcc-ranlib arm-linux-gnueabihf-ldd arm-linux-gnueabihf-readelf
arm-linux-gnueabihf-cpp arm-linux-gnueabihf-gcov arm-linux-gnueabihf-ld.gold arm-linux-gnueabihf-size
arm-linux-gnueabihf-elfedit arm-linux-gnueabihf-gdb arm-linux-gnueabihf-nm arm-linux-gnueabihf-strings
arm-linux-gnueabihf-g++ arm-linux-gnueabihf-gdbtui arm-linux-gnueabihf-obj arm-linux-gnueabihf-strip

让我们实际写一个 hello.c 并编译它吧。
sosorry@ubuntu:~/rpi$ vi hello.c
#include <stdio.h>
int main()
{
printf("hello, world\n");
return 0;
}

用 Raspberry Pi 的 toolchain 编译 hello.c。这一步骤称为交叉编译(cross-compiling)。
sosorry@ubuntu:~/rpi$ arm-linux-gnueabihf-gcc hello.c -o hello-arm

让我们看看档案的资讯,可以看到该档案是 ARM 的格式。
sosorry@ubuntu:~/rpi$ file hello-arm
hello-arm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, not stripped

如果我们在 x86 环境下试着执行会发现无法成功。
sosorry@ubuntu:~/rpi$ ./hello-arm
bash: ./hello-arm: cannot execute binary file

我们把 hello-arm 上传到我们的 Pi,假设 IP 为 192.168.1.2。
sosorry@ubuntu:~/rpi$ scp hello-arm [email protected]:/home/pi
[email protected]'s password:
hello-arm 100% 5447 5.3KB/s 00:00

在我们的 Pi 上执行,看看结果吧。
pi@raspberrypi:~$ ./hello-arm
hello, world

㈦ 在Ubuntu下安装树莓派的交叉编译环境,有试过吗

开始做嵌入式开发的朋友都在前期配置交叉编译工具而烦恼,网上的交叉编译工具的教程很多,但是要么很繁琐要么就是资料不全。 那么怎么样快速而又简单地配置交叉编译工具呢,我们现在就用ubuntu里面的apt-get工具快速安装交叉编译工具。 1...

㈧ 如何安装树莓派虚拟机

你的电脑是和树莓派相同的 ARM 架构
你使用更慢的 qemu 模拟器来安装
建议(任选一):
嫌安装慢,我猜你是在编译安装:
找预编译包。不知道你的树莓派装的什么系统,以及你要装什么软件。常见软件+操作系统组合都可以从软件源里直接安装的
找个适合树莓派的交叉编译工具链在电脑上编译了给树莓派用。推荐使用类 UNIX 系统,不推荐使用虚拟机因为它会慢一些

㈨ Step by Step带你玩转DuerOS - Python DuerOS SDK[树莓派平台] (3)

在前一个帖子中,给大家带来了Python版本的DuerOS SDK。但DuerOS的测试环境却声明为Ubuntu,相信很多同学会疑惑:Python不是跨平台的吗?为什么要限制测试平台呢?真实的情况呢是这样的:
首先,Python跨平台这个没毛病。但问题在于DuerOS运行所需要的依赖环境确实跟平台相关的。比如DuerOS是基于Http2 ALPN的,但树莓派官方镜像的OpenSSL并不支持,而对应的Python库依赖于OpenSSL。为了在树莓派平台上支持Python的DuerOS SDK,专门交叉编译了OpenSSL和Python。
所以,这里限制了平台主要是方便同学能将DuerOS快速的Run起来。当然,如果想在MacOS、Windows平台运行DuerOS Python SDK也是没问题的,只是在依赖配置方面可能要多花些时间。
好了,废话不多说,直接上干货:

按照个人版使用说明完成如下3步( http://open.er..com/doc/device-devkit/intro_markdown )

hyper库用来支持http2.0 client, pyaudio用来支持录音,tornado用来完成oauth认证。

直接运行使用默认的client_id和client_secret,开发者可以替换成自己在DuerOS开放平台申请的client_id和client_secret,进而实现在控制台自定义的配置属性。

其中,
需要在开放平台中“安全设置”的“授权回调页",设置成

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:593
制作脚本网站 发布:2025-10-20 08:17:34 浏览:888
python中的init方法 发布:2025-10-20 08:17:33 浏览:581
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:765
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:684
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1013
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:255
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:114
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:806
python股票数据获取 发布:2025-10-20 07:39:44 浏览:713