LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware
User Name
Password
Linux - Hardware This forum is for Hardware issues.
Having trouble installing a piece of hardware? Want to know if that peripheral is compatible with Linux?

Notices


Reply
  Search this Thread
Old 05-20-2010, 07:27 PM   #16
chadwick
Member
 
Registered: Apr 2005
Location: At the 100th Meridian where the great plains begin
Distribution: Debian Testing on T60 laptop
Posts: 105

Original Poster
Rep: Reputation: 17

Quote:
Originally Posted by nstamoul View Post
So did anyone succed in using all 6 ports of the controller?
It seems at least two of us have had success at that. I've succeeded in getting six to work for one card and two for a second card. What's your procedure for installing the driver? What kernel are you using? Have you also tried looking at output of lspci, setserial, lshw to see if that gives any clues?
 
Old 05-21-2010, 04:25 AM   #17
nstamoul
LQ Newbie
 
Registered: May 2010
Posts: 2

Rep: Reputation: 0
I did actually get more than 2 ports working .
I pathed the 1.06 version,since the other one did not load the mcs9865-isa module corectly and I finaly have at least 4 ports working (did not try the other 2).
2.6.32-3 debian vanilla.
 
Old 06-07-2010, 12:57 AM   #18
Liquid_Squelch
LQ Newbie
 
Registered: May 2006
Location: Long Island, NY
Distribution: CentOS, OpenSuSE, Ubuntu, Raspbian
Posts: 14

Rep: Reputation: 0
Quote:
Originally Posted by dblade View Post
The make output shows that the source code hasn't been patched yet. Try the patch in post #9.
Thanks all for the help, but after months of putting this off, I'm back at it again..

When I try and Patch, this is the error I get:

Code:
$patch -p0 < mcs9865_try1_patch.txt

(Stripping trailing CRs from patch.)
patching file mcs9865.c
Hunk #1 FAILED at 619.
Hunk #2 FAILED at 849.
Hunk #3 FAILED at 954.
Hunk #4 FAILED at 2065.
4 out of 4 hunks FAILED -- saving rejects to file mcs9865.c.rej
This fails when I try and patch as user, and SU.
 
Old 06-08-2010, 02:32 AM   #19
chadwick
Member
 
Registered: Apr 2005
Location: At the 100th Meridian where the great plains begin
Distribution: Debian Testing on T60 laptop
Posts: 105

Original Poster
Rep: Reputation: 17
You guys got one error in addition to mine. I didn't have any issues with struct uart_info having its members renamed. Thanks dblade for posting your patch about that.

Liquid_Squelch, if the patch isn't working then you can just edit the file by hand. It seems there are only 4 lines that you need to change. Try the following:

Back up mcs9865.c:
Code:
$cp mcs9865.c mcs9865.c-saved
Open mcs9865.c with a text editor (e.g. emacs) and
  1. replace the three occurrences of:
    Code:
    up->port.info->tty
    (which are on lines on lines 622, 852 and 957 in my versions of the file) with:
    Code:
    up->port.info->port.tty
  2. replace the occurrence of:
    Code:
    SA_SHIRQ
    (which is on line 2068 in my version of the file) with:
    Code:
    IRQF_SHARED

Not sure if you're used to using text editors in GNU/Linux (since you say you're new to Linux). If not, then the search command key binding in emacs is <ctrl>-s and the search-and-replace binding is <alt>-<shift>-%

Once you've taken care of that, try doing make again.

Last edited by chadwick; 06-08-2010 at 03:30 AM.
 
Old 06-08-2010, 05:06 PM   #20
dblade
LQ Newbie
 
Registered: Sep 2007
Posts: 25

Rep: Reputation: 0
assuming you are on 2.6.31.x with that patch

looks like the patch file has carriage returns (^M) in it. I have no idea why, but you could use:

dos2unix
-OR-
vi editor, command :1,$s/<ctrl-v><ctrl-m>//g
-OR-
sed -i 's/<ctrl-v><ctrl-m>//g' patch.txt

to remove them.

(where <ctrl-v> and <ctrl-m> mean to actually press those keys)

EDIT: FYI

I had to see what was going on with this. Even after I removed the ^M 's from the patch (new file attached) it wouldn't apply until I removed the ^M's from mcs9865.c file. They have no business being in there but apparently the driver was packaged up on windows...
Attached Files
File Type: txt mcs9865_2.6.31.X_patch.txt (1.4 KB, 53 views)

