㈠ arm-linux-gcc编译出来的程序在目标机powerpc平台上能执行吗
应该不能,最近也在学这方面的东西。codeworrier IDE 5.7不知道能不能行,我下下来的时候,只是没有注册码,不能编译。
㈡ 嵌入式linux的dropbear支持sftp吗
平台:嵌入式linux-powerpc or arm
描述:dropbear 本身不支持sftp无法做到上传下载文件,可以借助openssh的sftp-server实现。
方法:
下载openssh,编译出sftp-server,然后将其拷贝到目标板子。别忘了,把依赖的动态库拷贝到目标里去。
sftp-server的拷贝位置为/usr/libexec,没有此目录,新建一个目录即可。
附录:openssh的编译方法,本文采用的是powerpc架构下的平台编译,编译器是powerpc-linux-gcc,ppc_6xx软链接到powerpc-linux
1.首先下载zlib,因为openssh需要zlib库的支持
编译zlib,大概的步骤如下
./configure --prefix=将要存放的lib目录
make CC=交叉编译器 ARCH=编译的体系类型
make install
2.编译openssh
./configure --host=编译的体系 --with-zlib=zlib的目录
make sftp-server
3.如果没什么问题,当前目录下生成sftp-server
ppc_6xx-readelf -d sftp-server 查看依赖的链接库
4.拷贝链接库到目标板的lib
5.拷贝sftp-server到目标板的/usr/libexec 目录下
㈢ 编译linux内核设备树文件使用什么命令
Linux源码的arch/powerpc/boot/dts/目录下存放了很多dts文件,可以作为参考文件。另外dtc编译器在内核源码2.6.25版本之后已经被包含进去。在2.6.26版本之后,生成blob的简单规则已经加入makefile,如下命令:
$ make ARCH=powerpc canyonlands.dtb
也可以根据自己的硬件修改好dts文件后,用下面类似命令生成dtb文件。
$ dtc -f -I dts -O dtb -R 8 -S 0x3000 test.dts > mpc836x_mds.dtb
$ mkimage -A ppc -O Linux -T flat_dt -C none -a 0x300000 -e 0 -d mpc836x_mds.dtb mpc836x_mds.dtu
㈣ powerpc(mpc8309) 不能与arm 通过CAN 口通讯
很可能是匹配电阻不对。
㈤ 如何把powerpc-e300c3-linux-gnu写在环境变量中
太感谢了,我的也是这个问题 交叉编译环境搭建后 arm-linux-gcc -v 显示 No such file or directory 使用which命令可以找到,环境变量没有问题,更详细的描述问题就是which找到的命令所在的目录下的所有命令都是同样的问题。
㈥ powerpc 交叉编译错误
libgcc.a 没有找到:
检查你的libgcc.a环境变量的设置
$CC --print-libgcc-file-name
若路径为libgcc.a 证明是当前目录下的库文件或者是PATH环境变量下的libgcc.a。
找到你的工具链库的地址
find -name "libgcc.a"
/opt/fsl-qoriq/1.9/sysroots/ppce5500-fsl-linux/usr/lib/powerpc-fsl-linux/4.9.2/libgcc.a3
将此地址加到PATH里去:
export PATH=/opt/fsl-qoriq/1.9/sysroots/ppce5500-fsl-linux/usr/lib/powerpc-fsl-linux/4.9.2/libgcc.a:$PATH
㈦ 嵌入式linux内核编译出错 [2.6.20.6-mpc8247]# make ARCH=powerpc CROSS_COMPILE=ppc
首先确认你安装了正确的交叉工具链,然后再把交叉工具链的地址添加到$PATH里。
交叉工具链可以跟芯片供应商联系获得,也可以自己下载软件包自己进行编译。
㈧ PowerPC CPU为什么后来越来越打不过x86,因为酷睿
1994年起,苹果的电脑开始全面使用PowerPC芯片,在性能上是吊打英特尔的X86芯片的。为此,苹果公司还在广告中吹嘘过。
当时,苹果确实有吹的资本,PowerPC不仅是苹果电脑御用芯片,还是微软Xbox 游戏 机用芯片,一大半的服务器也是PowerPC芯片的粉丝。
在技术上,PowerPC确实有自己的优势,比如第一个飙到4GHz,第一个提出并践行多核心设计理念,第一个推出单核心多线程(类似英特尔的超线程技术)。
但乔布斯回归之后,PowerPC芯片开始走下坡路,由于它面对单一专业市场,出货量没有X86的大众消费市场大,加之坐享一亩三分地,慢慢在性能功耗比上落了下风。对服务器等行业来说,性能落后一点可以忍,但性能落后还耗电就不能忍,因为服务器是24小时开机,耗电量大的话,电费会成为服务器大头。
服务器用着爽,交电费很不爽。
而且芯片耗能增加,用电成本很快会超过服务器价格。
相反,英特尔通过改进微架构,同时在摩尔定律的加持下,性能功耗比很快超过PowerPC芯片。
不仅在性能功耗比上落后,PowerPC的迭代速度也慢于英特尔X86芯片,这让乔布斯很不爽,一时没忍住,向PowerPC芯片的设计和制造方摩托罗拉抱怨,要求它生产性能更强的芯片。
本来甲方向乙方发发牢骚,乙方要提现服务精神,听着加安慰就能摆平,但时任CEO克里斯.高尔文脾气也很大,不仅和乔布斯大吵一架,还不理会他的要求。
说白了就是,乙方活不好,服务态度还差!这就让甲方乔布斯不能忍了,不到18个月就果断换芯,采用性能更强的英特尔X86芯片。
power pc太先进了同级别的x86只有4/1的实际能力,举个例子n64、ps3就是power pc的构架,结果一个是内存和存储太小,不足发挥处理器的性能,另外一个设计的太先进但是没有好的开发环境直到快退役了PS3的极限性能还没被摸透;
而且power pc是软件太少,加上价格昂贵,虽然性能超过同等x86,但是价格却是对方的10倍以上(要考虑平台问题)
先进不实用最终会被淘汰的……
大家很难想象:过去PowerPC架构有与英特尔的x86架构一决雌雄的能力。
英特尔在1990年之前主要是在开发SRAM和DRAM存储芯片。在90年代开始英特尔在微处理器设计上投资相当大,并逐渐地甩开了PowerPC成为了个人电脑微处理器的一家独大角色。
PowerPC的 历史 需要追溯到1990年IBM发布的第一款真正意义上的RISC CPU-RISC System/6000,使用的是Power ISA指令集架构,这个设计是从早期的RISC架构和MIPS架构的处理器中得到的灵感。
1991年饱受Mororala CPU开发进度困扰的Apple发起了AIM联盟(由Apple、IBM、Motorola组成),向Power ISA中增加新的指令派生出了PowerPC ISA开发出基于桌面的PowerPC处理器,一方面是用于取代院线Macintosh系统中逐渐衰落的680X0 CISC处理器,另一方面是应对英特尔x86系列英特尔和微软“双寡头”近乎垄断的地位。
PowerPC的架构在1990年代初期比x86 奔腾系列拥有更高的性能,它一开始就专注于指令集架构,而英特尔奔腾却需要肩负从1970年代开始对8086保持向后的兼容性负担,限制了其性能。尽管PowerPC早期具有卓越的性能优势,但英特尔对x86家族进行了出色的架构改进,其制造能力也进一步缩小了这一差距。
为什么PowerPC后面又不敌英特尔的x86了?进入20世纪之后,英特尔和AMD的频频发生摩擦和大战,火药味十足的情况下引导着整个半导体行业加快制程升级的进度,CPU工艺制程很快就进入了180nm甚至130nm。对于许多芯片制造商来说升级成本高昂,PowerPC基本上只有苹果的Mac在使用,Mac的销量、市场占比都不足以支撑Power PC的升级换代。
PowerPC对于IBM来说就像是在捏一坨泥巴,IBM的志向不在PowerPC架构,而在于Power系。由于G4的几人型号7500迟迟无法推出,IBM才将原本用于服务器、工作站的Power4下放到桌面市场派生出PowerPC 970,性能也确实是强悍原生支持SMP。使用了双路PowerPC 970MP的Power Mac G5是当时性能最强大的桌面PC,但由于PowerPC 970的高功耗和高热量,使得Apple不得不重新设计了G5的机箱结构,部分型号甚至使用水冷散热。
2004年Motorola推出新品制造行业,原来的半导体部门分拆成独立的飞思卡尔半导体。2005年,Apple着手转向使用x86架构,并在2006年,发布了基于英特尔CPU的全线Mac产品。可谓Apple对于PowerPC特别的不满意,可以说Apple此举宣布PowerPC从桌面市场消亡。
PowerPC退场的原因具体分析PowerPC早期虽然很成功,但它属于爹不疼娘不爱的角色,IBM当年还要收取高价的授权费,导致市场自然倾斜向英特尔的x86架构CPU。而IBM自家的亲儿子一直用于高端服务器、工作站市场。PowerPC在IBM家族中算是低端,由Motorola生产,供Apple使用,也被用于一些 游戏 主机,嵌入式系统等等。大家有没有发现这些都过于专用,很难形成一个巨额的市场,又导致开发的应用很难得到普及,可谓是恶性循环。
Apple的产品本身也过于封闭,对于绝大多数没有形成气候的厂商并不友好,很难形成属于自己的硬件和软件生态。没有生态往往就意味着赚不到钱,也就养不起足够的工程师去支撑生态系统的发展,最终逐步的被又有生态又能赚钱的WIntel逐步蚕食。
PowerPC或将迎来转机在2019年时“蓝胖子”IBM宣布将PowerPC架构和指令集移交至Linux基金会,从此任何公司都可以免费使用PowerPC的架构及相关专利来设计属于自己的CPU。将近30年的时间里极高身价的PowerPC得到了松绑的机会,未来很有可能会迎来属于它的一个春天,但这已经和胜不胜利,有多少市场占有率无关了。
因为市场小,分摊研发费用贵,所以一直只有银行用(主要是配套卖,IBM服务质量高),慢慢的,就研发跟不上,然后就没有然后了。
PowerPC为什么输给Intel?
我觉得可能换成另外一种说法,可能会更合适一点,苹果公司为什么会放弃PowerPC转向Intel处理器,PowerPC曾经也是相当辉煌,不过后面一直停滞不前,英特尔又来得太凶猛,后面就慢慢衰退了。PowerPC输给了Intel酷睿,事实上也是因为苹果彻底放弃了PowerPC,全面转向Intel酷睿处理器。
本身原因:能耗太夸张,水冷机器你玩过吗?PowerPC曾经非常强大的,曾经是Mac的御用处理器,也是微软Xbox 游戏 机御用处理器,一度占据服务器处理器市场半壁江山,率先商用了多核心处理器,单核多线程技术让AMD也是眼巴巴的,最先上4GHz,当年IBM的制程、工艺也都是很强的,可以说意识风头无两。
随着Intel的逐渐强势,先是蚕食掉了PowerPC的服务器市场份额,最终在PC领域彻底将PowerPC斩落马下,后面如 汽车 、电信等嵌入式、 游戏 主机领域,又开始使用ARM等处理器,PowerPC基本上也就防线全部被攻破了。桌面电脑的普及,一定程度上加速了PowerPC的淘汰,毕竟PC已经是处理器领域的第一大市场。
PowerPC之所以颓废,跟能耗有很大的关系,毕竟这玩意儿最初就是为服务器和工作站设计的。Google切换平台之后,一度省了超过5%的电量,与功耗不存在数学相关的是,PowerPC的性能越来越不占优势,但是功耗却高居不下,末代双核PowerPC G5做成的PowerMac,苹果甚至不得不搞了一个水冷散热器,这在现在是不敢想象的,苹果本来就想做把机器做轻薄,即使是现在,也只有顶尖 游戏 本才会用水冷系统。
苹果不满:成本极高、IBM和Freescale根本不上心在服务器市场和嵌入式领域,PowerPC逐渐衰落,当然在PC领域也是,除了能耗上的不足,最大的问题就是这玩意儿成本极高,高居不下的研发成本让苹果越来越不满。同时英特尔从奔腾到酷睿英特尔大踏步发展,能耗达到了一个平衡的同时,大批量生产成本也就下来了。
关键是吧,你成本高也就罢了,人苹果跑过来给你说,你这个要提升一下性能,也要把能耗给控制住啊。结果IBM和Freescale对这事儿一点都不上心,反正我也不靠这个业务赚钱,这只是我一个小业务而已,我挣钱的业务多了去了。一项业务我就能换来5%的市场,我还要投入巨大的资金到芯片技术、编译器支持等等,收费不高成本都没办法覆盖。
有趣的是IBM也都不太爱用PowerPC,ThinkPad 800当年是用过PowerPC处理器的,当年也是很强的,不过总体上来说PowerPC是把这个处理器的定位是在工作站、服务器领域,没准备在PC领域大规模商用,一度只有苹果在用这个处理器在PC上,这种前提下你说人苹果还用你的干嘛?后来苹果和IBM谈判的时候,IBM更注重单核性能,更愿意讨好两家 游戏 主机企业,苹果根本不在计划内,而英特尔则给苹果提供了多核的发展计划,这让乔布斯动心了。
用户需求:用户需要苹果拥抱Windows系统用户层面的需求也是很明显的,事实上在当年Windows和Intel的组合,已经开始称霸PC行业,成为全行业真正的PC领军者,苹果虽然软硬件一体,不过由于产品定位相对高端,价格上确实不占据优势,市场份额确实不高。
Windows的大面积普及,在很多领域,专业的软件都只是面向Windows开发,MacOS平台上根本没有这些软件。一些用户不得不放弃苹果电脑,选择Windows PC,苹果公司也意识到了这一点,开始积极考虑这件事情,假设Mac电脑能够运行Windows系统,对苹果来说未必就是一件坏事儿。
想要更容易迁移到Windows平台,选择Intel处理器显然是个不错的选择,苹果这个决定简直是神来之笔,Mac在转向Intel平台之后,也积极主动的做出了一系列操作,比如BootCamp官方支持物理机双系统,这些操作让Mac电脑的销量大幅增长,可以说是完全符合用户预期。
总的来说,苹果放弃PowerPC转向Intel,有PowerPC处理器本身的问题,也有苹果对于PowerPC的不满,也非常符合真实用户需求。苹果这些年其实从来没被供应商绑死过,基本上在供应商层面都拥有着极大的主动权,今年WWDC苹果宣布全面转向自家A系列处理器,苹果终于做到了几乎是完全的软硬一体。
一,价格,比x86贵的多的power pc在进入家庭方面先天不足想当时的代表SUN公司最终被康柏还是惠普收购了
二,power pc面向的都是专业领域,对于家庭日常 娱乐 应用基本没有。
三,操作系统,UNIX不适应家庭 娱乐 ,同时开发环境也过于专业
四,CPU基本上是每个公司各玩各的,不像X86这样,有专业的CPU制造公司,比如说INTEL,Chrix, Amd,德州仪器这些(我说的是那个年代)
五,太专业的精简指令集这些的就不展开了
因为POWER PC也好,MIPS也好,这类的CPU其实完蛋就完蛋在不够傻瓜上。这些CPU提供了非常简洁高效的基本机构。用户可以通过自己的软件开发实现很好的执行效率。但是,问题就出在这里,这类CPU的基础指令集和硬件架构都太简单。只能执行非常简单的预算,效率虽高,但是太考验软件工程师的能力了。就比如他再做四则运算的时候非常快。但是不会做应用题。需要做应用题的时候就要考编程的把式子先排出来再交给她算。这样就有两个问题,解题本身方法就有好有坏,遇到高手,三下五除二就解决问题了。但是遇到二把刀,算法一塌糊涂也正常。这样就不能保证软件都相对的高效。第二个问题就是,在解决这类不能直接交给CPU计算的问题时,软件就要多一层转换过程,本事就消耗算力。这样一来,这类CPU的执行效率优势就被抵消了。而且,随着计算机的运用环境越来越复杂,这个问题被逐步放大。知道彻底摧垮了这个构架在桌面系统上的应用。只有在专业的领用领域,还有一席之地。
IBM没有把功耗解决好,其次IBM的重心在Power处理器,对PowerPC不怎么重视
性能不行,功耗高,生态封闭,第三方开发成本高,路线图不符合苹果的要求,拿不出像样的移动端产品
IBM当年无意养大了英特尔和微软。造成PC为他人做嫁衣。但POWERPC还真是牛逼的很。但孤胆英雄,只存在于电影。IBM再强也无法逆转潮流。所以慢慢变成了边缘化。再好的产品,也不能脱离市场。
㈨ 关于powerpc 的DTS设备树,想请问: #address-cells = <2>; 前面的井号‘#’ 表示什么意思为什么
个SG法国人听哈发帖人
㈩ qemu怎么把针对powerpc板的u-boot跑起来
使用Qemu模拟Cortex-A9运行U-boot和Linux 作者来源于网络
我的开发环境: Ubuntu-12.04 所有软件包为最新
1. 安装GNU工具链
sudo apt-get insatll gcc-arm-linux-gnueabi
sudo apt-get insatll g++-arm-linux-gnueabi
安装完成后会在 /usr/arm-linux-gnueabi/ 目录下生成库文件、头文件等。 我安装的GCC版本为:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
2. 安装Qemu模拟器
sudo apt-get install qemu qemu-system qemu-utils
这时应该已经可以运行qemu-system-arm命令了, 其版本为:
qemu-system-arm --version
QEMU emulator version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard
3. 编译和运行U-boot:
到 ftp://ftp.denx.de/pub/u-boot/ 下载最新版本的U-Boot源代码, 我用的目前最新版本 u-boot-2012.04.tar.bz2
解压后进入源代码目录,在Makefile里面增加两行:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
其实就是告诉它使用ARM编译器来编译。
make ca9x4_ct_vxp_config
make
这里配置目标板为 Cortex-A9x4 vexpress. 之所以选这个配置可以从 boards.cfg文件里看到, vexpress是ARM公司使用Cortext-A9的一个开发板,相关的代码在 board/armltd/vexpress/ 目录,配置文件为include/configs/ca9x4_ct_vxp.h。 而且关键的是Qemu里面已经支持这个板卡。
编译完成后会生成u-boot文件
运行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
或者
qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot
发现,如果没有指定-nographics, 则必须要加-serial stdio才会有打印。
参数-m 256M为指定内存大小。-M 指定板卡的名称, 支持的板卡可以用-M ?查看, 如下:
#qemu-system-arm -M ?
Supported machines are:
beagle Beagle board (OMAP3530)
beaglexm Beagle board XM (OMAP3630)
............
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
vexpress-a15 ARM Versatile Express for Cortex-A15
正常运行的结果:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
U-Boot 2012.04 (Jul 08 2012 - 00:14:08)
DRAM: 256 MiB
WARNING: Caches not enabled
Flash: ## Unknown flash on Bank 1 - Size = 0x00000000 = 0 MB
## Unknown flash on Bank 2 - Size = 0x00000000 = 0 MB
*** failed ***
MMC: MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
VExpress#
VExpress# printenv
baudrate=38400
bootcmd=run bootflash;
bootdelay=2
bootflash=run flashargs; cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; bootm ${kernel_addr} ${ramdisk_addr_r}
console=ttyAMA0,38400n8
。。。。。
注意:如果在检测Flash failed后停止运行,是因为在 arch/arm/lib/board.c里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可以运行下去了。
4. 编译和运行Linux内核:
到http://www.kernel.org/下载最新的Linux内核源码,我下载的是linux-3.4.4.tar.bz2. 解压后修改Makefile, ARCH = arm, CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
(可以到 arch/arm/configs/ 目录看到所有自带的配置文件, 我们使用vexpress板卡默认的配置文件)
然后 make menuconfig --> System Type 把 Enable the L2x0 outer cache controller 取消, 否则Qemu会起不来, 暂时还不知道为什么。
然后就可以make了。 最后会生成 arch/arm/boot/zImage 文件, 这就是我们需要的内核映像。
5. 制作根文件系统:
这部分网上有非常多的介绍,就不细说了。 大概流程是:先创建标准的Linux目录结构, 到http://www.busybox.net/上下载最新的Busybox源代码编译安装到刚才创建的目录,
拷贝ARM的库文件到相应目录,在etc/目录创建若干必须的启动脚本和配置文件。 下面说一下怎么生成一个ext3格式的文件系统映像:
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32 //创建一个32M的空文件
mkfs.ext3 a9rootfs.ext3 //格式化为EXT3
sudo mount -t ext3 a9rootfs.ext3 a9rootdir/ -o loop //挂载到a9rootdir目录
cp path/to/your/rootfs/* a9rootdir/ -Rf //拷贝文件到该目录,相对于放到a9rootfs.ext3里面
sudo umount a9rootdir/
至此a9rootfs.ex3 就包含了我们创建的根文件系统内容, 并且是ext3格式。
6. 使用Qemu运行Linux:
qemu-system-arm -kernel zImage -serial stdio -M vexpress-a9 -append "root=/dev/mmcblk0 console=ttyAMA0 console=tty0" -sd a9rootfs.ext3
Qemu可以模拟SD卡, 我们把a9rootfs.ext3作为一个SD设备,对应的设备文件即为 /dev/mmcblk0, 以它作为根文件系统启动。 ttyAMA0: Serial console; tty0: Framebuffer Console. 最后放一张启动后的图片:
阅读(2682) | 评论(0) | 转发(0) |
0
上一篇:kernel 启动过程之五, initcall 的来由, console 的初始化
下一篇:linux下jlink安装
相关热门文章
A sample .exrc file for vi e...
游标的特征
IBM System p5 服务器 HACMP ...
busybox的httpd使用CGI脚本(Bu...
Solaris PowerTOP 1.0 发布
linux dhcp pei roc
关于Unix文件的软链接
求教这个命令什么意思,我是新...
sed -e "/grep/d" 是什么意思...
谁能够帮我解决LINUX 2.6 10...