當前位置:首頁 » 操作系統 » 下載linuxkernel

下載linuxkernel

發布時間: 2025-08-10 11:59:52

① qemu怎樣為選擇arm linux內核鏡像選擇運行arm平台

下載Linux內核

下載內核有兩種方法,一種是用git直接下載內核代碼樹,方便後面的內核開發。另一種是直接到內核社區下載對應版本的源碼包。我採用第一種方法,但後面發現主線上3.18版本和後面版本的代碼,使用這種搭建方法運行不起來。目前未查明問題的根因。如果讀者想快速搭建成功,建議選用3.16版本的內核進行搭建。

安裝arm的交叉編譯工具鏈

想必做嵌入式開發的朋友,對交叉編譯工具鏈不陌生。如果你訂制一個交叉編譯工具鏈,建議你使用crosstool-ng開源軟體來構建。但在這里建議直接安裝arm的交叉編譯工具鏈:

sudoapt-getinstallgcc-arm-linux-gnueabi

編譯Linux內核

生成vexpress開發板子的config文件:

makeCROSS_COMPILE=arm-linux-gnueabi-ARCH=armvexpress_defconfig

編譯:

makeCROSS_COMPILE=arm-linux-gnueabi-ARCH=arm

生成的內核鐿像位於arch/arm/boot/zImage,後續qemu啟動時需要使用該鏡像。

下載和安裝qemu模擬器

其實Ubuntu12.04有qemu的安裝包,但由於版本較低,對vexpress開發板支持不友好,建議下載高版本的qemu:

wget

配置qemu前,需要安裝幾個軟體包:

sudoapt-getinstallzlib1g-dev

sudoapt-getinstalllibglib2.0-0

sudoapt-getinstalllibglib2.0-dev

配置qemu,支持模擬arm架構下的所有單板:

./configure--target-list=arm-softmmu--audio-drv-list=

編譯和安裝:

make

makeinstall

測試qemu和內核能否運行成功

qemu已經安裝好了,內核也編譯成功了,到這里最好是測試一下,編譯出來的內核是否OK,或者qemu對vexpress單板支持是否夠友好。

運行命令很簡單:

qemu-system-arm-Mvexpress-a9-m512M-kernel/home/ivan/kernel_git/linux/arch/arm/boot/zImage-nographic-append"console=ttyAMA0"

如果看到內核啟動過程中的列印,說明前的搭建是成功的。

這里簡單介紹下qemu命令的參數:

-Mvexpress-a9模擬vexpress-a9單板,你可以使用-M?參數來獲取該qemu版本支持的所有單板

-m512M單板運行物理內存512M

-kernel/home/ivan/kernel_git/linux/arch/arm/boot/zImage告訴qemu單板運行內核鏡像路徑

-nographic不使用圖形化界面,只使用串口

-append"console=ttyAMA0"內核啟動參數,這里告訴內核vexpress單板運行,串口設備是哪個tty。

注意:

我每次搭建,都忘了內核啟動參數中的console=參數應該填上哪個tty,因為不同單板串口驅動類型不盡相同,創建的tty設備名當然也是不相同的。那vexpress單板的tty設備名是哪個呢?其實這個值可以從生成的.config文件CONFIG_CONSOLE宏找到。

如果搭建其它單板,需要注意內核啟動參數的console=參數值,同樣地,可從生成的.config文件中找到。

製作根文件系統

到這里是否大功告成了呢?其實在上面的測試中,你會發現內核報panic,因為內核找不到根文件系統,無法啟init進程。

根文件系統要考慮兩個方面:

1.根文件系統的內容

如果你看過《LinuxFromScratch》,相信你會對這一步產生恐懼感,但如果一直從事嵌入式開發,就可以放下心來。根文件系統就是簡單得不能再簡單的幾個命令集和態動態而已。為什麼LinuxFromScratch會有那麼復雜,是因為它要製作出一個Linux發生版。但在嵌入式領域,幾乎所有的東西,都是mini版本,根文件系統也不例外。

本文制本的根文件系統=busybox(包含基礎的Linux命令)+運行庫+幾個字元設備

2.根文件系統放在哪裡

其實依賴於每個開發板支持的存儲設備,可以放到NorFlash上,也可以放到SD卡,甚至外部磁碟上。最關鍵的一點是你要清楚知道開發板有什麼存儲設備。

本文直接使用SD卡做為存儲空間,文件格式為ext3格式

下載、編譯和安裝busybox

wget

makedefconfig

makeCROSS_COMPILE=arm-linux-gnueabi-

makeinstallCROSS_COMPILE=arm-linux-gnueabi-

安裝完成後,會在busybox目錄下生成_install目錄,該目錄下的程序就是單板運行所需要的命令。

形成根目錄結構

先在Ubuntu主機環境下,形成目錄結構,裡面存放的文件和目錄與單板上運行所需要的目錄結構完全一樣,然後再打包成鏡像(在開發板看來就是SD卡),這個臨時的目錄結構稱為根目錄

1.創建rootfs目錄(根目錄),根文件系統內的文件全部放到這里

sudomkdirrootfs

2.拷貝busybox命令到根目錄下

sudocpbusybox-1.20.2/_install/*-rrootfs/

3.從工具鏈中拷貝運行庫到lib目錄下

sudocp-P/usr/arm-linux-gnueabi/lib/*rootfs/lib/

4.創建4個tty端終設備

sudomknodrootfs/dev/tty1c41

sudomknodrootfs/dev/tty2c42

sudomknodrootfs/dev/tty3c43

sudomknodrootfs/dev/tty4c44

製作根文件系統鏡像

1.生成32M大小的鏡像

ddif=/dev/zeroof=a9rootfs.ext3bs=1Mcount=32

2.格式化成ext3文件系統

mkfs.ext3a9rootfs.ext3

3.將文件拷貝到鏡像中

sudomkdirtmpfs

sudomount-text3a9rootfs.ext3tmpfs/-oloop

cp-rrootfs/*tmpfs/

sudoumounttmpfs

系統啟動運行

完成上述所有步驟之後,就可以啟動qemu來模擬vexpress開發板了,命令參數如下:

qemu-system-arm-Mvexpress-a9-m512M-kernel/home/ivan/qemu/linux/arch/arm/boot/zImage-nographic-append"root=/dev/mmcblk0console=ttyAMA0"-sda9rootfs.ext3

從內核啟動列印,到命令行提示符出現,激動人心的時刻出現了……

寫在後面的話

通過上面的步驟,搭建出來一個最小的qemu+arm開發環境,你可以上面的基礎上修改內核,或者增加一些測試程序在單板上運行,甚至使用單板的flash設備。

在此,你可以做純arm架構的內核開發,或者與架構無關的內核開發,也可以做單板相關的驅動開發。

② RockPI 4A Linux內核下載與編譯

本文介紹RockPI 4A單板Debian系統Linux內核的下載和編譯方法,為後續介紹RockPI 4A單板Linux內核調試進行拋磚引玉。

一笑神腔、代碼下載

Rockpi 4A Debian版本SDK代碼下載方法:

代碼下載完成後,顯示如下瞎冊:

kernel 目錄下保存Linux內核代碼。

build 目錄下保存配置和編譯腳本

如果RockPI 4A代碼下載失敗,提示如下:

解決方法:將下載鏈接中 https 替換成 git 。

二、內核編譯

使用代碼里的編譯腳本,編譯腳本名稱: mk-kernel.sh ,位置如下:

註:在腳本 mk-kernel.sh 中有一段代碼: source $LOCALPATH/build/board_configs.sh $BOARD ,使用腳本編譯時,必須在 build 文件夾同一級目錄。

RockPI 4A Linux內核編譯方法碰衫如下(使用...省略部分編譯輸出):

其中: rockpi4a 對應RockPI 4A單板,如果使用其它單板,需要設置不同內容。單板類型可參考 build/board_configs.sh 腳本中 case ${BOARD} in 的選項。例:

編譯出來的映像路徑:

③ Linux系統下載(超全鏡像整理下載)

Linux系統鏡像下載的超全整理如下

一、主流Linux發行版官方鏡像站

  • Ubuntu
    • 官方鏡像站
    • 另一官方鏡像站
  • CentOS
    • 官方鏡像狀態查詢
  • Debian
    • 全球鏡像站
    • 鏡像存檔
  • Fedora
    • 官方鏡像站
    • BitTorrent下載
  • Linux Mint
    • 官方鏡像站
  • Kali Linux
    • 官方下載頁面

二、企業機構及國內開源鏡像站

  • 網易開源鏡像站
    • 鏡像站鏈接
  • 阿里雲開源鏡像
    • 鏡像站鏈接
  • 搜狐開源鏡像站
    • 鏡像站鏈接
  • 首都在線科技股份有限公司
    • 鏡像站鏈接
  • 中國科學技術大學鏡像站
    • IPv4 + IPv6鏡像
  • 清華大學鏡像站
    • 鏡像站鏈接

三、國內高校開源鏡像站

  • 電子科技大學
    • Ubuntu鏡像
  • 上海交通大學
    • IPv4鏡像
    • IPv6鏡像
  • 北京交通大學
    • IPv4鏡像
  • 廈門大學
    • 鏡像站鏈接
  • 中山大學
    • 鏡像站鏈接
  • 浙江大學
    • 鏡像站鏈接

四、國外開源鏡像站

  • 卡內基梅隆大學(CMU)
    • 鏡像站鏈接
  • 麻省理工學院(MIT)
    • 鏡像站鏈接
  • 哥倫比亞大學
    • 鏡像站鏈接
  • 俄勒岡州立大學
    • 鏡像站鏈接

五、特定Linux發行版或組件鏡像站

  • Kernel鏡像站
    • 鏡像站鏈接
  • RedHat Enterprise Linux(RHEL)鏡像站
    • 鏡像站鏈接

請注意,以上鏈接可能會隨時間發生變化,建議訪問時核實鏈接的有效性。在下載Linux系統鏡像時,請確保從官方或可信的鏡像站下載,以避免安全風險。

④ centos7 離線升級/在線升級操作系統內核

CentOS作為一款Linux發行版,它基於開放源代碼,受到許多伺服器使用青睞。在某些情況下,系統內核版本的限制可能會成為問題,如某些軟體運行需求更高的內核版本。本文將詳細介紹如何實現CentOS7的離線升級和在線升級系統內核。

一、系統環境與內核下載網址

為了確保升級過程順利,首先需要確保你的CentOS系統環境完整。內核的下載可通過兩個主要渠道:阿里雲開源軟體鏡像站(mirrors.aliyun.com/elre...)和elrepo鏡像站(elrepo.org/linux/kernel...)。

二、離線升級系統內核

離線升級需要進行一系列步驟,確保過程的安全性和穩定性。首先,查看當前系統版本和內核版本,確保信息准確。接著,通過命令更新yum源倉庫。啟用ELRepo倉庫,為內核升級提供必要的支持。導入ELRepo倉庫的公共密鑰並安裝其yum源。下載指定版本的內核包,此步驟需要先確保導入公共密鑰和安裝yum源,否則無法下載。安裝內核包後,需通過修改GRUB_DEFAULT為0來設置默認啟動內核,並生成新的grub配置文件以完成升級。

三、在線升級系統內核

在線升級更為便捷,首先同樣啟用ELRepo倉庫並安裝yum源。查看可用的內核版本,根據需求選擇最新或長期支持版本進行安裝。安裝新內核後,同樣需要調整GRUB_DEFAULT為0,並生成新的grub配置文件。重啟系統後,通過查看當前內核版本確認升級成功。

本文旨在提供一個完整的升級流程,以確保CentOS7系統的內核可以滿足所需應用的需求。通過離線或在線升級系統內核,用戶可根據實際需求選擇最合適的升級方式,確保系統穩定運行。

(來源:cnblogs.com/renshengdez...)

⑤ 【general】linux kernel編譯與安裝

要編譯與安裝Linux內核,首先進行環境准備,確保已安裝適當的開發工具和環境。接著,下載Linux內核源代碼,推薦使用官方或可靠鏡像源。

准備內核代碼版本5.14,可從Linux Kernel Archives獲取。解壓並復制當前內核配置文件,利用menuconfig工具進行調整。

安裝編譯內核所需的依賴包,確保系統具備執行構建所需的軟體。解壓後,根據需要調整配置選項,如編譯目標、模塊支持等。

開始編譯內核,使用make命令。為了提高編譯效率,可添加「-j N」參數,其中N代表使用的並行進程數,評估系統在多處理器環境中的多任務並行執行性能。確保使用相同的內核代碼、配置和命令進行編譯,以便對比性能。

完成編譯後,安裝內核模塊和內核本身。通常,系統會自動執行此過程。

參考資源:如何編譯安裝Linux內核 - LightningStar - 博客園,如何編譯安裝Linux內核-騰訊雲開發者社區-騰訊雲。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:585
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:881
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:574
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:761
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:677
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1005
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:250
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:108
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:799
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:705