Last edited by dblade; 06-08-2010 at 06:10 PM. Reason: new info
 
Old 06-09-2010, 10:48 PM   #21
Liquid_Squelch
LQ Newbie
 
Registered: May 2006
Location: Long Island, NY
Distribution: CentOS, OpenSuSE, Ubuntu, Raspbian
Posts: 14

Rep: Reputation: 0
Thanks for the help all.... i am almost there!

I was finally able to make and install. I manually made the changes, and then removed all of the carriage returns.. I also performed a chmod to all of the files to make sure there were no issue..


Now, my problem, is I can 'cat' some of the ports..

I can see the ports listed, and I am assuming ttyS2 - S7 are the new ports.
# setserial -g /dev/tty[SD]*
/dev/ttyD0, UART: 16550A, Port: 0xdcf8, IRQ: 17
/dev/ttyD1, UART: 16550A, Port: 0xdcf0, IRQ: 18
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3
/dev/ttyS4, UART: 16550A, Port: 0xdce8, IRQ: 19
/dev/ttyS5, UART: 16550A, Port: 0xdcd8, IRQ: 19
/dev/ttyS6, UART: 16550A, Port: 0xdcc8, IRQ: 19
/dev/ttyS7, UART: 16550A, Port: 0xdcb8, IRQ: 19


When I try and 'cat' the ports ttyS2, ttyS3, ttyD0, or ttyD1, I receive an error:

# cat /dev/ttyS2
cat: /dev/ttyS2: Input/output error

This tells me that the piggy back com ports are working. It is the physical 2 on board serial cards are UART unknown. I tried setting UART to 16550A but that still gave me the error - so I change the IRQ to 19.. Still no go. Any pointers to get the last 2 serial cards up and running?

THANK YOU AGAIN for all who have helped me out.. we're at the home stretch!

Last edited by Liquid_Squelch; 06-09-2010 at 10:56 PM.
 
Old 06-11-2010, 07:13 AM   #22
arkhnchul
LQ Newbie
 
Registered: Jun 2010
Posts: 1

Rep: Reputation: 0
also on 33 kernel taked errors:
1)"error: 'struct uart_port' has no member named 'info'"
2)"error: 'struct uart_state' has no member named 'delta_msr_wait'"
solutions:
1) replace "port.info" to "port.state"
2) replace "delta_msr_wait" to "port.delta_msr_wait"

full patched version of mcs9865.c at pastebin.com/RaRqpF15
 
Old 06-12-2010, 10:29 AM   #23
dblade
LQ Newbie
 
Registered: Sep 2007
Posts: 25

Rep: Reputation: 0
arkhnchul, sounds similar to the changes in the patch attached to post #11.

If you wanted to take the time to create a stand alone/complete patch file for 2.6.33, just create a copy of the original source file [1] before any editing (calling it something like mcs9865.c.orig) and after doing all of the editing changes to get it work, do a "diff -u msc9865.c.orig mcs9865.c > mcs9865_patch2.6.33.x.txt" (or similar).

[1] If you do decide to do it, also make sure that you get rid of the carriage returns (^M) in the original source file first. That caused issues with the patches I had posted as recently discussed.

Thanks.

Driver 1.0.0.6 with no carriage returns can be found here: http://filebin.ca/prdjxz/MCS9865_V1.0.0.6_noCR.tgz

Last edited by dblade; 06-12-2010 at 11:07 AM.
 
Old 08-17-2010, 12:01 AM   #24
mcconkeyb
LQ Newbie
 
Registered: Aug 2010
Posts: 2

Rep: Reputation: 0
So I tried to use the patch that was given in message #9. It failed with the following output:

w72efx@bm-server2010:~/mostek_serial_port/MCS9865_Linux/MCS9865_V1.0.0.6$ sudo !!
sudo patch -p0 < /home/w72efx/Downloads/mcs9865_try1_patch.txt
[sudo] password for w72efx:
(Stripping trailing CRs from patch.)
patching file mcs9865.c
Hunk #1 FAILED at 619.
Hunk #2 FAILED at 849.
Hunk #3 FAILED at 954.
Hunk #4 FAILED at 2065.
4 out of 4 hunks FAILED -- saving rejects to file mcs9865.c.rej
w72efx@bm-server2010:~/mostek_serial_port/MCS9865_Linux/MCS9865_V1.0.0.6$

What went wrong?
 
Old 08-17-2010, 06:20 AM   #25
GrapefruiTgirl
LQ Guru
 
