本文主要记录openwrt 调试中碰到的问题。
1、mDNS 模块,
1.1 error 提示如下
[DIS] Warning: Attempt to mDNS broadcast failed on br-lan: src/inet/UDPEndPointImplSockets.cpp:421: OS Error 0x02 000063: Address not available
[DIS] mDNS broadcast had only partial success: 4 successes and 1 failures.
1.2 分析
openwrt 平台中mDNS 主要分成2大块,avahi-daemon + dnsmasq 。
其中avaihi config 设定如下
在这里插入代码片root@OpenWrt:~# cat /etc/avahi/avahi-daemon.conf
[server]
**host-name=foo
domain-name=local**
use-ipv4=yes
use-ipv6=yes
check-response-ttl=no
use-iff-running=no
**allow-interfaces=br-lan**
[publish]
publish-addresses=yes
publish-hinfo=yes
**publish-workstation=yes**
publish-domain=yes
**publish-dns-servers=192.168.1.1**
#publish-resolv-conf-dns-servers=yes
[reflector]
enable-reflector=no
reflect-ipv=no
[rlimits]
#rlimit-as=
rlimit-core=0
rlimit-data=4194304
rlimit-fsize=0
rlimit-nofile=30
rlimit-stack=4194304
rlimit-nproc=3
1.3 设定avaihi-daemon 后,需要把wifi up起来。
root@OpenWrt:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/fe300000.mmcnr/mmc_host/mmc1/mmc1:0001/mmc1:0001:1'
option channel '36'
option band '5g'
option htmode 'VHT80'
option disabled '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'openwrt-pi'
option encryption 'none'
root@OpenWrt:~#
当看到 phy0-ap0 起来后,执行 /etc/init.d/avahi-daemon restart,
疑惑:由于时间过的关系,没有搞明白 “为啥一定要wifi up 后,mDNS 才通”
2 openwrt ssh连接
SSH(Secure Shell)是专为远程登录会话和其他网络服务提供安全性的协议。OpenWrt 默认采用Dropbear软件来实现 SSH协议。它是一个在小内存环境下非常高效的SSH服务器和客户端。
出现 port 22: Connection refused.
分析:
2.1 ps | grep “dropbear” 看一下dropbear 这个进程是否起来。
2.2 如果已经起来,再看一下firewall 的状态。
如果firewall 处于running 的状态,请执行如下设定关闭firewall。
/etc/init.d/firewall stop
/etc/init.d/firewall disable
3、安装Luci ,进行web 设定界面
3.1 在ssh 或者 串口终端安装 luci,cmd 如下图
opkg update
opkg install luci
/etc/init.d/uhttpd enable
/etc/init.d/uhttpd start
如图示失败如下图,则需要打开config 中的kmod-ipt-conntrack,kmod-ipt-nat编译在重新烧录即可,此方法可以解决opkg install 时很多失败问题。
3.2 安装LUCI后,访问依旧异常。
3.3 关闭openwrt 防护墙,然后再刷新web端即可访问
/etc/init.d/firewall stop
/etc/init.d/firewall disable
/etc/init.d/firewall status //查看firewall 状态