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

树莓派内核编译

发布时间: 2022-01-08 02:35:30

1. 树莓派运行wine时出现错误代码c0000018

树莓派3B是卡片电脑,内存为1GB,一般运行linux。Linux两种主流的内存分配方法2G/2G和3G/1G,树莓派系统后期优化性能,使用2G/2G。(注:树莓派内核3.x仍旧采用3G/1G)
Wine提供Windows API,Winehq官网提供的Wine都是兼容3G/1G的Linux内核。这导致Wine在树莓派3B上运行时会出现内存地址映射,用户数据空间地址映射失败。这些错误都是wine-preload发出的。
我提供两种解决方案。
方法一,编译新的Linux内核:(本地编译,在树莓派上操作)
1.更新软件包:sudo apt-get update
2.安装git(已经有的可以跳过):sudo apt-get install git
2.同步内核源码:git clone --depth=1 https://github.com/raspberrypi/linux (注:此代码只同步.git项目仓库中的master分支)
然后,你可以睡一觉。真的,挂油管也没用,下载很慢的。
3.生成配置文件:先进入clone下来的文件夹,然后执行 make bcm2709_defconfig 会在该目录下生成.config配置文件。
4.执行命令: KERNEL=kernel7
5.修改.config文件:sudo nano .config查找# CONFIG_VMSPLIT_3G is not set 将其改为CONFIG_VMSPLIT_3G=y 再查找 CONFIG_VMSPLIT_2G=y 将其改为 # CONFIG_VMSPLIT_2G is not set 保存
6.执行命令:make -j4 zImage moles dtbs 此时你又可以再睡一觉,大约需要5个小时,注意散热。
7.安装:sudo make moles_install
sudo scripts/mkknlimg arch/arm/boot/zImage /boot/kernel3g.img
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
8.执行reboot重启
方法二,旧版本的wine是没有预加载器,可能使用旧版本就不会报错了。

2. 可以在树莓派上做开发吗装个Eclipse for Linux在上面做Android开发能拉得起吗谁试过

如果你能忍受运行效率,是可以的,即便是2代,也只有1G内存,你自己衡量。

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

4. 树莓派内核 编译好怎么弄sd卡上

将内核编译好,自己写了一个hello world的驱动程序,弄到了BBB上insmod,于是出现了今天的主角---Invaild mole format 这种情况的原因一般是编译驱动时用的内核和开发板上的内核版本不一样。参见http://blog.csdn.net/zhenxisuiyuan/article/de...

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

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

6. 如何使用树莓派去进行linux嵌入式开发

树莓派更像是一个玩具~我们可以通过Python快速构建一个自己的系统,就像乐高玩具,所有的部件都有了,已经封装的很完善,重点就是看看我们可以组装出什么新奇好玩的东西~这很cool,很geek~有本书叫玩转树莓派,题主可以去看看~但是其中涉及到的嵌入式知识其实并不多~嵌入式是个庞大的系统,深入学习还是需要正规开发板和大量的软件,操作系统以及硬件知识,当然最重要的是去实践勒~去编译uboot,制作文件系统,学习内核框架~慢慢的才可以认知到系统的本质,做linux还是从头开始吧。

7. 能不能告诉我树莓派与其他的Linux开发板比如正点原子的alpha开发板的区别呢

对于开发板,我玩过很多,感觉没什么太大区别,对于初学者,资料要详细,一般都是交怎么玩,只要学会怎么烧写uboot、内核,怎么编译uboot、内核,怎么搭建开发环境,一般会给交叉编译工具链,uboot Linux内核 qt库等源码包,他们都是编译过得,按照步骤来,都完成了,剩下的路就要看自己的了,如果是应用程序开发,不用太管硬件和驱动方向,和Windows上面编程差不多,如果你是玩硬件的,学学linux驱动开发,linux系统移植,这些方面手册一般都没有,需要论坛上面找或者相关书籍,我用过ARM9(天嵌的),A8(友善之臂的),H3(友善的),感觉下来,基础资料都差不多,都能教你基本操作,具体选什么方向,还得看自己

8. 树莓派make menuconfig怎么修改

你这个是编译驱动,应该下载对应Linux内核的头文件才能编译通过

9. 树莓派3 怎么cp文件/boot

内核编译完向/tftpboot/目录拷贝映像文件mbootpImage失败应该没配置tftp服务器存/tftpboot/目录
需要tftp服务器忽略拷贝内核映像文件命令掉:
vim arch/arm/boot/Makefile # 假设CPUarm
掉类似 cp ... mbootpImage /tftp 命令

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

热点内容
笔记本什么配置能流畅运行cf 发布:2024-09-20 00:14:19 浏览:951
实测华为编译器 发布:2024-09-19 23:50:52 浏览:821
linux汇总 发布:2024-09-19 23:46:39 浏览:452
阿里云服务器环境搭建教程 发布:2024-09-19 23:21:58 浏览:837
黄色文件夹图标 发布:2024-09-19 23:19:22 浏览:684
mysql数据库导出导入 发布:2024-09-19 23:00:47 浏览:183
lua脚本精灵 发布:2024-09-19 23:00:41 浏览:659
任务栏文件夹图标 发布:2024-09-19 22:54:25 浏览:101
解压来一波 发布:2024-09-19 22:46:36 浏览:933
mysqlpythonubuntu 发布:2024-09-19 22:46:27 浏览:501