㈠ 树莓派 编译 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下
㈡ 如何为树莓派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分区下面。
㈢ 树莓派python 有哪些编译器
编译器还是编辑器?
编译器估计都是 python,编辑器有nano,vi之类的。也可以使用sublime通过sftp上传。这样在windows下写代码。Windows下的编辑器那就海了。
㈣ 如何为树莓派安装Ubuntu Core并在Snap系统中进行编译
准备
下载系统:
在网站Raspberry Pi/ubuntu官网下载对应版本的镜像压缩文件
由于我用的是树莓派3,因此选择已经编译好的镜像文件 ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz
实验硬件:
Raspberry Pi 3、7寸液晶触摸屏或者液晶显示器、TF卡(microSD)
安装过程
将SD卡放入USB读卡器,并插入到电脑中,识别为sdb,并用 fdisk 命令清除SD卡中的原有内容
在linux系统中运行命令 $ xzcat ubuntu.img.xz | sudo dd of=/dev/sdb
至此已经完成基本系统的安装,卸载SD卡,将SD卡插入树莓派的插槽中,接上电源即可使用SSH远程登录树莓派,默认的用户名和密码见上面的官网
远程登录有点麻烦,为了能够从接上显示器或者触摸屏后直接使用,需要修改文件 config.txt(位于SD卡的第一个分区的boot文件夹下面),加入下面内容; 保存 config.txt文件,接入显示器或者触摸屏即可,然后上电启动系统(注意:如果启动过程中,遇到停止情况,尝试给树莓派插上网线后再启动)
下面的内容适用于7寸1024*600的显示器和触摸屏
disable_overscan=1
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=16
config_hdmi_boost=4
hdmi_ignore_edid=0xa5000080
如果是触摸屏根据实际的硬件参数更改hdmi有关参数可以使显示效果更加完善,如添加以下配置
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0
㈤ 如何在树莓派liunx系统下重新编译桌面版liu
首先准备好arm-linux-gcc的包,比如说是arm-linux-gcc-fh.tar.gz。 首先是解压缩,路径可以随便放,最好放在/opt这个目录下面。 使用如下命令: tar xvzf arm-linux-gcc-fh.tar.gz(空格)C(空格/(注意这之间的空格)。 然后就解压缩好了,接下来就是要修改一下配置文件了。 切换到root权限,输入如下命令: vi /etc/bash.bashrc 在最后面一行加入如下语句: export PATH=$PATH:/opt/***(***表示你的arm-linux-gcc这个可执行文件的路径); 最后,重启一下配置文件,使用如下命令: source /etc/bash.bashrc,
㈥ 如何编译armlinux的go
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安装。
安装完成后可以输入gcc--version命令验证是否成功安装。
2、获取golang源代码
2.1直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:/golang/go1.4.1.src.tar.gz
2.2使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1首先确认ARM平台上已经安装了git工具,可以使用git--version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:download/linux
2.2.2克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
gitclone/go
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
gitclone/golang/go.git
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆==
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cdgo命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在汪敏指已经有新的代码提交上去了,最新的代码可能不是最稳定的:
gitcheckoutgo1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本困配运行时的父目录作为GOROOT的值。为了保险起见,可以直接设拿芹置为go目录的路径。
3.2GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
exportGOROOT=你的go目录路径
exportGOOS=linux
exportGOARCH=arm
编辑完后保存,执行source~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存后同样执行source~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行goversion应该就能看到当前golang的版本信息,表示编译安装成功。
㈦ 树莓派b+ gcc lwiringPi 编译错误 gpio控制led
新建一个名为led.py的程序,程序的具体内容如下:
123456789101112131415 #!/usr/bin/env python# -*- coding: utf-8 -*- import RPi.GPIO as GPIOimport time GPIO.setmode(GPIO.BOARD)# need to set up every channel which are using as an input or an outputGPIO.setup(11, GPIO.OUT) while True: GPIO.output(11, GPIO.HIGH) time.sleep(1) GPIO.output(11, GPIO.LOW) time.sleep(1)
使用cd命令进入文件所在目录,然后输入指令
1 sudo python led.py
使用这种方法实现LED闪烁的最容易的方法,网上的教程也非常多,是入门树莓派的好方法。
2.2 wiringPi
新建一个名为blink.c的程序,程序内容如下
1234567891011 #include <wiringPi.h>main (){ wiringPiSetup () ; pinMode (0, OUTPUT) ; for (;;) { digitalWrite (0, HIGH) ; delay (500) ; digitalWrite (0, LOW) ; delay (500) ; }}
使用cd命令进入所在文件目录,然后输入以下命令生成可执行文件blink
1 gcc -Wall -o blink blink.c -lwiringPi