编译小米路由mini的openwrt固件
花了一天,终于编译好了小米路由器的openwrt,过程真是一波三折。。。值得一讲。
硬件准备
老高之前很天真的想用搬瓦工的VPS编译,没想到真是的图样图森破。
当时想的是搬瓦工vps的下载速度很快,能够缩短编译时间,事实证明,确实下载很快。
第一个坑
但遇到的第一个坑当然是内存不足,无法编译。
无奈,于是打开virtualbox,创建了一个centos6.6系统。
内存1G,硬盘8G,快速安装。
软件准备
既然是centos,那么安装软件的工具当然是yum
,如果对速度不满意,可以参考Centos源设置将源服务器设为国内的阿里或者163,这样速度能快一些。
其他系统可以参考官方的文档
# 国内网速你懂的
yum update -y
yum groupinstall "development tools" -y
yum install zlib zlib-devel bzip2-devel pcre-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel -y
下载源代码
git clone git://git.openwrt.org/openwrt.git
编译
cd openwrt/
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
# 穿墙你懂的
pushd package
git clone https://github.com/aa65535/openwrt-dist-luci.git
popd
make menuconfig
# 由于是mac没敢开多线程,如果是台式机,推荐使用-j参数
make V=99
# 编译期间可能会遇到某些源代码无法下载,这个不算是坑,可以自己手动下载,并复制到`openwrt/dl`文件夹里,然后继续编译即可。
# 接下来就是等待编译过程完毕了!
教程貌似结束了?
不过问题来了
当然不会完,期间老高遇到的问题无数,考验人的耐力和体力啊!
第二个坑
当程序运行到某处报错
i686-linux-gnu-g++: internal compiler error: Killed (program cc1plus)
通过重现发现此时MEM占用99%,瞬间懂了,原来是内存给少了,1G+500SWAP都不够。。。
解决办法:
# 关机
init 0
#然后在虚拟机设置处将内存调整至2G
第三个坑
空间不足,8G也不够。。。真是小看openwrt了。
我的解决办法是在上一块虚拟硬盘,通过扩展LVM容量解决的。
盗一个图先
# 第一步,关机,上一个新的同规格硬盘,容量8G,开机
# 查看是否安装成功
ll /dev/sd*
# 此时应该多一个/dev/sdb
fdisk /dev/sdb
# 现在进入交互模式,输入m可以打开帮助
# 输入n,然后一路回车,就把sdb创建了一整个分区sdb1
# 输入q退出
# 下面开始增加容量
# 在sdb1上创建新的物理卷(Physical Volume,PV)
pvcreate /dev/sdb1
# 如果需要把整个磁盘直接创建为物理卷可以使用 pvcreate /dev/sdb
# 查看物理卷
pvdisplay
--- Physical volume --- PV Name /dev/sda2 VG Name VolGroup PV Size 7.51 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 1922 Free PE 0 Allocated PE 1922 PV UUID 6QpO6a-Xg0D-bbnu-znPR-EyLf-J4AD-PFna1y
--- Physical volume --- PV Name /dev/sdb1 VG Name VolGroup PV Size 8.00 GiB / not usable 4.38 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2046 Free PE 0 Allocated PE 2046 PV UUID q0uMIR-Sqy6-0djq-wJ2g-V1zN-TdoV-Nk9wAY
# 查看卷组(Volume Group,VG)
vgdisplay
--- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 5 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 7.4 GiB PE Size 4.00 MiB Total PE 3968 Alloc PE / Size 3968 / 15.50 GiB Free PE / Size 0 / 0 VG UUID PlIpGQ-gBtF-RpQp-fzFh-9jao-JyDY-hfxVDl
# 现在将VG扩容,注意VG Name
vgextend VolGroup /dev/sdb1
# get
# Volume group "VolGroup" successfully extended
# 下面开始'分区'
查看逻辑卷(Logical Volume,LV)
lvdisplay
--- Logical volume --- LV Path /dev/VolGroup/lv_root LV Name lv_root VG Name VolGroup LV UUID FbWpkT-WAz3-bmXI-3j06-kdYh-1dvt-ZbwKmH LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-04-28 09:48:44 +0800 LV Status available open 1 LV Size 7.4 GiB Current LE 3764 Segments 2 Allocation inherit Read ahead sectors auto /- currently set to 256 Block device 253:0
--- Logical volume --- LV Path /dev/VolGroup/lv_swap LV Name lv_swap VG Name VolGroup LV UUID 0o4wmo-lj1r-xRTe-zSvd-Bpo7-wLI7-9kX1gf LV Write Access read/write LV Creation host, time localhost.localdomain, 2015-04-28 09:48:45 +0800 LV Status available open 1 LV Size 816.00 MiB Current LE 204 Segments 1 Allocation inherit Read ahead sectors auto /- currently set to 256 Block device 253:1
# 继续查看挂载,可以发现 /dev/mapper/VolGroup-lv_root 被挂载到根目录
df -h
#/dev/mapper/VolGroup-lv_root 7.4G 7.4G 0G 100% /
# 开始扩充
lvextend /dev/VolGroup/lv_root /dev/sdb1
# Logical volume lv_root successfully resized
# 增加了逻辑卷的容量以后,就需要修改文件系统大小以实现利用扩充的空间
resize2fs /dev/VolGroup/lv_root
至此扩容完成,可以继续愉快的编译了。
总结
硬件:虚拟机2G内存 >=16G硬盘(编译完还有3.4G剩余) 系统:centos6.6 其他:耐心
第一次运行会下载很多软件在dl目录,下次编译的时候就快了
路过。
怎样刷进去呢,我用广泛传播的潘多拉版刷机方法刷进去就红
刚入手小米mini一台,你的怎么样,openwrt在小米上稳定不
求稳定请勿刷openwrt,那就是折腾用的。
我也是在VPS上编译的,不过是1G内存和20G硬盘,不过现在的openwrt没有Pandora稳定,速度也没Pandora快。
恩,官方的稳定
好久不刷了,尽量不要挑新的
刷了最新的稳定版openwrt 没有5g 找教程装上了也能用 但还是嫌太纯净了 东西好少 自己又不会折腾 比小米的少了些组件 就刷回小米自带的了
现在刷什么固件最稳定 又好用啊
恩,貌似人家的驱动比较厉害
http://downloads.openwrt.org/snapshots/trunk/ramips/mt7620/ 请问这里的是还需要编译还是直接可以刷?为什么只有3M呢?
那么刷这个然后自己装SS和ChinaDNS也可以吧?Pandorabox翻墙我怎么每次用一段时间就不稳定了,也不是服务器的问题,就是连不上!
这个是最新的,潘多拉是基于14.xx的
Breed里面刷的,目前还比较稳定
https://downloads.openwrt.org/chaos_calmer/15.05/ramips/mt7620/ 还有这里也有个小米的OpenWRT,请问两个的区别是什么呢?
15.05的我刷上以后无线重启,你的不会这样?是mtd刷的还是在beed里面刷?
那就是机器的问题了,你懂的
昨晚花了几个小时终于把原版15.05折腾好了,没有自带应用,反正用得上的也不多。目前稳定运行,但wifi信号很差,有没有办法解决?
是编译后的bin,可以刷,但是功能很少。pandorabox帮你整合了一堆软件,所以比较大
怎么搜遍网络都没有介绍说配置界面那里该怎么设置的啊?
言简意赅
按空格设置