ubuntu下linux 开发环境的搭建以及arm平台的移植

合集下载

在Ubuntu上建立Arm Linux 开发环境

在Ubuntu上建立Arm Linux 开发环境

在Ubuntu上建立Arm Linux 开发环境来源:未知作者:电子电路【大中小】我使用的是友善2410的板子,以前都是用Fedora,现在家里的电脑被我转为Linux专用的了,装的是Ubuntu。

但是嵌入式还是要玩的,在装载过程中也遇到一些小麻烦。

在此记录一下,一来自己比较健忘,二来也希望能给一些没弄过的人一点启示。

目的:把ARM linux的交叉开发环境,kernel, filesystem, bootloder安装,并配置,使其可以编译bootloder, kernel, 可以nfs更新文件系统;资源:arm-linux-toolchains.tgzmatrix5-kernel-v5.5.tgzvivi.tar.gzJflash.tgzroot-for-nfs-v5.5.tgz规划:交叉编译器装在:/usr/local/kernel, bootloder放在: /home/volans/arm/用于启动的nfs文件系统放在:/home/armnfs/准备工作:sudo mkdir /home/armnfssudo chmod 777 /home/armnfsmkdir ~/arm上面前两句的目的是在/home下建立armnfs目录,为了开发的方便,把这个目录设成所有用户可rwx。

然后把上面提到的资源全部拷贝到~/arm/下。

安装配置:安装标准的C开发环境,由于Ubuntu安装默认是不安装的,所以需要先安装一下:sudo apt-get install gcc g++ libgcc1 libg++ make gdb安装交叉编译器cd /sudo tar zxvf /home/volans/arm/arm-linux-toolchains.tgz请在执行完成后查看是否存在/usr/local/arm文件夹。

把交叉编译器的路径加入到PATH,以方便使用:sudo vi /etc/bash_bashrc在后面加入如下代码:if [ -d /usr/local/arm ] ; thenPATH=/usr/local/arm/2.95.3/bin:"${PATH}"fi解压bootloader, kernel和flash烧写工具Jflashcd ~/armtar zxvf matrix5-kernel-v5.5.tgztar zxvf vivi.tar.gztar zxvf Jflash.tgz解压用于启动的NFS文件系统cd /home/armnfstar zxvf /home/volans/root-for-nfs-v5.5.tgz启动NFS服务请参照我前几篇文章,关于启动NFS服务器的相关内容。

linux?ubuntu?X86和ARM平台QT安装步骤

linux?ubuntu?X86和ARM平台QT安装步骤

linux ubuntu X86和ARM平台QT安装步骤Linux ubuntu 平台:3种方式1、直接安装:sudo apt-get install libqt4-dev qtcreator(最好)2、源代码安装,一般不用3、sdk安装:下载sdk:sudo apt-get install libglib2.0-dev libSM-dev libxrender-dev libfontconfig1-dev libxext-devARM平台:1、安装交叉工具链,能够使用arm-linux-gnu-gcc命令编译如4.1.1版本的:mkdir /opt/crosstooltar -jxvf 路径/4.1.1_softfloat_withlib.tar.bz2 -C /opt/crosstool //将编译工具解压到crosstool中。

配置环境变量,当用arm-linux-gnu-gcc 编译程序时能够找得到此文件所在的目录例:vim /home/farsight/.bashrc在末尾添加:export PATH=$PATH:/opt/crosstool/4.1.1/bin2、看 4.1.1/arm-linux-gnu/lib下是否有zlib,libjpeg,libpng,freetype库文件如果没有,安装:以zlib为例:从下载源码tar -jxvf xxx/zlib-1.2.5.tar.bz2cd zlib-1.2.5CC=arm-linux-gnu-gcc AR=arm-linux-gnu-ar RANLIB=arm-linux-gnu-ranlib LD=arm-linux-gnu-ld ./configure --prefix=/opt/crosstool/4.1.1/arm-linux-gnumakemake install其他的网址是:安装步骤和上面一样3、Qt默认的ARM交叉编译器是:arm-linux-开头的,但是系统开始安装的是arm-linux-gnu开头的,所以要改qt源码:例:vim qt-everywhere-opensource-src-4.6.3/mkspecs/qws/linux-arm-g++/qmake.conf在arm-linux-后加个gnu,例:arm-linux-gnu-gcc...4、qt配置细微配置:编译qconfig,用qconfig执行相应的文件cd qt-everywhere-opensource-src-4.6.3/tools/qconfigqmakemakesudo cp qconfig /usr/bincd qt-everywhere-opensource-src-4.6.3/src/corelib/global qconfig qfeatures.txt...粗配置:使用./configure --help5、安装文件。

