Linux各种联网的方式

#驱动安装
##USB WIFI
MT7601U
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> Wireless LAN (WLAN [=y])
-> MediaTek devices (WLAN_VENDOR_MEDIATEK [=y])
-> MediaTek MT7601U (USB) support (MT7601U [=m])
RTL8188EU
-> Device Drivers
-> Network device support (NETDEVICES [=y])
> Wireless LAN (WLAN [=y])
-> Realtek devices (WLAN_VENDOR_REALTEK [=n])
-> Realtek 802.11n USB wireless chips support (RTL8XXXU [=n])


##SDIO WIFI
RTL8723BS一般会默认安装,不用配置

 

##OTG_RNDIS:与 ECM 类似,RNDIS 也是一种通过 USB 在设备与主机之间共享网络连接的方式,但 RNDIS 更为复杂,通常用于 Windows 系统上的网络适配器
-> Device Drivers
-> USB support (USB_SUPPORT [=y])
-> USB Gadget Support (USB_GADGET [=y])
-> USB Gadget functions configurable through configfs (USB_CONFIGFS [=m])
[*] RNDIS

##USB网口(SR9900):SR9900 USB 转以太网芯片采用 CDC(Communication Device Class) 协议,并主要通过 ECM(Ethernet Control Model)实现网络功能
-> Device Drivers
-> Network device support (NETDEVICES [=y])
-> USB Network Adapters (USB_NET_DRIVERS [=m])
-> Multi-purpose USB Networking Framework (USB_USBNET [=m])
-> CDC EEM support (USB_NET_CDC_EEM [=m])

 

1记得选编译成模块的方式,即<m>。而不是编译到内核<*>,编译到内核好像加载失败,原理未知。
2.将内核拷贝到boot后,同时也要把驱动模块安装到根目录: sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=/media/jeason/rootfs/ modules_install
3.因为wifi模块一般没有eeporm,也就是说它自身没有地方存程序,因此我们要从wifi的官方获取wifi的固件,然后通过驱动,动态的发送给wifi,
linux默认固件存放在/lib/firmware/目录下,驱动运行的时候会自动读取该文件,例如mt7601u.bin,并发送给wifi模块。想简单处理,可以下载树莓派的系统,
然后去树莓派的/lib/firmware下面拷贝过来,树莓派系统默认带了很多设备的固件

 

#根文件系统安装相应的软件
## wireless tools
→ Target packages → Networking applications -> [*] wireless tools -> [*] Install shared library
## wpa_supplicant
→ Target packages → Networking applications -> [*] wpa_supplicant (不确定后面那些选项用不用打开) ---> Enable nl80211 support | Enable AP mode | Enable Wi-Fi Display | Enable wired support | Enable WPS
## dhcp
→ Target packages → Networking applications -> [*] dhcpcd
## udev
→ System configuration -> /dev management (Dynamic using devtmpfs + eudev)

 

 

#进入系统加载网络驱动
# USB WIFI
如果有在根文件系统安装udev(自动检测设备接入的软件),则会自动识别设备并且加载相应的usb wiif驱动,这一步不需要手动

# SDIO WIFI
sdio的设备,貌似没有自动检测接入的功能?(待测试),可以手动加载模块,insmod r8723bs.ko 或者 modprobe r8723bs
如果是insmod的方式,是不会自动加载依赖的,确保下这些依赖的驱动也被加载了。modprobe会自动加载依赖,但确保驱动ko文件放在/lib/modules下面
insmod libarc4.ko
insmod cfg80211.ko
insmod mac80211.ko
insmod r8723bs.ko

 


#网络连接方式
##网线
#W5100/W5500
#USB网口(SR9900)
#芯片自带网络模块,直接网络连接
只要装好eth的驱动,插上网线就能自动识别了,注意网口的设备名一般是eth0之类的


##USB RNDIS
1.USB设备连上后,ifconfig 看看有没有多出来一个新的网络设备(一般是usb0开头,也有可能不是)
2.进入nmtui->Edit connnect->在有线连接里找到刚刚的那个网络适配器->把IPv4的模式改为Shared(共享网络给其他设备),IP改为192.168.137.1/24(或其他自己喜欢的,后面的24代表子网掩码255)
3.启用链接(如果没启用的话),进入nmtui->Activate a connection->选中那个适配器,按右边的启用
4.echo 1 > /proc/sys/net/ipv4/ip_forward,开启转发,不然网络没办法共享出去。
5.切记,PC要把防火墙关闭,不然设备只能ping通路由器(PC),但是访问不了外网,linux上关闭防火墙:sudo ufw disable


##WIFI
###使用wpa_supplicant的方式
1.设置wifi密码
# vi /etc/wpa_supplicant/wpa_supplicant.conf 或 vi /etc/wpa_supplicant.conf
加入:
network={
ssid="YourWiFiSSID"
psk="YourWiFiPassword"
}
2.使用配置连上WIFI:wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf

 

 


#设置IP地址连上网络
确保网络设备被成功驱动起来,lsmod或dmesg看有没有相应的驱动加载过程,然后ip a看看有没有多出来新的网络设备,如果是rndis就是usb0之类的,wifi就是wlan0之类的

##下面是动态IP的方式:
1.打开网络设备(eth0 usb0 wlan0等):ifconfig wlan0 up (或 ip link set wlan0 up)
2.开启dhcp自动获取ip跟dns:dhcpcd wlan0 (或 dhclient wlan0)


##下面是静态IP的方式:
1.ifconfig 网络设备 想要的静态ip netmask 255.255.255.0 up
例如:ifconfig wlan0 172.20.10.3 netmask 255.255.255.0 up (或 ip addr add 172.20.10.3/24 dev wlan0)
注意:这里用苹果手机开热点,不知为何不能把静态ip设置太大,例如172.20.10.30就失败了,172.20.10.4就可以

2.route add default gw 网关
例如:route add default gw 172.20.10.1(或 ip route add default via 172.20.10.1)
设置完默认网关后,就能看到:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 172.20.10.1 0.0.0.0 UG 0 0 0 wlan0
172.20.10.0 * 255.255.255.0 U 0 0 0 wlan0


##设置DNS:这时候ping百度是失败的,因为还没有dns解析,设置dns解析服务器
echo "nameserver 114.114.114.114" | sudo tee /etc/resolv.conf

posted @   JeasonBoy  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示