qemu怎么把针对powerpc板的u-boot跑起来

qemu怎么把针对powerpc板的u-boot跑起来,第1张

使用Qemu模拟Cortex-A9运行U-boot和Linux 作者来源于网络
我的开发环境: Ubuntu-1204 所有软件包为最新
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 463-1ubuntu5) 463
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 1050 (Debian 1050-201203-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard
3 编译和运行U-boot:
到 ftp://ftpdenxde/pub/u-boot/ 下载最新版本的U-Boot源代码, 我用的目前最新版本 u-boot-201204tarbz2
解压后进入源代码目录,在Makefile里面增加两行:
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabi-
其实就是告诉它使用ARM编译器来编译。
make ca9x4_ct_vxp_config
make
这里配置目标板为 Cortex-A9x4 vexpress 之所以选这个配置可以从 boardscfg文件里看到, vexpress是ARM公司使用Cortext-A9的一个开发板,相关的代码在 board/armltd/vexpress/ 目录,配置文件为include/configs/ca9x4_ct_vxph。 而且关键的是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 201204 (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/boardc里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可以运行下去了。
4 编译和运行Linux内核:
到>

使用笔记本的话,可能知道 Linux 系统的电源管理做得很不好。虽然有 TLP、 Laptop Mode Tools 和 powertop 这些工具来辅助减少电量消耗,但跟 Windows 和 Mac OS 系统比较起来,电池的整个使用周期还是不尽如意。

此外,还有一种降低功耗的办法就是限制CPU的频率。这是可行的,然而却需要编写很复杂的终端命令来设置,所以使用起来不太方便。幸好,有一款名为CPUPowerManager的GNOME扩展插件,可以很容易的就设置和管理你的CPU主频

GNOME桌面系统中,CPUPowerManager使用名为intel_pstate的频率调整驱动程序(几乎所有的IntelCPU都支持)来控制和管理CPU主频。

扩展资料

CPUPowerManager

查看CPU主频:显然,你可以通过这个提示窗口看到CPU的当前运行频率。

设置最大、最小主频:使用此扩展,你可以根据列出的最大、最小频率百分比进度条来分别设置其频率限制。一旦设置,CPU将会严格按照此设置范围运行。

开/关TurboBoost:这是我最喜欢的功能特性。大多数IntelCPU都有“TurboBoost”特性为了提高额外性能,其中的一个内核为自动进行超频。

此功能虽然可以使系统获得更高的性能,但也大大增加功耗。所以,如果不做CPU密集运行的话,为节约电能,最好关闭TurboBoost功能。事实上,在我电脑上,我大部分时间是把TurboBoost关闭的。

生成配置文件:可以生成最大和最小频率的配置文件,就可以很轻松打开/关闭,而不是每次手工调整设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13479595.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-15
下一篇 2023-08-15

发表评论

登录后才能评论

评论列表(0条)

保存