当前位置:首页 » 编程软件 » 树莓派编译内核

树莓派编译内核

发布时间: 2022-09-19 02:30:09

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

⑵ 如何用miniom调试树莓派内核

sudo apt-get install minicom

ls /dev/tty*
通常串口设备名为/dev/ttyUSB0

sudo minicom -s
选择Serial port setup按a设置为/dev/ttyUSB0后回车
最后选择Save setup as dfl保存并Exit及回车

传输文件
第二步是传输文件。首先得确认linux上安装了modem协议,如果没有,请输入sudo apt-get install lrzsz安装,不然通过串口用xmodem协议烧写树莓派时会提示错误。

用mimicom登录到树莓派后,按CTTL+A,然后输入O,可以进入之前的minicom配置界面:

输入z可以获得所有关于minicom的帮助:

下面就来传输一个文件:
CTRL+A之后按O,选择第一个Filenames and paths一下传输路径:

保存配置后,再选择S选项传输文件:

接收文件也是一样的道理,只不过选项是R(r)。

⑶ 树莓派编译c文件出现问题

编译的时候在最后加上 -lwiringpi

⑷ 如何在树莓派上安装 QT 编译器

首先我需要的开发工具Qt Creator 先从终端单独下载:

sudo apt-get install qt4-dev-tools

之后安装QT CREATOR 编译器:

sudo apt-get install qtcreator

之后继续安装编译环境:

sudo apt-get install gcc

sudo apt-get install xterm

sudo apt-get install git-core

sudo apt-get install subversion

该版本基于Qt Creator 2.5 with Qt 4.8.1 32 bit

存在问题:没有工具链。
我们只能编译远程嵌入式设备,这不是这里的情况,因为我们是PI,而不是远程访问它。

我添加了一个gcc工具链
工具/选项>构建和运行>标签工具链>按钮添加 选择GCC

然后设置编译器路径:/usr/bin/arm - linux - gnueabihf - gcc - 4.6

调试器:/usr/bin/gdb

Mkspec:默认

Qt Creator似乎发现我们将部署在一个遥远的目标。
为了解决这个问题:

去帮助>菜单插件

取消设备支持远程linux >

重启Qt的创造者

去工具>选项选项卡> >构建和运行> Qt版本添加“/ usr / bin / qmake-qt4”

然后,它将显示为一个桌面项目在项目向导,而不是嵌入。

⑸ 树莓派4B刷入OpenHarmony 3.0,目前可显示与触控

11 月 24 日消息,鸿蒙技术社区昨天发文,表示最近有人在树莓派 4B 上面成功装入并且运行 OpenHarmony 3.0 (下面简称 OHOS 3.0)操作系统。

根据介绍,本次刷机使用了树莓派 linux rpi-5.10.y 内核,在此基础上编译 OHOS 3.0 系统,然后补齐文件与功能。整体来说算是比较简单粗暴的,感兴趣的话可以参考这篇内容。

不过目前的系统并不完整,只能实现显示与触控两个比较基础的功能。

本次刷机使用的树莓派 4B 采用了一颗 28nm 制程的博通 BCM2711 处理器,拥有四个 1.5GHz A72 CPU 核心,GPU 频率为 500MHz。

可以选配最高 4GB LPDDR4 内存,并且提供了千兆网卡、USB 3.0 和 microHDMI 接口,支持蓝牙 5.0。

最后介绍一下,OpenHarmony 是华为将鸿蒙系统的基础能力捐献给开放原子开源基金会之后,由后者整合其他参与者贡献的代码形成的开源项目。

目前它已经向大量三方厂商开放,例如前几天好叭 科技 就基于 OpenHarmony 推出了用于智能手表的好叭 OS 系统。

⑹ 如何为树莓派2烧写一个linux内核

制作linux liveCD或安装u盘吗?使用uui程序将镜像写入u盘就行。

⑺ 如何为树莓派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分区下面。

⑻ 树莓派 编译驱动 需要编译内核吗

如果不是交叉编译的的话,需要下载和系统版本相同的Linux内核源代码;如果是交叉编译的话,还需要安装交叉编译工具;详见http://blog.csdn.net/hcx25909/article/details/16860055

⑼ 在鸿蒙(OHOS3.0)编译框架中添加树莓派4B

之前在树莓派4b上点亮了OHOS3.0,不过内核是用tftp拉取的,根文件系统挂在了NFS上,拔了网线就无法启动。当然这么操作只是为了方便调试,而最终需要的是一个可以烧录到TF卡上的img镜像文件。这就需要将所有调试好的内容添加到OHOS3.0的编译框架,本以为是很简单的事情,好家伙,整了这么久,感觉添加编译框架比移植本身更复杂。于是我整理了添加树莓派单板到编译框架的内容,希望对各位有所帮助,为大家避坑。

主要参考 hisilicon build组件仓,添加一个procts编译组件,这个组件是在产品配置文件中指定的。比如

proctdefinecommonproctsRPI4B.json

其他部分参考Hi3516,但是其中2条,指定单板组件路径,并添加组件。如果删除这两条,将不能编译内核,只生成OHOS的文件系统。

