㈠ 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...