溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何搭建Linux內(nèi)核實(shí)驗(yàn)環(huán)境

發(fā)布時間:2021-10-22 09:44:41 來源:億速云 閱讀:176 作者:柒染 欄目:互聯(lián)網(wǎng)科技

如何搭建Linux內(nèi)核實(shí)驗(yàn)環(huán)境,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

Linux 內(nèi)核實(shí)驗(yàn)環(huán)境

可快速構(gòu)建,支持 Docker, Qemu, Ubuntu, Mac OSX, Windows, Web

由 Wu Zhangjin 創(chuàng)建于 2016/06/19

評論 打賞

1 項(xiàng)目描述

該項(xiàng)目致力于快速構(gòu)建一個基于 Qemu 的 Linux 內(nèi)核開發(fā)環(huán)境。

  • 使用文檔:README.md

  • 在線實(shí)驗(yàn)

    • 泰曉實(shí)驗(yàn)云臺


2 相關(guān)文章

  • 基于 Docker 快速構(gòu)建 Linux 0.11 實(shí)驗(yàn)環(huán)境

3 五分鐘教程

3.1 準(zhǔn)備

以 Ubuntu 和 Qemu 為例。其他 Linux 和 Mac OSX 系統(tǒng)請先安裝 Docker CE。Windows 系統(tǒng),請先下載并安裝 Docker Toolbox。

安裝完 docker 后如果想免 sudo 使用 linux lab,請務(wù)必把用戶加入到 docker 用戶組并重啟系統(tǒng)。

 
  1. $ sudo usermod -aG docker $USER

由于 docker 鏡像文件比較大,有 1G 左右,下載時請耐心等待。另外,為了提高下載速度,建議通過配置 docker 更換鏡像庫為本地區(qū)的,更換完記得重啟 docker 服務(wù)。

 
  1. $ grep registry-mirror /etc/default/docker

  2. DOCKER_OPTS="$DOCKER_OPTS --registry-mirror=https://docker.mirrors.ustc.edu.cn"

  3. $ service docker restart

如果 docker 默認(rèn)的網(wǎng)絡(luò)環(huán)境跟本地的局域網(wǎng)環(huán)境地址沖突,請通過如下方式更新 docker 網(wǎng)絡(luò)環(huán)境,并重啟 docker 服務(wù)。

 
  1. $ grep bip /etc/default/docker

  2. DOCKER_OPTS="$DOCKER_OPTS --bip=10.66.0.10/16"

  3. $ service docker restart

如果上述改法不生效,請?jiān)陬愃?/lib/systemd/system/docker.service 這樣的文件中修改后再重啟 docker 服務(wù)。

 
  1. $ grep dockerd /lib/systemd/system/docker.service

  2. ExecStart=/usr/bin/dockerd -H fd:// --bip=10.66.0.10/16 --registry-mirror=https://docker.mirrors.ustc.edu.cn

  3. $ service docker restart

如果使用 Docker Toolbox,由于安裝的默認(rèn) default 系統(tǒng)未提供桌面,所以需要先獲取該系統(tǒng)的外網(wǎng)地址,即 eth2 網(wǎng)口的 IP 地址,然后在外部系統(tǒng)訪問。

 
  1. $ ifconfig eth2 | grep 'inet addr' | tr -s ' ' | tr ':' ' ' | cut -d' ' -f4

  2. 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)境。

3.2 工作目錄

再次提醒,在 Linux 或者 Mac 系統(tǒng),可以隨便在 ~/Downloads 或者 ~/Documents 下找一處工作目錄,然后進(jìn)入,比如:

 
  1. $ 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ù)保存。

 
  1. $ cd /mnt/sda1

3.3 下載

 
  1. $ git clone https://github.com/tinyclub/cloud-lab.git

  2. $ cd cloud-lab && tools/docker/choose linux-lab

3.4 安裝

 
  1. $ tools/docker/run # 加載鏡像,拉起一個 Linux Lab 容器

3.5 快速嘗鮮

