|
本帖最后由 huifei 于 2020-3-7 13:12 编辑
站在flippy 大神和 L大 https://github.com/coolsnowwolf/lede 的肩膀上去编一个自己的固件成为一件简单的事。
每个大神编出来的固件,都是大众的口味,我们每个人的需求不同,只想要自己需要的插件,就最近几天的折腾,踩过了不少坑,特分享下。
1、先自己用虚拟机装个ubuntu,我装的是19.10,硬盘别分的太小,动态空间至少30G以上。要不然弄几下就报空间不足。
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
3、下载lede
git clone https://github.com/coolsnowwolf/lede
如果你没有完全上网,那可能速度比较慢,你可以先用F大的固件先弄个完全上网,再来弄就简单多了。
命令下载好源代码,然后 cd lede 进入目录
cd lede
./scripts/feeds update -a
./scripts/feeds install -a
4、 使用 make menuconfig 定制你的包 下面给个基本包:
这是github里面action云编译的文件脚本。你可以根据这个内容修改你的.config
# # ========================固件定制部分========================
#
#
# 如果不对本区块做出任何编辑, 则生成默认配置固件.
#
# 以下为定制化固件选项和说明:
#
#
# 有些插件/选项是默认开启的, 如果想要关闭, 请参照以下示例进行编写:
#
# =========================================
# | # 取消编译VMware镜像: |
# | cat >> .config <<EOF |
# | # CONFIG_VMDK_IMAGES is not set |
# | EOF |
# =========================================
#
#
# 以下是一些提前准备好的一些插件选项.
# 直接取消注释相应代码块即可应用. 不要取消注释代码块上的汉字说明.
# 如果不需要代码块里的某一项配置, 只需要删除相应行.
#
# 如果需要其他插件, 请按照示例自行添加.
# 注意, 只需添加依赖链顶端的包. 如果你需要插件 A, 同时 A 依赖 B, 即只需要添加 A.
#
# 无论你想要对固件进行怎样的定制, 都需要且只需要修改 EOF 回环内的内容.
#
# 编译x64固件:
cat >> .config <<EOF
CONFIG_TARGET_armvirt=y
CONFIG_TARGET_armvirt_64=y
CONFIG_TARGET_armvirt_64_Default=y
EOF
# 固件压缩:
cat >> .config <<EOF
CONFIG_TARGET_IMAGES_GZIP=y
# CONFIG_TARGET_ROOTFS_CPIOGZ is not set
# CONFIG_TARGET_ROOTFS_SQUASHFS is not set
# CONFIG_TARGET_ROOTFS_INITRAMFS is not set
# CONFIG_TARGET_INITRAMFS_COMPRESSION_NONE is not set
EOF
# 多文件系统支持:
cat >> .config <<EOF
CONFIG_PACKAGE_kmod-fs-antfs=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-btrfs=y
CONFIG_PACKAGE_kmod-fs-exfat=y
CONFIG_PACKAGE_kmod-fs-exportfs=y
CONFIG_PACKAGE_kmod-fs-ext4=y
CONFIG_PACKAGE_kmod-fs-f2fs=m
CONFIG_PACKAGE_kmod-fs-fscache=m
CONFIG_PACKAGE_kmod-fs-isofs=m
CONFIG_PACKAGE_kmod-fs-jfs=m
CONFIG_PACKAGE_kmod-fs-ksmbd=y
CONFIG_KSMBD_SMB_INSECURE_SERVER=y
CONFIG_PACKAGE_kmod-fs-msdos=y
CONFIG_PACKAGE_kmod-fs-nfs=y
CONFIG_PACKAGE_kmod-fs-nfs-common=y
CONFIG_PACKAGE_kmod-fs-nfs-common-rpcsec=y
CONFIG_PACKAGE_kmod-fs-nfs-v3=m
CONFIG_PACKAGE_kmod-fs-nfs-v4=y
CONFIG_PACKAGE_kmod-fs-nfsd=y
CONFIG_PACKAGE_kmod-fs-reiserfs=m
CONFIG_PACKAGE_kmod-fs-squashfs=m
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-fs-xfs=y
CONFIG_PACKAGE_kmod-fuse=y
EOF
#WIFI Firemware支持:
cat >> .config <<EOF
CONFIG_PACKAGE_brcmfmac-firmware-4329-sdio=y
CONFIG_PACKAGE_brcmfmac-firmware-43362-sdio=y
CONFIG_PACKAGE_brcmfmac-firmware-43430-sdio=y
CONFIG_PACKAGE_brcmfmac-firmware-43430-sdio-rpi-3b=y
CONFIG_PACKAGE_brcmfmac-firmware-43430-sdio-rpi-zero-w=y
CONFIG_PACKAGE_brcmfmac-firmware-43430a0-sdio=y
CONFIG_PACKAGE_brcmfmac-firmware-43455-sdio=y
CONFIG_PACKAGE_brcmfmac-firmware-43455-sdio-rpi-3b-plus=y
CONFIG_PACKAGE_brcmfmac-firmware-43455-sdio-rpi-4b=y
CONFIG_PACKAGE_brcmfmac-firmware-usb=y
CONFIG_PACKAGE_wirele违禁软件egdb=y
CONFIG_PACKAGE_edgeport-firmware=y
EOF
#Wireless Drivers
cat >> .config <<EOF
CONFIG_PACKAGE_kmod-brcmfmac=y
CONFIG_BRCMFMAC_SDIO=y
CONFIG_PACKAGE_kmod-brcmutil=y
CONFIG_PACKAGE_kmod-cfg80211=y
CONFIG_PACKAGE_kmod-mac80211=y
CONFIG_PACKAGE_MAC80211_MESH=y
EOF
#Input modules支持:
cat >> .config <<EOF
CONFIG_PACKAGE_kmod-hid=y
CONFIG_PACKAGE_kmod-hid-generic=y
CONFIG_PACKAGE_kmod-input-core=y
CONFIG_PACKAGE_kmod-input-evdev=y
CONFIG_PACKAGE_kmod-mmc=y
CONFIG_PACKAGE_kmod-usb-uhci=y
CONFIG_PACKAGE_kmod-usb-wdm=y
CONFIG_PACKAGE_kmod-usb2=y
CONFIG_PACKAGE_kmod-usb3=y
CONFIG_PACKAGE_kmod-usbip=y
CONFIG_PACKAGE_kmod-usbip-client=y
CONFIG_PACKAGE_kmod-usbip-server=y
CONFIG_PACKAGE_kmod-usbmon=y
EOF
# 常用LuCI插件选择:
cat >> .config <<EOF
# CONFIG_PACKAGE_luci-app-adbyby-plus is not set
CONFIG_PACKAGE_luci-app-accesscontrol=y
CONFIG_PACKAGE_luci-app-arpbind=y
CONFIG_PACKAGE_luci-app-autoreboot=y
CONFIG_PACKAGE_luci-app-ddns=y
CONFIG_PACKAGE_luci-app-filetransfer=y
CONFIG_PACKAGE_luci-app-firewall=y
CONFIG_PACKAGE_luci-app-flowoffload=y
CONFIG_PACKAGE_luci-app-nlbwmon=y
CONFIG_PACKAGE_luci-app-ramfree=y
# CONFIG_PACKAGE_luci-app-sqm is not set
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_s-s=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_Simple_obfs=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_v贰瑞_plugin=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_v贰瑞=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_Trojan=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_Kcptun=y
CONFIG_PACKAGE_luci-app-乳酸菌饮料-plus_INCLUDE_违禁软件_Server=y
CONFIG_PACKAGE_luci-app-upnp=y
# CONFIG_PACKAGE_luci-app-vlmcsd is not set
# CONFIG_PACKAGE_luci-app-vsftpd is not set
# CONFIG_PACKAGE_luci-app-zerotier is not set
CONFIG_PACKAGE_luci-app-wol=y
EOF
# LuCI主题:
cat >> .config <<EOF
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-bootstrap=y
EOF
# 常用软件包:写入mmc需要
cat >> .config <<EOF
CONFIG_PACKAGE_libzstd=y
CONFIG_PACKAGE_liblzo=y
CONFIG_PACKAGE_curl=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_screen=y
CONFIG_PACKAGE_tree=y
CONFIG_PACKAGE_vim-fuller=y
CONFIG_PACKAGE_wget=y
CONFIG_PACKAGE_blkid=y
CONFIG_PACKAGE_fdisk=y
CONFIG_PACKAGE_lsblk=y
CONFIG_PACKAGE_hd-idle=y
CONFIG_PACKAGE_hdparm=y
CONFIG_PACKAGE_coremark=y
CONFIG_PACKAGE_coreutils=y
CONFIG_PACKAGE_coreutils-base64=y
CONFIG_PACKAGE_gawk=y
CONFIG_PACKAGE_getopt=y
CONFIG_PACKAGE_jshn=y
CONFIG_PACKAGE_libjson-script=y
CONFIG_PACKAGE_losetup=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_shellsync=y
CONFIG_PACKAGE_tar=y
CONFIG_PACKAGE_TAR_GZIP=y
CONFIG_PACKAGE_TAR_BZIP2=y
CONFIG_PACKAGE_TAR_XZ=y
CONFIG_PACKAGE_uuidgen=y
CONFIG_PACKAGE_bash=y
CONFIG_PACKAGE_dosfstools=y
CONFIG_PACKAGE_btrfs-progs=y
CONFIG_PACKAGE_perlbase-re=y
CONFIG_PACKAGE_perlbase-utf8=y
CONFIG_PACKAGE_perl=y
CONFIG_PERL_NOCOMMENT=y
CONFIG_PACKAGE_perlbase-config=y
CONFIG_PACKAGE_perlbase-essential=y
CONFIG_PACKAGE_perlbase-unicore=y
EOF
#wifi tools
cat >> .config <<EOF
CONFIG_PACKAGE_kmod-brcmfmac=y
CONFIG_BRCMFMAC_SDIO=y
CONFIG_PACKAGE_kmod-brcmutil=y
CONFIG_PACKAGE_kmod-cfg80211=y
CONFIG_PACKAGE_kmod-mac80211=y
CONFIG_PACKAGE_MAC80211_MESH=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_hostapd=y
CONFIG_PACKAGE_hostapd-common=y
CONFIG_PACKAGE_wpa-cli=y
CONFIG_PACKAGE_wpa-supplicant=y
CONFIG_WPA_MSG_MIN_PRIORITY=3
CONFIG_DRIVER_11N_SUPPORT=y
CONFIG_DRIVER_11AC_SUPPORT=y
CONFIG_DRIVER_11W_SUPPORT=y
EOF
#
# ========================固件定制部分结束========================
5、本地编译文件[size=1em]输入 make [size=1em]-[size=1em]j1 V[size=1em]=[size=1em]s [size=1em] #j1后面根据你CPU的核数+1,比如我的4核那后面就是5
6、可选云编译,你只需要注册一个github帐号把我上面的文件加入到你的action中,他就自动给你编了,编完你直接下载就可以了。
6.1、先注册github
6.2、进入:https://github.com/coolsnowwolf/lede 点击右上角的 fark 6.3、编辑 lede/.github/workflows/openwrt-ci.yml 文件,范本在:https://github.com/KFERMercer/OpenWrt-CI
6.4、使用action编译,编译完成后可以直接下载固件
7、参见F大编译的 1-5就完成了所有编译
8、下载到电脑,写入U盘完成
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
参与人数 3 | 恩山币 +10 |
收起
理由
|
tiny***
| + 2 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
hc***
| + 2 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
简***
| + 6 |
感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧! |
查看全部评分
|