1. 程式人生 > >基於QEMU搭建完整的虛擬ARM開發環境(uboot+linux+rootfs)

基於QEMU搭建完整的虛擬ARM開發環境(uboot+linux+rootfs)

主機環境:ubuntu 16.04虛擬機器,目標機器:QEMU模擬vexpress-a9。
------------------------------------------------
一、準備工作
安裝qemu, 交叉編譯工具等略過。


[email protected]:~/work/vexpress/uboot$ qemu-system-arm -M ? 
Supported machines are:
……
versatileab          ARM Versatile/AB (ARM926EJ-S)
versatilepb          ARM Versatile/PB (ARM926EJ-S)
vexpress-a15         ARM Versatile Express for Cortex-A15
vexpress-a9          ARM Versatile Express for Cortex-A9
……

準備一個單獨的目錄vexpress, uboot, linux和busybox原始碼並解壓,建立映象檔案目錄image

[email protected]
:~/work/vexpress$ ls 
busybox-1.27.1.tar.bz2  linux-4.9.39.tar.xz  u-boot-2017.07.tar.bz2

[email protected]:~/work/vexpress$ tar xjf busybox-1.27.1.tar.bz2  
[email protected]:~/work/vexpress$ mv busybox-1.27.1 busybox
[email protected]:~/work/vexpress$ tar xJf linux-4.9.39.tar.xz 
[email protected]
:~/work/vexpress$ rm linux-4.9.39.tar.xz 
[email protected]:~/work/vexpress$ mv linux-4.9.39/ linux
[email protected]:~/work/vexpress$ tar xjf u-boot-2017.07.tar.bz2  
[email protected]:~/work/vexpress$ rm u-boot-2017.07.tar.bz2 
[email protected]:~/work/vexpress$ mv u-boot-2017.07/ uboot
[email protected]
:~/work/vexpress$ rm busybox-1.27.1.tar.bz2 

[email protected]:~/work/vexpress$ mkdir image

[email protected]:~/work/vexpress$ ls
busybox  image  linux  uboot


------------------------------------------------
二、編譯執行uboot

建立mkuboot.sh指令碼並新增執行許可權,進行編譯
[email protected]:~/work/vexpress/uboot$ ls configs/vexpress_* 
configs/vexpress_aemv8a_dram_defconfig  configs/vexpress_aemv8a_semi_defconfig  configs/vexpress_ca5x2_defconfig
configs/vexpress_aemv8a_juno_defconfig  configs/vexpress_ca15_tc2_defconfig     configs/vexpress_ca9x4_defconfig

[email protected]:~/work/vexpress/uboot$ cat mkuboot.sh 
	export ARCH=arm
	export CROSS_COMPILE=arm-linux-gnueabi-
	make  vexpress_ca9x4_defconfig
	make V=1
[email protected]:~/work/vexpress/uboot$ chmod +x mkuboot.sh 
[email protected]:~/work/vexpress/uboot$ ./mkuboot.sh

編譯完成後在當前目錄有u-boot檔案,用下面命令可以跑起來
[email protected]:~/work/vexpress/uboot$ qemu-system-arm -M vexpress-a9 -m 512 -nographic  -kernel u-boot
audio: Could not init `oss' audio driver

U-Boot 2017.07 (Mar 17 2018 - 20:09:31 +0800)

DRAM:  512 MiB
WARNING: Caches not enabled
Flash: 128 MiB
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 
=> 

此時的uboot沒有網路支援,無法通過tftp下載核心映象,將其複製到image目錄
[email protected]:~/work/vexpress/uboot$  cp u-boot ../image/
[email protected]:~/work/vexpress/uboot$  echo "cp u-boot ../image/"  >> mkuboot.sh

把uboot目錄下的mkimage命令所在目錄加到PATH環境變數(略過)
[email protected]:~/work/vexpress/uboot$ find . -name mkimage
./tools/mkimage

------------------------------------------------------
三、編譯linux並執行

[email protected]:~/work/vexpress/linux$ ls arch/arm/configs/ve* 
arch/arm/configs/versatile_defconfig  arch/arm/configs/vexpress_defconfig

建立mklinux.sh指令碼賦許可權並執行
[email protected]:~/work/vexpress/linux$ cat mklinux.sh 
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
make -j4
make modules -j4
make uImage LOADADDR=0x60000000
make dtbs

cp -f arch/arm/boot/uImage  ../image/
cp -f arch/arm/boot/zImage  ../image/
cp -f arch/arm/boot/dts/vexpress-v2p-ca9.dtb  ../image/device.dtb
[email protected]:~/work/vexpress/linux$ ./mklinux.sh

編譯完成後可用直接單獨跑下核心:
[email protected]:~/work/vexpress/linux$ qemu-system-arm -M vexpress-a9 -m 512 -kernel arch/arm/boot/zImage -nographic -append "console=ttyAMA0" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb

audio: Could not init `oss' audio driver
Booting Linux on physical CPU 0x0
Linux version 4.9.39 ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #1 SMP Sat Mar 17 20:31:19 CST 2018
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
OF: fdt:Machine model: V2P-CA9
Memory policy: Data cache writeback
……
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/[email protected]0/[email protected]:motherboard/[email protected]:motherboard:[email protected],00000000/10007000.kmi/serio1/input/input2
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
1f00          131072 mtdblock0  (driver?)
1f01           32768 mtdblock1  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.39 #1
Hardware name: ARM-Versatile Express
[<8010e5c8>] (unwind_backtrace) from [<8010b028>] (show_stack+0x10/0x14)
[<8010b028>] (show_stack) from [<80356200>] (dump_stack+0x84/0x98)
[<80356200>] (dump_stack) from [<801a8d38>] (panic+0xdc/0x248)
[<801a8d38>] (panic) from [<808012ac>] (mount_block_root+0x1c8/0x2a0)
[<808012ac>] (mount_block_root) from [<808014a8>] (mount_root+0x124/0x12c)
[<808014a8>] (mount_root) from [<80801600>] (prepare_namespace+0x150/0x198)
[<80801600>] (prepare_namespace) from [<80800eb4>] (kernel_init_freeable+0x250/0x260)
[<80800eb4>] (kernel_init_freeable) from [<805d276c>] (kernel_init+0x8/0x114)
[<805d276c>] (kernel_init) from [<80107578>] (ret_from_fork+0x14/0x3c)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)


目前沒有根檔案系統,上面報錯是正常的。


---------------------------------------------
四、配置tftp

[email protected]:~/work/vexpress/linux$ sudo apt-get install tftp-hpa tftpd-hpa


修改tftp配置檔案:
[email protected]:/etc/default$ cat tftpd-hpa 
	# /etc/default/tftpd-hpa


	TFTP_USERNAME="tftp"
	TFTP_DIRECTORY="/home/konga/work/vexpress/image"
	TFTP_ADDRESS=":69"
	TFTP_OPTIONS="--secure"
重啟tftp服務
[email protected]:/etc/default$  sudo service tftpd-hpa restart


確保可以正常下載image目錄的檔案,必要時可能要增加image目錄的許可權
[email protected]:~$ ls work/vexpress/image/
device.dtb  u-boot  uImage
[email protected]:~$ tftp localhost
tftp> get uImage
tftp> quit
[email protected]:~$ ls 
bin  Desktop  docs  uImage  work


-----------------------------------------------------
五、配置TUN/TAP虛擬網路

[email protected]:~/work/vexpress/linux$ sudo apt-get install bridge-utils uml-utilities 

檢查是否有/dev/net/tun 裝置檔案,無則自行配置安裝。

建立指令碼並放在自己的bin目錄(ens38為虛擬網絡卡介面,網段為10.8.8.0,VMWare中的"僅主機模式"):
[email protected]:~/bin$ cat tuntap.sh 
#!/bin/bash
if test -z $1 ; then
	echo need a arg: down/up
	exit
fi 

if [ "up" = $1 ] ; then

	brctl addbr br0

	ifconfig ens38 down
	brctl addif br0 ens38

	#關閉生成樹協議
	brctl stp br0 off

	ifconfig br0 10.8.8.3 netmask 255.255.255.0 promisc up
	ifconfig ens38 10.8.8.2 netmask 255.255.255.0 promisc up

	tunctl -t tap0 -u konga
	ifconfig tap0 10.8.8.4 netmask 255.255.255.0 promisc up
	brctl addif br0 tap0
else
    	ifconfig tap0 down
	brctl delif br0 tap0

	ifconfig ens38 down
	brctl delif br0 ens38

	ifconfig br0 down
	brctl delbr br0

        ifconfig ens38 10.8.8.2 netmask 255.255.255.0