arm-linux编译环境搭建

arm-linux编译环境搭建

ARM交叉编译环境搭建装好ubuntu系统后,搭建编译环境(所有命令均不输前面的“#”)1、将交叉编译环境安装包EABI-4.3.3_EmbedSky_20100610.tar.bz2复制到某个目录下,然后进行解压安装解压安装包的命令如下:#tar xvfj EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C 目录2、进入profile文件#gedit /etc/profile3、在最后一行添加环境变量export PATH=$PATH:/../../../bin4、重启ubuntu5、查看环境变量的命令如下:#echo $PATH6、查看交叉编译环境版本:#arm-none-linux-gnueabi-gcc-4.3.3 -v,出现版本号则表示搭建成功。

编写简单C程序并运行1、打开打算存储程序的文件:#cd /kumust2、文件里新建路径: #touch hello.c3、手动在目录kumst里找到hello.c并打开编写程序并保存#include “stdio.h”main(){printf("hello,ubuntu!");}4、编译命令(pc上):#gcc hello.c -o helloarm上编译命令:#arm-linux-gcc hello.c -o hello5、执行文件(pc上执行)#./hello,出现hello,ubuntu!6、把ubuntu里的hello文件拷贝到优盘里7.插上优盘启动TQ2440,在终端里输入 cd /udisk ./hello TQ2440显示屏显示hello,ubuntu!至此说明linux在TQ2440移植成功!。

ARM开发教程之ARM Linux系统移植步骤

ARM开发教程之ARM Linux系统移植步骤
千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM LINUX系统移植步骤 ARM开发教程之ARM LINUX系统移植步骤 开发教程之
ARM简介 Linux简介 系统的制作移植建立交叉编译环境 引导程序 内核 修改内核 内核的配置编译 根文件系统 结束语

千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之引导程序 引导程序
对于计算机系统来说,从开机上电到操作系统启动需要一个引导程 序。嵌入式linux系统同样离不开引导程序,这个引导程序叫做 Bootloader[1]。通过这段小程序,可以初始化硬件设备、建立内存 空间的映射表,从而建立适当的系统硬件环境,为最终调用操作系 统内核做好准 备。 vivi[4]是韩国MIZI公司为其arm9系列产品而研发的Bootloader, 小而灵巧,这里选用它作为小型Linux系统的Bootloader。 首先要修改vivi源代码中的Flash分区信息,新的分区信息如表1 所示。 根据表1,在vivi源码arch/s3c2410/smdk.c文件中作出相应的 修改。 然后在配置菜单中导入smdk2410的默认配置,编译成功将在 vivi源代码目录下生成所需的Bootloader文件,文件名为vivi。 接着,便可把vivi下载到目标板Flash的相应位置。

千锋3G嵌入式移动互联网技术研发中心 千锋3G嵌入式移动互联网技术研发中心 3G
ARM开发教程之ARM简介
Arm9S3C2410微处理器与Linux的结合越来越紧密,逐 渐在嵌入式领域得到广范的应用。目前,在便携式消 费类电子产品、无线设备、汽车、网络、存储产品等 都可以看到S3C2410与Linux相结合的身影。 S3C2410微处理器是一款由Samsung公司为手持 终端设计的低价格、低功耗、高性能,基于arm920T 核的微处理器。它带有内存管理单元 (MMU),采用 0.18mm工艺和AMBA新型总线结构,主频可达203MHz。 同时,它支持Thumb 16位压缩指令集,从而能以较小 的存储空间获得32位的系统性能。

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)

Ubuntu18.04安装arm-linux-gcc交叉编译器的两种⽅法(附下载地址)⽅法⼀: 我们都知道Ubuntu有⼀个专门⽤来安装软件的⼯具apt,我们可以⽤它来全⾃动安装arm-linux-gcc。

