在线云编译斐讯N1的openwrt固件(带WiFi驱动,带emmc写入)教程
N1编译思路: 由于openwrt没有为S905cpu做过linux内核。所以我们需要先找到支持S905的linux内核,而armbian就有。所以我们的思路是先 用armbian的内核,然后复制进openwrt的文件。 首先第一步是按照下面的教程编译自己的openwrt固件。选择平台的时候因为没有S905,选择选择跟N1无线网卡同型号的 树莓派。博通2700X.64位。插件可以自己按需定制。 第二步是网上下载S905最新的armbian镜像,。然后下来下来。 第三步:按照橙子的教程将openwrt文件复制进armbian中 论坛有好多大大编译好的固件,都非常好用,但是有些插件自己用不到。为了满足自己的好奇心,也能够体验编译的过程,尝试着在win10系统中,安装Ubuntu编译openwrt 感谢@sliverx 大大在 本机win10子系统Ubuntu18.04编译lede出错,求帮助 – OPENWRT专版 – 恩山无线论坛 – Powered by Discuz! (right.com.cn) 这个帖子中提供的方法。 一、打开win10内置的linux功能,可能家庭版的win10会没有,专业版肯定有的。 进入设置,应用,应用和功能,可选功能 二、在应用商店安装Ubuntu 打开Ubuntu,首次运行会提示输入用户名和密码,按提示做就可以了。 三、下载编译openwrt,全程最好全局开打倒美帝 1、打开lean openwrt的官网 coolsnowwolf/lede: Lean’s OpenWrt source (github.com) 2、在ubuntu中输入 sudo apt-get update复制代码这里会要求输密码,输密码的时候是不会显示任何东西的。 运行完再输入 sudo apt-get -y install build-essential asciidoc binutils bzip2 gawk gettext git libncurses5-dev libz-dev patch python3 python2.7 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 device-tree-compiler g++-multilib antlr3 gperf wget curl swig rsync复制代码运行完再输入 git clone https://github.com/coolsnowwolf/lede复制代码 然后 cd lede复制代码 这个时候需要修改一下配置文件,显示反抗帝国主义。 资源管理器进入 C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_一堆字母数字\LocalState\rootfs\home\用户名\lede (建议把这个目录固定到快速访问) 用记事本打开 feeds.conf.default 文件,删除最后一行前面的“#”号。如果不做这步,就不能召唤航母打美帝。 分别输入,这几部等候时间会比较长,一定要全程反对帝国主义 ./scripts/feeds update -a复制代码./scripts/feeds install -a复制代码make menuconfig复制代码顺利的话,会进入这个界面 这里仅根据我常用的配置举例 键盘上下移动光标,回车进入菜单,esc返回,y选择,n去除选择。 Target System和subtarge选x86 Target Images,默认会勾选虚拟机的vmdk格式,如果不需要的话,可以按N取消,再按两下esc退出。 如果需要IPv6支持,需要在Extra packages里勾选ipv6helper,自动会把所有ipv6需要的组件都选上的,不需要再去别的地方选了。现在宽带都支持ipv6了,我是上海移动宽带,开启ipv6后没有发现什么不正常的地方,美帝也能打。 最重要的都在Luci里设置,如果不知道怎么选,建议就默认。 这个帖子里有比较详细的插件说明 OpenWrt 编译 LuCI-> Applications 添加插件应用说明-L大【2021.1.20】 – OPENWRT专版 – 恩山无线论坛 – Powered by Discuz! (right.com.cn) Themes是主题,个人觉得默认主题就可以了, 路由器这都后台又不是天天要看到的。 Applications是最重要的,几乎所有的插件都在里面。N是取消选中,Y是选中。 打倒美帝 京东签到 激活office的KMS 如果之前看过我的帖子,用爱快虚拟机装openwrt的话,爱快虚拟机装openwrt,流控科学两不误。修复终端监控显示问题 – 软路由,x86系统,openwrt(x86) 等 – 恩山无线论坛 – Powered by Discuz! (right.com.cn) 需要在network里安装snmpd 全部选中完成后,按两下esc,再按回车保存退出。 配置完就可以编译啦,第一次编译的时候比较长 本帖隐藏的内容输入source /etc/environment,这一步很重要,不输这段代码肯定会报错。 source /etc/environment复制代码保持全局反美帝,根据网速,下载时间挺长的。 make -j8 download V=s复制代码最后一步就是编译了。 make -j1 V=s复制代码这个错就是没有输source /etc/environment 造成的 编译成功 文件放在C:\Users\huang\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\home\huang\lede\bin\targets\x86\64目录里 三、刷机 默认登陆IP 192.168.1.1, 密码 password 如果是虚拟机,直接上传镜像就可以了。 实体机可以参考这两个帖子,用dd刷机,心里感觉比在web界面里直接升级干净。 【网络教程】如何使用dd命令方式刷机安装软路由固件,如果使用dd命令方式升级软路由_xiaoqiangclub的博客-CSDN博客 如何使用dd命令刷固件 – LEDE/OpenWRT – KoolShare – 源于玩家 服务玩家 四、第二次编译 第一次编译成功,以后再编译速度就很快了,一般20分钟搞定 记得先要输source /etc/environment 如果不需要更改配置:source /etc/environment cd lede git pull ./scripts/feeds update -a && ./scripts/feeds install -a make defconfig make -j8 download make -j$(($(nproc) + 1)) V=s复制代码 如果需要更改: source /etc/environment cd lede git pull ./scripts/feeds update -a && ./scripts/feeds install -a rm -rf ./tmp && rm -rf .config make menuconfig make -j8 download make -j$(($(nproc) + 1)) V=s复制代码 |
1. 安装虚拟机 WMwera 或 Virtualbox。(略)本教程以Virtualbox为例。
2. 安装Ubuntu16.04+。(略)本教程以Ubuntu18.04为例。
3. 推荐ssh工具:MobaXtrem或FinalShell,本教程以MobaXtrem为例。
4. 更新Ubuntu组件(sudo apt-get update && sudo apt-get upgrade )
5. 安装编译需要的依赖环境(详见https://github.com/coolsnowwolf/lede)
6. 下载lede编译源码(git clone https://github.com/coolsnowwolf/lede),可能下载很慢,甚至失败,推荐在凌晨2点~7点之间下载。
7. 拉取install文件(git clone https://github.com/tuanqing/inst … age/install-program)这一步要在lede文件夹内操作,即cd lede之后,原网址:https://github.com/tuanqing/mknop
8. 编辑 feeds.conf.default ,用nano或者vi。去掉helloworld前面的#,另外添加一条
src-git lienol https://github.com/Lienol/openwrt-package
保存退出。
9. 更新 feeds
./scripts/feeds clean
./scripts/feedsupdate -a
./scripts/feedsinstall -a
10. 定制固件 make menuconfig
增加WIFI驱动的编译
Firmware-
增加
brcmfmac-firmware-43430-sdio
brcmfmac-firmware-43455-sdio
brcmfmac-firmware-usb
(43430,43455全选上)
Kernel modules-Network Devices
增加
kmod-b44
Kernel modules-Wireless Drivers
增加
kmod-brcmfmac
Enable SDIO bus interface support
Enable USB bus interface support
取消 Enabel PCIE bus ...
选择完可能会自动增加
kmod-brcmutil
kmod-cfg80211
Network-WirelessAPD
增加
Hostapd (full版本)
Utilities-
选上
install-program
LuCI-个性定制,这就不用说了吧
11. 下载 .config 和 feeds.conf.default 到本地
12. 注册/登录GitHub
13. 打开https://github.com/P3TERX/Actions-OpenWrt,点use this template,起个名字。
14. Add file-Upload files,上传feeds.conf.default
15. 编辑 workflows -build-openwrt.yml ,在run: cd openwrt && ./scripts/feeds update -a后插入&& git clonehttps://github.com/tuanqing/install-program package/install-program (因为这一步本地的时候是在 lede文件夹内执行的,这里是换到了openwrt文件夹),保存。
16. 新建 ./config 把刚从虚拟机下载的.config 里的内容复制进去–commit–自动开始编译。推荐使用Notepad++。17. 等待…… 看选的组件的多少,一般4小时左右。我本地编译要一天时间。
18. 下载文件 OpenWrt_firmware (在Actions里)
19. 把里面的 openwrt-armvirt-64-default-rootfs.tar.gz复制出来。
20. 用flippy的打包也可以。详:https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=981406&extra=page%3D1%26filter%3Dtypeid%26typeid%3D21
21. 在虚拟机用户文件夹下,执行 git clone https://github.com/tuanqing/mknop 克隆mknop到本地。
22. 把 openwrt-armvirt-64-default-rootfs.tar.gz上传到 mknop的openwrt文件夹里。
23. cd mknopsudo ./make会在mknop下的out文件夹输出编译好的.img文件,可以用gzip命令压缩,也可以直接下载。24. 下载到本地,写入u盘,插到N1启动,用ssh工具或自带的ttyd登录,输入n1-install 会自动写入emmc。25. 无线设置频率要选5G, 5180GHz。
26. Done。
如果编译过程中遇到openwrt编译错误you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
解决方法:
export FORCE_UNSAFE_CONFIGURE=1
引用:https://github.com/coolsnowwolf/lede
https://github.com/Lienol/openwrt-package
https://github.com/tuanqing/mknop
https://github.com/P3TERX/Actions-OpenWrt
推荐:https://github.com/kenzok8/openwrt-packages
第三步骤:替换教程:
配套视频教程
《【视频教程】制作支持无线的N1 OpenWRT镜像》
支持无线的固件下载
链接:https://www.maxlicheng.com/openwrt/216.html
天线安装过程视频
《给斐讯N1盒子加装外置天线》
【以下教程笔记】
编译支持斐讯N1盒子的OpenWRT固件
Target System (Broadcom BCM27xx) —>
Subtarget (BCM2710 64 bit based boards) —>
Target Profile (Raspberry Pi 3B/3B+) —>
新建一个文件夹
mkdir works
通过文件传输软件(FileZilla)上传 Armbian和博主本人的355M镜像到新建的works文件夹
Armbian_5.60_Aml-s9xxx_Debian_stretch_default_4.18.7_20180922.img (1.33G)
2019.05.26-openwrt-on-phicomm-n1-bycheng.img (355M)
进入新建的文件夹,并再建一个openwrt文件夹
cd works
mkdir openwrt
拷贝树莓派镜像到works目录
cp /home/cheng/openwrt/lede/bin/targets/brcm2708/bcm2710/openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz
解压树莓派镜像
gunzip openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img.gz
挂载树莓派镜像到系统,提示输入密码,完成后出现/dev/loop0,则挂载成功
(注意:show前面是两条英文的一杠)
sudo losetup -P -f –show openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img
挂载镜像分区到文件夹
sudo mount /dev/loop0p2 /media
拷贝所有文件到新建的openwrt文件夹
sudo mv /media/* openwrt
取消文件夹及镜像挂载
sudo umount /media
sudo losetup -d /dev/loop0
删除树莓派镜像
sudo rm openwrt-brcm2708-bcm2710-rpi-3-ext4-factory.img
挂载Armbian镜像,提示输入密码,完成后出现/dev/loop0,则挂载成功
为了避免每次制作都要上传Armbian,我们复制一份再挂载
cp Armbian_5.60_Aml-s9xxx_Debian_stretch_default_4.18.7_20180922.img Armbian_test.img
(注意:show前面是两条英文的一杠)
sudo losetup -P -f –show Armbian_test.img
挂载到 /media 文件夹
sudo mount /dev/loop0p2 /media
删除openwrt文件夹中的相关文件夹及文件
sudo rm -rf openwrt/lib/firmware/
sudo rm -rf openwrt/lib/modules/
复制Armbian的文件到openwrt文件夹
sudo mv /media/lib/modules/ openwrt/lib/
sudo mv /media/lib/firmware/ openwrt/lib/
sudo mv /media/etc/modprobe.d/ openwrt/etc/
sudo mv /media/etc/fstab openwrt/etc/
进入到openwrt的4.18.7-aml-s9xxx文件夹
cd openwrt/lib/modules/4.18.7-aml-s9xxx
建立一个.ko后缀驱动文件拷贝脚本
sudo vi link-ko.sh
文本内容
for x in `find -name *.ko` do ln -s $x . done
设置脚本权限
sudo chmod +x link-ko.sh
执行脚本
sudo ./link-ko.sh
返回works目录
cd /home/cheng/works
设置boot进程所占资源大小
sudo vi openwrt/etc/init.d/boot
在第38行插入(:set nu)
ulimit -n 51200
添加开启wifi的文件
将制作好的启动文件放到OpenWRT对应的文件夹
(注,启动文件千万不要转存到windows系统,否则文件的格式和权限会被windows修改,而导致无线开启失败,别问我为什么知道,问就爆炸,心累)
git clone https://github.com/maxlicheng/phicomm-n1-wireless.git
sudo mv phicomm-n1-wireless/wireless_enable openwrt/etc/modules.d/wireless_enable
sudo rm -rf phicomm-n1-wireless
取消Armbian的挂载
sudo umount /media
sudo losetup -d /dev/loop0
删除使用后的Armbian镜像
sudo rm Armbian_test.img
挂载355M openwrt镜像及分区
(注意:show前面是两条英文的一杠)
sudo losetup -P -f 2019.05.26-openwrt-on-phicomm-n1-bycheng.img
sudo mount /dev/loop0p2 /media
删除openwrt镜像的所有文件
sudo rm -rf /media/*
将openwrt中的所有文件移动到media文件夹
sudo mv openwrt/* /media/
同步刷新一下
sync
卸载挂载的镜像
sudo umount /media
sudo losetup -d /dev/loop0
此时的openwrt镜像文件即为我们制作好的OpenWRT镜像
2019.05.26-openwrt-on-phicomm-n1-bycheng.img
通过文件传输软件,下载到我们的宿主机即可
如果你觉得教程不错的话,可以通过点击下方的打赏按钮来支持博主。