Registered: Dec 2006
Location: underground
Distribution: Slackware64
Posts: 7,594

Rep: Reputation: 555Reputation: 555Reputation: 555Reputation: 555Reputation: 555Reputation: 555
Usually when a patch completely fails, there are one or more of several reasons:

1 -- the patch is for a significantly different version of the source code (or the source code has changed since the patch was made).
2 -- you aren't inside the correct directory when you apply the patch.
4 -- patch is in the wrong format to begin with.
3 -- some other reason.

I find it odd that it says "Stripping trailing CRs from patch." - I haven't seen that in the past.

Maybe, assuming the problem is not #1 or #2 or #4 reason I suggested for the failure, try increasing the `fuzz factor` for patch, it might succeed? Or it might not..
Code:
patch -F3 -p0 < /home/w72efx/Downloads/mcs9865_try1_patch.txt
Read the `patch` manpage for info about `fuzz factor`.
 
Old 08-18-2010, 12:17 AM   #26
dblade
LQ Newbie
 
Registered: Sep 2007
Posts: 25

Rep: Reputation: 0
post 18 is the same problem and I've provided a solution in post 20. I've also removed the patch in post #9. You didn't say what kernel you are on, but maybe try the patch in post 20.

For a kernel .32 and newer I'd try out the patch in post #11.

Last edited by dblade; 08-18-2010 at 12:33 AM. Reason: more info
 
Old 08-19-2010, 10:43 PM   #27
mcconkeyb
LQ Newbie
 
Registered: Aug 2010
Posts: 2

Rep: Reputation: 0
Wow, fast responses. Thanks! I'll try dblade's ideas first and then if I have to I'll move on to grapefruitgirl's ideas. I'll let everyone know what happens.
 
Old 02-21-2011, 03:21 PM   #28
threedogs
LQ Newbie
 
Registered: Feb 2011
Posts: 4

Rep: Reputation: 0
Sorry to resurrect an old thread but I have this same problem. My card is a Syba SY-PCI15001 6-port with the MOSCHIP 9865. I've acquired three drivers for it. The oldest was supplied with the CD that came with the card. More recent is the one I downloaded from Syba's website.

http://www.sybausa.com/productInfo.php?iid=602

The newest version I downloaded from MOSCHIP website.

http://www.moschip.com/mcs9865_downloads.php

It looked as if this latest version from MOSCHIP would not require patching. The readme says it supports kernels 2.6.22 to 2.6.33. I am using LinuxMCE based upon Kubuntu 8.10 with the 2.6.27.17 kernel so I thought I would be OK. I looked at the patch and saw that it was just making a few syntax modifications to match kernel updates. Looking at the most recent MCS9865.c file, it does check for the kernel version in order to supply the correct syntax. Here is an example:

Code:
//Helper function used in ISR to receive the the charecters from the UART

#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))

static _INLINE_ void receive_chars(struct uart_9865_port *up, u8 *status)

#else

static _INLINE_ void receive_chars(struct uart_9865_port *up, u8 *status, struct pt_regs *regs)

#endif