此⽅法安装的是最新版的,但是此⽅法需要FQ,否则99%会失败,这就是为什么⽹上⼤多都⽤压缩包安装的原因: ⾸先Ctrl+Alt+T弹出终端,使⽤如下命令进⾏arm-linux-gcc的安装:sudo apt-get install gcc-arm-linux-gnueabihf 使⽤如下命令进⾏arm-linux-g++的安装:sudo apt-get install g++-arm-linux-gnueabihf 如果要卸载时使⽤如下命令进⾏移除,arm-linux-gcc的卸载:sudo apt-get remove gcc-arm-linux-gnueabihf arm-linux-g++的卸载:sudo apt-get remove g++-arm-linux-gnueabihfsudo tar -xjvf /tmp/arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2 3.解压完成后,再在(/usr/local)中创建⼀个新⽬录arm,即在Terminal中输⼊以下命令:sudo mkdir /usr/local/arm 4.创建arm⽬录成功后,还需要给它解放全部权限,即在Terminal中输⼊以下命令:sudo chmod 777 /usr/local/arm 5.在解压出来的⽬录中找到并把整个arm-linux-gcc-3.4.5-glibc-2.3.6⽬录复制到刚刚建好的arm⽬录中,命令如下:sudo cp -r gcc-3.4.5-glibc-2.3.6 /usr/local/arm 6.打开(/etc/profile)配置环境变量和库变量,⽬的是以后可以在任何位置使⽤该交叉编译器,命令如下:sudo vi /etc/profile 7.⽤vi或者vim打开后,在⽂件最后添加两⾏,并输⼊以下代码:第⼀⾏是添加执⾏程序的环境变量,第⼆⾏是库⽂件的路径export PATH=$PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/binexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/lib 8.使⽤source命令重新加载⽣效该配置⽂件source /etc/profile 9.检验是否安装成功,在 Terminal 输⼊以下命令输出版本信息:arm-linux-gcc -v 10.若有以下报错参考解决办法: 报错:bash: /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc-4.2.2: No such file or directory 解决sudo apt-get install libc6-i386 该库中包括ia32-libs, lib32z1, lib32ncurses5等等依赖。

记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导

记ubuntu的uClinux交叉编译环境的搭建以及操作系统的引导

添加如图所示的代码。
最后,需要这两个程序自动启动的话还需要修改 “~/uClinux-dist/Vendors/Samsung/4510B/"下的 rc 文件,向其最后添加 “./bin/led& ./bin/uart&" 两行代码。 完成这些以后,我们就可以开始编译了
在“Target Platform Selection"中选择“Customize Kernel Settings (NEW)“和”Customize Vendor/User Settings (NEW)“
#define UTXBUF1 (* (volatile unsigned *) 0x03ffe00c) \\定义 UART1 发送缓存寄存器
#define URXBUF1 (* (volatile unsigned *) 0x03ffe010) \\定义 UART1 接收缓存寄存器
#define UBRDIV1 (* (volatile unsigned *) 0x03ffe014) \\定义 UART1 波特率分频寄存
void InitUART(int Port,int Baudrate) \\串口初始化函数体 { if(Port==0) { ULCON0=0x03; UCON0=0x09; UBRDIV0=Baudrate; } if(Port==1) { ULCON1=0x03; UCON1=0x09; UBRDIV1=Baudrate; } }
这次我选择了用 Ubuntu 这个版本的 linux 作为我的开发环境,是因为它的界面还算友好, 对于我这种 linux 白痴一样的人能少用一点命令那是再好不过了的。可是我没有想到 Ubuntu 可以这样的坑爹,由于用的 shell 和别个的 linux 不同,所以直接导致 arm-elf-tools-20030314.sh 不能打开,所以更别说安装了。Google 了很久,终于不得不去 面对了一个现实,就是我偷懒不想用命令,结果我得用更多的命令去安装这个该死的工具。

嵌入式Linux开发环境及其在ARM上的移植

嵌入式Linux开发环境及其在ARM上的移植

