1. 前言
由于xavier平台有双网卡需求,所以需要额外增加一路USB 千兆网卡; 型号使用lan7800芯片;
2. 开启内核驱动支持进入Linux_for_Tegra/sources/kernel/kernel-4.9
make ARCH=arm64 menuconfig
如上是支持LAN78XX驱动的; 按照上面编译成ko模块即可。
3. 连接硬件&查看网络连接(1)连接硬件
如下: 使用lan7800 demo板【typec接口】
(插上平板上使用上网正常)
(2)加载驱动 insmod lan78xx.ko
驱动加载log如下:
发现USB部分有报错问题
(3)解决USB报错问题
解决办法如下; 将USB部分的设备树dts全部恢复成官方配置
修改tegra194-p2888-0001-p2822-0000-common.dtsi
ports { usb2-0 { mode = “otg”; status = “okay”; }; usb2-1 { mode = “host”; status = “okay”; }; usb2-2 { mode = “host”; status = “okay”; }; usb2-3 { mode = “host”; status = “okay”; }; usb3-0 { nvidia,usb2-companion = <1>; status = “okay”; }; usb3-2 { nvidia,usb2-companion = <0>; status = “okay”; }; usb3-3 { nvidia,usb2-companion = <3>; nvidia,usb3-gen1-only= <1>; status = “okay”; }; }; }; tegra_xudc: xudc@3550000 { extcon-cables = <&typec_port0 0>; extcon-cable-names = “vbus”; #extcon-cells = <1>; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>; phy-names = “usb2”, “usb3”; nvidia,xusb-padctl = <&xusb_padctl>; #endif nvidia,boost_cpu_freq = <1200>; status = “okay”; }; tegra_xhci: xhci@3610000 { extcon-cables = <&typec_port0 1>; extcon-cable-names = “id”; #extcon-cells = <1>; #if TEGRA_XUSB_PADCONTROL_VERSION >= DT_VERSION_2 phys = <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-0}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-1}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-3}>, <&{/xusb_padctl@3520000/pads/usb2/lanes/usb2-2}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-2}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-0}>, <&{/xusb_padctl@3520000/pads/usb3/lanes/usb3-3}>; phy-names = “usb2-0”, “usb2-1”, “usb2-3”, “usb2-2”, “usb3-2”, “usb3-0”, “usb3-3”; nvidia,xusb-padctl = <&xusb_padctl>; #endif status = “okay”; }; arm-pmu { status = “okay”; };<
修改tegra194-power-tree-p2888-0001-p2822-1000.dtsi
xusb_padctl@3520000 { pex_dvdd-supply = <&p2888_spmic_sd0>; pex_hvdd-supply = <&p2888_spmic_sd1>; pex_pll_hvdd-supply = <&p2888_spmic_sd1>; vclamp_usb-supply = <&p2888_spmic_sd3>; avdd_usb-supply = <&p2888_spmic_ldo5>; avdd_pll_nvhs_eutmip-supply = <&p2888_spmic_sd1>; ports { usb2-0 { vbus-supply = <&battery_reg>; }; usb2-1 { vbus-supply = <&battery_reg>; }; usb2-2 { vbus-supply = <&battery_reg>; }; usb2-3 { vbus-supply = <&p2822_vdd_5v_sata>; }; }; };现在加载正常
(4)查看虚拟网卡
如下eth1是 lan7800对应的网卡
(5)查看网络通路情况 a. 插上网线,无法上网
b. 配置静态ip地址,和主机PC直连ping 通路,也无法ping通
设置/etc/network/interfaces auto lo iface lo inet loopback auto eth1 iface eth1 inet static address 192.168.10.66 netmask 255.255.255.0 gateway 192.168.10.1 iface eth1 inet6 auto