____过气程序猿

3 object(s)
 

esxi 6.7 openwrt 软路由 网卡直通

装鸡初衷

因为家里软装了一下,家里摆两个大坨坨确实恶心所以铁了心改变,其实就是找了个理由哈哈哈哈哈....
先说下以前家里的配置吧,软路路由用的J1800 +2G内存 跑youtube4K时比较吃力,但是基本能跑满家里1000M带宽。
黑群晖用的是技嘉的J1900 +4G内存 Docker挂人人影视 微力这些没啥压力!
老黑群晖

新的配置

精粤H97ITX PULS 寨板 289元 内存DDR3自己焊的8g单面,刷的SPD是宇瞻的1600就不超频了,本来就是坏内存拆的颗粒

nvme固态256G自己diy的256g 慧荣2263xt主控 东芝TLC颗粒单颗128G 刚好2颗!后面我会说为啥要+nvme固态

机械盘本身自己有两个2T的黑盘,结果自己搞坏了一个无奈垃圾佬群吼了一声!结果真有人有3T+2T的西数坏盘!

那就按照垃圾佬的规矩,等价交换吧!反正都是坏的,我出技术他出盘!

确认U盘
确认主控
确认坏的地方

发现F打头的地方发烫那个是保险丝,我怀疑是背面的电阻或电容短路了,从SSD固态料板上拆了一个电容补上!OK完美恢复到手了四个坏盘2T的两个3T的机械盘

完美恢复

TREX修机械盘

这个给我整的蛋疼了,80多个小时修一个盘
说实话TREX这个东西我好多年没碰过了,不过还好认识位神一般的垃圾佬,以前结过善缘,他给我发了个他修盘的TREX里面固件比较多,还有通用固件,他跟我吹牛逼4个小时修一个盘跑完G表加G表,跑完P表加P表,他JB没说的是,前提没磁头有问题啊!我日日日,我玩不来他的方法,只能按照以前修并口盘的方式去修!结果尼玛一个2T盘修了我80多个小时!差评
修盘

配置esxi 6.7虚拟机【填坑】

修好的固态

刚开始我直接上的是NGFF固态,在我的认知中一般有M.2那种接口一般都是支持NGFF和NVME协议的?正好我手上有那么多修好还没卖的NGFF盘!

H97 ITX