6.1.2 交叉编译环境的建立
• 匹配Binutils、gcc和glibc的版本
工具链版本 binutils Linux 2.4.x 2.14 Linux 2.6.x 2.14
gcc
glibc glibc-threads gdb
2.95.3
2.2.5 2.2.5 5.3
3.3.2
2.2.5 2.2.5 6.0
Binutils工具包
Binutils工具集里主要包含以下一系列的程 序:addr2line、ar、as、c++filt、gprof、 ld、nm、objcopy、objdump、ranlib、 readelf、size、strings和strip, 它包含的库文件有:libiberty.a、libbfd.a、 libbfd.so、libopcodes.a和libopcodes.so。
ARMV4T平台工具链常用版本
6.1.2 交叉编译环境的建立
• 构建交叉编译环境通常有3种方法: 方法1:分步编译和安装交叉编译环境所需 要的库和源代码,最终生成交叉编译环 境。 方法2:通过Crosstool脚本工具来实现一次 编译生成交叉编译环境。 方法3:使用开发平台供应商提供的开发环 境安装套件建立交叉编译环境,这是最 常用的方法。
GNUmakefile Makefile Makefile
Make命令与Makefile文件
• (1)Makefile基本结构 Makefile中一般包含如下内容: 需要由make工具创建的项目,通常是 目标文件和可执行文件; 要创建的项目所依赖的文件; 创建每个项目时需要运行的命令。
6.1.1 交叉编译工具介绍
• 1.Binutils工具包 GNU Binutils是一套用来构造和使用二进 制所需的工具集。建立嵌入式交叉编译 环境,Binutils工具包是必不可少的,而 且Binutils与GNU的C编译器gcc是紧密集 成的,没有Binutils,gcc也不能正常工作。 GNU Binutils是一组开发工具,包括连接 器、汇编器和其他用于目标文件和档案 的工具。

ubuntu宿主机构建LINUX嵌入式开发环境步骤

ubuntu宿主机构建LINUX嵌入式开发环境步骤

ubuntu宿主机构建LINUX嵌入式开发环境步骤实验平台:ubuntu11.041、安装tftpa 安装相关软件包:Ubuntu tftp(服务端),tftp(客户端),xinetd:sudo apt-get install tftp tftpd xinetd或者sudo apt-get install tftp-hpa tftpd-hpa xinetd(推荐)LINUX下有两个tftp版本,tftp、tftpd和tftp-hpa、tftpd-hpa,两者有什么区别我还没有具体研究,但是在ubuntu11.04下,tftp、tftpd这个版本我安装后虽然启动了,但是有问题,具体表现在当应有put和get时会显示time out类似的提示,这是tftp没有启动时才发生的,但是实际上tftp是启动了的。

后来改为安装tftp-hpa、tfptd-hpa才没有这个问题。

b建立配置文件在/etc/xinetd.d/下建立一个配置文件tftpsudo vi /etc/xinetd.d/tftp在文件中输入以下内容:service tftp{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -c -s /tftpbootdisable = noper_source = 11cps = 100 2flags = IPv4}保存退出c建立Ubuntu tftp服务文件目录(上传文件与下载文件的位置),并且更改其权限sudo mkdir /tftpboot (这个文件夹可以随便设在哪里都可以,只是路径和xinetd.d/tftp里的server_args项一样,如果这里改变的话那里也要对应改变)sudo chmod 777 /tftpboot -Rd重新启动服务sudo /etc/init.d/xinetd restart (service xinetd restart)sudo in.tftpd -l /tftpboot至此Ubuntu tftp服务已经安装完成了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux开发环境的搭建1.arm交叉编译链的安装2.NFS服务器的安装3.tftp服务器的安装4.触摸屏驱动库的安装编译5.编译安装qt-everywhere-opensource-src-4.8.1需要的文件及库:1.arm-2009q1-203-arm-none-linux-gnueabi2.fs.tar.gz3.tslib-1.44.qt-everywhere-opensource-src-4.8.11.arm交叉编译链的安装见附录6:arm-2009q1-203-arm-none-linux-gnueabi安装测试交叉编译器是否安装成功,执行如下命令:HOST $ arm-none-linux-gnueabi-gcc -v如果显示编译器的版本信息说明安装成功。

2.NFS服务器的安装见附录7:安装完成后,在/home/wws/目录下执行如下指令:sudo gedit nfs.shnfs.sh的内容如下:HOST $ sudo /etc/init.d/portmap restartHOST $ sudo /etc/init.d/nfs-kernel-server restart保存后执行source nfs.sh以后只要在主目录下执行上述source命令就可以重启nfs服务器测试 NFS 服务器是否安装成功,执行如下命令:HOST $ showmount -e若显示 /home/wws/wws_nfs*则说明安装成功。

3.tftp服务器的安装具体安装过程见附录8:安装完成后,执行:sudo gedit tftp.sh其内容如下:HOST $ sudo /etc/init.d/xinetd restartHOST $ sudo /etc/init.d/tftpd-hpa restart保存在主目录下,当开发板找不到链接,出现T T T T.......等时,无需重启系统,只需执行source tftp.sh重启tftp服务器即可,或者直接执行上述两条指令来重启服务器。

4.触摸屏驱动库的安装编译Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。

