页次: 1
看一下驱动是否与内核版本相同 http://nossiac.com/download/mtk-wifi-ko/
对比了内核和下载的文件,确实不一样。不过可能是对下载的包做了处理吧,感觉
user@local /G $ md5sum mt7603.ko
d2460b2adc15d5d17ad4b46013c86bff mt7603.ko
user@local /G $ md5sum mt7603-for-mt7621-linux-4.14.109.ko
81f8715651c7c7a11ea759c165866cf6 mt7603-for-mt7621-linux-4.14.109.ko
看文件也是下载下来:
PKG_URLS:=http://nossiac.com/download/mtk-wifi-ko \
http://119.23.148.191:8888/mtk-wifi-ko
...
PKG_KO:=$(PKG_NAME)-for-$(CONFIG_TARGET_SUBTARGET)-linux-$(LINUX_VERSION).ko
...
define Build/Compile
for PKG_URL in $(PKG_URLS); do \
wget $$$${PKG_URL}/$(PKG_KO) \
-O $(PKG_BUILD_DIR)/$(PKG_KO); \
if [ "$$$$?" != "0" ]; then continue; else break; fi \
done
endef
...
用这个下载下来的驱动(mt7603-for-mt7621-linux-4.14.109.ko)丢到内核,insmod。还是一样的情况,会出现一下两句
[ 91.722909] mt7603: module license 'MediaTek' taints kernel.
[ 91.734257] Disabling lock debugging due to kernel taint
modprobe mt7603
modprobe mt7612
ifconfig ra0 up
ifconfig apclii0 up
brctl addif br-lan ra0
brctl addif br-lan apclii0
执行一下试试
执行了insmod再执行modprobe,会提示已加载,单独只使用modprobe, 也是没有看到设备
root@OpenWrt:/lib/modules/4.14.109# insmod mt7603.ko
[ 91.722909] mt7603: module license 'MediaTek' taints kernel.
[ 91.734257] Disabling lock debugging due to kernel taint
[ 91.790926] register mt7603e
root@OpenWrt:/lib/modules/4.14.109#
root@OpenWrt:/lib/modules/4.14.109# modprobe mt7603.ko
mt7603 is already loaded
该问题最后还是没有解决,处理方法是换了github上面Openwrt最新的代码(没有这个问题)
https://git.openwrt.org/openwrt/openwrt.git
尴尬
发现我板子的uboot传给kernel环境参数的方式和OpenWrt接收的不是同一种,所以OpenWrt并没有收到uboot的参数
log里面的command line参数是OpenWrt自行设置的
我现在修改了kernel的menuconfig(加个mem=256M),如下
make kernel_menuconfig
Kernel hacking --->
(rootfstype=squashfs,jffs2 mem=256M) Default kernel command string
对应.config的CONFIG_CMDLINE="rootfstype=squashfs,jffs2 mem=256M"
开机有效(不在报out of memory):
root@OpenWrt:/# cat /proc/meminfo
MemTotal: 252936 kB
MemFree: 225064 kB
MemAvailable: 205264 kB
ps: 附件是uboot的开机传参的代码,有兴趣的可以看下
https://whycan.cn/files/members/1485/mips_linux_c_20190409-1632.zip
那你看下这个参数是不是 u-boot 传递过来的,
如果是 修改 u-boot 的 bootargs, 在后面加 mem=256M参考这个:
https://www.cnblogs.com/cornflower/archive/2010/03/27/1698279.html
好的,THX
qrt_room 说:smartcar 说:linux 的 boorargs 是怎样的,贴出来看下,我记得.bootargs 可以传递内存大小
log里面没有打印出来,知道kernel里面的位置吗?我打印下
这一行
Kernel command line: console=ttyS0,115200 .....
log里面由打印出来,没有传递内存的参数 ...
[ 0.000000] Kernel command line: console=ttyS0,57600 rootfstype=squashfs,jffs2
我按
https://github.com/Nossiac/mtk-openwrt-feeds
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=313703
配置后了,开机后出现out of memory问题:
[ 27.055149] Out of memory: Kill process 909 (netifd) score 28 or sacrifice child
[ 27.069901] Killed process 909 (netifd) total-vm:1636kB, anon-rss:48kB, file-rss:688kB, shmem-rss:0kB
[ 27.073860] device eth0.1 entered promiscuous mode
[ 27.097860] device eth0 entered promiscuous mode
[ 27.110625] oom_reaper: reaped process 909 (netifd), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[ 27.151632] sh invoked oom-killer: gfp_mask=0x14200ca(GFP_HIGHUSER_MOVABLE), nodemask=(null), order=0, oom_score_adj=0
[ 27.173236] CPU: 3 PID: 1023 Comm: sh Not tainted 4.14.109 #0
[ 27.184669] Stack : 00000000 0000001d 00000040 80074038 80630000 805d0d94 00000000 00000000
[ 27.201317] 8058fa24 808f7b6c 81b689bc 8060ed07 8058a8c8 00000001 808f7b10 5326168c
[ 27.217963] 00000000 00000000 80850000 00004538 00000000 000000ec 00000007 00000000
[ 27.234607] 00000000 80610000 0002a4b4 00000000 80000000 00000000 80630000 8059499c
[ 27.251252] 0000001c 00200000 ffffffff 0000001d 00000000 802a2710 0000000c 8085000c
[ 27.267898] ...
[ 27.272760] Call Trace:
root@OpenWrt:/# cat /proc/meminfo
MemTotal: 25524 kB
MemFree: 9556 kB
MemAvailable: 15492 kB
Buffers: 0 kB
Cached: 8396 kB
SwapCached: 0 kB
Active: 2376 kB
Inactive: 6648 kB
Active(anon): 652 kB
ps: 才25M,我硬件是256M的。有效内存貌似还有很多
请问如何把 mem改大?这个out of mem的问题怎么处理?
代码是github上拉的最新代码: https://git.openwrt.org/openwrt/openwrt.git master主分支
以下是log
https://whycan.cn/files/members/1485/minicom_outofmem_cap.zip
多谢提供
qrt_room 说:Freeboy 说:根据此地址wiki使用闭源驱动即可解决 https://github.com/Nossiac/mtk-openwrt-feeds
下载了该网址编译好的驱动 mt7603-for-mt7621-linux-4.4.108.ko, 但是装不了
root@OpenWrt:/lib/modules/4.14.108# rmmod mt7603e.ko
root@OpenWrt:/# insmod mt7603_1.ko
[ 214.356261] mt7603: Unknown symbol __vfs_read (err 0)
[ 214.366519] mt7603: Unknown symbol mips_dma_alloc_coherent (err 0)
[ 214.378964] mt7603: Unknown symbol __vfs_write (err 0)
[ 214.389297] mt7603: Unknown symbol mips_dma_free_coherent (err 0)
[ 214.401740] mt7603: Unknown symbol __dma_sync (err 0)
failed to insert mt7603_1.kops: mt7603_1是改名后的mt7603-for-mt7621-linux-4.4.108.ko
你的Linux版本是 4.4.108 ?
恩,内核里面生成的文件夹都是这个版本号,看了dl里面内核的包,也是这个4.4.108: linux-4.14.108.tar.xz
root@OpenWrt:/lib/modules/4.14.108# rmmod mt7603e.ko
根据此地址wiki使用闭源驱动即可解决 https://github.com/Nossiac/mtk-openwrt-feeds
下载了该网址编译好的驱动 mt7603-for-mt7621-linux-4.4.108.ko, 但是装不了
root@OpenWrt:/lib/modules/4.14.108# rmmod mt7603e.ko
root@OpenWrt:/# insmod mt7603_1.ko
[ 214.356261] mt7603: Unknown symbol __vfs_read (err 0)
[ 214.366519] mt7603: Unknown symbol mips_dma_alloc_coherent (err 0)
[ 214.378964] mt7603: Unknown symbol __vfs_write (err 0)
[ 214.389297] mt7603: Unknown symbol mips_dma_free_coherent (err 0)
[ 214.401740] mt7603: Unknown symbol __dma_sync (err 0)
failed to insert mt7603_1.ko
ps: mt7603_1是改名后的mt7603-for-mt7621-linux-4.4.108.ko
使用的是 mt7621a+mt7603e
开机后wifi不能使用, 查了之后wifi时默认关闭的,但是手动配置打不开,以下是开机和操作情况
1. 开机后/sys/class/ieee80211/phy0/macaddress 内容是 ff:ff:ff:ff:ff:ff
后面手动修改为: 96:dc:71:16:5d:f9(板子给br-lan随机分配的ip)
2. 将 /etc/config/wireless 里面的 “option disabled 1 ”一行去除,
执行 #wifi, 发现wlan0有那么一瞬间出现一个修改了mac地址的配置(log有),随后就消失了(不再出现)
3. 如果修改 openwrt/package/kernel/mac80211/files/lib/wifi/mac80211.sh 下面一行
set wireless.radio${devidx}.disabled=0 //原来为1
开机后wlan0就移植没出现情况和原来2一样
我尝试了一些配置,都没能让wifi工作起来,不知道问题出现在哪,麻烦熟悉的人看下,是什么情况,谢谢!!!
附件是log和wireless&network配置
https://whycan.cn/files/members/1485/log_config.zip
qrt_room 说:试了下将ip配置成静态的,"/etc/init.d/network restart"后发现可以上网
既是将 /etc/config/network 的wan口配置改成静态的,如下
修改前:
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
修改后:
config interface 'wan'
option ifname 'eth1'
option proto 'static'
option mtu '1500'
option auto '1'
option netmask '255.255.255.0'
option ipaddr '192.168.1.186'
option gateway '192.168.1.1'
option dns '8.8.8.8'
有没有哪位高手提供下解决思路:|感觉是 eth1 dhcp 出了问题?
咦, 帖子怎么不见了.
不好意思,弄错了,发现ip:192.168.1.1是板子br-lan的ip,所以ping通了。就把这个删了
qrt_room 说:真的是很烦 说:那你能不能判断出不通时 eth1 收发包是否正常? 有个结论才好逐步缩小范围呀
目前不知道怎样验证 eth1 收发包是否正常,有点尴尬...
...
之前一直说的就是怎么判断eth1收发包是否正常呀板子改IP后尝试发包, PC的wireshark是否抓到
PC发包, 板子的Eth1是否可以看到RX之类的
这个,板子改ip后:
PC发包,就是上面截图那种情况,无法访问目标主机,板子rx也没有收到信息
板子发包,PC的wireshark也无法抓到
所以也不知道eth1收发包正不正常,不专业的想法就是: 感觉板子设置ip的时候有问题
通不通都不影响pc上用wireshark抓包的.
你的网络拓扑图是不是这样?
mt7621a <----> PC用板子往外发包, PC打开wireshark抓包看是否能抓到
PC先板子发包, 板子是否能收到? 查看eth1的rx进行初步判断
上面步骤如果是好的:
打开wireshark, 从PC ping 板子, 看是否arp 可以通
arp 通了再做下一步判断一步一个juo印, 做大做强
拓扑结构是这样的。
先用spi能正常上网的板子验证了下,按你那种方式是可以相互ping通的。情况跟你说的一样, eth1的rx能收到信息,wireshark抓包也是正常的
然后用nand的板子的相互ping的时候还是相互没有反应,识别不到对方主机,下图
上传一份mtk原生(非openwrt), 功能正常的log,不知有无参考价值,log和文件系统结构差异都很大
openwrt的时eth0, eth1, mtk_soc是 eth2, eth3
minicom_mtk_nand__cap.zip
没看懂呢, 板子两个RJ45? PC接在哪个上? 另一个口接的什么?
板子的shell里面,
ifconfig
brctl show
route -n
这些命令的输出是什么?
板子设计只有一个RJ45,作为wan口。然后pc也是个wan口,两个wan口连接起来,是不是无法ping通?
PC(windows系统)设置的ip是192.168.1.157, 所以板子设置为192.168.1.158
以下是ifconfig,brctl show,route -n 的信息(不知还需要操作什么不?)
root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 00:0C:43:28:80:C2
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fd32:4658:841a::1/60 Scope:Global
inet6 addr: fe80::20c:43ff:fe28:80c2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:1184 (1.1 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:43:28:80:C2
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2625 (2.5 KiB)
Interrupt:3
eth1 Link encap:Ethernet HWaddr 00:0C:43:28:80:C0
inet6 addr: fe80::20c:43ff:fe28:80c0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:51 errors:0 dropped:0 overruns:0 frame:0
TX packets:66 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4516 (4.4 KiB) TX bytes:21652 (21.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1538 errors:0 dropped:0 overruns:0 frame:0
TX packets:1538 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:105216 (102.7 KiB) TX bytes:105216 (102.7 KiB)
root@OpenWrt:/#
root@OpenWrt:/# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.000c432880c2 no eth0
root@OpenWrt:/#
root@OpenWrt:/# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan
root@OpenWrt:/#
root@OpenWrt:/# ifconfig eth1 192.168.1.158
root@OpenWrt:/#
root@OpenWrt:/# ifconfig
br-lan Link encap:Ethernet HWaddr 00:0C:43:28:80:C2
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fd32:4658:841a::1/60 Scope:Global
inet6 addr: fe80::20c:43ff:fe28:80c2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:1374 (1.3 KiB)
eth0 Link encap:Ethernet HWaddr 00:0C:43:28:80:C2
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2815 (2.7 KiB)
Interrupt:3
eth1 Link encap:Ethernet HWaddr 00:0C:43:28:80:C0
inet addr:192.168.1.158 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:43ff:fe28:80c0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:86 errors:0 dropped:0 overruns:0 frame:0
TX packets:365 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7573 (7.3 KiB) TX bytes:94210 (92.0 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:6482 errors:0 dropped:0 overruns:0 frame:0
TX packets:6482 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:445632 (435.1 KiB) TX bytes:445632 (435.1 KiB)
root@OpenWrt:/#
root@OpenWrt:/# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.000c432880c2 no eth0
root@OpenWrt:/#
root@OpenWrt:/# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br-lan
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
root@OpenWrt:/#
你好!我又打了一份spi可以上网的log,上面圈的地方貌似是随机生成的,所以有差异。谢谢帮忙!!!
minicom_v2_spi_2_cap.zip
由于上一份log spi带有wifi模块,这里上传了一份同一个kernel软件的(硬件上只替换了flash)
mt7621a_openwrt_log.zip
1. 网线接法: 可动态分配的路由器lan接到mt7621的wan口上
2. mt7621a之前贴的是spi flash, wan口能正常使用(无lan口): 能ping通 192.168.1.1(wan口连接的可动态分配ip的路由器主机),能ping 通www.baidu.com
3. 将spi flash(16M)换成nandflash(256M)之后,wan口无法上网: eth1获取不到上层路由的IP,而且网口灯有亮
4. 将板子烧录mtk官方固件是可以正常上网的,可以确定硬件没有问题
路由表也不正常, 接入网线没有变化
# route
Kernel IP routing table
Destination Gateway Genmask Flashs Metric Ref Use Iface
10.0.0.0 * 255.0.0.0 U 0 0 0 br-lan
以下是贴 spi flash的时候,接入网线可以正常上网的路由表
# route
Kernel IP routing table
Destination Gateway Genmask Flashs Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth1
10.0.0.0 * 255.0.0.0 U 0 0 0 br-lan
192.168.1.0 * 255.255.255.255 U 0 0 0 eth1
下面是 /etc/config/network 配置文件:
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdca:d0b6:ccdd::/48'
config interface 'lan'
option ifname 'eth0'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.0.1'
option netmask '255.255.255.0'
option ip6assign '60'
option macaddr 'FF:FF:FF:FF:FF:FF'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
config interface 'wan6'
option ifname '@wan'
option proto 'dhcpv6'
遇到这个问题已经搞得没有头绪,不知道哪位大神可以提供下解决思路?万分感谢!!!
页次: 1