接下来在device目录下,新建一个raspberrypi编译组件文件夹,并添加 ohos.build 文件。和前面产品配置文件中的设置对应起来了。

deviceraspberrypibuildohos.build

新建 deviceraspberrypibuildBUILD.gn 当然每个厂家不可能只有1个板子,如果有其他单板就在这里指定,比如树莓派2B、3B等

既然前面指定了rpi4b的编译配置组件,那么就在 deviceraspberrypi 新建一个 rpi4b 的目录,可以参考 hi3516dv300 build组件

deviceraspberrypirpi4bBUILD.gn

至此一个rpi4b build组件就添加到OHOS3.0的编译框架了,之后相关内容添加到这个文件夹下就可以了。

接下来分析下目前移植了树莓派4B的哪些内容,如何将这些内容编译进OHOS3.0。

关于补丁可以参考 Patch组件,可以得知内核编译由kernel.mk来执行

kernellinuxbuildkernel.mk

所以补丁文件需要放到正确的路径下,以正确的名字命名就可以patch到内核。

hdf.patch补丁文件,现在还没有移植HDF相关内容,所以可以先使用Hi3516的

rpi4b.patch补丁文件,使用树莓派的官方镜像,https://github.com/raspberrypi/linux

kernellinuxconfiglinux-5.10archarmconfigsrpi4b_standard_defconfig

内核配置文件目前已知的需要开启下面内容,但是肯定不止这些,以后会继续更新

Pi4的GPU是VideoCore VI支持OpenGL ES 3.2,而Pi3的GPU是VideoCore IV支持OpenGL ES 2.0。VideoCore IV 驱动程序是 VC4,VideoCore VI 驱动程序的 V3D。内核已经提供驱动,参考rpi4b_standard_defconfig将驱动直接编入到内核。

同时需要在config.txt中开启设置

OHOS中修改weston的配置文件,指定显示驱动

systemetcweston.ini

具体思路就是先查找设备号,根据设备号找到驱动程序。

前面内核配置的时候rpi4b_standard_defconfig中已经将触摸驱动编入内核,所以后面不需要在init加载模块了,修改下eudev的配置文件即可。

third_partyeudevrules.d ouchscreen.rules

正常情况下内核是由uboot进行引导的,而且OHOS默认生成uImage。但是树莓派自带BootLoader,虽然可以先用树莓派自带的BootLoader启动uboot,再用uboot加载uImage,但是这样会比较麻烦,而且会增加启动时间。不过目前 zImage是写死在kernel.mk中的,没办法改下编译脚本把。

kernellinuxbuildkernel.mk 将 uImage 改为 zImage moles dtbs

kernellinuxbuildbuild_kernel.sh

kernellinuxbuildBUILD.gn

kernellinuxbuildkernel_mole_build.sh

这里内核编译会依赖proct_path="vendor/$proct_company/$proct_name"下的hdf.hcs文件,得先新建一个应付下,不然会报下面这个错误。

ninja: error: '../../vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs', needed by 'gen/drivers/adapter/uhdf2/hcs/hdf_default.hcb', missing and no known rule to make it

新建:vendor/raspberrypi/RPI4B/hdf_config/uhdf/hdf.hcs

对于镜像烧录,Hi3516会将uImage、system.img、vendor.img等镜像烧写到emmc,但是树莓派使用TF卡启动,所以需要对TF卡进行分区,然后复制对应的内容到各个分区。首先制作树莓派boot目录,这个用来目录存放树莓派设备树、config.txt、cmdline.txt、内核镜像等信息。写一个简单的mkboot.py脚本来实现这个功能,位置在码仓.py将会生成boot.img。

为了方便烧录,需要将boot.img、system.img、updater.img、vendor.img、userdata.img合并成一个rpi4b.img。还是写一个简单的脚本来处理这个步骤.py。

不过有个问题,主分区只支持4个,所以updater.img暂时先不合并了,这个问题等以后再来处理。

最后将会得到一个rpi4b.img的镜像文件,将这个文件烧录到SD卡就可以了。

Linux:可以使用dd命令

windows:使用Win32 Disk Imager工具烧录即可。

到这里总算是跑通了一个完整的添加新单板的流程,只不过目前只适配了显示和触摸。接下来打算尝试HDF或者distributed部分。

热点内容
百度云解压无法预览 发布:2025-04-16 01:46:49 浏览:368
hsqldb数据库 发布:2025-04-16 01:46:45 浏览:727
苹果xs和安卓5哪个好 发布:2025-04-16 01:46:12 浏览:903
萤石c5c怎么配置有线连接 发布:2025-04-16 01:39:16 浏览:455
潮主解压码 发布:2025-04-16 01:26:20 浏览:609
license文件夹 发布:2025-04-16 01:16:26 浏览:253
怎么给笔记本提升配置 发布:2025-04-16 01:15:46 浏览:186
java接口抽象 发布:2025-04-16 01:15:03 浏览:196
虚拟云服务器s 发布:2025-04-16 00:59:54 浏览:276
安卓手机如何同屏到ipad 发布:2025-04-16 00:39:57 浏览:352