安装触摸屏驱动库tslib-1.4新建文件夹my_qt,在该文件夹下进行解压解压wws@ubuntu:~/my_qt/tslib1.4$ tar -zxvf tslib-1.4.tar.gz进入目录wws@ubuntu:~/my_qt$ cd tslib-1.4wws@ubuntu:~/my_qt/tslib1.4$配置wws@ubuntu:~/my_qt/tslib1.4$ ./autogen.sh若出现如下错误./autogen.sh: line 4: autoreconf: command not found解决办法:sudo apt-get install autoconf automake libtool指定安装目录wws@ubuntu:~/my_qt/tslib1.4$./configure --prefix=/usr/local/Trolltech/tslib-1.4 --host=arm-none-linux-gnueabi ac_cv_func_malloc_0_nonnull=yes(提示:在这个配置中/usr/local/ Trolltech/tslib-1.4就是我们指定的安装路径,也就是执行make install后,tslib就被安装到这个目录了)编译安装wws@ubuntu:~/my_qt/tslib1.4$ make20120726 Q:若报错提示/usr/include/bits/fcntl2.h:51: error: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments In function ‘open’,A:因为gcc-4.3.3对语法检查严格的结果,需要添加一个参数,即在tslib1.4/tests/ts_calibrate.c 中227行与229行,open函数中添加第三个参数0777,如下图wws@ubuntu:~/my_qt/tslib1.4$ sudo make install进过上述操作,就可以在/usr/local/qte-arm/tslib-1.4目录下看到相关的应用程序、共享库、配置文件等,这些库和配置文件都是要拷到文件系统的usr/lib 里面的。

编译成功后在目标位置产生/bin、/etc、/include、/lib 4个文件夹至此在PC机上的tslib环境已经安装完成。

5.编译安装qt-everywhere-opensource-src-4.8.1在文件夹my_qt 下解压文件wws@ubuntu:~/my_qt$ tar -zxvf qt-everywhere-opensource-src-4.8.1.tar.gz进入目录wws@ubuntu:~/my_qt$ cd qt-everywhere-opensource-src-4.8.1配置-prefix:预设安装目录动态库:./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.1-arm-nostatic -opensource -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-scripttools -declarative -declarative-debug -qt-mouse-tslib -DQT_QWS_CLIENTBLIT -xplatform qws/linux-arm-g++ -embedded arm -confirm-license静态:(目前用静态库)./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.1-arm-static -opensource -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-scripttools -declarative -declarative-debug -qt-mouse-tslib -static -DQT_QWS_CLIENTBLIT -xplatform qws/linux-arm-g++ -embedded arm -confirm-license静态(arm-none-linux-gnueabi-gcc编译链)./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.1-arm-gnueabi-static -opensource -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-scripttools -declarative -declarative-debug -qt-mouse-tslib -static -DQT_QWS_CLIENTBLIT -xplatformqws/linux-arm-g++ -embedded arm -confirm-license静态:(目前用arm-arago-linux-gnueabi编译链)./configure -prefix /usr/local/Trolltech/QtEmbedded-4.8.1-arm-static -opensource -no-qt3support -no-xmlpatterns -no-multimedia -no-phonon -no-phonon-backend -no-svg -no-webkit -no-javascript-jit -no-scripttools -declarative -declarative-debug -qt-mouse-tslib -static -DQT_QWS_CLIENTBLIT -xplatform qws/linux-arm-g++ -embedded arm -confirm-license20120726 Q:若出现报错如下修改qt-everywhere-opensource-src-4.8.1/mkspecs/qws/linux-arm-g++/qmake.conf如下20120727 Q:若提示如下/home/wws/CodeSourcery/Sourcery_G++_Lite/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/../../../../arm-none-linux-gnueabi/bin/ld:warning:libts-0.0.so.0,neededby /home/giant/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so, not found (try using -rpath or -rpath-link)/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_read_raw'/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_open'/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_fd'/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_config'/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_close'/home/wws/my_qt/qt-everywhere-opensource-src-4.8.1/lib/libQtGui.so: undefined reference to `ts_read'A:修改qt-everywhere-opensource-src-4.8.1/mkspecs/qws/linux-arm-g++/qmake.conf/usr/local/Trolltech/tslib-1.4/include/usr/local/Trolltech/tslib-1.4/lib最后两句是tslib的安装路径,如果设置不对则生成的库文件没办法支持触摸屏然后执行 make再执行 sudo make install编译成功之后,配置环境变量为了方便以后的开发,因此编写一个导入环境变量的脚本。

相关文档
最新文档