From: Henry N. <hen...@ar...> - 2010-08-05 18:27:31
|
On 05.08.2010 17:36, Mike Mestnik wrote: > I finally got this working, using... > # echo -ne 'CoLinuxDriver\0tap0801co\0\0' | hexdump -ve '4/1 "&i1 %3u," > "\\\n"' > System::Call "*(&i1 67,&i1 111,&i1 76,&i1 105,\ > &i1 110,&i1 117,&i1 120,&i1 68,\ > &i1 114,&i1 105,&i1 118,&i1 101,\ > &i1 114,&i1 0,&i1 116,&i1 97,\ > &i1 112,&i1 48,&i1 56,&i1 48,\ > &i1 49,&i1 99,&i1 111,&i1 0,\ > &i1 0) i .R1" > System::Call 'advapi32::CreateServiceA(i r4, t r2, t R7, i > ${SERVICE_ALL_ACCESS}, \ > i R4, i R5, i 0, t R6, n, > n, i $R1, $R2, $R3) i.r6' Hui, what an interesting hack :)) > However!!! Networking still is not functional. > Is there any debugging I can do? Use -v 3 as option for colinux-daemon, run it on command line (not as service) and read successfull all messages from network daemon. For more debugging disable eth0 under Linux ("ifconfig eth0 down) and watch, that the ping goes truely over eth1. On Windows site you can use Wireshark for watching the packets on TAP-Win32 adapter. You are using IP address with 169.254, I assume you have not set an IP address on windows side of TAP. So, you must wait very long time after start, before the device is ready. A better alternate would be to set a fixed IP address for the TAP on both ends (Linux and Windows). Check the IP adress on both sides and verify, that the address masked with netmask matched the same network on both sides. Typicalle you must use the same netmask on both sides and the starting numbers should be the same (169.254.x.x) for both ends. > eth0=ndis-bridge > eth1=tuntap,,00:18:8B:26:44:88 Without MAC and without name of your real ethernet card you would have two problems. 1. On startup the ndis-bride can attach to the TAP-Win32. That is a loopback to coLinux self. To solve this, you should add the name of real Ethernet card. 2. Without MAC in the config, the random MAC can trigger sometimes the udev-system to create a new ethernet number. It is no guarantee, that eth0 will come up. Sometimes it will renamed to eth2, eth3 and so on. You can see it under Linux in boot messages and in /proc/net/dev -- Henry N. |