buildroot编译文件系统
㈠ buildroot构建根文件系统
Buildroot是linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。本文使用buildroot为freescale imx287 开发板制作根文件系统。
参考 https://www.cnblogs.com/kele-dad/p/8231434.html
Buildroot本身提供构建流程的框架,开发者按照格式写脚本,提供必要的构建细节,配置整个系统,最后自动构建出你的系统。
1.主板外观及基本接口分布
2.硬件资源
查看buildroot包含的开发板配置
选择imx28默认配置
编译完成,在 output 目录下可以得到生成的文件系统和镜像文件
在images目录下有烧录镜像文件
1)增加/dev/null 文件
Buildroot 编译后,生成的文件系统中通常没有/dev/null 文件,而系统启动通常是需要的,可以自行创建:
2)增加/dev/console文件
对应于System configuration-“Run a gretty after root”选择的调试端口
3)再次编译builtroot
将生成的rootfs.tar.bz2文件或rootfs.ubifs文件烧录到处理器,进入系统后即可以通过shell命令操作,已有的shell命令参考output/bin/目录下的链接文件。
开机成功进入根文件系统
因为在System configuration中把root passwd设置为root,所以用户名和密码都是root。
㈡ buildroot成功后如何编译Qt应用程序
首先得把我们在X86机上调好的程序进行交叉编译,如果在X86上都没有通过的话。。那就不用交叉编译了,(肯定是通不过的),还是到正题吧,设置好环境变量,我们用以用echo 来查看环境变量,echo $TMAKEPATH ,如果返回的不是.../qws/linux-arm-g++ 的字符的话,我们一定得从新设置,
export TMAKEPATH=/tmake 的安装路径/qws/linux-arm-g++ ,同时QTDIR一定得要指定QTE的安装路径,设置过程如下:
export QTDIR=...../qt-2.3.7
以上环境设置好后,我们可以使用tmake来生成Makefile,注意这里我们是用tmake,而不是用qmake(注意),tmake工具在tmake包里面。 具体做法,我们可以在命令行下打:
tmake -o Makefile 工程名.pro
这样我们就新生成了一个Makefile文件,下一步,我们要打开这个文件,做一些小的修改
1: 将LINK=arm-linux-gcc 改为:LINK=arm-linux-g++
2:将LIBS=$(SUBLIBS) -L$(QTDIR)/lib -lm -lqte这句话改为:
LIBS=$(SUBLIBS) -L/opt/gcc-2.3.2-glibc-3.3.2/lib -L$(QTDIR)/lib -lm -lqte
加上你的交叉编译的库。
最后我们可以make了,一个可以在您的板子上可以运行的二进制文件产生了。linux
㈢ 使用buildroot编译arm架构的linux内核,使其支持usb摄像头,并使用qemu虚拟运行
#没有吧ext* 和 VFS编进去吧
cd/usr/src/linux
makemenuconfig
#选择ext4和VFS,在FileSystem里,很好找
make;makemole_install;makeinstall
㈣ buildroot如何来建立linux下交叉编译
。。。不用工具,手动编译的好不好?
我手动编译arm-linux-gcc4.5.1成功,一个用的是glib,一个用的是newlib,给你个脚本参考吧。
注意各个软件包都是配套的。
㈤ 如何在TI的AM335x上面使用SGX加速的有OpenGL支持的QT
TI官方的指南请看这里,因为发布时间的关系,这里面已经有很多和最新的软件包不匹配的地方。经过我的努力,我把这个指南中间复杂的部分给做到Buildroot里面去了,基本上实现了“傻瓜式”编译,可通过菜单选择,简单地实现QT下使用SGX硬件加速的OpenGL。
由于本文还涉及到了SGX硬件驱动程序模块的编译,所以看上去还会比较长,但这部分内容没有什么难度。转载请注明来自EE小站,[email protected]。
简单的梳理下:
前提是U-boot、内核、文件系统都搞利索了,板子能启动了
TI的Wiki提供了U-boot和内核的说明,地址点这里。
TI的SDK里提供了制作好的文件系统,但是太庞大了,可以下载Buildroot自己做一个。
下载我做的Buildroot补丁,和TI图形SDK
补丁的地址在这里。
这个补丁是我给Buildroot 2013.05做的,与之相配的TI图形SDK在这里,下“Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin”就可以。
应该2013.05之后一段时间Buildroot版本都可以使用这个补丁。
用SDK编译内核模块
可以参照TI的指南,地址点这里。也可以直接看本文。
用Buildroot制作根文件系统
具体过程如下:
假设Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin下载到了/home/c,那么
~ # cd /home/c
/home/c # chmod 744 ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
/home/c # ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
会出来一个交互的安装界面,安装的时候选择“8.x”那项(因为处理器是AM335x),并且把SDK安装到,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01
安装完后,打开/home/c/core335x_bsp/graphics_sdk_4_10_00_01/Rules.make
假设你的ARM交叉编译器安装在/usr/local/arm/4.7.3-2,前缀是arm-none-linux-gnueabi-,你的内核在/home/c/core335x_bsp/linux-3.2.21,那么就Rules.make中的内容修改成这样
# Set home area (ex /home/user/)
HOME=/home/c/core335x_bsp
# Set Toolchain path (ex /home/user/toolchain/arago-2011.09/armv7a)
CSTOOL_DIR=/usr/local/arm/4.7.3-2
# Set Tool chain prefix (ex arm-arago-linux-gnueabi- )
CSTOOL_PREFIX=arm-none-linux-gnueabi-
# Set kernel installation path ( ex /home/user/linux-04.00.01.13 )
KERNEL_INSTALL_DIR=/home/c/core335x_bsp/linux-3.2.21
# Set Target filesystem path ( ex /home/user/targetfs )
TARGETFS_INSTALL_DIR=$(DESTDIR)
# Set installation folder
GRAPHICS_INSTALL_DIR=$(HOME)/graphics_sdk_4_10_00_01
然后就可以编译了
/home/c # cd core335x_bsp/graphics_sdk_4_10_00_01
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x
假设你的根文件系统在/home/c/nfsroot,那么请确保有/home/c/nfsroot/etc和/home/c/nfsroot/etc/init.d这两个目录,否则安装时候会出错,接下来安装
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x install
这样,SDK库就编译好了,接下来把内核的模块安装到文件系统里,假设内核在/home/c/core335x_bsp/linux-3.2.21,已经配置并且编译好了
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # cd /home/c/core335x_bsp/linux-3.2.21
/home/c/core335x_bsp/linux-3.2.21 # make ARCH=arm moles_install INSTALL_MOD_PATH=/home/c/nfsroot
然后需要把内核驱动模块增加到依赖表中,位置在/home/c/nfsroot/lib/moles/3.2.21/kernel/drivers/moles.dep,在里面增加这两行:
extra/omaplfb.ko:
extra/pvrsrvkm.ko:
接下来就可以用Buildroot制作文件系统了,假设Buildroot的压缩包buildroot-2013.05.tar.bz2下载到了/home/c/core335x_bsp,我做的Buildroot补丁buildroot-am335x.patch下载到了/home/c/core335x_bsp
/home/c/core335x_bsp/linux-3.2.21 # cd /home/c/core335x_bsp
/home/c/core335x_bsp # tar xf buildroot-2013.05.tar.bz2
/home/c/core335x_bsp # cp buildroot-am335x.patch buildroot-2013.05
/home/c/core335x_bsp # cd buildroot-2013.05
/home/c/core335x_bsp/buildroot-2013.05 # patch -p1 < buildroot-am335x.patch
/home/c/core335x_bsp/buildroot-2013.05 # make menuconfig
然后就可以进行配置,QT在Package Selection for the target > Graphic libraries and applications (graphic/text) > Qt,AM335x的OpenGL支持设置选项在Qt下的Graphics drivers,必须先选中Linux Framebuffer,会出现AM335x SGX OpenGL Dirver,选中并在下方输入图形SDK的路径,例如/home/c/core335x_bsp/graphics_sdk_4_10_00_01,其他的选项按需选择即可,接下来就可以编译
/home/c/core335x_bsp/buildroot-2013.05 # make
编译过程会自动下载所需的各种软件包,如果没有选中Qt下的Approve free license,中间会提示选择授权类型,编译完成之后,将映像释放到根文件系统里
/home/c/core335x_bsp/buildroot-2013.05 # tar xf output/image/rootfs.tar -C /home/c/nfsroot
之后,打开/home/c/nfsroot/etc/init.d/powervr.ini,把这里面改成
[default]
WindowSystem=libpvrQWSWSEGL.so
将/home/c/nfsroot下的文件系统挂载到目标板上,启动以后,输入用户名root登陆,运行
# /etc/init.d/335x-demo
# mv /etc/init.d/rc.pvr /etc/init.d/S99powervr
至此,这个文件系统就支持QT使用SGX硬件加速的OpenGL了。
如果你在配置QT的时候选择了Compile and install demos and examples (with code),那么你可以找到/home/c/core335x_bsp/buildroot-2013.05/output/build/qt-4.8.4/examples/opengl/hellogl_es2/hellogl_es2这个文件,把它拷贝到根文件系统里,运行
# hellogl_es2 -qws -display powervr
可以检验是否可以正常工作。
需要说明一下,为了让QT支持OpenGL,AM335x图形处理器的厂家(不是TI,是Imagination Technologies)提供的插件程序让QT的动态链接库禁止鼠标光标显示。现象就是,虽然看不到鼠标,但是还可以用。这个目前还没有解决方法,因为貌似图形处理器是直接操作Frame Buffer的,有鼠标估计程序不好写,性能也会下降吧。如果你要用鼠标的话,需要自己写个显示鼠标光标的程序。
转载,仅供参考,祝你愉快,满意请采纳。
㈥ buildroot制作文件系统时,如何将output/target/lib 中的*.so库文件文件类型设置为 not stripped
cygwin下编译buildroot时,估计是最后编译生成并安装对应的mpfr的库文件:
cygmpfr-4.dll
然后拷贝到了:
buildroot的output/host/usr/bin目录:
/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin
然后由于后面./configure配置libtool时,传入的PATH中,
/home/CLi/develop/buildroot/buildroot-2013.05/output/host/usr/bin
㈦ buildroot 添加一个文件夹单独编译
你好,指定压缩包内核做头文件,再指定压缩包内核做编译源码,buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样,通过buildroot menuconfig配置,编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包含boot、kernel、rootfs以及rootfs中的各种库和应用程序)。
㈧ am335x能使用19.2M的时钟做uboot SPL USBETH引导吗
TI官指南请看发布间关系面已经新软件包匹配经我努力我指南间复杂部给做Buildroot面基本实现傻瓜式编译通菜单选择简单实现QT使用SGX硬件加速OpenGL
由于本文涉及SGX硬件驱程序模块编译所看比较部内容没难度转载请注明自EE站[email protected]
简单梳理:
前提U-boot、内核、文件系统都搞利索板能启
TIWiki提供U-boot内核说明址点
TISDK提供制作文件系统太庞载Buildroot自做
载我做Buildroot补丁TI图形SDK
补丁址
补丁我给Buildroot 2013.05做与相配TI图形SDKGraphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
应该2013.05段间Buildroot版本都使用补丁
用SDK编译内核模块
参照TI指南址点直接看本文
用Buildroot制作根文件系统
具体程:
假设Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin载/home/c
~ # cd /home/c
/home/c # chmod 744 ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
/home/c # ./Graphics_SDK_setuplinux_4_10_00_01_BinOnly.bin
交互安装界面安装候选择8.x项(处理器AM335x)并且SDK安装例/home/c/core335x_bsp/graphics_sdk_4_10_00_01
安装完打/home/c/core335x_bsp/graphics_sdk_4_10_00_01/Rules.make
假设ARM交叉编译器安装/usr/local/arm/4.7.3-2前缀arm-none-linux-gnueabi-内核/home/c/core335x_bsp/linux-3.2.21Rules.make内容修改
# Set home area (ex /home/user/)
HOME=/home/c/core335x_bsp
# Set Toolchain path (ex /home/user/toolchain/arago-2011.09/armv7a)
CSTOOL_DIR=/usr/local/arm/4.7.3-2
# Set Tool chain prefix (ex arm-arago-linux-gnueabi- )
CSTOOL_PREFIX=arm-none-linux-gnueabi-
# Set kernel installation path ( ex /home/user/linux-04.00.01.13 )
KERNEL_INSTALL_DIR=/home/c/core335x_bsp/linux-3.2.21
# Set Target filesystem path ( ex /home/user/targetfs )
TARGETFS_INSTALL_DIR=$(DESTDIR)
# Set installation folder
GRAPHICS_INSTALL_DIR=$(HOME)/graphics_sdk_4_10_00_01
编译
/home/c # cd core335x_bsp/graphics_sdk_4_10_00_01
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x
假设根文件系统/home/c/nfsroot请确保/home/c/nfsroot/etc/home/c/nfsroot/etc/init.d两目录否则安装候错接安装
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # make DESTDIR=/home/c/nfsroot OMAPES=8.x install
SDK库编译接内核模块安装文件系统假设内核/home/c/core335x_bsp/linux-3.2.21已经配置并且编译
/home/c/core335x_bsp/graphics_sdk_4_10_00_01 # cd /home/c/core335x_bsp/linux-3.2.21
/home/c/core335x_bsp/linux-3.2.21 # make ARCH=arm moles_install INSTALL_MOD_PATH=/home/c/nfsroot
需要内核驱模块增加依赖表位置/home/c/nfsroot/lib/moles/3.2.21/kernel/drivers/moles.dep面增加两行:
extra/omaplfb.ko:
extra/pvrsrvkm.ko:
接用Buildroot制作文件系统假设Buildroot压缩包buildroot-2013.05.tar.bz2载/home/c/core335x_bsp我做Buildroot补丁buildroot-am335x.patch载/home/c/core335x_bsp
/home/c/core335x_bsp/linux-3.2.21 # cd /home/c/core335x_bsp
/home/c/core335x_bsp # tar xf buildroot-2013.05.tar.bz2
/home/c/core335x_bsp # cp buildroot-am335x.patch buildroot-2013.05
/home/c/core335x_bsp # cd buildroot-2013.05
/home/c/core335x_bsp/buildroot-2013.05 # patch -p1 < buildroot-am335x.patch
/home/c/core335x_bsp/buildroot-2013.05 # make menuconfig
进行配置QTPackage Selection for the target > Graphic libraries and applications (graphic/text) > QtAM335xOpenGL支持设置选项QtGraphics drivers必须先选Linux Framebuffer现AM335x SGX OpenGL Dirver选并输入图形SDK路径例/home/c/core335x_bsp/graphics_sdk_4_10_00_01其选项按需选择即接编译
/home/c/core335x_bsp/buildroot-2013.05 # make
编译程自载所需各种软件包没选QtApprove free license间提示选择授权类型编译完映像释放根文件系统
/home/c/core335x_bsp/buildroot-2013.05 # tar xf output/image/rootfs.tar -C /home/c/nfsroot
打/home/c/nfsroot/etc/init.d/powervr.ini面改
[default]
WindowSystem=libpvrQWSWSEGL.so
/home/c/nfsroot文件系统挂载目标板启输入用户名root登陆运行
# /etc/init.d/335x-demo
# mv /etc/init.d/rc.pvr /etc/init.d/S99powervr
至文件系统支持QT使用SGX硬件加速OpenGL
配置QT候选择Compile and install demos and examples (with code)找/home/c/core335x_bsp/buildroot-2013.05/output/build/qt-4.8.4/examples/opengl/hellogl_es2/hellogl_es2文件拷贝根文件系统运行
# hellogl_es2 -qws -display powervr
检验否工作
需要说明让QT支持OpenGLAM335x图形处理器厂家(TIImagination Technologies)提供插件程序让QT态链接库禁止鼠标光标显示现象虽看鼠标用目前没解决貌似图形处理器直接操作Frame Buffer鼠标估计程序写性能降吧要用鼠标需要自写显示鼠标光标程序
㈨ 交叉编译后的python 怎么使用第三方库
刚遇到一样的问题,解决之后顺手回答下你。
setup.py无法安装是因为卡在build这一步,嵌入式linux系统里为减少体积去除了kernel 头文件之类的,所以理论上补全后可以直接在系统里setup.py安装,但是这种方法并不适合嵌入式linux系统。
我的解决方法是在编译根文件系统的时候顺便把需要的第三方库集成进去。buildroot 2015.05版已经有python-package框架可用,更早版本的话可以自己按照安装步骤写.mk来集成。也 可以在buildroot里交叉编译好这个第三方库,然后拷到文件系统里。
㈩ 在ubuntu 10.04下编译buildroot-v23434提示stdio.h:286: error: expected declaration specifiers错误
下载buildroot稳定版本V2012.02试试
