当前位置: 首页 > 淘宝 > 正文

在线云编译斐讯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

通过文件传输软件,下载到我们的宿主机即可

如果你觉得教程不错的话,可以通过点击下方的打赏按钮来支持博主。

本文固定链接: https://www.eoowo.com/?p=1259 | 火星博客

该日志由 Rainer 于2021年05月14日发表在 淘宝 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: 在线云编译斐讯N1的openwrt固件(带WiFi驱动,带emmc写入)教程 | 火星博客

在线云编译斐讯N1的openwrt固件(带WiFi驱动,带emmc写入)教程:等您坐沙发呢!

发表评论

CAPTCHAis initialing...
快捷键:Ctrl+Enter