您好,登錄后才能下訂單哦!
如何搭建Linux內(nèi)核實(shí)驗(yàn)環(huán)境,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
可快速構(gòu)建,支持 Docker, Qemu, Ubuntu, Mac OSX, Windows, Web
由 Wu Zhangjin 創(chuàng)建于 2016/06/19
評論 打賞
該項(xiàng)目致力于快速構(gòu)建一個基于 Qemu 的 Linux 內(nèi)核開發(fā)環(huán)境。
使用文檔:README.md
在線實(shí)驗(yàn)
泰曉實(shí)驗(yàn)云臺
基于 Docker 快速構(gòu)建 Linux 0.11 實(shí)驗(yàn)環(huán)境
以 Ubuntu 和 Qemu 為例。其他 Linux 和 Mac OSX 系統(tǒng)請先安裝 Docker CE。Windows 系統(tǒng),請先下載并安裝 Docker Toolbox。
安裝完 docker 后如果想免 sudo
使用 linux lab,請務(wù)必把用戶加入到 docker 用戶組并重啟系統(tǒng)。
$ sudo usermod -aG docker $USER
由于 docker 鏡像文件比較大,有 1G 左右,下載時請耐心等待。另外,為了提高下載速度,建議通過配置 docker 更換鏡像庫為本地區(qū)的,更換完記得重啟 docker 服務(wù)。
$ grep registry-mirror /etc/default/docker
DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=https://docker.mirrors.ustc.edu.cn"
$ service docker restart
如果 docker 默認(rèn)的網(wǎng)絡(luò)環(huán)境跟本地的局域網(wǎng)環(huán)境地址沖突,請通過如下方式更新 docker 網(wǎng)絡(luò)環(huán)境,并重啟 docker 服務(wù)。
$ grep bip /etc/default/docker
DOCKER_OPTS="$DOCKER_OPTS --bip=10.66.0.10/16"
$ service docker restart
如果上述改法不生效,請?jiān)陬愃?/lib/systemd/system/docker.service
這樣的文件中修改后再重啟 docker 服務(wù)。
$ grep dockerd /lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --bip=10.66.0.10/16 --registry-mirror=https://docker.mirrors.ustc.edu.cn
$ service docker restart
如果使用 Docker Toolbox,由于安裝的默認(rèn) default
系統(tǒng)未提供桌面,所以需要先獲取該系統(tǒng)的外網(wǎng)地址,即 eth2 網(wǎng)口的 IP 地址,然后在外部系統(tǒng)訪問。
$ ifconfig eth2 | grep 'inet addr' | tr -s ' ' | tr ':' ' ' | cut -d' ' -f4
192.168.99.100
如果是自己通過 Virtualbox 安裝的 Linux 系統(tǒng),即使有桌面,也想在外部系統(tǒng)訪問時,則可以通過設(shè)置 ‘Network -> Adapter2 -> Host-only Adapter’ 來添加一個 eth2 網(wǎng)口設(shè)備。
請務(wù)必注意,通過 Docker Toolbox 安裝的 default
系統(tǒng)中默認(rèn)的 /root
目錄僅僅掛載在內(nèi)存中,關(guān)閉系統(tǒng)后數(shù)據(jù)會丟失,請千萬不要用它來保存實(shí)驗(yàn)數(shù)據(jù)。可以使用另外的目錄來存放,比如 /mnt/sda1
,它是在 Virtualbox 上外掛的一個虛擬磁盤鏡像文件,默認(rèn)有 17.9 G,足夠存放常見的實(shí)驗(yàn)環(huán)境。
再次提醒,在 Linux 或者 Mac 系統(tǒng),可以隨便在 ~/Downloads
或者 ~/Documents
下找一處工作目錄,然后進(jìn)入,比如:
$ cd ~/Documents
但是如果使用的是 Docker Toolbox 安裝的 default
系統(tǒng),該系統(tǒng)默認(rèn)的工作目錄為 /root
,它僅僅掛載在內(nèi)存中,因此在關(guān)閉系統(tǒng)后所有數(shù)據(jù)會丟失,所以需要換一處上面提到的 /mnt/sda1
,它是外掛的一個磁盤鏡像,關(guān)閉系統(tǒng)后數(shù)據(jù)會持續(xù)保存。
$ cd /mnt/sda1
$ git clone https://github.com/tinyclub/cloud-lab.git
$ cd cloud-lab && tools/docker/choose linux-lab
$ tools/docker/run # 加載鏡像,拉起一個 Linux Lab 容器
執(zhí)行 tools/docker/vnc
后會打開一個 VNC 網(wǎng)頁,根據(jù) console 提示輸入密碼登陸即可,之后打開桌面的 Linux Lab
控制臺并執(zhí)行:
$ make boot
默認(rèn)會啟動一個 versatilepb
的 ARM 板子,要指定一塊開發(fā)板,可以用:
$ make list # 查看支持的列表
$ make BOARD=malta # 這里選擇一塊 MIPS 板子:malta
$ make boot
$ make core-source -j3 # 同時下載 linux-stable, qemu 和 buildroot
$ make root-defconfig # 配置根文件系統(tǒng)
$ make kernel-checkout # 檢出某個特定的分支(請確保做該操作前本地改動有備份)
$ make kernel-defconfig # 配置內(nèi)核
$ make root-menuconfig # 手動配置根文件系統(tǒng)
$ make kernel-menuconfig # 手動配置內(nèi)核
$ make root # 編譯根文件系統(tǒng),稍微有點(diǎn)慢,需要下載帶 sysroot 的編譯器
$ make kernel # 編譯內(nèi)核,采用 Ubuntu 和 emdebian.org 提供的交叉編譯器
$ make save # 保存新的配置和新產(chǎn)生的鏡像
$ make kconfig-save # 保存到 boards/BOARD/
$ make rconfig-save
$ make root-save # 保存到 prebuilt/
$ make kernel-save
需要打開 boards/BOARD/Makefile
屏蔽已經(jīng)編譯的 KIMAG
和 ROOTFS
,此時會啟動 output/
目錄下剛編譯的 rootfs 和內(nèi)核:
$ vim boards/versatilepb/Makefile
#KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage
#ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz
$ make boot
$ make boot G=0 # 使用組合按鍵:`CTL+a x` 退出,或者另開控制臺執(zhí)行:`pkill qemu`
$ make boot ROOTDEV=/dev/nfs
$ make boot ROOTDEV=/dev/ram
通過添加或者修改 boards/BOARD/Makefile
,可以靈活配置開發(fā)板、內(nèi)核版本以及 BuildRoot 等信息。通過它可以靈活打造自己特定的 Linux 實(shí)驗(yàn)環(huán)境。
$ cat boards/versatilepb/Makefile
ARCH=arm
XARCH=$(ARCH)
CPU=arm926t
MEM=128M
LINUX=2.6.35
NETDEV=smc91c111
SERIAL=ttyAMA0
ROOTDEV=/dev/nfs
ORIIMG=arch/$(ARCH)/boot/zImage
CCPRE=arm-linux-gnueabi-
KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage
ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz
默認(rèn)的內(nèi)核與 Buildroot 信息對應(yīng)為 boards/BOARD/linux_${LINUX}_defconfig
和 boards/BOARD/buildroot_${CPU}_defconfig
,如果要添加自己的配置,請注意跟 boards/BOARD/Makefile
里頭的 CPU 和 Linux 配置一致。
詳細(xì)的用法這里就不羅嗦了,大家自行查看幫助。
$ make help
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。