结果尼玛在咨询寨板厂家的技术员后,技术跟我说他们NGFF STAT分配给WiFi模块了,所以他们的M.2只支持nvme对于这个解释我&(&……¥……@&¥(@……&(¥……&

后来我发现我对于这个设计还有解释,我是认可了的,因为我的ESXI要设置硬盘直通,和网卡直通!所以只能上nvme固态完美,虽然是寨板,在这儿给他们点赞!点赞!点赞!点赞!

填坑之最强网卡篇

1.首先我自己是有两张千M网卡的,一张单口千M,一张博通5709C全网都说openwrt LED都不支持这款网卡,后面我说!

2.因为要搭建的是esxi加软路由加黑群晖,至少需要3个网口,有两个网口需要设置直通逻辑因该是这样

3.主板上的网口留给不能做直通,需要留给ESXI和黑群晖,另外两个网口需要做直通!

4.这个寨板用的螃蟹的8111G需要对ESXI封装网卡驱动,这个简单经常干!

封装网卡

5.我考虑反正主板都用的螃蟹的网卡了,所以买了张4口的8111G结果扯出了一大堆事!

垃圾网卡
垃圾网卡

6.前前后后,我买了4张网卡全部都不能跑满我家里的1000M带宽,反复测试,搞的都有点怀疑人生了!

测速图

7.在最后一次退货后,老子终于忍不住了,决定强行上博通5709C,联系了一个长期在B站跳大神ysri 刚好他干过这种事,发了源码给我! 剩下的就简单了编译!

8.我采用的是把源码传到github上去自动编译,3小时搞定这个简单,迁移一个最新的,把几个代码替换上去!配置好自动编译就行了!

GitHub自动编译 main.yml

name: OpenWrt-CI

on:
  push:
    branches: 
      - master
  # schedule:
  #   - cron: 0 20 * * *
  # release:
  #   types: [published]

jobs:

  build:

    runs-on: ubuntu-latest

    steps:

      - name: Checkout
        uses: actions/checkout@master
        with:
          ref: master

      - name: Space cleanup
        env:
          DEBIAN_FRONTEND: noninteractive
        run: |
          docker rmi `docker images -q`
          sudo rm -rf /usr/share/dotnet /etc/mysql /etc/php /etc/apt/sources.list.d
          sudo -E apt-get -y purge azure-cli ghc* zulu* hhvm llvm* firefox google* dotnet* powershell openjdk* mysql* php*
          sudo -E apt-get update
          sudo -E 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 device-tree-compiler
          sudo -E apt-get -y autoremove --purge
          sudo -E apt-get clean
          # sudo mkdir -p -m 777 /mnt/openwrt/bin /mnt/openwrt/build_dir/host /mnt/openwrt/build_dir/hostpkg /mnt/openwrt/dl /mnt/openwrt/feeds /mnt/openwrt/staging_dir
          # ln -s /mnt/openwrt/bin ./bin
          # mkdir -p ./build_dir/host && ln -s /mnt/openwrt/build_dir/host ./build_dir/host
          # mkdir -p ./build_dir/host && ln -s /mnt/openwrt/build_dir/hostpkg ./build_dir/hostpkg
          # ln -s /mnt/openwrt/dl ./dl
          # ln -s /mnt/openwrt/feeds ./feeds
          # ln -s /mnt/openwrt/staging_dir ./staging_dir
          df -h
      - name: Update feeds
        run: |
          ./scripts/feeds update -a
          ./scripts/feeds install -a
      - name: Generate configuration file
        run: |
          rm -f ./.config*
          touch ./.config
          #
          # ========================固件定制部分========================
          # 
          # 
          # 如果不对本区块做出任何编辑, 则生成默认配置固件. 
          # 
          # 以下为定制化固件选项和说明:
          #
          #
          # 有些插件/选项是默认开启的, 如果想要关闭, 请参照以下示例进行编写:
          # 
          #          =========================================
          #         |  # 取消编译VMware镜像:                   |
          #         |  cat >> .config <<EOF                   |
          #         |  # CONFIG_VMDK_IMAGES is not set        |
          #         |  EOF                                    |
          #          =========================================
          #
          # 
          # 以下是一些提前准备好的一些插件选项.
          # 直接取消注释相应代码块即可应用. 不要取消注释代码块上的汉字说明.
          # 如果不需要代码块里的某一项配置, 只需要删除相应行.
          #
          # 如果需要其他插件, 请按照示例自行添加.
          # 注意, 只需添加依赖链顶端的包. 如果你需要插件 A, 同时 A 依赖 B, 即只需要添加 A.
          # 
          # 无论你想要对固件进行怎样的定制, 都需要且只需要修改 EOF 回环内的内容.
          # 
          # 编译x64固件:
           cat >> .config <<EOF
          # CONFIG_TARGET_x86=y
           CONFIG_TARGET_x86_64=y
          # CONFIG_TARGET_x86_64_Generic=y
           EOF
          # 固件压缩:
          # cat >> .config <<EOF
          # CONFIG_TARGET_IMAGES_GZIP=y
          # EOF
          # 编译UEFI固件:
           cat >> .config <<EOF
           CONFIG_EFI_IMAGES=y
           EOF
          # IPv6支持:
           cat >> .config <<EOF
           CONFIG_PACKAGE_dnsmasq_full_dhcpv6=y
           CONFIG_PACKAGE_ipv6helper=y
          # EOF
          # 多文件系统支持:
          # cat >> .config <<EOF
          # CONFIG_PACKAGE_kmod-fs-nfs=y
          # CONFIG_PACKAGE_kmod-fs-nfs-common=y
          # CONFIG_PACKAGE_kmod-fs-nfs-v3=y
          # CONFIG_PACKAGE_kmod-fs-nfs-v4=y
          # CONFIG_PACKAGE_kmod-fs-ntfs=y
          # CONFIG_PACKAGE_kmod-fs-squashfs=y
          # EOF
          # USB3.0支持:
           cat >> .config <<EOF
           CONFIG_PACKAGE_kmod-usb-ohci=y
           CONFIG_PACKAGE_kmod-usb-ohci-pci=y
           CONFIG_PACKAGE_kmod-usb2=y
           CONFIG_PACKAGE_kmod-usb2-pci=y
           CONFIG_PACKAGE_kmod-usb3=y
           EOF
          # 常用LuCI插件选择:
           cat >> .config <<EOF
           CONFIG_PACKAGE_luci-app-adbyby-plus=y
           CONFIG_PACKAGE_luci-app-aria2=y
          # CONFIG_PACKAGE_luci-app-baidupcs-web=y
          # CONFIG_PACKAGE_luci-app-docker=y
          # CONFIG_PACKAGE_luci-app-frpc=y
          # CONFIG_PACKAGE_luci-app-kodexplorer=y
          # CONFIG_PACKAGE_luci-app-minidlna=y
          # CONFIG_PACKAGE_luci-app-openvpn=y
          # CONFIG_PACKAGE_luci-app-openvpn-server=y
          # CONFIG_PACKAGE_luci-app-qbittorrent=y
           CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Kcptun=y
           CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks=y
           CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Server=y
           CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Socks=y
           CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_V2ray=y
           CONFIG_PACKAGE_luci-app-ttyd=y
          # CONFIG_PACKAGE_luci-app-v2ray-server=y
          # CONFIG_PACKAGE_luci-app-verysync=y
          # CONFIG_PACKAGE_luci-app-webadmin=y
          # CONFIG_PACKAGE_luci-app-wireguard=y
          # CONFIG_PACKAGE_luci-app-wrtbwmon=y
           EOF
          # LuCI主题:
           cat >> .config <<EOF
           CONFIG_PACKAGE_luci-theme-argon=y
           CONFIG_PACKAGE_luci-theme-netgear=y
           EOF
          # 常用软件包:
           cat >> .config <<EOF
           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
           EOF
          # 取消编译VMware镜像以及镜像填充 (不要删除被缩进的注释符号):
           cat >> .config <<EOF
           # CONFIG_TARGET_IMAGES_PAD is not set
           # CONFIG_VMDK_IMAGES is not set
           EOF
          # 
          # ========================固件定制部分结束========================
          # 
          sed -i 's/^[ \t]*//g' ./.config
          make defconfig
      - name: Make download
        run: |
          make download -j8
          find ./dl/ -size -1024c -exec rm -f {} \;
          df -h
      - name: Compile firmware
        run: |
          make -j$(nproc) || make -j1 V=s
          echo "======================="
          echo "Space usage:"
          echo "======================="
          df -h
          echo "======================="
          du -h --max-depth=1 ./ --exclude=build_dir --exclude=bin
          du -h --max-depth=1 ./build_dir
          du -h --max-depth=1 ./bin
      - name: Prepare artifact
        run: find ./bin/targets/ -type d -name "packages" | xargs rm -rf {}

      - name: Upload artifact
        uses: actions/upload-artifact@master
        with:
          name: OpenWrt firmware
          path: ./bin/targets/

给openwrt设置网卡直通

网卡直通
**设置网卡直通后,需要在高级设置中搜索ACSCheck 把 跳过对所有 PCIE 设备的 ACS 功能检查 把false设置为true
才能完成配置网卡直通**
网卡直通

查看网卡配置和设置网卡以及防火墙端口转发

//查看网络
cat /etc/config/network
//编辑网络
vim /etc/config/network
//查看防火墙
cat /etc/config/firewall
//编辑防火墙,我的群晖是固定IP直接配置到群晖就行了
vim /etc/config/firewall

查看网络

现在的网速 1000M带宽

跑满

openwrt配置

来来回回折腾,结果还是这个别人送博通5709c好!前前后后的退货加乱七八糟的折腾有半个月!总结基本上把网卡这些搞定后,基本上后面就很顺利了!

最后引用下垃圾佬的名言 生生不息,折腾到老!

至于我为啥要这样干,因为家里电脑太多了,我想参考网吧的无盘规则,把家里其他的硬盘都取缔了,游戏这些不重要的数据都存在群晖的虚拟磁盘!总要的数据,比如code这些全部丢在群晖的热备份盘里,下一篇写群晖!