在线更新树莓派到bullseye后,出现了IP地址问题。现象是,原本设定的静态IP 66在更新重启后增加了112这个地址,并且这个地址被认定是默认首选IP。在dhcpcd.conf配置文件里并没有改变任何设置。这个112地址如何出现的成了问题。
经过网上搜索,发现这个是由于bullseye的connman这个包造成的。参见网址:
https://raspberrypi.stackexchange.com/questions/133318/how-to-disable-the-dynamic-ip-address-after-assigning-a-static-ip-in-bullseye
解决问题的最好方法是删除这个软件包 :sudo apt purge connman
但是这样会导致立刻失去网络链接,需要本地登陆树莓派,并连接显示器和键盘才可以操作。
另一个办法是手工修改connman的配置文件。
进入文件夹:/var/lib/connman,在该目录下有一批网络配置的文件夹,进入和网卡mac地址对应的文件夹。
如何确定网卡mac地址:
命令:ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.66 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::dea6:32ff:fe49:8c26 prefixlen 64 scopeid 0x20<link>
ether dc:a6:32:49:8c:26 txqueuelen 1000 (Ethernet)
RX packets 50984 bytes 47229891 (45.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 87090 bytes 103594923 (98.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
黑体字处为mac地址。
进入目录: ethernet_dca632498c26_cable
编辑setting 文件如下:
[ethernet_dca632498c26_cable]
Name=Wired
AutoConnect=true
IPv4.method=manual
IPv6.method=off
IPv6.privacy=disabled
IPv4.netmask_prefixlen=24
IPv4.local_address=192.168.0.66
IPv4.gateway=192.168.0.1
Proxy.Method=direct
Nameservers=192.168.0.1;
IPv4.DHCP.LastAddress=192.168.0.112
Modified=2022-12-23T11:29:39.205760Z
存盘退出,重启即可。
重启后,可以看到IP地址正常,没有112这个地址了。
这时,可以安全删除connman包,不会导致连接丢失了。同时,也可以删除/var/lib/connman目录下所有文件。