1.Disk Image CreationMac
OS X系统默认的磁盘文件系统是非大小写敏感的,而Openwrt编译环境需要大小写敏感支持,故我们创建一个磁盘映像文件来新建大小写敏感的文件系统. 下面开始用MacOSX系统中自带的命令hdiutil来创建一个新磁盘镜像并挂载到系统中. Hackintosh:~Diveinedu$ cd $HOMEHackintosh:~Diveinedu$ hdiutil
create -size 20g
-fs "Case-sensitive HFS+" -volname OpenWrtOpenWrt.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
Hackintosh:OpenWrtDiveinedu$brewinstallasciidocdocbookgdbmlibxml2pbzip2autoconfe2fsprogsgettextlibxsltpkg-configbash-completionfastjargnu-getoptlibyamlreadlinebinutilsfindutilsgnu-tarlzlibsqlitebisonflexgputilsopensslwgetcoreutilsgawkintltoolossp-uuidxz3.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:OpenWrtDiveinedu$ git
clone git://git.openwrt.org/14.07/openwrt.gitHackintosh:OpenWrtDiveinedu$ cd
openwrtHackintoshpenwrtDiveinedu$ ./scripts/feedsupdateHackintoshpenwrtDiveinedu$ ./scripts/feeds install
-a上述命令成功执行完成后,我们就已经准备好了OpenWrt的源码并部署了所有的软件包以供我们后面的编译配置步骤去选择了. 4. Configure and Build OpenWrt For MT7620A.
到这里,我们就可以开始为我们的路由器板子进行配置了,比如我现在为我的MT7620N板子进行编译的配置,在命令行执行如下命令: HackintoshpenwrtDiveinedu$ make
menuconfig这条命令会在终端显示一个基于ncurses的文本图形菜单,我们在菜单里作如下选择: Target System (Ralink RT288x/RT3xxx) ---> Subtarget (MT7620n based boards) ---> 其他具体的配置项这里就从略... 比如MT7620的WiFi驱动啊, USB存储驱动啊, USB的3G Modem驱动等等, 根据实际需求添加配置.此处只做配置编译过程的演示. 配置好这些合适的编译配置项目后,退出菜单保存设置. B.此时此刻,万事具备只欠东风,东风就是最后一条编译命令: HackintoshpenwrtDiveinedu$ make V=s由于是第一次编译,这一条命令的时间足够让我们睡一个午觉,如果不想睡觉,那就喝几杯咖啡吧. 如果网络条件好,那么首次编译过程中所需要下载的软件包应该不会遇到什么错误.因为我这次就非常的顺利,不过我是用的VPN番茄了的. 编译完成之后,我们可以在输出目录下查看我们的结果,那就是各种MT7620N方案的路由器板子的固件: HackintoshpenwrtDiveinedu$ls -lhbin/ramips/total62344-rw-r--r-- 1Diveinedustaff812B9820:45md5sums-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-mlw221-squashfs-sysupgrade.bin-rw-r--r-- 1Diveinedustaff2.5M9820:45openwrt-ramips-mt7620n-root.squashfs-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-rt-n14u-squashfs-sysupgrade.bin-rw-r--r-- 1Diveinedustaff1.0M9820:45openwrt-ramips-mt7620n-uImage.bin-rwxr-xr-x1Diveinedustaff2.9M9820:45openwrt-ramips-mt7620n-vmlinux.bin-rwxr-xr-x1Diveinedustaff3.0M9820:45openwrt-ramips-mt7620n-vmlinux.elf-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-wmr-300-squashfs-sysupgrade.bin-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-wr8305rt-squashfs-sysupgrade.bin-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin-rw-r--r-- 1Diveinedustaff3.5M9820:45openwrt-ramips-mt7620n-zbt-wa05-squashfs-sysupgrade.bindrwxr-xr-x4Diveinedustaff136B9820:20packagesHackintoshpenwrtDiveinedu$选择我们板子对应的固件,比如我们罗老湿的 WRTNode ,那就选择bin/ramips/openwrt-ramips-mt7620n-wrtnode-squashfs-sysupgrade.bin,
然后scp上传到路由器里或者通过TTL+TFTP的方式进行刷机测试. 如果是采用TTL+TFTP的方式,那我们还需要安装一个minicom工具.同样,在命令行运行命令: HackintoshpenwrtDiveinedu$ brew
install minicom安装完成之后运行minicom,设置正确的设备文件和正确的波特率: HackintoshpenwrtDiveinedu$ minicom
-s公司笔记本使用USB转串口的适配器在MacOSX里的设备文件的话,一般是/dev/tty.USBxxx这样的文件,像我现在家里所使用的台式机黑苹果的画,主板上的串口对应的设备文件是/dev/tty.serial1.具体看芯片的驱动是怎么样命名. 到此,在Mac OS X 10.9.4系统中进行OpenWrt智能路由器,嵌入式Linux开发环境搭建和编译的步骤就介绍完成.