首页 > 系统相关 >linux内核Makefile和busybox编译

linux内核Makefile和busybox编译

时间:2024-05-16 14:21:28浏览次数:23  
标签:busybox lib Makefile vmlinux 编译 init linux ARCH

刚开始学习Linux时的一些记录

linux内核配置体验

  • 在arch/arm/configs/目录下面找到相似的配置文件,其名称一般为xxx_defconfig
  • make xxx_defconfig
  • make menuconfig配置你的内核,
  • 配置完成后生成 .config文件在TOPDIR,该文件由于是以‘.’开头,故在linux下是 一个隐藏的文件。

生成的配置信息如 CONFIG_XXX,如CONFIG_DM9000,其可能出现的位置如下

  • c源代码,条件编译
  • Makefile以及子目录的Makefile,形如objs-$(CONFIG_DM9000) += dm9000.o
  • include/config/auto.conf,包含于顶层Makefile中。
  • include/linux/autoconfig.h,包含于某个C文件的头文件中,

以上的这些信息都来自于.config文件

注:无论在make menuconfig的时候将CONFIG_XXX选中为’m’ or ‘ y’在autoconf.h都定义为1,m和y的差别区别在于子目录下的Makefile

 

linux Makefile分析

  • 顶层Makefile,生成配置文件.config,生成内核
  • arch/$(ARCH)/Makefile,架构相关的Makefile
  • srcript/Makefile.*和Makefile

 

a.c b.c

y:表示编译进内核

obj-y += a.o b.o

m:表示编程为模块

obj-m += ab.o

 

vmlinux:$(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) \

        $(kallsyms.o) FORCE

 

vmlinux-init := $(head-y) $(init-y)

vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)

vmlinux-all  := $(vmlinux-init) $(vmlinux-main)

vmlinux-lds  := arch/$(ARCH)/kernel/vmlinux.lds

 

head-y在arch/$(ARCH)/Makefile里面定义

head-y := arch/$(ARCH)/kernel/head_$(MMU_TEXT).o \

          arch/$(ARCH)/kernel/init_task.o

 

init-y := init/

init-y := $(patsubst %/,%/build-in.o,$(init-y))

 

core-y := usr/ kernel/ mm/ fs/ ipc/ security/ crypto/ block/

core-y := $(patsubst,%/,%/build-in.o,$(core-y))

 

lib-y := lib

lib-y := lib/lib.a lib/build-in.o

 

driver-y := driver/ sound/

net-y := net/build-in.o

 

 

BusyBox编译安装体验

配置

  • make menuconfig
  • Busybox Setting->Build Option->选择编译为动态链接还是静态链接
  • Install Option->选中Don’t use/usr
  • Busybox install prefix(xxx/rootfs)
  • make就会在xxx/rootfs生成

注:在编译的过程中可能出现的错误,

  • 编译工具有没有库,b,将出错的地方利用menuconfig不进行编译

制作基本文件系统

  • mkdir rootfs
  • cd rootfs;mkdir bin sbin dev etc usr mnt var sys and so on.
  • mknod –m 600 console c 5 1

mknod –m 600 null c 1 3

4, 安装rootfs/etc文件

5, 编译内核模块,在内核源文件目录make modules ARCH=XXX CROSS_COMPILE=XXX-XXX-

安装内核模块,

make modules_install ARCH=XXX INSTALL_MOD_PATH=rootfs/lib/modules

 

标签:busybox,lib,Makefile,vmlinux,编译,init,linux,ARCH
From: https://www.cnblogs.com/sudochen/p/18195867

