`

u-boot mkconfig文件分析

 
阅读更多

Mkconfig文件分析

 

 

 

#!/bin/sh-e

 

#Scripttocreateheaderfilesandlinkstoconfigure

#U-Bootforaspecificboard.

#

#Parameters:TargetArchitectureCPUBoard[VENDOR][SOC]

#@$(MKCONFIG)mini6410armarm1176mini6410samsungs3c64xx

#(C)2002-2006DENXSoftwareEngineering,WolfgangDenk<wd@denx.de>

#

 

#***定义变量

APPEND=no #Default:Createnewconfigfile

BOARD_NAME="" #Nametoprintinmakeoutput

TARGETS=""

arch=""

cpu=""

board=""

vendor=""

soc=""

 

#***make-Axxx$#2,且$1-A时条件成立

if[\($#-eq2\)-a\("$1"="-A"\)];then

#Automaticmode

#***搜索boards.cfg文件,把包含有xxx的行,赋值给line变量

#假如为:mini6410armarm1176mini6410samsungs3c64xx

line=`egrep-i"^[[:space:]]*${2}[[:space:]]"boards.cfg`||{

echo"make:***Noruletomaketarget\`$2_config'.Stop.">&2

exit1

}

#***line的内容分别赋值给$1--$6

set${line}

#adddefaultboardnameifneeded

[$#=3]&&set${line}${1}

fi

 

while[$#-gt0];do

case"$1"in

--)shift;break;;

-a)shift;APPEND=yes;;

-n)shift;BOARD_NAME="${1%_config}";shift;;

-t)shift;TARGETS="`echo$1|sed's:_::g'`${TARGETS}";shift;;

*)break;;

esac

done

 

#***$#表示参数个数,如果参数个数小于4个大于6个就退出

[$#-lt4]&&exit1

[$#-gt6]&&exit1

 

#***此处的$1如上面代码所表示,如果$1是以_config结尾,则去掉_config

CONFIG_NAME="${1%_config}"

#***如果BOARD_NAME没有定义就执行BOARD_NAME="${CONFIG_NAME}"#=mini6410

["${BOARD_NAME}"]||BOARD_NAME="${CONFIG_NAME}"

#***arch=arm

arch="$2"

#***cpu=arm1176

cpu="$3"

if["$4"="-"];then

board=${BOARD_NAME}

else

#board=mini6410

board="$4"

fi

//同上给vendorsoc赋值

[$#-gt4]&&["$5"!="-"]&&vendor="$5"

[$#-gt5]&&["$6"!="-"]&&soc="$6"

 

#***检察ARCH是否定义,是否等于arch

if["${ARCH}"-a"${ARCH}"!="${arch}"];then

#***输出错误信息

echo"Failed:\$ARCH=${ARCH},shouldbe'${arch}'for${BOARD_NAME}"1>&2

exit1

fi

 

echo"Configuringfor${BOARD_NAME}board..."

 

#

#Createlinktoarchitecturespecificheaders

#

#***检查SRCTREEOBJTREE是否都是指向u-boot-xxxx.xx

if["$SRCTREE"!="$OBJTREE"];then

#***

mkdir-p${OBJTREE}/include

mkdir-p${OBJTREE}/include2

cd${OBJTREE}/include2

rm-fasm

ln-s${SRCTREE}/arch/${arch}/include/asmasm

LNPREFIX=${SRCTREE}/arch/${arch}/include/asm/

cd../include

rm-fasm

ln-s${SRCTREE}/arch/${arch}/include/asmasm

else

cd./include

rm-fasm#***删除上次链接文件

#***重新建立链接文件

ln-s../arch/${arch}/include/asmasm

fi

#***删除/include/asm/arch文件

rm-fasm/arch

 

#***建立链接/include/asm/archarch-arm1176

if[-z"${soc}"];then

ln-s${LNPREFIX}arch-${cpu}asm/arch

else

ln-s${LNPREFIX}arch-${soc}asm/arch

fi

 

#***建立链接asm/procproc-armv

if["${arch}"="arm"];then

rm-fasm/proc

ln-s${LNPREFIX}proc-armvasm/proc

fi

 

#

#CreateincludefileforMake

#

echo"ARCH=${arch}">config.mk

echo"CPU=${cpu}">>config.mk

echo"BOARD=${board}">>config.mk

 

["${vendor}"]&&echo"VENDOR=${vendor}">>config.mk

 

["${soc}"]&&echo"SOC=${soc}">>config.mk

 

#AssignboarddirectorytoBOARDIRvariable

if[-z"${vendor}"];then

BOARDDIR=${board}

else

 

#***BOARDDIR=samsung/s3c64xx

BOARDDIR=${vendor}/${board}

fi

 

#

#Createboardspecificheaderfile

#

#***创建空白文档config.h

if["$APPEND"="yes"] #Appendtoexistingconfigfile

then

echo>>config.h

else

>config.h #Createnewconfigfile

fi

echo"/*Automaticallygenerated-donotedit*/">>config.h

 

foriin${TARGETS};do

echo"#defineCONFIG_MK_${i}1">>config.h;

done

 

#***config.h文件中写入以下内容

cat<<EOF>>config.h

#defineCONFIG_BOARDDIRboard/$BOARDDIR

#include<config_defaults.h>

#include<configs/${CONFIG_NAME}.h>

#include<asm/config.h>

EOF

 

exit0

 

注:mkconfig文件创建两个文件config.hconfig.mk

建立两个链接文件arch-arm1176proc-armv

 

分享到:
评论

相关推荐

    u-boot分析mkconfig详解

    详细的u-boot中mkconfig文件的分析,对学习uboot很有帮助!

    u-boot在S3C2410移植

    u-boot在s3c2410开发板上移植(NAND Flash Boot)过程 1)u-boot版本1.1.3,gcc version 3.3.3 (DENX ELDK 3.1.1 3.3.3-9) 2)在Makefile中加入 bks2410_config : unconfig @./mkconfig $(@:_config=) arm arm...

    u-boot顶层makefile、mkconfig、config.mk文件分析

    u-boot1.1.6版本顶层makefile文件、mkconfig文件、config.mk文件分析,会对执行make ..._config后的过程进行详细分析,看完这个,移植u-boot决定没问题,至少有个好的开始。如果要后面的移植或u-boot2012版本的说明...

    U-BOOT的移植

    说先在把U-BOOT- 1.1.6复制到SMB共享文件里面,然后到虚拟机里面解压他,执行命令:tar xjvf U-BOOT-1.1.6 课程咨询:联系人:何老师 15333833127 QQ:1187729241 编译U-BOOT需要采用arm-linux-gcc-3.3.2的交叉...

    uboot代码详细分析.pdf

    u-boot中.lds连接脚本文件的分析 12 分享一篇我总结的uboot学习笔记(转) 15 U-BOOT内存布局及启动过程浅析 22 u-boot中的命令实现 25 U-BOOT环境变量实现 28 1.相关文件 28 2.数据结构 28 3.ENV 的初始化 30 3.1...

    u-boot-1.3.1.tar.bz2

    include lib_nios2 board ... CHANGELOG-before-U-Boot-1.1.5 CREDITS 11,330 arm_config.mk i386_config.mk mips_config.mk microblaze_config.mk CHANGELOG config.mk mkconfig

    Grub2基础教程Grub2基础教程

    一、grub2新特性 二、grub2安装与启动 三、grub2配置文件详解 四、脚本修改 五、使用grub2常见错误及修复方法

    uboott移植实验手册及技术文档

    本步骤将编译 u-boot.bin文件,但此时还无法运行在FS2410开发板上。 二、修改 cpu/arm920t/start.S文件,完成 U-Boot的重定向 (1)修改中断禁止部分 # if defined(CONFIG_S3C2410) ldr r1, =0x7ff /*根据 2410...

    grub-mkconfig_lib-patch:一个让 ubuntu 中的 update-grub 使用分区标签而不是 UUID 的简单补丁

    grub-mkconfig_lib-patch 一个让 ubuntu 中的 update-grub 使用分区标签而不是 UUID 的简单补丁我有时会发现自己经常更改分区。 根据 UUID 有时会在克隆分区后导致冲突,或者在克隆或原始分区上启动时出现混乱。 ...

    uboot1.1.6 移植到2440

    root@shi:/home/shi/work_linux/uboot/u-boot-1.1.6/gedit Makefile smdk2440_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t smdk2440 NULL s3c24x0 说明: arm: CPU的架构(ARCH) arm920t: CPU...

    arm_linux移植笔记(转) .doc

    tar xzvf u-boot-1.2.0.tar.bz2 –C /home/dk/myboard/ 4.进入uboot目录,修改Makefile cd u-boot-1.2.0 vi Makefile (1) 新建我的编译项 在1923行,即smdk2410_config编译项之后增加我的编译项 tekkaman...

    uboot 中的 mkconfig 的理解

    uboot下mkconfig脚本的具体含义

    linux grub命令及其详解

    inux grub命令及其详解,可以用于grub的使用教程。

    arch-rice:大米

    然后使用grub-mkconfig -o /boot/grub/grub.cfg重新生成配置文件 冬眠 在/etc/default/grub 附加GRUB_CMDLINE_LINUX="resume=/dev/sdXX" (sdXX = SWAP) 然后使用grub-mkconfig -o /boot/grub/grub.cfg重新生成...

    mkconfig:构建配置工具-开源

    mkconfig是一个生成配置实用... 它创建一个输出文件,该输出文件旨在作为头文件包含在内,作为Shell脚本运行,用作配置文件或任何其他用途。 mkconfig用可移植的shell脚本编写,并且被设计为可扩展用于任何配置用途。

    GRUB-EFI: os-prober-efi:来自/ boot / efi(ef00)的GRUB EFI菜单-开源

    30_os_prober_efi使用grub-mkconfig脚本(update-grub)并为/ boot / efi / EFI / ...中找到的每个条目(* .efi)生成一个菜单项。 您可以在“ / etc / default / grub”中禁用它们。 注意:/boot/efi/EFI/...

    uboot makefile & mkconfig 学习

    学习uboot 的必读文档,相关的uboot 中makefile 的书写,mkconfig 的书写。是学习 启动程序的基础文档。

    til:我学到的东西每天都会发现

    我们可以使用此命令生成grub配置文件sudo grub-mkconfig -o /boot/grub/grub.cfg ,因此, grub-mkconfig扫描hardrives以查找可启动的操作系统,例如Windows,mac或linux发行版 要在使用i3窗口管理员时在特定窗口上...

    grub2-theme-vimix:rub的模糊主题

    安装Arch Linux以AUR形式安装软件包: $ yaourt -S grub2-theme-vimix-git编辑/ etc / default / grub: GRUB_THEME= " /boot/grub/themes/Vimix/theme.txt "更新grub: $ grub-mkconfig -o /boot/grub/grub.cfg浅...

Global site tag (gtag.js) - Google Analytics