Mac OS X中编译WRTNode固件

1.Disk Image Creation Mac OS X系统默认的磁盘文件系统是非大小写敏感的,而Openwrt编译环境需要大小写敏感支持,故我们创建一个磁盘映像文件来新建大小写敏感的文件系统.
下面开始用MacOSX系统中自带的命令hdiutil来创建一个新磁盘镜像并挂载到系统中.
Hackintosh :~   Diveinedu cd  $HOME Hackintosh :~   Diveinedu hdiutil create -size  20 g -fs  "Case-sensitive HFS+"  -volname  OpenWrt   OpenWrt .dmg Hackintosh :~   Diveinedu hdiutil attach  OpenWrt .dmg上面命令会在我们的主目录下创建一个大小为20G的镜像文件,并格式化为Case-sensitive HFS+的文件系统,卷标名为OpenWrt,然后挂载到系统中.挂载后我们看样子Finder界面的左侧边栏看到他.
我们需要在终端命令行下进入我们刚刚创建好的文件系统对应的目录下去:
Hackintosh :~   Diveinedu cd / Volumes / OpenWrt 2.Packages Installation 下一步我们需要安装搭建OpenWrt编译环境所需的一些软件包,主要是两个部分:
  • XCode IDE: Apple的一个集成开发环境SDK,包含一些核心的库文件和编译器
  • Homebrew: OS X 不可或缺的套件管理器,MacOSX平台的软件包管理系统(类似于Debian/Ubuntu系统里的apt-get),用来下载和安装一些开源项目软件,比如在Unix/Linux/BSD世界里广泛存在而Apple的MacOSX没有自带的软件.http://brew.sh/index_zh-cn.html
XCode的安装:
  • 打开 Mac App Store 应用商店
  • 在右上角的搜索框搜索 "Xcode"
  • 选择 Xcode,然后点击安装
  • 输入你的Apple ID账号和密码,就会开始下载安装.
  • 最后还需要一步,运行下面命令确保命令行开发工具已经安装:
Hackintosh:OpenWrt   Diveinedu$   xcode - select  -- install 如果有弹出窗口,就选择安装他,他会自带去Apple的更新服务器上下载安装的.
Homebrew的安装:
  • 获取 Homebrew, 打开Homebrew的官网中文页面: http://brew.sh/index_zh-cn.html
  • 打开终端窗口, 粘贴以下脚本,脚本会解释它的作用,然后在您的确认下执行安装。
Hackintosh:OpenWrt Diveinedu$ ruby -e  "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" 基础依赖软件包安装:
  • brew 命令安装:
Hackintosh:OpenWrt   Diveinedu$   brew   install   asciidoc   docbook   gdbm   libxml2   pbzip2   autoconf   e2fsprogs   gettext   libxslt   pkg - config   bash - completion   fastjar   gnu - getopt   libyaml   readline binutils   findutils   gnu - tar   lzlib   sqlite   bison   flex   gputils   openssl   wget   coreutils   gawk   intltool   ossp - uuid   xz 3.Checkout the OpenWrt Source 我们可以从OpenWrt的官方网站上的源码仓库里检出代码,用SVN或者Git版本管理工具都可以,我这里推荐使用Git,选择自己需要的源码版本然后用下面的命令检出代码:
  • trunk (main development tree)
    Main repository
    git clone git://git.openwrt.org/openwrt.git
  • 14.07 branch (Barrier Breaker)
    Main repository
    git clone git://git.openwrt.org/14.07/openwrt.git

