Mac OS X中编译WRTNode固件

1.Disk Image CreationMac
OS X系统默认的磁盘文件系统是非大小写敏感的,而Openwrt编译环境需要大小写敏感支持,故我们创建一个磁盘映像文件来新建大小写敏感的文件系统.

下面开始用MacOSX系统中自带的命令hdiutil来创建一个新磁盘镜像并挂载到系统中.

Hackintosh:~ Diveinedu$ cd $HOMEHackintosh:~ Diveinedu$ hdiutil
create -size 20g
-fs "Case-sensitive HFS+" -volname OpenWrt OpenWrt.dmgHackintosh:~ Diveinedu$ hdiutil
attach OpenWrt.dmg上面命令会在我们的主目录下创建一个大小为20G的镜像文件,并格式化为Case-sensitive
HFS+的文件系统,卷标名为OpenWrt,然后挂载到系统中.挂载后我们看样子Finder界面的左侧边栏看到他.

我们需要在终端命令行下进入我们刚刚创建好的文件系统对应的目录下去:

Hackintosh:~ Diveinedu$ cd
/Volumes/OpenWrt2.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 readlinebinutils findutils gnu-tar lzlib sqlite bison flex gputils openssl wget coreutils gawk intltool ossp-uuid xz3.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.gitHackintosh:OpenWrt Diveinedu$ cd
openwrtHackintoshpenwrt Diveinedu$ ./scripts/feedsupdateHackintoshpenwrt Diveinedu$ ./scripts/feeds install
-a上述命令成功执行完成后,我们就已经准备好了OpenWrt的源码并部署了所有的软件包以供我们后面的编译配置步骤去选择了.

4. Configure and Build OpenWrt For MT7620A.
到这里,我们就可以开始为我们的路由器板子进行配置了,比如我现在为我的MT7620N板子进行编译的配置,在命令行执行如下命令:

Hackintoshpenwrt Diveinedu$ make
menuconfig这条命令会在终端显示一个基于ncurses的文本图形菜单,我们在菜单里作如下选择:

Target System (Ralink RT288x/RT3xxx) --->

Subtarget (MT7620n based boards) --->

其他具体的配置项这里就从略...

比如MT7620的WiFi驱动啊, USB存储驱动啊, USB的3G Modem驱动等等,

根据实际需求添加配置.此处只做配置编译过程的演示.

配置好这些合适的编译配置项目后,退出菜单保存设置.


B.此时此刻,万事具备只欠东风,东风就是最后一条编译命令:

Hackintoshpenwrt 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  820: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  820: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.bindrwxr-xr-x  4 Diveinedu  staff 
 136B  9  8 20:20 packagesHackintoshpenwrt Diveinedu$选择我们板子对应的固件,比如我们罗老湿的 WRTNode ,那就选择bin/ramips/openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin,
然后scp上传到路由器里或者通过TTL+TFTP的方式进行刷机测试.

如果是采用TTL+TFTP的方式,那我们还需要安装一个minicom工具.同样,在命令行运行命令:

Hackintoshpenwrt Diveinedu$ brew
install minicom安装完成之后运行minicom,设置正确的设备文件和正确的波特率:

Hackintoshpenwrt Diveinedu$ minicom
-s公司笔记本使用USB转串口的适配器在MacOSX里的设备文件的话,一般是/dev/tty.USBxxx这样的文件,像我现在家里所使用的台式机黑苹果的画,主板上的串口对应的设备文件是/dev/tty.serial1.具体看芯片的驱动是怎么样命名.

到此,在Mac OS X 10.9.4系统中进行OpenWrt智能路由器,嵌入式Linux开发环境搭建和编译的步骤就介绍完成.

长沙戴维营教育整理

Mac OS X中编译WRTNode固件

时间: 2024-10-10 18:38:00

Mac OS X中编译WRTNode固件的相关文章

Mac OS X中,有三种方式来实现启动项的配置

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 22.0px "Times New Roman"; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Times New Roman"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0p

在Mac OS X中使用mtr诊断路由节点问题

