首页 > 代码库 > hi3531 SDK 编译 kernel, 修改 参数 .

hi3531 SDK 编译 kernel, 修改 参数 .

开发环境用户指南上这么写的

3.1 内核源代码
成功安装Hi3531 SDK后,内核源代码已存放于SDK目录下的osdrv/目录中,用户可
直接进入目录进行相关操作。
3.2 配置内核
如果对内核和Hi3531平台没有足够了解,请勿修改默认配置。但可增加需要的模块。
配置内核的操作步骤如下:
1.  手动拷贝.config 文件: 
hisilicon$cd os/linux-3.0.y 
hisilicon$cp arch/arm/configs/godnet_defconfig .config//编译Hi3531 
hisilicon$cp arch/arm/configs/godcube_defconfig .config //编译Hi3532 
2.  用户通过“make menuconfig”进行内核配置:
hisilicon$make ARCH=arm CROSS_COMPILE= arm-hisiXXX-linux- menuconfig 
3.  选择需要的模块。
4.  选择完毕后,保存并退出。
----结束 


3.3 编译内核并生成内核镜像uImage 
配置保存后,可直接输入“make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- 
uImage命令编译内核生成镜像,此时需要等待几分钟。
如果编译过程中出现错误,按顺序执行以下命令:
make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- clean 
make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- menuconfig 
make ARCH=arm CROSS_COMPILE=arm-hisiXXX-linux- uImage 



编译内核时需要在make后添加两个参数:ARCH=arm CROSS_COMPILE=arm-hisiXXX
linux-,其中CROSS_COMPILE表示工具链。文档中统一以CROSS_COMPILE=arm-hisiXXX
linux-来表示两种情况。
z  Hi35xx_V100R001C01SPCxxx对应uclibc,使用uclibc工具链时,CROSS_COMPILE=arm
hisiv100nptl-linux-。
z  Hi35xx_V100R001C02SPCxxx对应glibc,使用glibc工具链时,CROSS_COMPILE=arm
hisiv200-linux-。


具体命令

单独编译kernel:
待进入内核源代码目录后,执行以下操作
cp arch/arm/configs/godnet_defconfig .config
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- menuconfig
make ARCH=arm CROSS_COMPILE=arm-hisiv100nptl-linux- uImage

使用tftp 刷上去后启动的时候出错,大概意思是配置的NAND flash的 pagesize 和硬件的不同,然后就卡在那里不动了。刚开始以为是uboot配置参数的问题,改了半天uboot参数还是不行。最后试试把内核配置中的NAND驱动取消掉,完美运行。


取消NAND Flash驱动的位置:

    Device Drivers  --->

 <*> Memory Technology Device (MTD) support  ---> 

< >   NAND Device Support  ---> 



由于PHY地址配置的不同,也有可能会网口不通,应该会需要修改如下配置


1. 内核下的方法:
在osdvr/kernel/linux -3.0.y目录下运行
“make ARCH=arm CROSS_COMPILE=arm-hisiv200-linux- menuconfig”
在 menuconfig 菜单下, 选择以下选项:
 
        Device Drivers  --->
             [*] Network device support  --->
                 [*]   Ethernet (1000 Mbit)  --->
                     <M>   STMicroelectronics 10/100/1000 Ethernet driver  --->
                        (1)     STMMAC MAC #0 PHY ID     << 表示 phy 地址是 1.
                        (2)     STMMAC MAC #1 PHY ID     << 表示 phy 地址是 2.