sanduo1314

转:http://colesmith.space/2015/09/28/build-openwrt-for-hg255d.html

本人转载博客的目的是为了自己学习收集资料,并没有进行任何盈利活动,如果有侵权,请及时联系本人,谢谢

#这篇博文中的技术有些陈旧,最新的固件中已经支持HG255D固件的支持,不用更改makefile了

一、Openwrt 版本

  • Barrier Breaker 14.07
  • 另:
    • 当然也可以是Chaos Calmer 15.05或trunk, 但是好像后面的都不支持了

二、路由信息

  • Machine:
    • HuaWei HG255D
  • CPU型号(Target System)
    • Ralink RT3052 id:1 rev:3
    • 属于 Ramips

三、交叉编译环境搭建

  • OS:
    • Ubuntu 14.04
  • 所需依赖:
sudo apt-get install subversion \
                    build-essential \
                    libncurses5-dev \
                    zlib1g-dev \
                    gawk \
                    git \
                    ccache \
                    gettext \
                    libssl-dev \
                    xsltproc \
                    file \
                    unzip \
                    flex \
                    quilt \
                    libxml-parser-perl \
                    mercurial \
                    bzr \
                    ecj \
                    cvs \
                    python \
                    wget

四、下载Openwrt源码以及编译

  • Infomation:
    • Version: barrier_breaker
    • Kernel: 3.10.x
    • Support HuaWei HG255D: Y

具体步骤

# Step 1: 下载源码
###
    mkdir ~/openwrt
    cd ~/openwrt
    # 下载barrier_breaker分支,当然你可以选择trunk(开发分支)或者其他分支
    # 开发分支: svn://svn.openwrt.org/openwrt/trunk
    svn co -r 36088 svn://svn.openwrt.org/openwrt/branches/barrier_breaker
    cd barrier_breaker
    
# Step 2: 更新软件包
###
    # *******************
    # 提示: 最好在VPS上或者挂VPN, 可能有些更新不了
    # *******************
    # 更新种子
    # 相关文件: feeds.conf.default
    ./scripts/feeds update -a
    # 下载更新
    ./scripts/feeds install -a
    
# Step 3: 生成默认配置
###
    make clean # 清除
    make defconfig # 非必须
    
# Step 4: 进入配置菜单进行配置
###
    #   1、在这一步之前,修改一些配置以适应HG255D,非常重要
    # 具体见 为HG255D修改配置
    #
    #   2、选择shadowsocks、shadowvpn、njit8021xclient: 见七、自己添加的包
    make menuconfig
    #   2.1、如果需要修改包,请参见 十、对一些包的修改
    #  3、选择基础包: 见六、固件推荐包
    #
    ##
    # 仔细阅读以上3条,再继续; Or Exit
    # 
    # 基础信息
    Target System (Ralink RT288x/RT3xxx)
    Subtarget (RT3x5x/RT5350 based boards)
    Target Profile (HuaWei HG255D)
    Target Image --> squashfs
    
    ############################
    # 以下个人建议推荐 begin
    [*] Advanced configuration options (for developers)
    
    # 从ImageBuilder构建固件,这个非常好用,
    # 见八、从[ImageGenerator](http://wiki.openwrt.org/doc/howto/obtain.firmware.generate)生成固件
    [*] Build the OpenWrt Image Builder
    
    # SDK可用于直接编译所需要的包,也就是不在需要源码,只要SDK和包
    # 见九、从[SDK](http://wiki.openwrt.org/doc/howto/obtain.firmware.sdk)编译软件包
    [*] Build the OpenWrt SDK
    
    [*] Build the Openwrt based Toolchain
    [*] Image configuration
    # 推荐 end
    ############################
    
    # 推荐的包
    Base System --> [*] base-files
                    [*] block-mount
                    [*] dnsmasq
    # Base System --> [*] dnsmasq-dncpv6
    # Base System --> [*] bridge
    Administration -->  [*] sudo
    #                   [*] syslog-ng3
    Kernel modules --> FIlesystems -->  [*] kmod-fs-ext4
                                        [*] kmod-fs-ntfs
                                        [*] kmod-fs-vfat
                   --> LED modules -->  [*] kmod-leds-gpio
                                        [*] kmod-ledtrig-default-on
                                        [*] kmod-ledtrig-gpio
                                        [*] kmod-ledtrig-heartbeat
                   --> Network Support --> [*] kmod-pptp
                                           [*] kmod-tun # For ShadowVPN
                   --> USB Support --> [*] kmod-usb2
                   --> Wireless Drivers --> [*] kmod-rt2800-soc
                                            [*] kmod-rtl8187
                                            [*] kmod-rt73-usb
    Language --> Python --> [*] ipython # 是否嵌入Python,自己决定
                            [*] python # 只作为模块编译[*] -> [M]
                            [M] python-django
                            [M] python-mysql
                            [M] python-sqlite3
             # --> PHP
             # --> Lua 默认即可
             # --> Javascript
    Libraries --> database --> [*] libsqlite3
    LUCI --> Collections --> [*] luci
                             # [*] luci-ssl # https支持
         --> Applications --> [*] luci-app-chinadns
                              [*] luci-app-commands # LuCI Shell Commands
                              [*] luci-app-ddns # 动态DNS
                              [*] luci-app-firewall # 防火墙
                              [*] luci-app-p2pblock
                              [*] luci-app-polipo
                              [*] luci-app-qos
                              [*] luci-app-radvd
                              [*] luci-app-redsocks2
                              [*] luci-app-shadowsocks-spec
                              [M] luci-app-shadowvpn # ShadowVPN有BUG,不宜内建
                              [ ] luci-app-samba # 好像编译会出错,不选
                              [*] luci-app-tinyproxy
                              [*] luci-app-transmission
                              [*] luci-app-upnp
                              [*] luci-app-wol
         --> Themes --> [*] luci-theme-bootstrap
         --> Translations --> [*] luci-i18n-chinese
    Network --> BitTorrent --> [*] transmission-daemon
                               [*] transmission-web
            --> Captive Portals --> [*] wifidog # ...
                                    [M] wifidog-auth
            --> File Transfer --> [*] aria2 *
                              --> [*] curl
                              --> [*] vsftpd
            --> SSH --> [*] autossh
                    --> [*] openssh-keygen
            --> VPN --> [*] pptpd
                    # --> [*] chaosvpn
                    # --> [*] l2tpd
                    # --> [*] l2tpns
                    # --> [*] n2n
                    # --> [*] openvpn-* # 我不想要,麻烦
                    # --> [*] xl2tpd
            --> Version Control Systems --> [M] git
                                        --> [M] subversion-libs
            --> Web Servers/Proxies --> # [M] apache # 下载不了
                                    --> [M] nginx
                                    --> [M] redsocks
                                    --> 其他默认
            --> dial-in/up --> 尚且不知学不需要
          --> [*] ChinaDNS
          --> [M] ShadowVPN
          --> [ ] agan8021xclient
          --> [ ] mentohust
          --> [*

分类:

技术点:

相关文章: