] 本帖最后由 SysRq 于 2021-8-3 07:47 编辑 [/i]
[md]俺拿到这块linux开发板遇到的第一个难题就是:如何给网卡设置一个固定的ip地址?
按以前树莓派上的经验去修改 /etc/network/interface
文件不起作用,在论坛里翻了几个帖子发现不少坛友有同样的疑惑.野火教程里是用 systemd-networkd
的方法,有效果但俺不完全满意,原因如下:
networking
为什么不起作用的疑惑没有得到解答
- 引入了另一个看起来不相干的东西
systemd-networkd
,疑惑加倍.
- 在俺的环境里,即使通过
systemd-network
指定了eth1的静态ip,仍然有鬼东西执着地给俺的eth1再配置一个自动的ip地址,浑身难受.
开发板吃灰了一月有余,最近又翻出来通电玩耍.再次面对老问题,俺使出浑身武功再次挑战,以为峰回路转柳暗花明,实际原地踏步黔驴技穷.记得俺第一次用 poweroff
关机后,再开机点不亮开发板,长按电源键也不灵.上网搜"poweroff
不开机怎么办".结果去到了友商论坛里.看他们讨论有重插拔核心板或短接某某脚,俺这才从底板原理图上发现有个sw是ON/OFF,原来野火教程里说的 ONOFF
按键,不是电源按钮呀!!大意了.
吸取上次的教训,这回先认真研究野火的教程, 发现野火曾经使用过在 /opt/script/boot/psplash.sh
里配置静态ip地址的办法,可惜此方法在Debian Image 2021-06-08时代已过时.再次以"imx6 静态ip"为关键字搜索,对搜索结果按友商论坛域名进行过滤, 浏览数贴后在他们的讨论中提到了设置静态ip地址失灵可能是 connman
在作怪.
> 是这个文件/etc/init.d/connman在作怪,每次interface加载后,还会去读connman文件,把connman删掉或重命名就可以了
按俺的理解,connman
也是一种网络管理程序,能管理有线\wifi\蓝牙等连接,像桌面系统里的 NetManager
似的.它会覆盖掉 interfaces
文件里配置静态ip地址.找到是它在作怪,解决问题就有了头绪,俺找到了两种可以用来设置静态ip地址的方法:
一, 使用debian系祖传的networking方式:
- 在
/etc/network/interfaces
文件给网卡配置静态ip地址
sudo systemctl disable connman
;取消connman开机启动
sudo systemctl enable networking
;允许networking服务开机运行
- 修改
/etc/resolv.conf
, 配置一个有效的nameserver
.
reboot
二, 将就材料,使用connman来设置静态ip地址
按道理来说 connman
也该有给用户配置静态ip地址的地方,可俺实验发现 connman
这阴间东西即使配置好了静态ip地址,下次开机它照样生成一份新的配置文件.此情此景用自媒体小编的口吻来写一篇文章,标题大概会是connman的配置文件每次瞎鸡儿变,背后的原因竟然很暖心!.暖心是不可能暖心的,俺只觉得糟心.但背后的原因还真被俺发现了,connman
生成的配置文件名字里包含网卡的mac地址,而我们开发板网卡的mac地址每次开机会改变.所以,先给网卡一个固定的mac地址,connman
也就有了固定的配置文件,再配置静态的ip地址那就有戏咯:
- 使用usb转串口转接开发板到电脑
- 启动过程中快速连续按键盘什么键(我按了
Enter
),进入到uboot环境.
setenv ethaddr aa:bb:cc:dd:ee:ff
;给eth1设置固定的mac地址,我用了aa:bb:cc:dd:ee:ff
saveenv
;保存
- 按RESET按键让CPU复位,启动 登录进debian系统
su
; 将当前身份切换到root,root的默认密码是root
- 用root身份运行connmanctl配置静态ip
root@npi:~# connmanctl
connmanctl> config ethernet_aabbccddeeff_cable --ipv4 manual 192.168.10.2 255.255.255.0 192.168.10.1
;ethernet_aabbccddeeff_cable ip地址 子网掩码 网关地址
connmanctl> config ethernet_aabbccddeeff_cable --nameservers 8.8.8.8
; 设置dns服务器,可以写多个ip地址,用英文逗号分隔.可以用一些国内公用dns服务器地址,这个8.8.8.8是谷歌的.
connmanctl> exit
connmanctl会把配置信息保存在/var/lib/connman/ethernet_mac_cable/settings 文件中,使用root身份可以查看.
查看eth1接口的mac地址和静态ip地址设置
测试开发板经过配置已经正常联网
参考页面:
两种设置静态ip地址的方式分享完毕,谢谢您耐心观看.
小编体垃圾话开始
debian镜像设置不了静态ip地址背后的原因却令人暖心是怎么回事呢?
下面就让小编带大家一起了解吧。debian镜像设置不了静态ip地址背后的原因却令人暖心,其实就是debian镜像设置不了静态ip地址背后的原因却令人暖心了。大家可能会感到很惊讶,...但事实就是这样,小编也感到非常惊讶。那么这就是关于debian镜像设置不了静态ip地址背后的原因却令人暖心的事情了,大家有什么想法呢?欢迎在评论区告诉小编一起讨论哦