qemu是一款虚拟化软体。使用者需要有一定命令列基础,或直接下载qemu manger
qemu的一大缺点就是不能换软盘、光碟
安装Linux需要建立硬碟映像(别太小)和安装光碟
只要你会使用它的命令列,就可以在qemu里面像正常系统一样的安装.
如何在windows下搭建svn?svn的搭建。很简单的,下载个windows版svn,然后安装。开启SVN控制台,增加专案,使用者和使用者组即可。最后再给使用者或使用者组分配许可权即可
如何在Windows下搭建Storm在过去,在windows下跑storm是一个极大的挑战。通常,这种方式会涉及到Storm的原始码程式设计方式,storm的生态依赖以及如何让windows伪装成UNIX/POSIX。
就是因为这个原因,导致了很大一部分Storm的潜在使用者放弃了将storm整合的到大资料处理框架中。
非常感谢Storm的开发者David Lao以及 来自运纯配Yahoo!的贡献(making-storm-fly-with-ty),下一个storm版本 (0.9.1-incubating) 将会更容易地部署到windows环境中。
下面,我将列出几个步骤,讲述如何将storm部署到windows环境中,并且将会跑一个简单的拓扑在这个环境中。这是一个简单的建立单节点以及跑一个"word count"简单拓扑的过程。
先附上UI图:
安装JAVA:
下载JDK(Storm 需要的环境是JDK6/7),在这个步骤中,我使用JDK 7,大家可以自行到Oracle官网下载。
我将它安装在:
C:\Java\jdk1.7.0_45\
安装Python:
为了测试python的安装,我将部署"word count"来自storm-starter project 的例子,一个用python写的multi-lang bolt。我使用的python2.7.6可以从这里下载。
我将python安装在这里:
C:\Python27\
安装以及执行Zookeeper:
下载 Apache Zookeeper 3.3.6并旁指且解压它。按照如下命令进行配置以及执行:
>cd zookeeper-3.3.6
>copy conf\zoo_sample.cfg conf\zoo.cfg
>.\bin\zkServer.cmd
安装Storm
允许storm部署到windows下的官方正式版本现在还没有释出,但是你可以下载并且编译包含了这个功裤虚能的版本,点选这里下载。
(原始码分支参考这里)。
解压压缩包到你想要的位置。我选择 C盘。
配置环境变数
在windows下需要配置两个环境变数: STORM_HOME 以及 JAVA_HOME ,并且同样要将安装路径配置到PATH中。
JAVA_HOME
C:\Java\jdk1.7.0_45\
STORM_HOME
C:\storm-0.9.1-incubating-SNAPSHOT-12182013\
PATH Add:
%STORM_HOME%\bin%JAVA_HOME%\binC:\Python27C:\Python27\Lib\site-packages\C:\Python27\Scripts\
PATHEXT Add:
.PY
Start Nimbus, Supervisor, and Storm UI Daemons
为每一个执行例项开启一个命令列:
Nimbus
>cd %STORM_HOME%
>storm nimbus
Supervisor
>cd %STORM_HOME%
>storm supervisor
Storm UI
>cd %STORM_HOME%
>storm ui
通过浏览器 :localhost:8080/ 验证一下Storm是否已经跑起来了。
部署“Word Count” 拓扑:
编译 storm-starter 专案。
部署 Word Count 拓扑到你的本地丛集中:
>storm jar storm-starter-0.0.1-SNAPSHOT-jar-with-dependencies.jar storm.starter.WordCountTopology WordCount -c nimbus.host=localhost
重新整理UI页面,就可以看到任务已经跑起来了。
使用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 flashargscp ${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()去掉就可以运行下去了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)