参考链接
https://www.jianshu.com/p/2a9aa7d841a3
https://www.maxlicheng.com/openwrt/42.html
https://p3terx.com/archives/openwrt-compilation-steps-and-commands.html
http://www.5lazy.cn/post-147.html
https://github.com/coolsnowwolf/lede
欢迎来到Lean的OpenWrt和软件包的git源代码
中文:如何编译自己需要的OpenWrt固件
==注意: 1.不要用root用户git和编译!!! 2.国内用户编译前最好准备好梯子 3.默认登陆IP 192.168.1.1,密码密码==
编译命令如下:
1.首先装好Ubuntu 64bit,推荐Ubuntu 14 LTS x64
2.命令行输入sudo apt-get update,然后输入
sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch unzip zlib1g-dev lib32gcc1 libc6-dev-i386 subversion flex uglifyjs git-core gcc-multilib p7zip p7zip-full msmtp libssl-dev texinfo libglib2.0-dev xmlto qemu-utils upx libelf-dev autoconf automake libtool autopoint
git clone https://github.com/coolsnowwolf/lede #命令下载好源代码
cd lede #进入目录
git pull https://github.com/coolsnowwolf/lede #更新本地源码
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
3.最后选好你要的路由,输入
make -j1 V = s
(-j1后面是线程数。第一次编译推荐用单线程,国内请尽量==全局科学上网==)即可开始编译你要的固件了。
本套代码保证肯定可以编译成功。里面包括了R9所有源代码,包括IPK的。
4. 检查依赖软件
运行下面的命令(3选1!),让OpenWrt编译系统检查编译环境中缺失的软件包:
make menuconfig # 总体配置,推荐使用此命令
make defconfig # 默认配置
make prereq #
如果以上3个命令都运行了,编译会出错!
根据提示安装对应的软件。如果以前没装过build-essential这个包的话,这次也要安装这个包。
5. 总体配置
make menuconfig 输入以上命令之后,会进入一个命令行图形界面,界面最上面是用法。
<*> 该代码将被放入固件中 (on the SqashFS partition)
< > 该代码将不会被编译
<M> 该代码将被交叉编译,生成的ipk软件包将被放在 /buildsystem/bla/bla/bla, 但该软件包不会放入固件中
以下是我的一些配置。
选择 CPU 型号
Target System 选为 Atheros ARM7xxx/ARM9xxx
选择路由器型号
Target Profile 选为 TP-LINK TP-WR720N
启用 Web 管理界面 LuCI
LuCI → Collections → 选中 luci
添加 LuCI 中文支持
LuCI → Modules → Translations → 选中 Chinese (zh-cn)
添加支持USB自动mount功能
添加USB相关支持
Kernel modules —> USB Support —> <*> kmod-usb-core.
Kernel modules —> USB Support —> <*> kmod-usb-ohci.
Kernel modules —> USB Support —> <*> kmod-usb-uhci.
Kernel modules —> USB Support —> <*> kmod-usb-storage.
Kernel modules —> USB Support —> <*> kmod-usb-storage-extras.
Kernel modules —> USB Support —> <*> kmod-usb2.
添加USB挂载
Base system —> <*>block-mount
添加自动挂载工具
Utilities —> Filesystem —> <*> badblocks
添加文件系统支持
Kernel modules —> Filesystems —> <*> kmod-fs-ext4 (移动硬盘EXT4格式选择)
Kernel modules —> Filesystems —> <*> kmod-fs-vfat(FAT16 / FAT32 格式 选择)
Kernel modules —> Filesystems —> <*>kmod-NTFS(NTFS选择,具体是什么忘记了,总之有NTFS字样的)
添加UTF8编码,CP437编码,ISO8859-1编码
Kernel modules —> Native Language Support —> <> kmod-nls-utf8
Utilities ---> disc ---> <> fdisk............. manipulate disk partition table
Utilities ---> <*> usbutils.................... USB devices listing utilities
6. 内核配置
make kernel_menuconfig 进入文本行图形界面后,开启FPU。
Kernel type → 选中 MIPS FPU Emulator
1.修改主机名,设定时区,IP地址
打开/package/base-files/files/bin/config_generate文件,修改如下
generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
add system system
set system.@system[-1].hostname='LEDE'#修改主机名
set system.@system[-1].timezone='Asia/Shanghai'#修改默认时区
lan) ipad=${ipaddr:-"192.168.1.1"} ;;#修改默认IP
2.修改WIFI信息
打开/package/kernel/mac80211/files/lib/wifi/mac80211.sh文件,修改如下
set wireless.radio${devidx}.disabled=0#改为0自动打开wifi
set wireless.default_radio${devidx}=wifi-iface
set wireless.default_radio${devidx}.device=radio${devidx}
set wireless.default_radio${devidx}.network=lan
set wireless.default_radio${devidx}.mode=ap
set wireless.default_radio${devidx}.ssid=LEDE#wifi名称
set wireless.default_radio${devidx}.encryption=psk2#wifi加密方式,没有是none
set wireless.default_radio${devidx}.key=password#wifi密码
3.SSH/TELNET显示信息修改方式:
打开/package/base-files/files/etc/banner文件,修改如下图
4.修改路由连接数
打开/package/base-files/files/etc/sysctl.conf文件,修改如下
net.netfilter.nf_conntrack_max=65535#连接数
5.修改默认主题
打开/feeds/luci/collections/luci/Makefile文件,修改如下
LUCI_DEPENDS:= \
+uhttpd +uhttpd-mod-ubus +luci-mod-admin-full +luci-theme-argon \
+luci-app-firewall +luci-proto-ppp +libiwinfo-lua \
+rpcd-mod-rrdns
如下图:
6.去除进入管理后台跳转/cgi-bin/luci时页面的输出
打开/package/feeds/luci/luci-base/root/www/index.html文件,修改如下图
7.去除luci-app-ssr-plus的彩蛋
打开/package/lean/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua这个加密文件,下载下面的文件解压替换加密的shadowsocksr.lua文件。
下载地址:shadowsocksr.lua.zip
8.WNDR4300开启128兆flash
打开/target/linux/ar71xx/image/legacy.mk文件,修改如下图
==TIPS:修改源码后重新编译需要删除build_dir目录跟staging_dir目录还有tmp目录。==