shell on serial?

2010-11-08
2013-05-09
  • steven yang
    steven yang
    2010-11-08

    Hi Henry.

    colinux 0.7.8
    HOST: window 7 32BIT
    CLIENT: ubuntu 10.04

    I start colinux as server with ndis network. then login into the colinux by ssh server. that works.
    howerver, if my computer is up after sleep. then the ndis network is fail, the ssh server is not availble. 
    if I restart the colinux, the ndis network is still not working.  I have to restart my window 7, then it works again.
    I have no idea why the ndis is not working after sleep. is there a way to fix this?

    another way:  how about using serial as a shell?
    I tried this:
    mode com2 BAUD=115200 PARITY=N DATA=8 STOP=1 dtr=on rts=hs octs=on
    ..\colinux-daemon -t nt kernel=vmlinux initrd=initrd.gz cobd0="CoSYS.ext3" mem=512 root=/dev/cobd0 ttys0=COM4

    after system is up:
    #sudo minicom -D /dev/ttys0
    minicom: cannot open /dev/ttys0: Input/output error

    on the host system, I create two loop back virtual serial ports: com4 and com5. com4 is using by colinux, and com5 then using by putty or tereterm as shell.

    Can this be workable?

    Thanks.

     
  • steven yang
    steven yang
    2010-11-08

    correct the command line:
    mode com4 BAUD=115200 PARITY=N DATA=8 STOP=1 dtr=on rts=hs octs=on
    ..\colinux-daemon -t nt kernel=vmlinux initrd=initrd.gz cobd0="CoSYS.ext3" mem=512 root=/dev/cobd0 ttys0=COM4

     
  • Henry N.
    Henry N.
    2010-11-08

    Inside ndis-bridge the part for reconnect after sleep/wakeup was not ported. Only pcap-bridge has a workaround to reconnect in such situations. You not need to restart the complete coLinux. After sleep and wakeup the task colinux-ndis-net-daemon.exe will missing. Simple restart this task should give you the network back.

    #sudo minicom -D /dev/ttys0
    minicom: cannot open /dev/ttys0: Input/output error

    Try #sudo minicom -D /dev/ttyS0

    For serial console you not need real COM and no other tools. Simple run colinux-serial-daemon.exe from Windows command Prompt will give you the serial Linux console. The syntax is "colinux-serial-daemon -i pid -u unit", where pid is the PID of colinux-daemon.exe and unit is 0 for ttyS0.

     
  • steven yang
    steven yang
    2010-11-09

    $ sudo minicom -D /dev/ttyS0
    minicom: cannot open /dev/ttyS0: No such file or directory

     
  • Henry N.
    Henry N.
    2010-11-09

    Oh, I'm sorry Steven!

    zgrep "SERIAL" /proc/config.gz
    # CONFIG_SERIAL_COOPERATIVE is not set
    

    I will go and locking for, why it is disabled in kernel config.

     
  • Henry N.
    Henry N.
    2010-11-09

    CONFIG_SERIAL_COOPERATIVE is enabled now. I don't know, why it was disabled.
    You can get an update from last snapshot.

     
  • steven yang
    steven yang
    2010-11-11

    Thanks, Henryn.

    Now ttyS0 is working.  I start the colinux with:
    mode com4 BAUD=115200 PARITY=N DATA=8 STOP=1 dtr=on rts=hs octs=on
    ..\colinux-daemon -t nt kernel=vmlinux initrd=initrd.gz cobd0="CoSYS.ext3" mem=512 root=/dev/cobd0 ttys0=COM4

    then open ttyS0 with minicom:
    sudo minicom -D /dev/ttyS0

    open tereterm at com5 with 115200n8.  typing in the tereterm, and the charactors is show in the mincom.
    So the serial on colinux ttyS0(COM4) is looped up with COM5. and it is working very well.

    now I want to use ttyS0(COM4) as the booting shell. so I tried:
    mode com4 BAUD=115200 PARITY=N DATA=8 STOP=1 dtr=on rts=hs octs=on
    ..\colinux-daemon -t nt kernel=vmlinux initrd=initrd.gz cobd0="CoSYS.ext3" mem=512 root=/dev/cobd0 console=ttyS0,115200n8 ttys0=COM4

    and when booting the colinux, no kernel messages scrolling,  and Tereterm is no message,too.   Tereterm window would have message. I have no ideal and no way to debug what happening.

    any more help?  thanks again.

     
  • steven yang
    steven yang
    2010-11-11

    and I tried ttys0:
    mode com4 BAUD=115200 PARITY=N DATA=8 STOP=1 dtr=on rts=hs octs=on
    ..\colinux-daemon -t nt kernel=vmlinux initrd=initrd.gz cobd0="CoSYS.ext3" mem=512 root=/dev/cobd0 console=ttys0,115200n8 ttys0=COM4

    the output is same as before.

     
  • Henry N.
    Henry N.
    2010-11-12

    Sorry again. Boot messages on serial console is not working.

    Inside the driver coserial.c exist a macro condition CONFIG_SERIAL_CONSOLE. But CONFIG_SERIAL_CONSOLE isn't defined any more in the kernel 2.6.33. Indies many different macros like CONFIG_SERIAL_<hardware name>._CONSOLE exist now. Think, there some kind of porting from older kernel missed.

    For using serial shell all this you don't need. Here is the answer for "How use serial port as login shell":

    Simple add this line to your /etc/inittab:

    S1:23:respawn:/sbin/getty -L ttyS0 9600 vt100
    

    Do not use "ttys0=…" inside your coLinux config!
    Run coLinux
    Run this command line from Windows command prompt:

    coserial-daemon -i <pid> -u 0
    

    Where "<pid>" is the process id what you can find in Windows Task manager, or in the very first lines of output from colinux-daemon.exe as "PID: …".

     
  • Henry N.
    Henry N.
    2010-11-13

    Todays snapshot is ready for boot message on serial console.
    You need this options in coLinux configuration:

    ttys0=COM1,"BAUD=115200 PARITY=n DATA=8 STOP=1 dtr=on rts=on" console=ttyS0,115200
    
     
  • Steven
    Steven
    2011-09-13

    Inside ndis-bridge the part for reconnect after sleep/wakeup was not ported. Only pcap-bridge has a workaround to reconnect in such situations. You not need to restart the complete coLinux. After sleep and wakeup the task colinux-ndis-net-daemon.exe will missing. Simple restart this task should give you the network back.

    I have the same problem.  but both pcap-bridge and ndis-bridge have the same bug.
    After sleep and wakeup the task colinux-ndis-net-daemon.exe is still runing. just network failed.
    How can I do to get network after window7 wakeup after sleep?
    Thanks.

     
  • Henry N.
    Henry N.
    2011-09-13

    I have the same problem. but both pcap-bridge and ndis-bridge have the same bug. After sleep and wakeup the task colinux-ndis-net-daemon.exe is still runing. just network failed. How can I do to get network after window7 wakeup after sleep?

    Use ProcessExplorer or similar task manager to see current command line args of colinux-ndis-net-daemon.exe. Kill the current colinux-ndis-net-daemon. Open a command prompt, change into coLinux directory and start colinux-ndis-net-daemon.exe again with exactly the same arguments you have seen before in ProcessExplorer.

     
  • Steven
    Steven
    2011-09-14

    It do not work.

    Here is another test.  Before window7 go to sleep, I shut down the colinux, here network is working. then after window7 wake up, the start colinux but the network is no working.

    The only way to get network working is to reboot the window7 and start colinux again.

    Henryn, Do you using a window7 system? can you have a test on this issue?
    Thanks for your help.

     
  • Henry N.
    Henry N.
    2011-09-14

    No, I don't have Windows 7.

    If stopping coLinux not help, then try to reload the driver after Windows wake up:

    colinux-daemon --remove-driver
    colinux-daemon --install-driver
    
     
  • Steven
    Steven
    2011-09-15

    after window7 wake up, I start colinux, and ping testing:
    steven@colinux:~$ ping 192.168.1.1
    PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    From 192.168.1.7 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=3 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=4 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=5 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=6 Destination Host Unreachable
    ^C

    then shut down the colinux, and in cmd:
    D:\coLinux>colinux-daemon.exe -remove-driver
    Cooperative Linux Daemon, 0.7.9
    Daemon compiled on Wed Feb 16 23:54:41 2011

    D:\coLinux>colinux-daemon.exe -install-driver
    Cooperative Linux Daemon, 0.7.9
    Daemon compiled on Wed Feb 16 23:54:41 2011

    loading D:\coLinux\linux.sys
    daemon: driver installed

    then  start colinux again, ping test:
    steven@colinux:~$ ping 192.168.1.1
    PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
    From 192.168.1.7 icmp_seq=1 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=2 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=3 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=4 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=5 Destination Host Unreachable
    From 192.168.1.7 icmp_seq=6 Destination Host Unreachable
    ^C

    Is there any other way to resolve this issue?
    Thank you so much.

     
  • Steven
    Steven
    2011-09-16

    Hi Henryn,

    Is there any way that I can help on debug in my window7 for testing?

    Thanks.