執(zhí)行 tools/docker/vnc 后會打開一個 VNC 網(wǎng)頁,根據(jù) console 提示輸入密碼登陸即可,之后打開桌面的 Linux Lab 控制臺并執(zhí)行:

 
  1. $ make boot

默認(rèn)會啟動一個 versatilepb 的 ARM 板子,要指定一塊開發(fā)板,可以用:

 
  1. $ make list # 查看支持的列表

  2. $ make BOARD=malta # 這里選擇一塊 MIPS 板子:malta

  3. $ make boot

3.6 下載更多源碼

 
  1. $ make core-source -j3 # 同時下載 linux-stable, qemu 和 buildroot

3.7 配置

 
  1. $ make root-defconfig # 配置根文件系統(tǒng)

  2. $ make kernel-checkout # 檢出某個特定的分支(請確保做該操作前本地改動有備份)

  3. $ make kernel-defconfig # 配置內(nèi)核

  4.  

  5. $ make root-menuconfig # 手動配置根文件系統(tǒng)

  6. $ make kernel-menuconfig # 手動配置內(nèi)核

3.8 編譯

 
  1. $ make root # 編譯根文件系統(tǒng),稍微有點(diǎn)慢,需要下載帶 sysroot 的編譯器

  2. $ make kernel # 編譯內(nèi)核,采用 Ubuntu 和 emdebian.org 提供的交叉編譯器

3.9 保存所有改動

 
  1. $ make save # 保存新的配置和新產(chǎn)生的鏡像

  2.  

  3. $ make kconfig-save # 保存到 boards/BOARD/

  4. $ make rconfig-save

  5.  

  6. $ make root-save # 保存到 prebuilt/

  7. $ make kernel-save

3.10 啟動新的根文件系統(tǒng)和內(nèi)核

需要打開 boards/BOARD/Makefile 屏蔽已經(jīng)編譯的 KIMAGROOTFS,此時會啟動 output/ 目錄下剛編譯的 rootfs 和內(nèi)核:

 
  1. $ vim boards/versatilepb/Makefile

  2. #KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage

  3. #ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz

  4. $ make boot

3.11 啟動串口

 
  1. $ make boot G=0 # 使用組合按鍵:`CTL+a x` 退出,或者另開控制臺執(zhí)行:`pkill qemu`

3.12 選擇 Rootfs 設(shè)備

 
  1. $ make boot ROOTDEV=/dev/nfs

  2. $ make boot ROOTDEV=/dev/ram

3.13 擴(kuò)展

通過添加或者修改 boards/BOARD/Makefile,可以靈活配置開發(fā)板、內(nèi)核版本以及 BuildRoot 等信息。通過它可以靈活打造自己特定的 Linux 實(shí)驗(yàn)環(huán)境。

 
  1. $ cat boards/versatilepb/Makefile

  2. ARCH=arm

  3. XARCH=$(ARCH)

  4. CPU=arm926t

  5. MEM=128M

  6. LINUX=2.6.35

  7. NETDEV=smc91c111

  8. SERIAL=ttyAMA0

  9. ROOTDEV=/dev/nfs

  10. ORIIMG=arch/$(ARCH)/boot/zImage

  11. CCPRE=arm-linux-gnueabi-

  12. KIMAGE=$(PREBUILT_KERNEL)/$(XARCH)/$(BOARD)/$(LINUX)/zImage

  13. ROOTFS=$(PREBUILT_ROOTFS)/$(XARCH)/$(CPU)/rootfs.cpio.gz

默認(rèn)的內(nèi)核與 Buildroot 信息對應(yīng)為 boards/BOARD/linux_${LINUX}_defconfigboards/BOARD/buildroot_${CPU}_defconfig,如果要添加自己的配置,請注意跟 boards/BOARD/Makefile 里頭的 CPU 和 Linux 配置一致。

3.14 更多用法

詳細(xì)的用法這里就不羅嗦了,大家自行查看幫助。

 
  1. $ make help

3.15 實(shí)驗(yàn)效果圖

如何搭建Linux內(nèi)核實(shí)驗(yàn)環(huán)境

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(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)容。

AI