Arm linux內核構建關於.config的問題

2020-12-20 電子產品世界

首先下載內核的原始碼。

然後tar -xvf 解壓。

我們這裡使用arch/arm/configs/xxx_defconfig默認的配置文件。

使用如下命令。make ARCH=arm xxx_defconfig

然後使用make menuconfig 這裡可以根據需要更改配置。(如果不make menuconfig一下的話。有時候會提示Kconfig restart 類似的東西。讓你手動去選擇配置選項)

然後使用 make ARCH=arm CROSS_COMPILE=arm-linux-就可以開始編譯了。

同樣也可以不用make ARCH=arm CROSS_COMPILE=arm-linux-這麼寫。

修改頂層的Makefile 文件 找到

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

修改為

ARCH ?=arm

CROSS_COMPILE ?=arm-linux-

然後同樣執行make就可以了。

接下來就可以開始內核的編譯道路了。。。。。。。。。。。。


相關焦點

  • Linux內核編譯初體驗
    下載內核在ftp://ftp.kernel.org/pub/linux/kernel/下載原版內核本文引用地址:http://www.eepw.com.cn/article/201611/319326.htm此處使用linux-2.6.22.6.tar.bz22.
  • 用OpenEmbedded構建嵌入式Linux系統
    本篇文章主要是教大家如何用OpenEmbedded構建嵌入式的Linux系統,不過它做得太複雜,如果不出問題,用起來很方便,但是一旦出點問題,就不知道該怎樣去弄了。作者是用Embedded-LFS構建的,它非常簡單,當然功能也要弱一些,對於只想玩玩的初學者還是有幫助的。
  • linux內核移植-移植2.6.35.4內核到s3c2440
    本來是想移植最新的內核2.6.39但是總是在編譯快完成的時候報錯,有人說是新的內核對arm平臺的支持不好,所以就降低了一下版本,這裡移植2.6.35.4內核一、準備工作1、下載 解壓內核從官網上下載linux-2.6.35的內核, ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ ,文件不大,約85M。
  • 淺談內核的Makefile、Kconfig和.config文件
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫Linux內核源碼文件繁多,搞不清Makefile、Kconfig、.config間的關係,不了解內核編譯體系,編譯修改內核有問題無從下手,自己寫的驅動不知道怎麼編進內核,不知道怎麼配置內核,這些問題都和Makefile、Kconfig
  • 「正點原子Linux連載」第三十七章Linux內核移植
    如果我們不設置根文件系統路徑,或者說根文件系統路徑設置錯誤的話會出現什麼問題?這個問題是很常見的,我們在實際的工作中開發一個產品,這個產品的第一版硬體出來以後我們是沒有對應的根文件系統可用的,必須要自己做根文件系統。在構建出對應的根文件系統之前Linux內核是沒有根文件系統可用的,此時Linux內核啟動以後會出現什麼問題呢?
  • Linux 系統內核的調試
    /linux-2.6.7-kgdb-2.2/core-lite.patch    如果內核正確,那麼應用補丁時應該不會出現任何問題(不會產生*.rej文件)。為Linux內核添加了補丁之後,需要進行內核的配置。內核的配置可以按照你的習慣選擇配置Linux內核的任意一種方式。
  • linux配置、編譯內核實用工具
    接下來以2.4.23的kbuild為例,簡要介紹一下內核的構建過程。首先,完整的內核構建過程由以下五種Makefile封裝。  1.根目錄Makefile  它是最重要的Makefile,定義所有與體系結構無關的變量和目標。它讀取.config文件,並根據其信息最終生成vmlinux和modules。
  • 嵌入式linux內核的編譯步驟
    嵌入式linux內核的編譯步驟 華清遠見 發表於 2020-06-19 09:30:24   編譯嵌入式Linux內核都是通過make的不同命令來實現的,它的執行配置文件是
  • 淺談分析Arm linux 內核移植及系統初始化的過程二
    的內核線程,繼續初始化。問題是__machine_arch_type是在什麼時候賦 的初值?__arch_info_begin和__arch_info_end段空間到底放的是什麼內容?__machine_arch_type是一個全局變量,在linux/boot/decompress/misc.c的解壓縮函數中得以賦值。
  • Linux 內核學習:環境搭建和內核編譯
    內核學習之一:環境搭建--安裝Debian7.3本系列文章假設讀者已對linux有一定的了解,其實學習linux內核不需要有很深的關於linux的知識,只需要了解以下內容:linux基礎知識及基本shell命令;現代作業系統的基本概念;C語言和gcc基本使用。
  • ARM Linux根文件系統Root Filesystem的製作
    在使用devfs的內核裡如果沒有/dev,根本見不到Shell啟動的信息,因為內核找不到/dev/console;在使用udev的系統裡,也事先需要在/dev下建立console和null這兩個節點。關於devfs和udev的區別,網上很多文章說。當然如果你的內核已經不支持devfs了(2.6.12以後),可以使用純純的靜態節點。也就是用mknod人工生成。
  • ARM Linux內核啟動要求
    arm.linux.org.uk/developer/booting.php本文引用地址:http://www.eepw.com.cn/article/201611/316973.htmAuthor: Russell KingInitial date: May 18, 2002Revision:1 - 17 September 20042
  • 嵌入式ARM-Linux平臺上的編譯、配置和運行使用
    /configure配置編譯環境;執行make進行編譯export ARCH=armexport CROSS_COMPILE=arm-linux-gnueabi-./include/netlink_local.h:218:error ULONG_MAX undeclared",我們在對應文件添加一個頭文件#include即可解決問題;編譯openssl進入openssl目錄,./config shared #一定要加shared,否則編譯出來的是靜態庫。
  • Linux 對 ARM 的支持一團糟
    Linus公開威脅停止添加與ARM相關的改進到 Linux 內核主幹裡去,這聽起來的確很殘忍。他回憶說,幾年前,當ARM晶片製造商開始在他們的設備中添加對linux的支持。他們急於推出嵌入式設備, 不加考慮地針對 Linux 內核做了很多與特定設備相關的改動。他們同樣忽視了GPL v2 licence要求,未能把發布的改動及時提交給linux 內核主幹維護人員。
  • gcc、arm-linux-gcc和arm-elf-gcc的關係?
    四、arm-linux-gccarm-linux-gcc 是基於 ARM 目標機的交叉編譯軟體, arm-linux-gcc 跟 GCC 所需的安裝包不同:x86 跟 ARM 所使用的指令集是不一樣的,所以所需要的 binutils 肯定不一樣;上面提到過 gcc-core 是依賴於 binutils 的,自然 ARM 跟 x86
  • 一次搞定 Arm Linux 交叉編譯
    為了讓這個流程變得簡單,開發者們為不同的晶片開發了不同的編譯器,比如針對 Arm 平臺的 arm-linux-gcc,針對 mips 平臺的 mips-linux-gnu-gcc,這些編譯器都是基於 GCC 針對具體的架構指令集進行對應配置,所以它們在運行的時候就就會生成和該目標平臺對應的可執行文件。
  • 在21世紀該怎樣編譯Linux內核
    儘管有些複雜但是非常有用,尤其是當驅動程序沒有包含進內核中而是在引導過程中加載,或是內核中的驅動程序相比模塊化的驅動程序過期時。第一個問題可以用 「initrd」 解決(初始化 RAM 磁碟),這一點超出了本文的討論範圍,第二點通過 「kmod」 系統解決。kmod 系統保證了當內核更新後,所有與之安裝的模塊化驅動程序也得到更新。
  • ARM-linux-gcc交叉編譯工具提示arm-linux-gcc can not find
    在Ubuntu12.04下安裝了arm-linux-gcc後,編譯Linux內核發現提示arm-linux-gcc can not find,查找了相關的網絡資料找到了答案
  • linux內核中的IS_ERR
    在看內核源碼的時候,經常會遇到IS_ERR,比如在linux/arch/arm/kernel/sys_arm.c中本文引用地址:http
  • linux內核啟動流程
    Linux內核啟動及文件系統加載過程   當u-boot開始執行bootcmd命令,就進入Linux內核啟動階段,與u-boot類似,普通Linux內核的啟動過程也可以分為兩個階段,但針對壓縮了的內核如uImage就要包括內核自解壓過程了。本文以linux-2.6.37版源碼為例分三個階段來描述內核啟動全過程。