相关文章

  • Linux - Centos6/7忘记root密码怎么办?
    转载:https://www.cnblogs.com/witz/p/10183533.html 一、Centos6.x(1)查看操作系统版本以及内核版本(2)重启服务器,到如下界面(3)好吧...其实是这个界面,按E进行编辑(4)选择第二个,然后按E键(5)在quiet后面加上simple(试过了,不管用)或者1,然后回车(6)回到如下界面,还是选择第二个,按B......
  • 在Linux中,如何进行数据库性能调优?
    在Linux中进行数据库性能调优是一个复杂但重要的任务,它涉及到多个方面,包括硬件、配置、查询优化、索引优化等。以下是一些建议的步骤和策略,帮助你进行数据库性能调优:1.硬件优化磁盘:使用SSD(固态硬盘)替代HDD(机械硬盘),以提高I/O性能。将数据库文件和日志文件放置在不同的物理磁......
  • 在Linux中,如何进行Java应用性能调优?
    在Linux环境中进行Java应用程序的性能调优是一个多步骤的过程,涉及到监控、分析和调整多个层面的配置。以下是进行Java应用性能调优的一些关键步骤和策略:1.监控和分析工具的使用JVM监控工具:利用jstat,jmap,jstack,和jconsole等JDK自带的工具,以及更高级的工具如VisualVM、JP......
  • 在Linux中,如何进行系统调优和应用调优?
    在Linux系统中进行系统调优和应用调优是一个涉及多个方面的复杂过程,旨在提高系统的性能、稳定性和响应速度。以下是一些关键的调优步骤和策略:1.系统调优监控系统性能:使用工具如top、htop、vmstat、iostat和mpstat监控CPU、内存、磁盘和网络的使用情况。调整内核参数:编辑......
  • 在Linux中,如何进行安全加固?
    在Linux系统中进行安全加固是一个多步骤的过程,旨在减少潜在的攻击面、提高系统安全性并确保数据的完整性。以下是一些关键的安全加固措施:更新和升级系统:定期检查并安装系统及软件的更新和安全补丁。确保使用的软件和系统内核是最新的稳定版本。强化身份验证和访问控制:......
  • 在Linux中,什么是安全信息和事件管理(SIEM)?
    安全信息和事件管理(SecurityInformationandEventManagement,简称SIEM)是一种集中式的日志分析解决方案,用于实时监控、分析和报告IT基础设施中的安全事件和日志数据。SIEM系统的主要目标是提高组织的安全性,通过自动化的日志分析和事件关联,快速检测和响应潜在的安全威胁。1.SIEM......
  • 5款兼容Linux系统的国产软件,支持内网使用,满足信创用户办公需求
    随着信息技术应用创新(信创)的推进,对国产软件的需求日益增长,尤其是在保障信息安全和提升办公效率方面。Linux系统因其开源和安全性特点,受到了许多政企的青睐。今天给大家分享5款兼容Linux系统的国产软件,它们不仅支持内网使用,而且能够满足信创用户的办公需求。 01、永中文档 永......
  • VMware Workstation 17.5.2 Pro Unlocker & OEM BIOS for Windows & Linux - 在 Windo
    VMwareWorkstation17.5.2ProUnlocker&OEMBIOSforWindows&Linux-在Windows和Linux上运行macOSSonoma请访问原文链接:https://sysin.org/blog/vmware-workstation-17-unlocker/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareWorkstationPro......
  • VMware Workstation 17.5.2 Pro macOS Unlocker & OEM BIOS for Linux - 在 Linux 上
    VMwareWorkstation17.5.2PromacOSUnlocker&OEMBIOSforLinux-在Linux上运行macOSSonoma请访问原文链接:https://sysin.org/blog/vmware-workstation-17-unlocker-linux/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwareWorkstationPro是行业标......
  • Rocky Linux 9.3 x86_64 OVF (sysin) - VMware 虚拟机模板
    RockyLinux9.3x86_64OVF(sysin)-VMware虚拟机模板以社区方式驱动的企业Linux,RHEL100%1:1兼容免费发行版请访问原文链接:RockyLinux9x86_64OVF(sysin)-VMware虚拟机模板,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgRockyLinux9.3(5.14.0-36......