自己编译N1 openwrt 固件


N1很适合当旁路由,散热良好,功耗很低,性能也够用。自己编译固件,可以去掉不需要的插件,减少不必要的风险。

注意:

  1. 不要用 root 用户 git 和编译!!!
  2. 国内用户编译前最好准备好代理
  3. 默认登陆IP 192.168.1.1, 密码 password

编译命令

  1. 首先装好 Linux 系统,以下编译都在 Debian 12下完成

  2. 安装编译依赖

    sudo apt update -y
    sudo apt full-upgrade -y
    sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
    bzip2 ccache cmake cpio curl device-tree-compiler fastjar flex gawk gettext gcc-multilib g++-multilib \
    git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev libgmp3-dev \
    libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev libreadline-dev \
    libssl-dev libtool lrzsz mkisofs msmtp ninja-build p7zip p7zip-full patch pkgconf python3 \
    python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion swig texinfo \
    uglifyjs unzip vim wget xmlto xxd zlib1g-dev btrfs-progs dosfstools uuid-runtime parted
  1. 下载源代码,更新 feeds 并选择配置

    git clone https://github.com/coolsnowwolf/lede
    cd lede
    vim feeds.conf.default //去掉所有注释
    ./scripts/feeds update -a
    ./scripts/feeds install -a
    make menuconfig
  1. 当你输入make menuconfig回车之后,会进入可视化选择界面

    Applications里是安装的app,可以删除一些不需要的app,让固件更简洁。注意按空格键出现*号表示编译到固件,出现M表示生成安装的app。

    OpenWrt 编译 LuCI -> Applications 添加插件应用说明-L大

    下面是其它的一些设置

    Target System  ->  QEMU ARM Virtual Machine 
    Subtarget ->  QEMU ARMv8 Virtual Machine (cortex-a53)
    Target Profile  ->  Default
    Target Images  ->   tar.gz
    *** 必选软件包(基础依赖包,仅保证打出的包可以写入EMMC,可以在EMMC上在线升级,不包含具体的应用): 
    Languages -> Perl               
                 ->  perl-http-date
                 ->  perlbase-getopt
                 ->  perlbase-time
                 ->  perlbase-unicode                              
                 ->  perlbase-utf8        
    Utilities -> Disc -> blkid、fdisk、lsblk、parted            
              -> Filesystem -> attr、btrfs-progs(Build with zstd support)、chattr、dosfstools、
                               e2fsprogs、f2fs-tools、f2fsck、lsattr、mkf2fs、xfs-fsck、xfs-mkfs
              -> Compression -> bsdtar 或 p7zip(非官方源)、pigz
              -> Shells  ->  bash         
              -> gawk、getopt、losetup、tar、uuidgen
    
     * (可选)Wifi基础包:
     *     打出的包可支持博通SDIO无线模块,Firmware不用选,
     *     因为打包源码中已经包含了来自Armbian的firmware,
     *     会自动覆盖openwrt rootfs中已有的firmware
     Kernel modules  ->   Wireless Drivers -> kmod-brcmfmac(SDIO) 
                                           -> kmod-brcmutil
                                           -> kmod-cfg80211
                                           -> kmod-mac80211
     Network  ->  WirelessAPD -> hostapd-common
                              -> wpa-cli
                              -> wpad-basic
              ->  iw
    支持 iPv6:
    1、Extra packages ---> ipv6helper (选定这个后下面几项自动选择了)
    Network ---> odhcp6c
    Network ---> odhcpd-ipv6only
    LuCI ---> Protocols ---> luci-proto-ipv6
    LuCI ---> Protocols ---> luci-proto-ppp

    修改默认ip,大概在99行很明显这就是我们的默认路由器的IP地址,如有必要修改成自己需要的ip

    vim package/base-files/files/bin/config_generate
  1. 下载 dl 库,编译固件 (-j 后面是线程数,第一次编译推荐用单线程)

    make download -j8
    make V=s -j1

    编译时间取决服务器性能,我大概用了四个多小时编译完成,
    这里就得到了一个openwrt-armvirt-64-generic-rootfs.tar.gz
    路径在lede/bin/targets/armvirt/64

  1. 打包固件

    下载flippy提供的n1内核,boot dtb-amlogic modules 开头的三个压缩包

    Flippy预编译好的 Arm64 内核 (在 https://t.me/openwrt_flippyhttps://pan.baidu.com/s/1tY_-l-Se2qGJ0eKl7FZBuQ 提取码:846l)

    切换到root用户,需要把 Flippy预编译好的 Arm64 内核(上面下载的三个压缩包)上传至 /opt/kernel目录(目录需要自己创建)

    cd /opt
    git clone https://github.com/unifreq/openwrt_packit

    把编译好的 openwrt-armvirt-64-generic-rootfs.tar.gz 上传至 /opt/openwrt_packit目录中

    cd /opt/openwrt_packit
    #修改配置内容改成自己导入的内核名称(上面下载的三个压缩包)
    vi make.env
    KERNEL_VERSION=6.1.69-flippy-87+
    #保存,开始打包
    ./mk_s905d_n1.sh 
    #s905d表示生成 Phicomm N1所用的固件

    生成好的固件是 .img 格式, 存放在 /opt/openwrt_packit/output/openwrt_s905d_n1_R23.10.24_k6.1.69-flippy-87+.img 目录中,下载刷机即可
    默认登陆IP 192.168.1.1 密码 password

刷入固件

  1. 刷入u盘,下载balenaEtcher

    https://etcher.balena.io/#download-etcher

    Select image #选择固件包
    Select drive #选择U盘
    Flash #开始刷入U盘

  1. 插上N1,刷入emmc

    链接n1的wifi,"Phicomm N1"
    ssh访问IP 192.168.1.1 端口22 密码:password (默认)

    cd /root
    ./install-to-emmc.sh

    刷入过程有两次选择,第一次是选择N1相关型号Phicomm N1
    第二次是磁盘格式,我选的是btrfs
    完成之后断开N1电源,拔出u盘。重新连接N1电源即可。

声明:远行的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 自己编译N1 openwrt 固件


思想,不设终点。远行,让思想同行。