{

#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,26))

	struct tty_struct *tty = up->port.info->tty;

#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,26)&&(LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,31)))

	struct tty_struct *tty = up->port.info->port.tty;

#else

	struct tty_struct *tty = up->port.state->port.tty;

#endif
However when I try to install I get errors.

Code:
js@higgins:~/MCS9865_V1.0.0.9$ ls
Makefile  mcs9865.c  mcs9865-isa.c  mcs9865_isa_installation
mcs9865   mcs9865.h  mcs9865-isa.h  MCS9865_Linux_UM_Ver1.1.pdf
js@higgins:~/MCS9865_V1.0.0.9$ make
rm -f *.mod.c *.o *.ko .*.cmd *.symvers
make -C /lib/modules/2.6.27-17-generic/build/ SUBDIRS=/home/js/MCS9865_V1.0.0.9modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.27-17-generic'
  CC [M]  /home/js/MCS9865_V1.0.0.9/mcs9865.o
/home/js/MCS9865_V1.0.0.9/mcs9865.c: In function ‘receive_chars’:
/home/js/MCS9865_V1.0.0.9/mcs9865.c:644: warning: comparison of distinct pointer types lacks a cast
/home/js/MCS9865_V1.0.0.9/mcs9865.c:718: warning: comparison of distinct pointer types lacks a cast
  CC [M]  /home/js/MCS9865_V1.0.0.9/mcs9865-isa.o
  Building modules, stage 2.
  MODPOST 2 modules
  CC      /home/js/MCS9865_V1.0.0.9/mcs9865-isa.mod.o
  LD [M]  /home/js/MCS9865_V1.0.0.9/mcs9865-isa.ko
  CC      /home/js/MCS9865_V1.0.0.9/mcs9865.mod.o
  LD [M]  /home/js/MCS9865_V1.0.0.9/mcs9865.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.27-17-generic'
js@higgins:~/MCS9865_V1.0.0.9$ sudo make install
[sudo] password for js:
cp mcs9865.ko mcs9865-isa.ko /lib/modules/2.6.27-17-generic/kernel/drivers/serial/
depmod -A
chmod +x mcs9865
cp mcs9865 /etc/init.d/
ln -s /etc/init.d/mcs9865 /etc/rc.d/rc3.d/Smcs9865 || true
ln: creating symbolic link `/etc/rc.d/rc3.d/Smcs9865': No such file or directory
ln -s /etc/init.d/mcs9865 /etc/rc.d/rc5.d/Smcs9865 || true
ln: creating symbolic link `/etc/rc.d/rc5.d/Smcs9865': No such file or directory
modprobe mcs9865
modprobe mcs9865-isa
js@higgins:~/MCS9865_V1.0.0.9$
Does anyone know what this means or how to get rid of it?
"warning: comparison of distinct pointer types lacks a cast"

John

Last edited by threedogs; 02-21-2011 at 05:27 PM.
 
Old 03-13-2011, 01:40 PM   #29
threedogs
LQ Newbie
 
Registered: Feb 2011
Posts: 4

Rep: Reputation: 0
This card is working now for Debian (Ubuntu, Kubuntu). Here is the procedure:

1. download MCS9865_V1.0.0.11. driver from MOSCHIP and extract
2. open terminal and change to the newly created directory
3. "make" (no sudo required)
4. copy mcs9865.ko and mcs9865-isa.ko to /lib/modules/pick-your-kernel-version/kernel/drivers/serial
5. edit /etc/modules and add a line "mcs9865"
6. "depmod -a"
7. reboot

The only warning "comparison of distinct pointer types lacks a cast" during make but that is not a show stopper.
 
Old 04-20-2011, 04:27 PM   #30
chadwick
Member
 
Registered: Apr 2005
Location: At the 100th Meridian where the great plains begin
Distribution: Debian Testing on T60 laptop
Posts: 105

Original Poster
Rep: Reputation: 17
I did get all ports on both of my cards to work so I thought I'd mention that. I followed GrapefruiTgirl's instructions and it was pretty easy. Thanks GrapefruiTgirl for your help. My kernel is 2.6.25-14.fc9.i686 (it's no longer a Debian one as stated in a previous post) and I'm using legacy grub (GNU GRUB 0.97). Note this is quite an old kernel and an old version of grub. I just needed to include 8250.nr_uarts=8 in my kernel boot line. Note that nr_uarts=8 doesn't seem to work.

So it's just a matter of telling the kernel at boot time how many serial ports to allow for, and then in my case I now have the following serial port devices working: /dev/ttyD0, /dev/ttyD1, /dev/ttyD2, /dev/ttyD3, /dev/ttyS0, /dev/ttyS1, /dev/ttyS2, /dev/ttyS3, /dev/ttyS4, /dev/ttyS5, /dev/ttyS6, /dev/ttyS7. It's interesting you only need to specify 8250.nr_uarts=8 for these cards even though there are actually 12 ports in total that are created. I'm thinking perhaps the driver takes care of the remaining 4 by creating the /dev/ttyD[1-4] devices.

Last edited by chadwick; 04-20-2011 at 04:29 PM.
 
  


Reply

Tags
netmos


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
NetMOS PCI 9835 Dual Serial Card Problem mrgadgetnz Linux - Hardware 0 02-20-2009 04:04 PM
kernel headers & /lib/modules/uname -r/build fof3 Linux - Newbie 4 12-16-2008 02:58 PM
Netmos 9835 PCI Serial I/O Addon and HIGH CPU USAGE yunias Linux - Hardware 0 10-18-2005 03:33 AM
NetMos 9835 serial port card Asad Linux - Hardware 1 03-26-2005 01:26 AM
modprobe cant find modules but they are in /lib/modules/'uname blanny Linux - General 15 09-10-2003 11:05 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware

All times are GMT -5. The time now is 02:51 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration