ubuntu18.04 qemu環境搭建【學習筆記】

一、準備工具  

1.1 安裝相關工具    

sudo apt-get install qemu libncurses5-dev gcc-arm-linux-gnueabi build-essential

1.2 下載kernel(linux-4.0)與busybox(1.24)源碼

https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/

https://busybox.net/downloads/busybox-1.24.0.tar.bz2

?

二、編譯最小文件系統

2.1 解壓busybox

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-make menuconfig   選中靜態編譯
|
Busybox Settings  ---> |[*] Build BusyBox as a static binary (no shared libs)make install cd _install
mkdir etc dev mnt
mkdir -p etc/init.d/
cd etc/init.d/vim rcS
mkdir -p /proc
mkdir -p /tmp
mkdir -p /sys
mkdir -p /mnt
/bin/mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -schmod a+x rcScd ..
vim fstab
proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
debugfs /sys/kernel/debug defaults defaults 0 0vim inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a -rcd ..
cd dev 
sudo mknod console c 5 1
sudo mknod null c 1 3

拷貝交叉工具鏈的庫到根文件系統
cp /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/lib/*so* lib/ -d
cp /opt/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/arm-linux-gnueabi/libc/usr/lib/*so* usr/lib -d

生成ext3鏡像文件并掛載
? sudo dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32?

mkfs.ext3 path/a9rootfs.ext3
mkdir tmpfs
sudo mount -t ext3 a9rootfs.ext3 tmpfs -o loop
sudo cp -r rootfs/*tmpfs
sudo umount tmpfs 

啟動參數要添加-sd選項
進入系統執行mount -t ext3 /dev/mmcblk0 /mnt/

?2.2 linux編譯配置

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfigmake menuconfig
General setup  ---> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support                                                              (_install) Initramfs source file(s) ()  Default kernel command stringKernel Features  ---> 
Memory split (3G/1G user/kernel split)  ---> 
(X) 3G/1G user/kernel split make bzImage -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
make dtbs
啟動qemu qemu
-system-arm -M vexpress-a9 -smp 4 -m 1024M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic

?

 

轉載于:https://www.cnblogs.com/zzb-Dream-90Time/p/10787325.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/386900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/386900.shtml
英文地址,請注明出處:http://en.pswp.cn/news/386900.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

for else語句小tips : RUNOOB python練習題36

用來練手的python練習題,原題鏈接: python練習實例36 題干: 求100之內的素數 求某個范圍內的素數,和之前的一個例題其實是一樣的,上次的同類例題鏈接如下: python練習實例12 在實現題目要求時,這次用了for else語句&#xff0c…

Linux 下殺毒軟件 clamav 的安裝和使用

Linux 下殺毒軟件 clamav 的安裝和使用 安裝依賴: 1 2 3 yum install -y pcre* zlib zlib-devel libssl-devel libssl yum install -y openssl yum install -y epel-release openssl version 0.9.8 or higher 1. yum 安裝 clamav 安裝后會自動生成服務文件&#…

列表,元組和range

內容大綱 列表的初識列表的索引切片列表的增刪改查列表的嵌套元組的初識元組的簡單應用range 昨日內容回顧以及作業講解 int str boolstr 索引 s[x:y:z] 常用操作方法 upper lower startswith endswith split 分割:默認按照空格.將字符串分割成列表.可以知道分隔符 strip …

RUNOOB python練習題37 對一個序列的數進行排序

用來練手的Python練習題,原題鏈接: python練習實例37 題干: 對10個數進行排序 在我們使用Numpy模塊時,這個問題是非常簡單的,下面放出降序排列和升序排列的代碼: 升序排列 import numpy as npresult np.zeros(10) for i in range(result…

Linux服務器不停的向外發包,且CPU持續100%

服務器不停的向外發包,且CPU持續100%,遠程登錄后查看發現有一長度為10的隨機字符串進程,kill掉,會重新生成另外長度為10的字符串進程。刪除文件也會重復生成,非常痛苦。查閱crond相關日志,發現實際執行的內…

逆向學習-IDApython(一)

背景 IDAPython 由三個分離的模塊組成,他們分別是 idc,idautils 和 idaapi。 idc(注意大小寫,不是 IDA 中的 IDC)是一個封裝了 IDA 的 IDC 的兼容性模塊,idautils 是 IDA 的高級實用功能模塊,idaapi 允許了我們訪問更加底層的數據。 基本操作 idc.Screen或者here()返回此時的地…

RUNOOB python練習題 39 數組排序

用來練手的python練習題,原題鏈接: python練習實例39 題干: 有一個已經排好序的數組。現輸入一個數,要求按原來的規律將它插入數組中。 這個題目用列表List的sort,append方法非常簡單,如下: 想要升序排列的話,就直接…

IIS 部署asp.net Provisional headers are shown 在VS2005返回值,部署不返回值

IIS 部署asp.net Provisional headers are shown 在VS2005調試返回值,部署到IIS不返回值 首先當時為了跨域的問題,在上面 后來把跨域的內容放在IIS去解決 其次,在每次返回結束的時候,加一句話 Response.End();

背包

學習博客https://www.cnblogs.com/fengziwei/p/7750849.html //為了不誤導初學者,和給老手diss的機會,我就把以前發的刪了, 有興趣的看看那個博客就行了 (明明寫好了,卻被老師關機子...不開心轉載于:https://www.cnblo…

POSIX線程

POSIX線程 標簽(空格分隔): Linux程序設計 什么是線程 線程是一個進程內部的一個控制序列。 當在進程中創建一個新線程時,新的執行線程將擁有自己的棧(因此也有自己的局部變量),但與它的創建者共…

RUNOOB python練習題44

用來練手的python練習題,原題鏈接:python練習實例44 題干: 兩個 3 行 3 列的矩陣,實現其對應位置的數據相加,并返回一個新矩陣 使用基本的List類寫起來就比較麻煩,需要初始化一個3*3的全0矩陣,之后通過遍歷將矩陣對應…

ImportError: No module named 'matplotlib'(python 安裝各種 )

matplotlib 怎么弄啊 我應該是安裝matplotlid了的 怎么還說我沒有 編輯于:2017.03.22 12:28 0 分享 |評論0|收藏0|瀏覽7261 qq_37926784 聲望: -4 3個回答 按贊數排序 用pip 也顯示已經安裝了matplotlib 編輯于:2018.03.26 19:43 分…

QBXT Day 5圖論相關

圖論是NOIP的一個非常重要的考點,換句話說,沒有圖論,NOIP的考綱就得少一大半(雖然很NOIP沒有考綱) 圖論這玩意吧,和數論一樣是非常變態的東西,知識點又多又雜,但是好在一個事&#x…

RUNOOB python練習題47 交換兩個變量值

用來練手的python練習題,原題鏈接: python練習實例47 題干: 兩個變量值互換 在C語言C中我們要構造一個能交換兩個變量值的函數很方便,我們可以使用指針,或者C中的引用。那么在沒有指針的python中如何構造一個可以交換兩個變量值的函數呢&am…

tensorflow一元二次函數擬合

先看下要做的內容,創建一元二次函數yx平方-0.5,其中為了更符合散點圖模擬需要,在方程加噪點,以標準方差0.05行駛,如圖所示 折線圖 散點圖 下面我們要做的,是要計算機自動擬合出該散點圖的函數&#xff0…

hibernate緩存機制與N+1問題

在項目中遇到的趣事 本文基于hibernate緩存機制與N1問題展開思考&#xff0c; 先介紹何為N1問題 再hibernate中用list()獲得對象&#xff1a; 1 /**2 * 此時會發出一條sql&#xff0c;將30個學生全部查詢出來3 */4 List<Student> …

lambda函數 RUNOOB python練習題49

用來練手的python練習題&#xff0c;原題鏈接python練習實例49 該練習題主要是關于lambda函數的使用方法&#xff0c;本文就python中的lambda函數做出一點總結。 1. lambda函數的定義與調用 在python中&#xff0c;我們都知道使用def關鍵詞來定義一個函數, 例如一個最簡單的…

kubernetes(k8s)安裝部署

Kubernetes是一個開源的&#xff0c;用于管理云平臺中多個主機上的容器化的應用&#xff0c;Kubernetes的目標是讓部署容器化的應用簡單并且高效,Kubernetes提供了應用部署&#xff0c;規劃&#xff0c;更新&#xff0c;維護的一種機制。 Kubernetes一個核心的特點就是能夠自主…

react typescript 子組件調用父組件

//父組件 import * as React from reactimport { Input } from antdconst Search Input.Searchimport "./index.less"import Child from "./compon/list" interface IProps { MakeMoney?: () > void //暴露方法} export default class ProjectLis…

python random隨機數 RUNOOB python練習題50

用來練手的python練習題&#xff0c;原題鏈接: python練習實例50、 該練習題主要包含了random模塊隨機數的應用&#xff0c;下面給出幾個常用的模塊內函數。 1. 生成浮點型隨機小數 最簡單的&#xff0c;就是用random函數&#xff0c;生成 [0.0,1.0)[0.0, 1.0)[0.0,1.0)范圍…