Introduction ------------ I am not very experienced with Linux nor do I wish to become more experienced. I only want to learn enough to deal with any issues affecting roZetta. According to Wikipedia there are over 600 Linux distributions and DistroWatch.com says there are 2000+ versions of Linux & BSD so this is neither simple nor encouraging, especially for a geezer in his late 60s with major health issues. http://en.wikipedia.org/wiki/List_of_Linux_distributions http://distrowatch.com/ The expectation is that Linux users will be far more adept than I at solving various problems related to the OS. I have tested under Ubuntu 9.04, Kubuntu 9.04, Fedora 11, Debian 5.0, Mandriva Sping 2009 (KDE & Gnome) and Linux Mint 7. I have tried OpenSUSE 11.1 and PCLinuxOS 2009.2 but could not get them to work with either of my Dell desktop PCs. Gentoo LiveCD runs but I cannot access a USB brive to run roZetta. CentOS LiveCD runs but roZetta will not run. I do not know whether it's a dependency issue or something else. FreeBSD and Slackware look like too much effort to install just to test roZetta. I am willing to test roZetta on any distribution that will run on my machines using a LiveCD provided by users. OSDisc.com has LiveCDs for many distributions for about $2 each. Under a LiveCD version, I cannot test support for serial ports beyond the default four supported by the kernel. I have used default fonts throughout (except for a few cases where a monospaced font was necessary). The biggest problem is that there is no standardized way that distributions handle the default fonts and the related issues of button (and other widget) shapes and sizes. For cases where I cannot get a LiveCD to run on my hardware, if you send me a screenshot illustrating a problem, I will try to address it. You may be able to address these issues yourself, using the trial version of Purebasic then sending me your revised code snippets or you can buy Purebasic for $99 and recompile the source with your own preferences. I will release the source once it is reasonably stable. Multiport serial boards ----------------------- The kernel only supports 4 hardware serial ports. If you have a multiport board, you can quickly exceed this limit. Adding... 8250.nr_uarts=xx to the kernel command line will increase the number of ports supported. On some distributions, xx needs to be the actual total of hardware UARTs (excluding USB-serial adapters and TCP/IP-serial ports) while on others, xx can exceed the total. The safest route is to use the actual number. There are some distributions where this command line parameter will not work (e.g. Mandriva). There are methods for increasing the number of ports by recompiling the kernel but this is well above my paygrade. See... http://www.linux.org/docs/ldp/howto/Serial-HOWTO.html Serial Port Permissions ----------------------- Fedora is the only distribution I've found that needed this - YMMV. As root: # usermod -G dialout dave The user dave will need to log out and back in to get the new group permission which will persist thereafter. The group name may be something other than dialout. Use: $ ls -l /dev/ttyS0 (/dev/ttyS0 must be a valid port) which will give something like... crw-rw---- 1 root group_name 4, 64 Jan 23 23:38 /dev/ttyS0 where the group_name after root is what you need. Enumerating Serial Ports ------------------------ roZetta attempts to enumerate all of the available serial ports detected by the kernel. However, there is no standardization on how various hardware is reported, making this difficult. If roZetta encounters a serial port related dmesg line it cannot parse, it will signal this by listing the line in a popup dialog. If you report these instances and send me the tty.txt file created by roZetta, I can improve the enumeration procedure. USB-serial ports can be ephemeral. For example, if you have /dev/ttyUSB0 & /dev/ttyUSB1 and remove /dev/ttyUSB0, on the next boot, /dev/ttyUSB1 will become /dev/ttyUSB0. The user can override the automatic serial port enumeration by editing the ports key in the user.prf file. [user] months = Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec ;used in log filenames xtd = iPLC psd = uPLC wait = 250 ;wait (ms) for ACK/NAK when downloading firmware ; ports = /dev/ttyUSB0,/dev/ttyUSB1 Remove the semicolon to uncomment 'ports =' and edit the device list to reflect your system. Virtual serial ports used with TCP/IP-serial adapters may use different terminology than ttySxx, install to directorys other than /dev/ and require recompiling the kernel. Tibbo is one example. roZetta makes no attempt to enumerate them.