转自: http://www.znck007.com/forum.php?mod=viewthread&tid=21571 由于openwrt编译教程资料很多,不同的cpu芯片只需要选择对应的芯片类型,新手就能成功编译openwrt。 所以创客开源精神造福全人类,创客你我,关注@智能创客 微信znck007第一部分:安装虚拟机+ubuntu系统 ![]() 安装虚拟机:VMware 8.0 下载地址:http://pan.baidu.com/s/1i3vb5dV ![]() 安装ubuntu:ubuntu-12.04.1-desktop-i386 下载地址:http://pan.baidu.com/s/1mgkMb92 VMware+ubuntu 安装教程下载:http://pan.baidu.com/s/18MZfg 中文和英文界面差不多,按教程指示安装吧! 第二部分:设置虚拟机ubuntu和windows共享文件(方便复制文件到本机) ![]() 登陆ubuntu系统后,点击左边的文件夹。右击新建个文件夹。 ![]() 设置为共享 ![]() ubuntu会提示你安装共享,确定下一步安装,网络好大概要3分钟左右。 ![]() ok了,我们在本机windows,打开网上领居,就能看到共享文件夹了。 之后我们会在这里文件夹里编译openwrt,就可以直接复制编译出来的文件了。 第三部分:安装编译开发环境 ![]() 打开终端 ![]() 装svn工具 sudo apt-get install subversion 安装git工具 sudo apt-get install git-core 安装依赖的库文件 sudo apt-get install gcc g++ binutils patch bzip2 flex bison make autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev libncurses5-dev gawk openssl libssl-dev 第四部分:下载openwrt官方源码 ![]() ls 显示当前目录 cd pcfile //进入pcfile文件夹 mkdir openwrt //新建openwrt文件夹 ![]() cd openwrt //进入openwrt文件夹 使用svn下载源码(这个过程网络快也要几个小时哦,慢就等一天吧呵呵) svn co svn://svn.openwrt.org/openwrt/trunk ![]() cd trunk //进入trunk文件夹 为了支持更多软件 ./scripts/feeds update -a ./scripts/feeds install -a openwrt是用非root用户名编译的,如果是root则修改,对于ubuntu不用修改。 gedit include/prereq-build.mk define Require/non-root # [ "$$(shell whoami)" !="root" ] enddef 第五部分:编译openwrt源码 make menuconfig //打开编译菜单 ![]() 首先选择Target System为Atheros AR7xxx/AR9xxx, 因为我们的TL-WR703N的主芯片是属于Atheros公司的Atheros AR7240 CPU 其次选择Target Profile是选择路由器的型号,我们选择(TP-LINK TL-WR703N) 提醒:部分电脑请使用空格才能选择为*(多击空格让他变成*才能选上) ![]() //先择编译功能(默认可以都选上这些,但会有点大5M多,了解的可以只选自己想要的功能) Base system—> <*> block-mount (挂载) Kernel modules—> Filesystems—> <*> kmod-fs-ext4 (挂载) Kernel modules—> Native Language Support—> <*> kmod-nls-utf8 (编码) Kernel modules—> Sound Support—> <*> kmod-sound-core (声卡) Kernel modules—> Sound Support—> <*> kmod-usb-audio (声卡) Kernel modules—> USB Support—> <*> kmod-usb-cm109 (声卡) Kernel modules—> USB Support—> <*> kmod-usb-serial (串口) Kernel modules—> USB Support—> <*> kmod-usb-serial-ch341 (ch341) Kernel modules—> USB Support—> <*> kmod-usb-serial-cp210x (cp210x) Kernel modules—> USB Support—> <*> kmod-usb-serial-ftdi (ftdi) Kernel modules—> USB Support—> <*> kmod-usb-storage (u盘) Kernel modules—> USB Support—> <*> kmod-usb-storage-extras (u盘) Kernel modules—> Video Support—> <*> kmod-video-core (视频) Kernel modules—> Video Support—> <*> kmod-video-uvc (视频) Kernel modules—> Video Support—> <*> kmod-video-videobuf2 (视频) Libraries—> <*> alsa-lib (视频) LuCI—> Collections—<*> luci LuCI—> Translations—<*> luci-i18n-chinaes Multimedia—> <*> mjpg-streamer (视频) Utilities—> Filesystems—> <*> badblocks (u盘) Utilities—> <*> alsa-utils-tests (声卡) save保存配置 然后再修改固件内存文件: 首先修改trunk/tools/firmware-utils/src/mktplinkfw.c搜索到fw_max_len,然后将id = "4M"下面的修改成: fw_max_len = 0x7c0000 另外还需下面修改:Imagebuilder 目录下target/linux/ar71xx/image/Makefile, 把703n最后的4Mlzma改成了8Mlzm $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0x07030101,1,8Mlzma)) 否则出现如下错误:[mktplinkfw] kernel length aligned to 914864 [mktplinkfw] *** error: images are too big make[3]: [install] Error 255 (ignored) 然后执行 make V=99第一次编译需要1-2个小时,需心等待吧,可以去干点别的事哇哇! 第六部分:复制编译好的固件,然后刷到openwrt里吧! ![]() 在windows里,网上领居,然后在“共享文件夹里”的openwrt\trunk\bin\ar71xx 里就看到编译出来的固件了! openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin 值得注意的事: 1、国内有时无法连接到国外的openwrt网下载(导致下载异常等具体看屏幕打印的异常日志),你就需要用vpn翻墙。 2、openwrt官方的固件一直在更新,如何发现编译完成刷到开发板后,无法安装某个驱动或安装包,请使用正确下载源。 |
转载于:https://www.cnblogs.com/alan666/p/8312317.html