http://tucnak.nagano.cz/wiki/index.php?title=FR_CW_tips&feed=atom&action=historyFR CW tips - Revision history2024-03-28T16:47:20ZRevision history for this page on the wikiMediaWiki 1.30.2http://tucnak.nagano.cz/wiki/index.php?title=FR_CW_tips&diff=393&oldid=prevF0FLO: /* Start-up without root privileges */2008-03-27T22:14:06Z<p><span dir="auto"><span class="autocomment">Start-up without root privileges</span></span></p>
<table class="diff diff-contentalign-left" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr style="vertical-align: top;" lang="en">
<td colspan="2" style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan="2" style="background-color: white; color:black; text-align: center;">Revision as of 22:14, 27 March 2008</td>
</tr><tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l29" >Line 29:</td>
<td colspan="2" class="diff-lineno">Line 29:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>My Slackware package of the best cwdaemon ever issued is [http://www.ok1rr.com/download.php?soubor=146 here].</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>My Slackware package of the best cwdaemon ever issued is [http://www.ok1rr.com/download.php?soubor=146 here].</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>=<del class="diffchange diffchange-inline">Start-up without root privileges</del>=</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>=<ins class="diffchange diffchange-inline">Démarrer sans les privilèges administrateur</ins>=</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">There is no need to start the </del>cwdaemon <del class="diffchange diffchange-inline">separately with root privileges</del>. <del class="diffchange diffchange-inline">Put a little addition to your start-up </del>script <del class="diffchange diffchange-inline">and </del>cwdaemon <del class="diffchange diffchange-inline">will start without any keystroke</del>. <del class="diffchange diffchange-inline">It is a good </del>solution <del class="diffchange diffchange-inline">for a ham radio </del>machine, <del class="diffchange diffchange-inline">however you may have some problems if you want to evaluate your parallel </del>port <del class="diffchange diffchange-inline">for printing or other purposes</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Il y a nul besoin de démarrer séparément </ins>cwdaemon <ins class="diffchange diffchange-inline">avec les privilèges administrateur</ins>. <ins class="diffchange diffchange-inline">Il suffit d'ajouter quelques caractères dans votre </ins>script <ins class="diffchange diffchange-inline">de démarrage et </ins>cwdaemon <ins class="diffchange diffchange-inline">se lancera sans aucune commande particulière</ins>. <ins class="diffchange diffchange-inline">C'est une bonne </ins>solution <ins class="diffchange diffchange-inline">pour une </ins>machine <ins class="diffchange diffchange-inline">radioamateur</ins>, <ins class="diffchange diffchange-inline">mais cependant vous pourriez être confronté à quelques soucis lors de l'utilisation de votre </ins>port <ins class="diffchange diffchange-inline">parallèle pour l'impression ou dans d'autres buts</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">I added two simple blocks to the </del>/etc/rc.d/rc.local <del class="diffchange diffchange-inline">which applies to </del>Slackware GNU/Linux, <del class="diffchange diffchange-inline">however your preferred </del>distribution <del class="diffchange diffchange-inline">may use another name and location</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">J'ai ajouté simplement quelques blocs de texte à </ins>/etc/rc.d/rc.local <ins class="diffchange diffchange-inline">qui s'applique à la distribution </ins>Slackware GNU/Linux, <ins class="diffchange diffchange-inline">cependant, le chemin et le nom peuvent être différents pour votre </ins>distribution.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">The first block is used to load </del>parport <del class="diffchange diffchange-inline">and </del>parport_pc <del class="diffchange diffchange-inline">modules whioch are essential to the </del>cwdaemon. <del class="diffchange diffchange-inline">The </del>second <del class="diffchange diffchange-inline">block actually loads the </del>cwdaemon. <del class="diffchange diffchange-inline">First</del>, <del class="diffchange diffchange-inline">it stops the </del>module <del class="diffchange diffchange-inline">which can occupy your parallel </del>port - <del class="diffchange diffchange-inline">here it was </del>cups. cwdaemon <del class="diffchange diffchange-inline">also won't work if </del>lp <del class="diffchange diffchange-inline">module is loaded</del>, <del class="diffchange diffchange-inline">so unload it if necessary</del>. <del class="diffchange diffchange-inline">Next</del>, <del class="diffchange diffchange-inline">a device node is created and </del>cwdaemon <del class="diffchange diffchange-inline">is loaded</del>.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Le premier bloc est utile pour lancer les modules </ins>parport <ins class="diffchange diffchange-inline">et </ins>parport_pc <ins class="diffchange diffchange-inline">qui sont essentiels au bon fonctionnement de </ins>cwdaemon. <ins class="diffchange diffchange-inline">Le </ins>second <ins class="diffchange diffchange-inline">bloc permet le lancement de </ins>cwdaemon. <ins class="diffchange diffchange-inline">Premièrement</ins>, <ins class="diffchange diffchange-inline">cela stoppe le </ins>module <ins class="diffchange diffchange-inline">qui peut déjà utiliser le </ins>port <ins class="diffchange diffchange-inline">parallèle </ins>- <ins class="diffchange diffchange-inline">là en l'occurence, c'était </ins>cups. cwdaemon <ins class="diffchange diffchange-inline">ne se lancera pas non plus sur le module </ins>lp <ins class="diffchange diffchange-inline">est lancé</ins>, <ins class="diffchange diffchange-inline">ainsi l'arrêt de ce dernier sera également nécessaire</ins>. <ins class="diffchange diffchange-inline">Ensuite</ins>, <ins class="diffchange diffchange-inline">un "noeud de dispositif" est créé et </ins>cwdaemon <ins class="diffchange diffchange-inline">se lance</ins>.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  #load parport, parport_pc</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  #load parport, parport_pc</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l49" >Line 49:</td>
<td colspan="2" class="diff-lineno">Line 49:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  /usr/local/sbin/cwdaemon -x n</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  /usr/local/sbin/cwdaemon -x n</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">Remember the </del>cwdaemon <del class="diffchange diffchange-inline">options</del>:</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Rappelez-vous des options de </ins>cwdaemon :</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  Usage: cwdaemon [option]...</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>  Usage: cwdaemon [option]...</div></td></tr>
<tr><td colspan="2" class="diff-lineno" id="mw-diff-left-l68" >Line 68:</td>
<td colspan="2" class="diff-lineno">Line 68:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><del class="diffchange diffchange-inline">Enjoy youy </del>cwdaemon!</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins class="diffchange diffchange-inline">Amusez-vous avec </ins>cwdaemon !</div></td></tr>
</table>F0FLOhttp://tucnak.nagano.cz/wiki/index.php?title=FR_CW_tips&diff=359&oldid=prevF0FLO: New page: ''Note de OK1ZIA : Tucnak2 n'utilise plus cwdaemon (le démon CW) mais des infos sur la configuration du noyau est possible sur Tucnak.'' (http://www.ok1rr.com/view.php?cisloclanku=200712...2008-03-13T10:57:51Z<p>New page: ''Note de OK1ZIA : Tucnak2 n'utilise plus cwdaemon (le démon CW) mais des infos sur la configuration du noyau est possible sur Tucnak.'' (http://www.ok1rr.com/view.php?cisloclanku=200712...</p>
<p><b>New page</b></p><div>''Note de OK1ZIA : Tucnak2 n'utilise plus cwdaemon (le démon CW) mais des infos sur la configuration du noyau est possible sur Tucnak.''<br />
<br />
(http://www.ok1rr.com/view.php?cisloclanku=2007122501)<br />
Publié le 25. 12. 2007 (vu 212 fois)<br />
<br />
Malgré l'existence de cwdaemon (grand merci à Joop. PG4I et les autres) plusieurs développeurs de logiciels sont tentés par l'utilisation de solutions matérielles, par exemple la WinKey de K1EL. C'est certainement un bon produit mais il n'existe pas de pilote utilisable sur Linux, excepté winkeydaemon de Rein, PA0R, qui est actuellement un script Perl et, malheureusement, je n'aime pas trop ce genre de gadget interprété.<br />
<br />
Actuellement, cwdaemon est un très bon logiciel qui fait du bon boulot si vous compilez votre propre noyau et vous n'avez pas besoin de le lancer séparément avce les privilèges administrateurs si vous avez des ajouts dans votre script de démarrage.<br />
<br />
<br />
=Son faible en CW=<br />
Sloppy CW from the cwdaemon it depends on kernel settings. I tested it thoroughly because I love CW at higher speeds. Latency of 1000 Hz helped a bit, I was able to run at usual contest speeds up to 36 wpm. Since kernel 2.6.23 the problem seems cured with tickless kernel. Here is an excerpt from my config:<br />
<br />
#<br />
# Processor type and features<br />
#<br />
CONFIG_TICK_ONESHOT=y<br />
CONFIG_NO_HZ=y<br />
CONFIG_HIGH_RES_TIMERS=y<br />
CONFIG_SMP=y<br />
CONFIG_X86_PC=y<br />
<br />
....<br />
<br />
Now I can go up to 60 wpm and the resulting CW is excellent, however I'm using cwdaemon 0.9.4beta1. Versions below 0.8 are actually useless, the worst CW I ever heard was produced by cwdaemon 0.5 and an unmodified kernel.<br />
<br />
The newest cwdaemon 0.9.4 depends on the unixcw version 2.3 (or above) which won't compile on my Slackware (and I was not patient enough to track all the dependencies), therefore not tested. Let me believe that the new dependency was a bad step back... I hope that new versions of cwdaemon will continue the way set by the 0.9.4beta1 version (source download [http://www.ok1rr.com/storage/cwdaemon-0.9.4beta1.tar.gz here]). Anyway, with this version of cwdaemon and custom made kernel 2.6.23 (actually I'm using now the latest 2.6.23.12) I am fully satisfied. I am convinced that any development of CW related software should be thoroughly consulted with high speed freaks, it is rather bad if a developer or tester means he did well if he is limited by 25 wpm...<br />
<br />
My Slackware package of the best cwdaemon ever issued is [http://www.ok1rr.com/download.php?soubor=146 here].<br />
<br />
=Start-up without root privileges=<br />
<br />
There is no need to start the cwdaemon separately with root privileges. Put a little addition to your start-up script and cwdaemon will start without any keystroke. It is a good solution for a ham radio machine, however you may have some problems if you want to evaluate your parallel port for printing or other purposes.<br />
<br />
I added two simple blocks to the /etc/rc.d/rc.local which applies to Slackware GNU/Linux, however your preferred distribution may use another name and location.<br />
<br />
The first block is used to load parport and parport_pc modules whioch are essential to the cwdaemon. The second block actually loads the cwdaemon. First, it stops the module which can occupy your parallel port - here it was cups. cwdaemon also won't work if lp module is loaded, so unload it if necessary. Next, a device node is created and cwdaemon is loaded.<br />
<br />
#load parport, parport_pc<br />
modprobe parport<br />
modprobe parport_pc<br />
<br />
# Load cwdaemon<br />
echo "starting cwdaemon"<br />
/etc/rc.d/rc.cups stop<br />
# rmmod lp<br />
cd /dev<br />
mknod -m 0660 parport0 c 99 0<br />
/usr/local/sbin/cwdaemon -x n<br />
<br />
Remember the cwdaemon options:<br />
<br />
Usage: cwdaemon [option]...<br />
-d Use a different device<br />
(e.g. ttyS0,1,2, parport0,1, etc. default = parport0)<br />
-h Display this help and exit<br />
-n Do not fork and print debug information to stdout<br />
-p Use a different UDP port number (> 1023, default = 6789)<br />
-P Set cwdaemon priority (-20 ... 20, default = 0)<br />
-s Set morse speed (4 ... 60 wpm, default = 24)<br />
-t Set PTT delay (0 ... 50 ms, default = 0)<br />
-v Set volume for soundcard output<br />
-V Output version information and exit<br />
-w Set weighting (-50 ... 50, default = 0)<br />
-x Use a different sound device<br />
(c = console (default), s = soundcard, b = both, n = none)<br />
<br />
I find useful to start the cwdaemon without any sidetone, it seems much better to use the sidetone of your radio rather than the PC speaker.<br />
<br />
Enjoy youy cwdaemon!</div>F0FLO