如上所述在这个问题中我使用火线电缆在我的笔记本电脑和台式机之间提供专用网络,因为它使使用屏幕共享程序synergy
比使用 WIFI 更好。
但是,当我当天离开办公室并暂停笔记本电脑时,当我第二天返回时,台式机和笔记本电脑无法再通过火线进行通信。该firewire0
设备仍然具有 IP 地址。但是当我尝试 ping 桌面时,我得到了no route to host
2.6.35-24-generic #42-Ubuntu SMP x86_64
我在 Ubuntu 10.10 上使用内核。
有什么办法可以在不重新启动的情况下解决这个问题吗?比如,删除一些内核模块并重新插入它们?
编辑:这是我到目前为止所尝试过的方法和结果:
root@token:~# dmesg|tail -n 1
[592525.204024] firewire_core: phy config: card 0, new root=ffc1, gap_count=5
root@token:~# modprobe -r firewire_net firewire_ohci firewire_core
root@token:~# modprobe -v firewire_ohci
insmod /lib/modules/2.6.35-24-generic/kernel/lib/crc-itu-t.ko
insmod /lib/modules/2.6.35-24-generic/kernel/drivers/firewire/firewire-core.ko
insmod /lib/modules/2.6.35-24-generic/kernel/drivers/firewire/firewire-ohci.ko
root@token:~# dmesg|tail
[592525.204024] firewire_core: phy config: card 0, new root=ffc1, gap_count=5
[592563.410868] firewire_ohci: Removed fw-ohci device.
[592579.160086] firewire_ohci: Added fw-ohci device 0000:02:00.0, OHCI v1.10, 4 IR + 8 IT contexts, quirks 0x2
[592579.160137] firewire_ohci: isochronous cycle inconsistent
[592579.660294] firewire_core: created device fw0: GUID 0000000000000000, S400
[592579.663805] firewire_core: created device fw1: GUID 0017f2fffe89bce6, S400
[592579.663813] firewire_core: phy config: card 0, new root=ffc1, gap_count=5
[592579.700720] firewire_core: phy config: card 0, new root=ffc1, gap_count=5
[592579.700842] firewire_core: refreshed device fw0
[592579.702603] firewire_net: firewire0: IPv4 over FireWire on device 0000000000000000
root@token:~# ping stan.firewire
PING stan.firewire (192.168.100.1) 56(84) bytes of data.
From token.local (192.168.100.3) icmp_seq=1 Destination Host Unreachable
From token.local (192.168.100.3) icmp_seq=2 Destination Host Unreachable
From token.local (192.168.100.3) icmp_seq=3 Destination Host Unreachable
编辑2:我还尝试在挂起之前删除模块,并在恢复后重新插入。这也不起作用:-(
编辑3:如果我从挂起状态恢复后拔下并重新插入火线电缆,我会看到以下消息:
firewire_core: BM lock failed, making local node (ffc0) root
当我在暂停之前拔下/重新插入时,我没有看到此消息...
答案1
你尝试过使用吗modprobe
?
运行dmesg | grep firewire
,我得到:
[ 1.192574] firewire_ohci 0000:0a:04.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[ 1.192585] firewire_ohci 0000:0a:04.0: setting latency timer to 64
...
这表示模块的名称是火线_ohci。
所以我跑(作为根用户)modprobe -vr firewire_ohci && modprobe -v firewire_ohci
。分别在那里移除和插入模块。
答案2
我认为 ARP 表只是变空了。尝试这个:
arping -c 1 -I firewire0 remote_ip
答案3
您是否尝试过移除物理电缆。它应该提醒堆栈需要重建连接。
禁用火线连接并重新启用它也可能有效。您可以添加一个脚本,在简历中自动执行此操作。
直流