历史上的今天
返回首页

历史上的今天

今天是:2025年02月06日(星期四)

正在发生

2020年02月06日 | qemu+chroot构建arm aarch64虚拟机

2020-02-06 来源:eefocus

在X86环境下构建出arm虚拟机可以模拟arm环境进行开发、在arm linux的文件系统中安装相应的库文件,编译arm版本等。


简单介绍下在X86环境下构建ARM虚拟机的步骤。


1、x86环境安装qemu-user-static

sudo apt-get install qemu-user-static


2、准备arm linux根文件系统

arm linux根文件系统可以直接下载干净的版本


或者从运行的arm单板上进行备份获取。


arm单板上备份根文件系统命令:


sudo tar -cvpzf rootfs.tgz --exclude=/proc --exclude=/mnt --exclude=/sys --exclude=/rootfs.tgz /

解压根文件系统命令:


tar -xvpfz rootfs.tgz -C ./


3、构建虚拟机

创建rootfs目录,在rootfs下执行根文件系统解压命令,解压完成后,copy qemu执行命令到arm文件系统中


sudo cp /usr/bin/qemu-arm-static usr/bin/

sudo cp /usr/bin/qemu-aarch64-static usr/bin/

在rootfs录下创建proc、sys、host目录


在rootfs所在目录下创建ch-mount.sh文件


ch-mount.sh

#!/bin/bash


function mnt() {

    echo "MOUNTING"

    sudo mount -t proc /proc ${2}proc

    sudo mount -t sysfs /sys ${2}sys    

    sudo mount -o bind /dev ${2}dev

    sudo mount -o bind /run ${2}run 

    sudo mount --bind / ${2}host

    #sudo mount -vt tmpfs shm ${2}dev/shm

    #sudo mount -t /dev/shm ${2}dev/shm

    sudo chroot ${2}

}


function umnt() {

    echo "UNMOUNTING"

    sudo umount ${2}proc

    sudo umount ${2}sys

    #sudo umount ${2}dev/shm

    sudo umount ${2}dev

    sudo umount ${2}run

    sudo umount ${2}host

}



if [ "$1" == "-m" ] && [ -n "$2" ] ;

then

    mnt $1 $2

elif [ "$1" == "-u" ] && [ -n "$2" ];

then

    umnt $1 $2

else

    echo ""

    echo "Either 1'st, 2'nd or both parameters were missing"

    echo ""

    echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"

    echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"

    echo ""

    echo "For example: ch-mount -m /media/sdcard/"

    echo ""

    echo 1st parameter : ${1}

    echo 2nd parameter : ${2}

fi

执行ch-mount.sh,创建虚拟机


sudo ./ch-mount.sh -m rootfs/

arm虚拟机准备完毕,可以在虚拟的arm环境上进行相应的操作,创建用户、编译arm版本、......


4、卸载虚拟机

在虚拟机环境中执行exit退出。然后执行命令卸载挂载的相关文件。


sudo ./ch-mount.sh -u rootfs/

推荐阅读

史海拾趣

Dionics Inc公司的发展小趣事

在20世纪90年代初,Dionics Inc由几位对电子技术充满热情的工程师创立。当时,电子市场正处于快速发展期,但也面临着激烈的竞争。Dionics Inc凭借其在电源管理领域的创新技术,成功开发出一款高效节能的电源管理芯片,赢得了市场的认可。然而,随着市场的进一步开放,来自国内外的竞争对手纷纷涌入,Dionics Inc面临着巨大的挑战。

Ark-Les Connectors公司的发展小趣事

随着公司规模的扩大和产品线的丰富,Ark-Les Connectors公司开始积极寻求市场拓展。公司制定了针对不同区域和行业的市场拓展策略,通过参加国际电子展会、建立销售网络、开展合作伙伴计划等方式,不断扩大品牌影响力。同时,公司还根据市场需求调整产品策略,推出定制化解决方案,满足不同客户的个性化需求。这些举措使得Ark-Les的市场占有率稳步提升,公司业绩也实现了稳步增长。

ACEINNA公司的发展小趣事

在电子行业中,成本控制是企业竞争力的重要体现。Ark-Les Connectors公司深知优化供应链管理对于降低成本、提高盈利能力的重要性。因此,公司投入大量资源建设高效的供应链体系,与优质供应商建立长期合作关系,确保原材料的稳定供应和成本优化。同时,公司还通过引入先进的生产设备和工艺,提高生产效率,降低生产成本。这些措施使得Ark-Les能够在激烈的市场竞争中保持价格优势,进一步巩固市场地位。

GC Electronics公司的发展小趣事
定期检查传感器的工作状态,确保其能够准确监测水量或水温。
GISMA Steckverbinder GmbH公司的发展小趣事

自1983年成立以来,GISMA Steckverbinder GmbH便专注于水下连接器的开发、设计和生产。作为一家由所有者直接管理的独立公司,GISMA从一开始就确立了为海洋工业、船舶及海洋技术提供高质量电气和光纤连接器的目标。这一明确的市场定位使得GISMA能够迅速在竞争激烈的电子行业中脱颖而出,逐步建立起自己的市场地位。

Exclara Inc公司的发展小趣事

Exclara Inc.自创立之初就致力于研发创新技术,以满足电子行业对高性能、低功耗产品的需求。公司通过不断的技术突破,成功开发出了一系列具有竞争力的产品。例如,其采用HVX技术构成的驱动电源在T8型LED市场中脱颖而出,相比同规格方案,能够降低30%的BOM成本,这一技术革新不仅提升了产品的竞争力,也为公司赢得了市场的广泛认可。

问答坊 | AI 解惑

DSP开发100问

DSP开发100问 一。时钟和电源 问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的 好? 答:时钟一般使用晶体,电源可用TI的配套电源。外接晶振用无源的好。 问:TMS320LF2407的A/D转换精度保证措施。 答:参 ...…

查看全部问答>

颜色识别传感器

本帖最后由 paulhyde 于 2014-9-15 09:44 编辑  …

查看全部问答>

请教做过“倒车影像系统”的兄弟

我现在在做毕业设计,涉及到倒车影像中的“倒车轨迹的绘制”(想把不同转角下的车辆倒车轨迹都绘制好放入flash中供单片机调用)。想了好几天,没有合适的办法绘制倒车轨迹,请指点一二。谢谢。 邮箱 shangqi2010@163.com  感激不尽。…

查看全部问答>

各位老师,我是新手,请教Plc931直接ad转换的问题

我在公司里做毕业设计,采用lpc931单片机,想把一个十六位的数字量用单片机的Pwm功能给转换成模拟量,pwm输出采用rc滤波,但具体的c程序该怎么写呢?请指教!!…

查看全部问答>

关于MAP文件问题

我的MAP里面有个地方产生啦多余的4K RAM,谁知道是什么问题吗?----------------------------------------------------------  ======================CODE  Relative segment, address: 0800246C  ...…

查看全部问答>

新型测试仪器如何减少机架所占空间

Andrew Armutat 产品市场部 吉时利仪器公司   减少机架所占空间。新的吉时利SMU采用了2U[1]高的半机架设计,大大提高了机架密度。在实际情况下,基于该设计的自动化系统容量很容易集成几个到16个通道,甚至于128通道[2]也是有可能的 ...…

查看全部问答>

TI 自行设计开发板自带例程(TI内部资料)不要错过!!!

TI 内部开发板对应的开发例程,非常好!!!…

查看全部问答>

串口

感觉对串口原理不是很懂,看了半天晕晕乎乎的,求大侠指点…

查看全部问答>