🕌

etherswitch on Cloud Edge 100s G2 by FreeBSD 15.0-current

に公開

タイトル通りの内容
Cloud Edge 100s G2を買ったけどFreeBSDでL2SWとして遊びたいのに遊べない人向け
まさか今の時代で installworld するとは思ってなかった
起動してきたら etherswitchcfg 使えるようになるはず

結論: 15.0-currentをカスタムカーネルで使えるようにすればいい

必要なpkgを事前にインストール

# pkg install ???

先にpkg入れとかないと、currentで起動したあとでpkg入れようとしてもまともに入らなかったんで注意
もしくはjailに RELEASE の base 展開して、そっちで使うのもいいのでは(自分はそうした)

currentソース取得

# git clone https://git.freebsd.org/src.git /usr/src
# cd /usr/src

パッチ取得&パッチ宛

# fetch https://reviews.freebsd.org/D50128.diff
# git apply D50128.diff

カスタムカーネル用コンフィグ作成

# cd /usr/src/sys/amd64/conf/
# cp GENERIC CLOUDEDGE
# vi /sys/amd64/conf/CLOUDEDGE
# ##Add below
device          etherswitch
device          miiproxy
device          e6000sw

カスタムカーネルと世界を作ってインストール

# cd /usr/src
# make -j$(sysctl -n hw.ncpu) buildworld buildkernel KERNCONF=CLOUDEDGE
# make installworld
# make installkernel KERNCONF=CLOUDEDGE

カスタムカーネルで起動する前にヒントいれとこう

# vi /boot/device.hints

# Cloud Edge 100s G2/Silicom IA3000向けMarvell 88E6190Xスイッチ設定
# Intel X553 NICのix0デバイスにMDIOバスをアタッチ
hint.mdio.0.at="ix0"

# Marvell e6000swドライバにスイッチの情報をヒントとして渡す
# スイッチのMDIOアドレス。一般的に0x0または0x10が使用される。
# Cloud Edge 100s G2/Silicom IA3000では0x0が一般的。
hint.e6000sw.0.addr="0x0"

# 88E6190Xスイッチであることを明示
hint.e6000sw.0.is6190x=1

# CPUに接続されたポートを指定
hint.e6000sw.0.port9cpu=1
hint.e6000sw.0.port10cpu=1

# CPUポートの速度を指定
hint.e6000sw.0.port9speed=2500
hint.e6000sw.0.port10speed=2500

# 物理ポート0を無効化(使用しない場合)
hint.e6000sw.0.port0disabled=1

そういえば忘れてた

# vi /etc/rc.local
# Add below
#!/bin/tcsh
kldload e6000sw

# chmod +x /etc/rc.local

mergemaster は必要なら適宜実施

再起動

reboot

以上。

Discussion