这个工具是从阿里云客服那知道的,当时遇到阿里云CDN的一个节点出现丢包问题,用这个工具诊断路由节点问题. 1. 下载地址:http://rudix.org/packages/mtr.html(在园子里下载) 2. 下载后运行mtr-0.85-0.pkg进行安装 3.  cd /usr/local/sbin ,就会看mtr文件. 4. 运行mtr出现提示 -bash: mtr: command not found 解决方法: alias mtr=/usr/local/sbin/mtr 5. 继续运

在mac OS X中配置python mysql开发环境

1. 首先要下载安装mysql,下载地址: http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.19.tar.gz 解压: tar -xzvf mysql-5.6.19.tar.gz 然后下载gmock,编译mysql时需要用到: https://googlemock.googlecode.com/files/gmock-1.7.0.zip 解压到指定目录 <span style="font-size:14px;">unzi

Android逆向工程工具Dare的使用方法(Mac OS X中)

其实这篇日志很简单,争取用两句话说完.Dare这个工具是宾州大学计算机系发布的apk逆向工程工具.可以将Android系统中使用的apk文件反编译为Java Class文件.目前支持Linux和Mac OS X中使用,在Mac中的使用方法尤其简单,在这个页面:http://siis.cse.psu.edu/dare/downloads.html 提供可执行文件的下载,下载解压之后在终端中进入其目录,输入: bash dare -d apkoutput WeChat_462.apk 上面是以最新的

如何在Mac OS X 中运行Lua (Running Lua on Mac OS X)

参考文章:1) http://www.oschina.net/question/12_769552) http://rudamoura.com/luaonmacosx.html 最近在为iOS开发游戏,我的开发机是iPhone5.在开发的游戏项目中需要使用Lua语言,所以想在我的苹果MacBook Pro 中安装Lua语言的解释器,以便进行脚本调试.我的Mac OS X的版本是10.8.3.Lua 是一个轻量级的脚本语言,在游戏开发上使用非常多.它是开源的.我们可以下载它的源码进行编译. 到本文

Mac OS X 中一些常用的命令行技巧

一.网络设置相关 1.网卡的物理地址的动态重置 出于某些需求,例如网络中的 IP 地址或网络帐号与网卡物理地址绑定,使得多个设备无法切换上网,可尝试临时更改物理地址.不过,系统偏好设置是不能修改网卡物理地址的,这就是命令行的用武之地了.具体来说,若心中已有想修改的物理地址,例如 00:1f:3c:93:b5:99,可执行 $ sudo ifconfig en1 ether 00:1f:3c:93:b5:99 来临时修改网卡的物理地址:若没有物理地址,只是想临时启用尝试一下,可用 openssl

【转】Mac OS X 中 Zsh 下 PATH 环境变量的正确设置

在 Mac OS X 中使用 zsh,环境变量 PATH 一不小心就会变得很紊乱,表现为自己设置的路径总是被放到系统路径之后,部分路径还会有重复.这是我们不太了解 zsh 启动时加载文件的顺序和 Mac OS X 的 shell 类型导致的. zsh 启动过程中会依次读取以下文件: /etc/zshenv $ZDOTDIR/.zshenv($ZDOTDIR 未设置时默认为 $HOME) 如果是 login shell,读取 /etc/zprofile, $ZDOTDIR/.zprofile 如果

在Mac OS X中配置Apache + PHP + MySQL

在Mac OS X中配置Apache + PHP + MySQL Mac OS X 内置Apache 和 PHP,使用起来非常方便.本文以Mac OS X 10.6.3和为例.主要内容包括: 启动Apache 运行PHP 安装MySQL 使用phpMyAdmin 配置PHP的MCrypt扩展库 设置虚拟主机 启动Apache 有两种方法: 打开“系统设置偏好(System Preferences)” -> “共享(Sharing)” -> “Web共享(Web Sharing)”. 打开“终端

Mac OS X中Android Kernel的下载方法

在上一篇日志中,我总结了大家提供的下载Android源码的方法,这里再简单总结一下内核的下载方法.参考这里的介绍:http://source.android.com/source/building-kernels.html#downloading-sources ,下载内核源码相对简单很多.我这里下载下来一共1G多一些.在终端输入: $ git clone https://android.googlesource.com/kernel/common.git 如果不指定文件夹名,就直接clone到