fi
為了方便執行,在~/.bashrc加入兩行:
alias ttup='sudo ~/bin/tuntap.sh up'
alias ttdown='sudo ~/bin/tuntap.sh down'

[email protected]:~/bin$  source ~/.bashrc


-----------------------------------------
六、用uboot下載核心並執行

[email protected]:~/work/vexpress/image$ ls
device.dtb  u-boot  uImage

[email protected]:~/work/vexpress/image$ ttup 
Set 'tap0' persistent and owned by uid 1000

帶網路執行uboot,進入命令列:
[email protected]:~/work/vexpress/image$ qemu-system-arm -M vexpress-a9 -m 512 -nographic  -net nic -net tap,ifname=tap0,script=no -kernel u-boot
audio: Could not init `oss' audio driver


U-Boot 2017.07 (Mar 17 2018 - 20:17:48 +0800)

DRAM:  512 MiB
WARNING: Caches not enabled
Flash: 128 MiB
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 

=> ping 10.8.8.2
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
smc911x: MAC 52:54:00:12:34:56
host 10.8.8.2 is alive

=> ping 10.8.8.3
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
smc911x: MAC 52:54:00:12:34:56
host 10.8.8.3 is alive

=> ping 10.8.8.4
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
smc911x: MAC 52:54:00:12:34:56
host 10.8.8.4 is alive

設定環境變數,自己IP,tftp伺服器:
=> setenv ipaddr 10.8.8.100; setenv netmask 255.255.255.0; setenv serverip 10.8.8.3;

下載核心映象、裝置樹並啟動核心(如果沒有載入裝置樹,會卡在 Starting kernel...這一步):
=> tftp 0x60000000 uImage; tftp 0x70000000 device.dtb; fdt addr 0x70000000; bootm 0x60000000 - 0x70000000

smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
TFTP from server 10.8.8.3; our IP address is 10.8.8.100
Filename 'uImage'.
Load address: 0x60000000
Loading: #################################################################
#################################################################
#################################################################
############################################
5.1 MiB/s
done
Bytes transferred = 3500592 (356a30 hex)
smc911x: MAC 52:54:00:12:34:56
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
TFTP from server 10.8.8.3; our IP address is 10.8.8.100
Filename 'device.dtb'.
Load address: 0x70000000
Loading: ##
50.8 KiB/s
done
Bytes transferred = 14708 (3974 hex)
smc911x: MAC 52:54:00:12:34:56
## Booting kernel from Legacy Image at 60000000 ...
   Image Name:   Linux-4.9.39
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3500528 Bytes = 3.3 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 70000000
   Booting using the fdt blob at 0x70000000
   Loading Kernel Image ... OK
   Loading Device Tree to 7fed4000, end 7feda973 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.9.39 ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #1 SMP Sat Mar 17 20:31:19 CST 2018
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
OF: fdt:Machine model: V2P-CA9
Memory policy: Data cache writeback
CPU: All CPU(s) started in SVC mode.
percpu: Embedded 13 pages/cpu @9ffba000 s23372 r8192 d21684 u53248
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyAMA0
log_buf_len individual max cpu contribution: 4096 bytes
log_buf_len total cpu_extra contributions: 12288 bytes
log_buf_len min size: 16384 bytes
log_buf_len: 32768 bytes
。。。。。。
ALSA device list:
  #0: ARM AC'97 Interface PL041 rev0 at 0x10004000, irq 30
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/[email protected]/[email protected]:motherboard/[email protected]:motherboard:[email protected],00000000/10007000.kmi/serio1/input/input2
VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
1f00          131072 mtdblock0  (driver?)
1f01           32768 mtdblock1  (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.39 #1
Hardware name: ARM-Versatile Express
[<8010e5c8>] (unwind_backtrace) from [<8010b028>] (show_stack+0x10/0x14)
[<8010b028>] (show_stack) from [<80356200>] (dump_stack+0x84/0x98)
[<80356200>] (dump_stack) from [<801a8d38>] (panic+0xdc/0x248)
[<801a8d38>] (panic) from [<808012ac>] (mount_block_root+0x1c8/0x2a0)
[<808012ac>] (mount_block_root) from [<808014a8>] (mount_root+0x124/0x12c)
[<808014a8>] (mount_root) from [<80801600>] (prepare_namespace+0x150/0x198)
[<80801600>] (prepare_namespace) from [<80800eb4>] (kernel_init_freeable+0x250/0x260)


核心報錯,還是因為沒有根檔案系統。


------------------------------------
七、製作根檔案系統
建立指令碼並執行:
[email protected]:~/work/vexpress/busybox$ cat mkbusybox.sh
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install


dd if=/dev/zero of=sdcard.ext3 bs=1M count=32
mkfs.ext3 sdcard.ext3
sudo rm -fr rootfs;
mkdir rootfs
sudo mount -t ext3 -o loop sdcard.ext3  rootfs/
cd rootfs;
sudo mkdir lib proc sys dev etc etc/init.d
sudo cp -r ../_install/* .
sudo cp -P /usr/arm-linux-gnueabi/lib/*  lib/


sudo cp ../examples/bootfloppy/etc/inittab  etc/
sudo touch etc/init.d/rcS ;
sudo chmod 0777 etc/init.d/rcS;
sudo echo "#!/bin/sh" >> etc/init.d/rcS
sudo echo "mount -t proc none /proc" >> etc/init.d/rcS
sudo echo "mount -t sysfs none /sys" >> etc/init.d/rcS
sudo echo "mount -t tmpfs none /dev" >> etc/init.d/rcS
sudo echo "/sbin/mdev -s" >> etc/init.d/rcS
sudo chmod 0755 etc/init.d/rcS;


cd ..;
sudo umount rootfs/
cp sdcard.ext3 ../image/

[email protected]:~/work/vexpress/busybox$ bash -x mkbusybox.sh
編譯製作根檔案系統完成。

----------------------------------------------
八、完整執行

[email protected]:~/work/vexpress/image$ ls
device.dtb  sdcard.ext3  u-boot  uImage

[email protected]:~/work/vexpress/image$ qemu-system-arm -M vexpress-a9 -m 512 -nographic -net nic -net tap,ifname=tap0,script=no -sd sdcard.ext3 -kernel u-boot

WARNING: Image format was not specified for 'sdcard.ext3' and probing guessed raw.
         Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted.
         Specify the 'raw' format explicitly to remove the restrictions.
audio: Could not init `oss' audio driver

U-Boot 2017.07 (Mar 17 2018 - 20:17:48 +0800)

DRAM:  512 MiB
WARNING: Caches not enabled
Flash: 128 MiB
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 
=>

=> setenv ipaddr 10.8.8.100; setenv netmask 255.255.255.0; setenv serverip 10.8.8.3; setenv bootargs "console=ttyAMA0 root=/dev/mmcblk0 init=/linuxrc rw rootwait"

=> tftp 0x60000000 uImage; tftp 0x70000000 device.dtb; fdt addr 0x70000000; bootm 0x60000000 - 0x70000000 
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
TFTP from server 10.8.8.3; our IP address is 10.8.8.100
Filename 'uImage'.
Load address: 0x60000000
Loading: #################################################################
#################################################################
#################################################################
############################################
8.5 MiB/s
done
Bytes transferred = 3500592 (356a30 hex)
smc911x: MAC 52:54:00:12:34:56
smc911x: MAC 52:54:00:12:34:56
smc911x: detected LAN9118 controller
smc911x: phy initialized
smc911x: MAC 52:54:00:12:34:56
Using smc911x-0 device
TFTP from server 10.8.8.3; our IP address is 10.8.8.100
Filename 'device.dtb'.
Load address: 0x70000000
Loading: ##
2.3 MiB/s
done
Bytes transferred = 14708 (3974 hex)
smc911x: MAC 52:54:00:12:34:56
## Booting kernel from Legacy Image at 60000000 ...
   Image Name:   Linux-4.9.39
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    3500528 Bytes = 3.3 MiB
   Load Address: 60000000
   Entry Point:  60000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 70000000
   Booting using the fdt blob at 0x70000000
   Loading Kernel Image ... OK
   Loading Device Tree to 7fed4000, end 7feda973 ... OK


Starting kernel ...


Booting Linux on physical CPU 0x0
Linux version 4.9.39 ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.4) ) #1 SMP Sat Mar 17 20:31:19 CST 2018
CPU: ARMv7 Processor [410fc090] revision 0 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
OF: fdt:Machine model: V2P-CA9
Memory policy: Data cache writeback
。。。。。。


Please press Enter to activate this console. 
/ #
/ # uname -a 
Linux (none) 4.9.39 #1 SMP Sat Mar 17 20:31:19 CST 2018 armv7l GNU/Linux


/ # cat /proc/cpuinfo 
processor: 0
model name: ARMv7 Processor rev 0 (v7l)
BogoMIPS: 666.41
Features: half thumb fastmult vfp edsp neon vfpv3 tls vfpd32 
CPU implementer: 0x41
CPU architecture: 7
CPU variant: 0x0
CPU part: 0xc09
CPU revision: 0


Hardware: ARM-Versatile Express
Revision: 0000
Serial: 0000000000000000

/ #

=======================

九、只執行核心和根檔案系統

qemu-system-arm -M vexpress-a9 -m 512 -sd sdcard.ext3 -nographic -kernel zImage  -dtb device.dtb   -append "console=ttyAMA0 rootwait rw root=/dev/mmcblk0 init=/linuxrc"

相關推薦

基於QEMU搭建完整虛擬ARM開發環境(uboot+linux+rootfs

主機環境:ubuntu 16.04虛擬機器,目標機器:QEMU模擬vexpress-a9。------------------------------------------------一、準備工作安裝qemu, 交叉編譯工具等略過。[email protected

一步步教你如何在Ubuntu虛擬機器中安裝QEMU並模擬模擬arm 開發環境(一uImage u-boot

初次接觸qemu是因為工作的需要,有時候下了班,可能需要在家研究一些東西,因為博主用到arm環境,這時候博主比較小氣,不願花錢買開發板,當然博主在這裡給大家的建議是,如果要真正學懂arm構架的相關知識,還是單獨買一塊arm的開發板,慢慢摸索吧,畢竟這才是最好的學習方法,如果

Vite ❤ Electron——基於Vite搭建Electron+Vue3的開發環境【一】

背景 目前社群兩大Vue+Electron的腳手架:electron-vue和vue-cli-plugin-electron-builder, 都有這樣那樣的問題,且都還不支援Vue3,然而Vue3已是大勢所趨, Vite勢必也將成為官方Vue腳手架, 下圖是尤雨溪在開發好Vite之後與webpack之父的對

基於 vagrant搭建移動端的開發環境

# 後端開發環境Homestead啟動 Homestead 之前,確保 VirtualBox 、Vagrant、Git 軟體己安裝。 ## 安裝 laravel/homesteadvagrant box add laravel/homestead如果這個命令失敗了,請確保你安裝的是最新版的 Vagrant(可

基於騰訊雲的Centos6.2系統搭建Apache+Mysql+PHP開發環境

fcm 拓展 php代碼 /var/ 安全 size onf tle php-mysql 搭建環境,我肯定需要先購買騰訊雲服務器的哦! 然後,我們打開SecureCRT 7.3,這是一款可以連接Linux系統的客戶端工具,使用的很方便快捷,要註意的是,若你是Linux系統的

Grunt搭建自動化web前端開發環境--完整流程

成本 鏈接地址 sta 一行 手動 css 變化 關鍵字 也會 jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你沒有理由不學、不用! 1、 前言   各位web前端開發人員,如果你現在還不知道grunt或者聽說過、但是

嵌入式ARM開發環境搭建

開發環境 交叉編譯 一、選擇合適的交叉編譯工具鏈 找到與自己目標開發平臺(Soc)盡可能相匹配的交叉編譯工具鏈(arm-linux-gcc) 例如:開發S5PV210平臺相關的程序就可以用arm-2009q3這個版本,因為三星官方在開發S5pv210時就使用這個版本的交叉編譯工具鏈,這樣選

Vagrant 搭建跨平臺的 PHP 開發環境 (一安裝 ubuntu 虛擬機器

Vagrant是一個軟體,可以自動化虛擬機器的安裝和配置流程,支援 VirtualBox 、VMware 、AWS 作為虛擬機器以 VirtualBox 為例,步驟如下: Windows 10 系統中 需要關閉 Hyper-v , 小米筆記本中 biso 中找不到 虛擬化配置,關閉 Hyper-v 就可以了

Vagrant 搭建跨平臺的 PHP 開發環境 (一安裝 ubuntu 虛擬

刪除 des 添加 ans com 操作系統 nsh list 找不到 Vagrant是一個軟件,可以自動化虛擬機的安裝和配置流程,支持 VirtualBox 、VMware 、AWS 作為虛擬機以 VirtualBox 為例,步驟如下: Windows 10 系統中 需要

【核心】四、搭建完整的mini2440開發板驅動開發環境(仿照JZ2440驅動開發環境搭建

一、mini2440開發板驅動環境搭建: 《mini2440使用者手冊》說明原文>>注意:本開發板提供的 linux 核心並不能直接用於 u-boot ,因為我們公司是不使用u-boot的,並且對其各個引數設定並不瞭解,關於 U-Boot 的使用方法使用者可以參考網上的資料。 我了個。。。鑑於

搭建完整arm-linux-gcc等交叉編譯環境

https://www.cnblogs.com/uestc-mm/p/6656325.html 安裝環境        Linux版本:Ubuntu 12.04    核心版本:Linux 3.5.0   交叉編譯器版本:

基於Eclipse 的JSP/Servlet的開發環境搭建

基於Eclipse 的JSP的開發環境的搭建 說明:順利地開發、測試和執行JSP程式少不了規範而安全的開發環境,本文將會詳細地展示如何搭建JSP的開發環境。內容詳盡,適合零基礎學者作為學習參考。 一、JSP介紹: 1.JSP全稱Java Server Pages,是一種動態網頁開發技術。它使用JSP標籤(通常

Go語言程式開發ARM開發環境搭建

參考文件 開發環境介紹 主機作業系統:Ubuntu14.04 64位 目標平臺:IMX.6 交叉工具鏈:arm-poky-linux-gnueabi,gcc4.8.2 Go版本:1.10.3 編譯時間:2018.8.27 編譯Go編譯器(Hos

Windows下搭建基於VScode+clang+MinGW的C++開發環境

這種奇怪的組合大概只有我這種寫前端的mac使用者才會用的吧……參考資料:https://www.zhihu.com/question/30315894 setting程式碼直接貼裡面的就好了,這裡只做搭建過程整理。首先我們要去下一個VScode:https://code.vi

centos7.2中搭建ARM開發環境所需工具初體驗

需要用到的工具: 編譯工具:arm-linux-gcc  連結工具:arm-linux-ld 格式轉換工具:arm-linux-objcopy 反彙編器:arm-linux-objdump 檔案資訊檢視:arm-linux-readelf 下載工具:dnw 除錯工具:ar

在windows環境基於sublime text3的node.js開發環境搭建

首先安裝sublime text3,百度一堆,自己找吧。理論上sublime text2應該也可以。我只能說一句:這個軟體實在是太強悍了。 跨平臺,豐富的外掛體系,加上外掛基本上就是一個強悍的ide了。目前我在使用的主要是Emmet、Python、還有一些格式化的外掛(xml,json),加上這次

Tiny4412 ARM開發環境搭建—NFS網路根檔案系統製作

Tiny4412從SD卡啟動的簡單網路檔案系統製作 1. 簡介 嵌入式系統能夠在開發板上正常執行,需要先進行系統配置,一個完整的嵌入式系統應該包含的幾個部分::uboot,kernel,rootfs,appfs。這幾部分在ARM板Flash上的位置關係

Windows下搭建GCC + Eclipse + OpenOCD的ARM開發環境

最近更新Win 10,重搭了GCC + Eclipse + OpenOCD的開發環境,寫此文把過程記錄下來,以便以後查閱。 硬體平臺 STM32F405開發板 + ST LINK step 1 GCC ARM toolchain少不了,傳送門。

關於GNU ARM → GNU MCU Eclipse的強行翻譯——eclipse下搭建arm開發環境_(1)

我先致敬一波大神,總是有人跟我一樣,不是計算機專業卻整天想搞個大新聞首先宣告,本人翻譯在翻譯專業中應稱作意譯,所以有不同意見歡迎討論====================老子就是正文分割線===============================GNU MCU Ecli

微信公眾平臺開發基於百度 BAE3.0 的開發環境搭建(採用 Baidu Eclipse

轉載請標明出處<http://blog.csdn.net/bingtianxuelong/article/details/17843111>,謝謝! 版本說明:     V1:  2014-2-13更新,紅色字型代表最近一次更新的內容。