收藏官网首页
查看: 9490|回复: 0

[经验分享] [经验分享] [OpenWrt]编译记录2

57

主题

156

帖子

716

积分

高级会员

Rank: 4

积分
716
跳转到指定楼层
楼主
发表于 2017-11-24 19:03:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
免费使用STM32、APP自动代码生成工具
# 前言

开发板flash为w25q256,是16MByte的,所以需要修改分区表.

# 新建profile

使用下面命令创建一个属于自己的profile(修改会更方便一些,我们直接拷贝一个,然后再修改)

    cd target/linux/ramips/mt7628/profiles/
    cp 00-default.mk 01-gizwits.mk

修改后的01-gizwits.mk文件如下

    #
    # Copyright (C) 2011 OpenWrt.org
    #
    # This is free software, licensed under the GNU General Public License v2.
    # See /LICENSE for more information.
    #

    define Profile/GizWits
        NAME:=GizWits Profile
        PACKAGES:=\
            kmod-usb-core kmod-usb2 kmod-usb-ohci \
                   kmod-ledtrig-usbdev
    endef

    define Profile/GizWits/Description
            Default package set compatible with most boards.
    endef
    $(eval $(call Profile,GizWits))

# 新建dts文件

同理,我们基于MT7628.dts,新建一个dts文件。

    cd ../../dts/ #切换目录到target/linux/ramips/dts/
    cp MT7628.dts GIZWITS.dts

修改GIZWITS.dts,以适配开发板的flash,修改后的GIZWITS.dts

    model = "Mediatek MT7628AN evaluation board for Gizwits";
    ...
            palmbus@10000000 {
                spi@b00 {
                        status = "okay";

                        m25p80@0 {
                                #address-cells = <1>;
                                #size-cells = <1>;
                                compatible = "w25q256";
                                reg = <0 0>;
                                linux,modalias = "m25p80", "w25q256";
                                spi-max-frequency = <10000000>;
                                m25p,chunked-io = <32>;

                                partition@0 {
                                        label = "u-boot";
                                        reg = <0x0 0x30000>;
                                        read-only;
                                };

                                partition@30000 {
                                        label = "u-boot-env";
                                        reg = <0x30000 0x10000>;
                                        read-only;
                                };

                                factory: partition@40000 {
                                        label = "factory";
                                        reg = <0x40000 0x10000>;
                                        read-only;
                                };

                                partition@50000 {
                                        label = "firmware";
                                        reg = <0x50000 0xfb0000>;
                                };
                        };
                };

# 修改image/Makefile文件

目录target/linux/ramips/image

    cd ../image

找到MT7628对应的位置,添加我们的支持

    #
    # MT7628 Profiles
    #

    Image/Build/Profile/MT7628=$(call BuildFirmware/Default4M/$(1),$(1),mt7628,MT7628)
    Image/Build/Profile/GizWits=$(call BuildFirmware/Default16M/$(1),$(1),GizWits,GIZWITS)

    ifeq ($(SUBTARGET),mt7628)
    define Image/Build/Profile/Default
            $(call Image/Build/Profile/MT7628,$(1))
            $(call Image/Build/Profile/GizWits,$(1))
    endef
    endif


# 编译测试

要使新的profile生效,需要删除tmp目录并重新选择profile

    cd ~/openwrt
    rm -rf tmp
    make menuconfig

在配置页面中选择新建的profile

    Target Profile --->
        GizWits Profile

重新编译可得到新的固件文件

    make V=s

可在bin/ramips中看到新生成的bin文件openwrt-ramips-mt7628-GizWits-squashfs-sysupgrade.bin

# 参考

> http://blog.csdn.net/kobe_zero/article/details/51769635
> http://blog.csdn.net/hnhkj/article/details/54630098

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

快速回复 返回顶部 返回列表