【Jsp精品源码栏目提醒】:网学会员为需要Jsp精品源码的朋友们搜集整理了【精品】ARM S5PV210 交叉编译 - 外语相关资料,希望对各位网友有所帮助!
ARMS5PV210 交叉编译交叉编译Linux内核for ARM本文以三星S5PC100 芯片为例,采用codesourcery公司出品的ARM平台交叉编译工具链,编译最新的内核源代码 2.6.33。
1. 交叉编译工具链1 访问codesourcery官方网站下载最新的ARM交叉编译工具链,当前最新版本是arm-2009q3:http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz22 解压缩后,将其中的bin目录加入PATH环境变量解压缩至/arm-2009q3: tar jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /看看都提供了哪些工具链: ls -1 /arm-2009q3/bin/arm-none-linux-gnueabi-addr2linearm-none-linux-gnueabi-ararm-none-linux-gnueabi-asarm-none-linux-gnueabi-carm-none-linux-gnueabi-cfiltarm-none-linux-gnueabi-cpparm-none-linux-gnueabi-garm-none-linux-gnueabi-gccarm-none-linux-gnueabi-gcc-4.4.1arm-none-linux-gnueabi-gcovarm-none-linux-gnueabi-gdbarm-none-linux-gnueabi-gdbtuiarm-none-linux-gnueabi-gprofarm-none-linux-gnueabi-ldarm-none-linux-gnueabi-nmarm-none-linux-gnueabi-objcopyarm-none-linux-gnueabi-objdumparm-none-linux-gnueabi-ranlibarm-none-linux-gnueabi-readelfarm-none-linux-gnueabi-sizearm-none-linux-gnueabi-spritearm-none-linux-gnueabi-stringsarm-none-linux-gnueabi-strip将bin目录加入环境变量: export PATH/arm-2009q3/bin:PATH2. 内核源代码1 下载最新的内核源代码可以到kernel.org下载已经打包的内核
源码文件,我这里是通过git下载的: git clone http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git2 修改
源码根目录下的Makefile:针对ARM交叉编译,需要修改两个变量:ARCH armCROSS_COMPILE arm-none-linux-gnueabi-3 查看下目录结构 ls -1 /linux-2.6/arch/arm/KconfigKconfig-nommuMakefileboot/common/configs/include/kernel/lib/......mach-s3c6410/mach-s5pc100/mach-s5pv210/......mm/plat-s3c64xx/plat-s5pc1xx/......这里面包含了流行的ARM芯片支持,其中的“mach-s5pc100”就是我们需要编译的目标平台。
目录“configs”包含了各个ARM芯片的默认config文件: ls -1 /linux-2.6/arch/arm/configs/......s3c2410_defconfigs3c6400_defconfigs5pc100_defconfigs5pc110_defconfigs5pv210_defconfig......3. 编译过程1 准备.config文件 cp -f /linux-2.6/arch/arm/configs/s5pc110_defconfig /linux-2.6/.config2 配置选项 cd /linux-2.6/ make menuconfig3 开始编译 make......LD arch/arm/boot/compressed/vmlinuxOBJCOPY arch/arm/boot/zImageKernel: arch/arm/boot/zImage is ready zImage就是压缩过的内核。
file arch/arm/boot/compressed/vmlinuxvmlinux: ELF 32-bit LSB executable ARM version 1 SYSV statically linked not stripped4. 安装新内核 cp vmlinux TESTROOTFS/boot/vmlinux-2.6.33 cp System.map TESTROOTFS/boot/System.map-2.6.33 cp .config TESTROOTFS/boot/config-2.6.33 make INSTALL_MOD_PATHTESTROOTFS modules_install5. 驱动编译demo.c:include ltlinux/kernel.hgtinclude ltlinux/module.hgtstatic int demo_initvoid printkquotdemo initnquot return 0static void demo_exitvoid printkquotdemo exitnquotmodule_initdemo_initmodule_exitdemo_exitMODULE_LICENSEquotDual BSD/GPLquotMakefile:.PHONY: cleanobj-m : mod_template.oKDIR : /lib/modules/shell uname -r/buildKDIR : /linux-2.6PWD : shell pwddefault: MAKE -C KDIR MPWD modulesclean:rm -rf .ko .o .mod. .H .tm .cmd Module.symvers6. 本文链接http://sxg.cublog.cnhttp://blog.chinaunix.net/u/8754/showart_2189621.htmlZlib 的安装如果系统里没有 zlib,下载一个
源码,./configure,再 make,然后 make install 就可以用了Git 的安装如果系统里没有 git,下载一个
源码,./configure,再 make,然后 make install 就可以用了Make 的升级下载一个
源码,./configure –prefix/usr,再 make,然后 make install 就可以用了安装 flex 和 bisonsudoapt‐getinstallflexbison安装 libstdc.so.5sudoapt‐getinstall libstdc.5Ubuntu10.10 下搭建Android 2.2 编译环境文章分类:移动开发Ubuntu10.10 下搭建 Android2.2 编译环境1、替换一个比较快的 Ubuntu10.10 更新源debhttp://mirrors.163.com/ubuntu/maverickmainuniverserestrictedmultiversedeb‐srchttp://mirrors.163.com/ubuntu/maverickmainuniverserestrictedmultiversedebhttp://mirrors.163.com/ubuntu/maverick‐securityuniversemainmultiverserestricteddeb‐srchttp://mirrors.163.com/ubuntu/maverick‐securityuniversemainmultiverserestricteddebhttp://mirrors.163.com/ubuntu/maverick‐updatesuniversemainmultiverserestricteddebhttp://mirrors.163.com/ubuntu/maverick‐proposeduniversemainmultiverserestricteddeb‐srchttp://mirrors.163.com/ubuntu/maverick‐proposeduniversemainmultiverserestricteddebhttp://mirrors.163.com/ubuntu/maverick‐backportsuniversemainmultiverserestricteddeb‐srchttp://mirrors.163.com/ubuntu/maverick‐backportsuniversemainmultiverserestricteddeb‐srchttp://mirrors.163.com/ubuntu/maverick‐updatesuniversemainmultiverserestrictedjdk1.5 的源debhttp://us.archive.ubuntu.com/ubuntu/jauntymultiversedeb‐srchttp://us.archive.ubuntu.com/ubuntu/jauntymultiversedebhttp://us.archive.ubuntu.com/ubuntu/jaunty‐updatesmultiversedeb‐srchttp://us.archive.ubuntu.com/ubuntu/jaunty‐updatesmultiverse2、sudoapt‐getupdate3、sudoapt‐getinstallsun‐java5‐jdk 安装 jdk1.5,然后检查 jdk 版本是否已经更新到 1.5,java‐version. 如果不是以下信息:javaversionquot1.5.0_19quotJavaTM2RuntimeEnvironmentStandardEditionbuild1.5.0_19‐b02JavaHotSpotTM64‐BitServerVMbuild1.5.0_19‐b02mixedmode则需要手动修改 jdk 的链接:cd/usr/lib/jvmls‐ljava先检查是否已经安装了 jdk1.5如下信息:lrwxrwxrwx 1rootroot 232011‐01‐2517:13java‐1.5.0‐sun‐gtjava‐1.5.0‐sun‐1.5.0.19lrwxrwxrwx 1rootroot 142011‐01‐1223:18java‐1.6.0‐openjdk‐gtjava‐6‐openjdk..........................................如果有 jdk1.5则进行如下步骤:cd/etc/alternativesls‐ljavalrwxrwxrwx1rootroot402011‐01‐2608:48java‐gt/usr/lib/jvm/java‐1.5.0‐sun/jre/bin/javalrwxrwxrwx1rootroot372011‐01‐2517:13javac‐gt/usr/lib/jvm/java‐1.5.0‐sun/bin/javaclrwxrwxrwx1rootroot472011‐01‐2517:13javac.1.gz‐gt/usr/lib/jvm/java‐1.5.0‐sun/man/man1/javac.1.gzlrwxrwxrwx1rootroot392011‐01‐1317:57javadoc‐gt/usr/lib/jvm/java‐1.5.0‐sun/bin/javadoclrwxrwxrwx1rootroot492011‐01‐1317:57javadoc.1.gz‐gt/usr/lib/jvm/java‐1.5.0‐sun/man/man1/javadoc.1.gzlrwxrwxrwx1rootroot372011‐01‐1317:57javah‐gt/usr/lib/jvm/java‐1.5.0‐sun/bin/javahlrwxrwxrwx1rootroot472011‐01‐1317:57javah.1.gz‐gt/usr/lib/jvm/java‐1.5.0‐sun/man/man1/javah.1.gzlrwxrwxrwx1rootroot372011‐01‐1317:57javap‐gt/usr/lib/jvm/java‐1.5.0‐sun/bin/javaplrwxrwxrwx1rootroot472011‐01‐1317:57javap.1.gz‐gt/usr/lib/jvm/java‐1.5.0‐sun/man/man1/javap.1.gz如果与以上 ls 的信息不符则做相应的修改。
4、安装其他必备的组件sudo apt‐get install git‐core gnupg flex bison gperf build‐essential zip curl zlib1g‐dev gcc‐multilib g‐multiliblibc6‐dev‐i386 lib32ncurses5‐dev ia32‐libs x11proto‐core‐dev libx11‐dev lib32readline5‐dev lib32z‐dev java‐commonunixodbc这里需要说明一下:由于 10.10 版本默认的 gcc 和 g版本是 4.4,gcc4.4 在编译 android2.2
源码时有可能会报一些错误可能是因为新版本对代码解析更加严格了吧。
这时需要把 gcc 降到 4.3步骤如下:sudoapt‐getremovegcc‐4.4(卸载 gcc‐4.4)sudoapt‐getremoveg‐4.4(卸载 g‐4.4)sudoapt‐getinstallgcc‐4.3(安装 gcc‐4.3)sudoapt‐getinstallg‐4.3(安装 g‐4.3)cd/usr/binln‐sgcc‐4.3gccln‐sg‐4.3gsudoapt‐getinstallg‐multilibg‐4.3‐multilibcd/../myAndroidSrcDir/make2‐3 小时后5、编译、配置 AndroidSDKmake 编译完成后,执行sudo make sdk 命令,生成对应于该版本源代码的 sdk此过程用的时间偶的是 10 多分钟。
注意这个 sdk 不能用于生产环境。
用于生产环境的最好用如下命令: sudomakePRODUCT‐sdk‐sdk 命令,生成对应于该版本源代码的用于生产环境的 sdk此过程用的时间偶的是 1 个多小时。
Android 官方的 SDK 和偶自己编译 Android
源码时使用 make sdk 编译出的 SDK 有区别,模拟器版本不同,加载的默认镜像也不同(一个是官方的, 一个是自己编译的) 。
下面将展示如何能够自由切换 SDK 版本。
首先是自己编译的 SDK 版本,实际位置是/root/mydroid/out/host/linux‐x86/sdk/android‐sdk_eng.root_linux‐x86。
因为它比较常用,我们给它高优先级:update‐alternatives ‐‐install /usr/bin/AndroidSDK AndroidSDK/root/mydroid/out/host/linux‐x86/sdk/android‐sdk_eng.root_linux‐x86255事先下载的官方 SDK 位置是/root/android‐sdk‐linux_86,执行:update‐alternatives‐‐install/usr/bin/AndroidSDKAndroidSDK/root/android‐sdk‐linux_860然后使用 update‐alternatives‐‐displayAndroidSDK 查看当前配置情况:如果要切换配置,使用 update‐alternatives‐‐configAndroidSDK配置 AndroidSDK 环境变量。
终端中执行 gedit/.bashrc在文件最后添加下面三行:setandroidenvironmentexportANDROID_SDK_HOME/usr/bin/AndroidSDKexportPATHANDROID_SDK_HOME/tools:PATH保存文件。
在终端中执行 source/.bashrc6、在模拟器中运行编译的镜像打开终端,执行 android 脚本:android出现下图所示窗口:选择左边第一项 VirtualDevices,然后在右边选择 New,新建一个 AVD。
Name:AVD 的名称,随便取,但只能包含字母和数字以及点、下划线和连字符, 这里取名 test。
Traget:目标 SDK 版本,这里选自己编译的 2.1‐r1 版 AndroidSDK。
SDCard:SD 卡。
暂且不填,待需要时再设置。
()Skin:皮肤(模拟器屏幕分辨率) 。
Hardware:使用默认即可然后点 CreateAVD,就创建好了一个 AVD。
点击 Start 即 可启动模拟器,其运行的是自己编译的镜像。
若以后要再次启动此 AVD,请在终端中运行:emulator–avdtest 或 者 emulatortest7、添加 SD 卡的方法mksdcard ‐l mycard 100M F:mysdcard.img 1.mksdcard 命令在 F 盘下新建一个虚拟磁盘给模拟器用,文件名mysdcard 后缀可以 自定义如 mycard.tank。
2. 默认单位为 k 这里我写的 100Mlinux JDK1.5 bin安装步骤记录(转) Fedora 14 下安装JDKJava 2010-11-27 14:48:08 阅读 520 评论 0 字号:大中小 订阅 3. 安装 Eclipse 集成开发环境 Android 推荐的 IDE 为 Eclipse,使用下面的命令安装它: su -c yum install eclipse-jdt java-1.6.0-openjdk-devel 即可获得 Fedora Eclipse 3.5.1 版本。
文章分类:操作系统一. 下载 jdk5.0 for linux 到sun的主页 http://java.sun.com/j2se/1.5.0/download.
jsp 下载jdk安装文件jdk-1_5_0_05-linux-i586.bin二. 解压安装 jdk 先 用 chmod 755 赋 予 权 限 再 在 shell 终 端 下 进 入 jdk-1_5_0_05-linux-i586.bin 文 件 所 在 目 录 , 执 行 命令 ./jdk-1_5_0_05-linux-i586.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入 yes,回车。
之后会在当前目录下生成一个 jdk-1.5.0_05 目录,你可以将它复制到任何一个目录下。
三. 需要配置的环境变量 1. PATH 环境变量。
作用是指定命令搜索路径,在 shell 下面执行命令时,它会到 PATH 变量所指定的路径中查找看是否能找到相应的命令程序。
我们需要把 jdk 安装目录下的 bin 目录增加到现有的 PATH 变量中,bin 目录中包含经常要用到的可执行文件如 javac/java/javadoc 等待,设置好 PATH 变量后,就可以在任何目录下执行 javac/java 等工具了。
2. CLASSPATH 环境变量。
作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM 就是通过CLASSPTH 来寻找类的。
我们需要把 jdk 安装目录下的 lib 子目录中的 dt.jar 和 tools.jar 设置到 CLASSPATH 中,当然,当前目录“.”也必须加入到该变量中。
3. JAVA_HOME 环境变量。
它指向 jdk 的安装目录,Eclipse/NetBeans/Tomcat 等软件就是通过搜索 JAVA_HOME 变量来找到并使用安装好的 jdk。
四. 三种配置环境变量的方法 1. 修改/etc/profile 文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的 shell 都有权使用这些环境变量,可能会给系统带来安全性问题。
用文本编辑器打开/etc/profile 在 profile 文件末尾加入: JAVA_HOME/usr/share/jdk1.5.0_05 PATHJAVA_HOME/bin:PATH CLASSPATH.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export JAVA_HOME export PATH export CLASSPATH 重新登录 注解 a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的 jdk 安装目录 b. linux 下用冒号“:”来分隔路径 c. PATH / CLASSPATH / JAVA_HOME 是用来引用原来的环境变量的值 在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种 常见的错误。
d. CLASSPATH 中当前目录“.”不能丢把当前目录丢掉也是常见的错误。
e. export 是把这三个变量导出为全局变量。
f. 大小写必须严格区分。
2. 修改.bashrc 文件 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc 文件就可以了。
用文本编辑器打开用户目录下的.bashrc 文件 在.bashrc 文件末尾加入: set JAVA_HOME/usr/share/jdk1.5.0_05 export JAVA_HOME set PATHJAVA_HOME/bin:PATH export PATH set CLASSPATH.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar export CLASSPATH 重新登录 3. 直接在 shell 下设置变量 不赞成使用这种方法,因为换个 shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在 shell 终端执行下列命令: export JAVA_HOME/usr/share/jdk1.5.0_05 export PATHJAVA_HOME/bin:PATH export CLASSPATH.:JAVA_HOME/lib/dt.jar:JAVA_HOME/lib/tools.jar五. 测试 jdk 1. 用文本编辑器新建一个 Test.java 文件,在其中输入以下代码并保存: public class test public static void mainString args System.out.printlnquotA new jdk test quot 2. 编译:在 shell 终端执行命令 javac Test.java 3. 运行:在 shell 终端执行命令 java Test 当 shell 下出现“A new jdk test ”字样则 jdk 运行正常。
六. 卸载 jdk 找到 jdk 安装目录的_uninst 子目录 在 shell 终端执行命令./uninstall.sh 即可卸载 jdk。
ubuntu安装jdk全过程(仅供参考)http://forum.ubuntu.org.cn/viewtopic.phpt183803在 android 编译中要是用的是 jdk 1.5下面的是一个已 jdk1.6 的例子。
实际使用中应该以 1.5 为标准。
首先,从 http://java.sun.com 中下载 jdk我的版本是 jdk1.5.,我下载的是 bin 文件,我将下载的 jdk1.6.0_12.bin 文件置于/usr/lib/jvm/java 中然后,在 shell 中执行:代码:sudo chmod ux /usr/lib/jvm/java/jdk1.6.0_12.bin修改 bin 文件权限,使其可执行然后,执行代码:sudo /usr/lib/jvm/java/jdk1.6.0_12.bin将会出现字幕,持续按回车键,直至屏幕显示要求输入 yes/no,此时输入 y 回车,将会把 jdk 解压到文件夹,得到 jdk1.6.0_12 目录。
此时,jdk 已安装完毕,下面进行配置执行代码:sudo vi /etc/environment在 environment 中修改,出现如下部分引用:PATH=quot......:/usr/lib/jvm/java/jdk1.6.0_12/binquotCLASSPATH.:/usr/lib/jvm/java/jdk1.6.0_12/libJAVA_HOME/usr/lib/jvm/java/jdk1.6.0_12执行代码:sudo source /home/ghoul/.bashrc此时,环境变量设置成功(设置环境变量的方法很多,不一一列举)由于 ubuntu 中可能会有默认的 jdk,如 openjdk,所以,为了使默认使用的是我们安装的 jdk,还要进行如下工作。
执行代码:update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_12/bin/java 300update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_12/bin/javac 300通过这一步将我们安装的 jdk 加入 java 选单。
然后执行代码:update-alternatives --config java通过这一步选择系统默认的 jdk这样,再在 shell 中输入代码:java -version时,就会显示系统使用的 java 是 sun 的 javaUbuntu 10.04(64 位)下载并编译 Android 2.2
源码只有 11条命令http://w11h22j33.javaeye.com/blog/905491为了方便,我把所有操作写成了命令,按顺序(软件安装--
源码下载--编译)执行成功即可:1. sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev java-common unixodbc2. sudo apt-get install sun-java6-jdk3. cd4. mkdir -p software/bin5. curl http://android.git.kernel.org/repo gtsoftware/bin/repo6. chmod ax software/bin/repo7. mkdir -p software/android/src/new8. cd software/android/src/new9. repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo//我在这里使用的是-b android-2.2.1_r110. repo sync11. make -j41.前言本文叙述了如何从零开始搭建基于Google官方Android 2.2.1(froyo)
源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。
文中开发机是基于Ubuntu 10.04 的,同样适用于其他版本的Ubuntu。
现在需要弄清楚一下几点,防止后面出现误操作:下载源代码是用参数:repo init -u git://android.git.kernel.org/platform/manifest.git-bfroyo (下载的是2.2.1 版本,编译环境操作系统必须是 32 位的, jdk1.5 版本 的---jdk1.5 没有 64位版本)。
如果是没有带参数的下载源代码,将会下载所有的源代码,编译环境要求:操作系统 64.