我选择检出14.07分支版本,在之前准备好的文件系统的挂载目录下依次执行如下命令:
Hackintosh :OpenWrt   Diveinedu git clone  git: / /git.openwrt.org/ 14.07 /openwrt.git Hackintosh :OpenWrt   Diveinedu cd openwrt Hackintosh penwrt   Diveinedu . /scripts/feeds update Hackintosh penwrt   Diveinedu . /scripts/feeds  install -a上述命令成功执行完成后,我们就已经准备好了OpenWrt的源码并部署了所有的软件包以供我们后面的编译配置步骤去选择了.
4. Configure and Build OpenWrt For MT7620 A. 到这里,我们就可以开始为我们的路由器板子进行配置了,比如我现在为我的MT7620N板子进行编译的配置,在命令行执行如下命令:
Hackintosh penwrt   Diveinedu make menuconfig这条命令会在终端显示一个基于ncurses的文本图形菜单,我们在菜单里作如下选择:
Target System (Ralink RT288x/RT3xxx) --->
Subtarget (MT7620n based boards) --->
其他具体的配置项这里就从略...
比如MT7620的WiFi驱动啊, USB存储驱动啊, USB的3G Modem驱动等等,
根据实际需求添加配置.此处只做配置编译过程的演示.
配置好这些合适的编译配置项目后,退出菜单保存设置.

B.此时此刻,万事具备只欠东风,东风就是最后一条编译命令:
Hackintosh penwrt   Diveinedu make  V =s由于是第一次编译,这一条命令的时间足够让我们睡一个午觉,如果不想睡觉,那就喝几杯咖啡吧.
如果网络条件好,那么首次编译过程中所需要下载的软件包应该不会遇到什么错误.因为我这次就非常的顺利,不过我是用的VPN番茄了的.
编译完成之后,我们可以在输出目录下查看我们的结果,那就是各种MT7620N方案的路由器板子的固件:
Hackintoshpenwrt   Diveinedu$   ls  - lh   bin/ramips/ total   62344 - rw - r -- r --   1   Diveinedu    staff     812B    9    8   20:45   md5sums - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8   20:45   openwrt - ramips - mt7620n - mlw221 - squashfs - sysupgrade . bin - rw - r -- r --   1   Diveinedu    staff     2 . 5M    9    8   20:45   openwrt - ramips - mt7620n - root . squashfs - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8 20:45   openwrt - ramips - mt7620n - rt - n14u - squashfs - sysupgrade . bin - rw - r -- r --   1   Diveinedu    staff     1 . 0M    9    8   20:45   openwrt - ramips - mt7620n - uImage . bin - rwxr - xr - x    1   Diveinedu    staff     2 . 9M    9    8   20:45   openwrt - ramips - mt7620n - vmlinux . bin - rwxr - xr - x    1   Diveinedu    staff     3 . 0M    9    8   20:45   openwrt - ramips - mt7620n - vmlinux . elf - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8 20:45   openwrt - ramips - mt7620n - wmr - 300 - squashfs - sysupgrade . bin - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8   20:45   openwrt - ramips - mt7620n - wr8305rt - squashfs - sysupgrade . bin - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8   20:45   openwrt - ramips - mt7620n - wrtnode - squashfs - sysupgrade . bin - rw - r -- r --   1   Diveinedu    staff     3 . 5M    9    8   20:45   openwrt - ramips - mt7620n - zbt - wa05 - squashfs - sysupgrade . bin drwxr - xr - x    4   Diveinedu    staff     136B    9    8   20:20   packages Hackintoshpenwrt   Diveinedu$ 选择我们板子对应的固件,比如我们罗老湿的  WRTNode  ,那就选择bin/ramips/openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin, 然后scp上传到路由器里或者通过TTL+TFTP的方式进行刷机测试.
如果是采用TTL+TFTP的方式,那我们还需要安装一个minicom工具.同样,在命令行运行命令:
Hackintosh penwrt   Diveinedu brew install minicom安装完成之后运行minicom,设置正确的设备文件和正确的波特率:
Hackintosh penwrt   Diveinedu minicom -s公司笔记本使用USB转串口的适配器在MacOSX里的设备文件的话,一般是/dev/tty.USBxxx这样的文件,像我现在家里所使用的台式机黑苹果的画,主板上的串口对应的设备文件是/dev/tty.serial1.具体看芯片的驱动是怎么样命名.
到此,在Mac OS X 10.9.4系统中进行OpenWrt智能路由器,嵌入式Linux开发环境搭建和编译的步骤就介绍完成.



长沙戴维营教育整理

你可能感兴趣的:(开源项目,开发工具,mac,os,x,openwrt)