当前位置: 首页 > news >正文

山西省城乡住房建设厅网站云之创网站建设

山西省城乡住房建设厅网站,云之创网站建设,iis搭建wordpress,北京朝阳区互联网公司有哪些源码配置编译 源码配置编译,要把中间各个环节都理清楚 厂商把自己增加的东西专门放了个文件独立#xff0c;方便开发者发现变化 1.菜单配置 移植的第一步#xff0c;就是选配#xff0c;通过make menuconfig图形化界面选配 //载入配置 $ make ARCHarm64 tegra_defconfi…源码配置编译 源码配置编译,要把中间各个环节都理清楚 厂商把自己增加的东西专门放了个文件独立方便开发者发现变化 1.菜单配置 移植的第一步就是选配通过make menuconfig图形化界面选配 //载入配置 $ make ARCHarm64 tegra_defconfig //导入官方配置//会从arch/arm64/configs下 查找tegra_defconfig导入到当前目录重命名为.config) $ make menuconfig //在官方配置基础上进行配置//从零配置 $ mv .config .config.ago //如有则改名 - 清除当前配置(.config) $ make menuconfig ARCHarm64 /*生成最初始配置界面如不指定ARCH默认的是x86的当前目录有.config则导入,如无则用默认x86配置生成.config*///保存配置 $ make savedefconfig //生成defconfig (相比make menuconfig 里的Save保存的配置这是最简的) $ cp defconfig arch/arm64/configs/my_defconfig //发布配置(原厂发布配置到内核就是该方式)1.1载入配置 //载入配置 $ make ARCHarm64 tegra_defconfig //导入官方配置//会从arch/arm64/configs下 查找tegra_defconfig导入到当前目录重命名为.config) $ make menuconfig //在官方配置基础上进行配置1.2从零配置 //从零配置 $ mv .config .config.ago //如有则改名 - 清除当前配置(.config) $ make menuconfig ARCHarm64 /*生成最初始配置界面如不指定ARCH默认的是x86的当前目录有.config则导入,如无则用默认x86配置生成.config*/ARM64的全新的配置 General setup-Cross-compiler tool prefix 交叉编译工具可以这里指定也可以Makefile中改 Enable loadable module support 模块的支持ko文件 Enable the block layer 块设备支持 Platform selection 平台选择虽然架构一样但是不同厂商的芯片也各不同 Bus support 总线支持例如PCIe等 Kernel Features 内核特性 Boot options 启动选项可以默认bootargs Power management options 电源管理 Networking support 网络 Device Drivers 驱动 1.3保存配置 //第一种make menuconfig生成的.config放到对应目录比较多无关信息 cd ~/kernel-4.9 cp .config arch/arm64/configs/yhai_defconfig//第二种保存配置 $ make savedefconfig //生成defconfig (相比make menuconfig 里的Save保存的配置这是最简的) $ cp defconfig arch/arm64/configs/yhai_defconfig //发布配置(原厂发布配置到内核就是该方式)2.编译 $ make /*编译所有常需指定 交叉编译工具链 CROSS_COMPILE(如无默认采用 gcc) 方式一 make CROSS_COMPILEaarch64-linux-gnu- 直接指定 方式二 export CROSS_COMPILEaarch64-linux-gnu- 导出环境变量*/ $ make all $ make Image //只编译内核 $ make modules //只编译模块 $ make dtbs //只编译设备树$ make install /*安装内核 就是把编译出来的二进制文件,库,配置文件等等放到相应目录下常需指定 安装路径 INSTALL_PATH 方式一 make install INSTALL_PATH/tftpboot 直接指定 方式二 export INSTALL_PATH/tftpboot 导出环境变量*/ $ make modules_install /*安装模块常需指定 安装路径 INSTALL_MOD_PATH 方式一make modules_install INSTALL_MOD_PATH~/Linux_for_Tegra/rootfs 直接指定 方式二export INSTALL_MOD_PATH~/Linux_for_Tegra/rootfs 导出环境变量*/3.菜单配置的实现 为什么make menuconfig后能生成图形界面 3.1顶层配置 Kconfig 总菜单 source “arch/$SRCARCH/Kconfig” 子菜单 menu “Bus support” 显示的字 menuconfig 可以选的菜单 config 可以选的参数 default 默认选择 显示-*- bool 只有YN 显示[*] tristate 三态YNM 显示 {//Kconfig //对应菜单信息 .config - Linux/arm64 4.9.253 Kernel Configuration mainmenu Linux/$ARCH $KERNELVERSION Kernel Configurationconfig SRCARCHstringoption envSRCARCHsource arch/$SRCARCH/Kconfig //导入子Kconfig}{//arch/arm64/Kconfig source init/Kconfig //gf 跳转到子配置【这个对应General setup ---】source kernel/Kconfig.freezer source arch/arm64/Kconfig.platforms //3.2平台选择 menu Bus support config PCI bool PCI supporthelp This feature enables support for PCI bus system. If you say Yhere, the kernel will include drivers and infrastructure code to support PCI bus devices. source drivers/pci/Kconfigendmenumenu Kernel Features menu Boot options config CMDLINEstring Default kernel command stringdefault helpProvide a set of default command-line options at build time byentering them here. As a minimum, you should specify the theroot device (e.g. root/dev/nfs).source net/Kconfigsource drivers/Kconfig //gf跳转 //3.3驱动配置source drivers/firmware/Kconfig}{//init/Kconfigmenu General setup //常规的内核选项安装config CROSS_COMPILEstring Cross-compiler tool prefix //设置交叉编译工具链前缀helpSame as running make CROSS_COMPILEprefix- but stored fordefault make runs in this kernel build directory. You dontneed to set this unless you want the configured kernel builddirectory to select the cross-compiler automatically.config BLK_DEV_INITRD //是否支持ramdisk 做引导rootsbool Initial RAM filesystem and RAM disk (initramfs/initrd) support}3.2平台选择 //arch/arm64/Kconfig.platforms 平台选择 menu Platform selection config ARCH_TEGRAbool NVIDIA Tegra SoC Familyselect ARCH_HAS_RESET_CONTROLLERselect CLKDEV_LOOKUPselect CLKSRC_MMIOselect CLKSRC_OFselect GENERIC_CLOCKEVENTSselect GPIOLIBselect PINCTRLselect GENERIC_PINCONFselect PMselect PM_GENERIC_DOMAINSselect RESET_CONTROLLERhelpThis enables support for the NVIDIA Tegra SoC family3.3驱动配置 {//drivers/Kconfig menu Device Driverssource drivers/base/Kconfig source drivers/net/Kconfig}{//drivers/net/Kconfig menuconfig NETDEVICESdefault y if UMLdepends on NETbool Network device supportsource drivers/net/ethernet/Kconfig}{//drivers/net/ethernet/Kconfig source drivers/net/ethernet/realtek/Kconfig }{//drivers/net/ethernet/realtek/Kconfig config R8169 //对应Makefile里 $(CONFIG_R8169)tristate Realtek 8169 gigabit ethernet supportdepends on PCIselect FW_LOADERselect CRC32select MII---help---Say Y here if you have a Realtek 8169 PCI Gigabit Ethernet adapter.To compile this driver as a module, choose M here: the modulewill be called r8169. This is recommended.}3.4当前的配置文件 //Makefile在编译时通过读取.config文件的配置来选择要编译的文件 CONFIG_ARM64y CONFIG_MMUy CONFIG_CROSS_COMPILE CONFIG_ROOT_NFSy CONFIG_R8169y CONFIG_VIDEO_IMX219y 3.5配置头文件 //include/generated/autoconf.h 配置头文件(编译后自动生成的 ) //通过该文件可知当前生效的配置是那些 #define CONFIG_R8169 1 //有线网卡 #define CONFIG_VIDEO_IMX219 1 //排线摄像头4.源码编译的实现 make的时候根据时间最新原则以及该最新变过的依赖重新编译生成.o文件再连接到一起 make clean会把.o文件给删掉下次再make就会很废时间 Kconfig和Makefile都是成对出现的从最顶层逐渐往下面的子文件走 4.1顶层管理 //Makefile : 顶层 Makefile,负责总体内核的编译链接ARCH ? $(SUBARCH) //指定arch如传参 make ARCHarm64)如不指定默认x86//为避免重复输入强制写死 如ARCH ? arm64 CROSS_COMPILE ? $(CONFIG_CROSS_COMPILE:%%) //指定交叉编译工具链//(如传参 make CROSS_COMPILEaarch64-linux-gnu-)//强制写死CROSS_COMPILE ? aarch64-linux-gnu-LD $(CROSS_COMPILE)ld CC $(CROSS_COMPILE)gcc//指定源码子目录 drivers-y : drivers/ sound/ firmware/ core-y kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/ srctree : . //指定源码树顶层目录 objtree : . //指定目标文件树顶层目录include arch/$(SRCARCH)/Makefile //指定导入 arch的子MakefilePHONY : _all //入口默认的依赖目标: make时递归查_all依赖文件,//某文件不存在或有更改时间最新则把依赖它的文件都重新编译。 _all: allall: modules //make all时递归查modules的依赖%config: scripts_basic outputmakefile FORCE //%通配符xxconfig就从这里走$(Q)$(MAKE) $(build)scripts/kconfig $ //再脚本选择配置入口 如make menuconfigKCONFIG_CONFIG ? .config //读入当前配置文件modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin$(Q)$(AWK) !x[$$0] $(vmlinux-dirs:%$(objtree)/%/modules.order) $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpostdistclean: mrproper //慎用它会把你前面的配置全部清除掉find $(srctree) $(RCS_FIND_IGNORE) \-o -name .*.rej -o -name *% help:echo Cleaning targets:echo $(CROSS_COMPILE) //查看变量CROSS_COMPILE的内容 表示不显示eho本身4.2通用规则、脚本 //scripts/kconfig/Makefile menuconfig: $(obj)/mconf$ $(silent) $(Kconfig) //导入Kconfig ,生成图形界面4.3体系结构的管理 {//arch/arm64/Makefile: 编译体系结构的子Makefile //负责本体系结构的相关代码编译 生成内核镜像//指定源码子目录 core-y arch/arm64/kernel/ arch/arm64/mm/ core-$(CONFIG_NET) arch/arm64/net/ //$(CONFIG_NET)是当配置后会变为y,或m - 实现界面配置 那些源码编译或不编译KBUILD_IMAGE : Image.gz KBUILD_DTBS : dtbs all: $(KBUILD_IMAGE) $(KBUILD_DTBS) //入口boot : arch/arm64/boot //指定存放Image 的目录Image: vmlinux //make Image 的入口指定编译内核镜像$(Q)$(MAKE) $(build)$(boot) $(boot)/$dtbs: //make dtbs 的入口指定编译设备树$(Q)$(MAKE) $(build)$(boot)/dts }{//arch/arm64/kernel/Makefile# Object file lists. //指定编译的文件(写死的)只需指定.o 到时会自动找到.c 或.s的文件去编译 arm64-obj-y : debug-monitors.o entry.o irq.o fpsimd.o \entry-fpsimd.o process.o arm64-obj-$(CONFIG_PCI) pci.o //配置时可改变 $(CONFIG_PCI)的值 - 实现编译文件的 动态调整 obj-y $(arm64-obj-y) //添加编进内核的文件 obj-m $(arm64-obj-m) //添加编成模块的文件 }4.4子文件的管理 {//init/Makefile obj-y : main.o version.o mounts.o obj-$(CONFIG_BLK_DEV_INITRD) initramfs.o }{//drivers/net/ethernet/realtek/Makefile obj-$(CONFIG_8139CP) 8139cp.o obj-$(CONFIG_8139TOO) 8139too.o obj-$(CONFIG_ATP) atp.o obj-$(CONFIG_R8169) r8169.o //变量$(CONFIG_NET) 由配置时决定 - 动态决定编译文件}如果要添加新的驱动将其编译进内核如vr_sensor.c文件放到对应的文件夹下 直接在Makefile中添加obj-y vr_sensor.o即可这样最快可以不用和Kconfig和CONFIG打交道 当然这样添加多了比较混乱 还是在这个文件夹下Kconfig中添加对应config即可再到顶层make menuconfig也不麻烦
http://www.tj-hxxt.cn/news/135722.html

相关文章:

  • 中小企业网站建设费用国外做vj的网站
  • 外国人做的篆字网站西安软件公司排名
  • 现在网站后台有哪几种模板形式.net网站源码下载
  • 如何用html制作网站北京四大设计院
  • 个人网站设计案例恒华大厦做网站公司
  • 宁波网站推广软件哪家强wordpress获取所有分类
  • 设计网站考虑哪些因素防火墙放行图片域名
  • 厦门橄榄网站建设国内新闻热点事件
  • 福建省住房和城乡建设厅网站电话seo是网络优化吗
  • 网站流量盈利模式wordpress媒体库地址
  • 网站规划与建设重点内容网站建设5000费用
  • 广东省做网站推广公司wordpress 行业模版
  • 做流量网站怎么做推广普通话的宣传语
  • 改图网网站谁做的织梦做中英文网站步骤
  • 三金网手机网站表格制作教程 步骤
  • 网站建设商品的分类网站开发有什么语言
  • 中国十大做网站公司化工原料价格查询网站
  • 设计网站开发方案流程为wordpress配置邮箱服务
  • seo网站建设是什么意思做网站找我
  • wordpress小说网站模板下载起点网站建设
  • 初学者学做网站怎么学做dm素材网站
  • php可以自己做网站吗wordpress加密文章
  • 邢台信息港房屋出租那些网站用不着做优化
  • 新做的网站如何低价网站建设优化公司
  • 青岛网站建设首选营销吧系统投资公司投资流程
  • 用软件做seo网站关键词推广东莞建筑业协会官网
  • 帝国做的电影网站中山网站的优化
  • 自己做的网站会被黑吗房屋设计师破解版
  • 罗湖做网站的公司个人秀网站
  • 酒楼网站模板网站建设 广西