From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Tsutsumi Family" Subject: RE: 300bps soundmodem notes and Broken Pipe Date: Wed, 2 Mar 2011 15:22:01 +0900 Message-ID: <000001cbd8a2$263992c0$72acb840$@ne.jp> References: <4D0138AF.5060008@free.fr> Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4D0138AF.5060008@free.fr> Content-Language: ja Sender: linux-hams-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" To: 'f6bvp' , 'linux-hams' Cc: 'Bernard Pidoux' Hi, Bernard It has been a long time before responding your mail and suggestion. Sorry. Now, Spring is now at the corner and I wish to check the effectiveness of your suggestion and typed the I-gate laptop keyboard located in the cold room facing to north in my home. My answer to you is "yes" and the soundmodem starts sending 1,200bps beacon signals and they are properly received at neighbored stations. According to the net search results, your suggested method is the common and generic fix to the broken pipe or EPIPE errors but I do not know the exact reason why ALSA returns this error message in soundmodem case. Anyway, thank you for providing me the excellent suggestion. Regards, take de JA5AEA -----Original Message----- From: linux-hams-owner@vger.kernel.org [mailto:linux-hams-owner@vger.kernel.org] On Behalf Of f6bvp Sent: Friday, December 10, 2010 5:15 AM To: oakie@kamakuranet.ne.jp; linux-hams Cc: Bernard Pidoux Subject: RE: 300bps soundmodem notes and Broken Pipe Hi, A SIGPIPE signal is generated by Linux kernel when a frame cannot be sent to destination for the connexion has timed out (broken or closed). This signal is received by the program, here xmodem. If the program does not handle this signal it may fall down. This is why there is a possibility to declare that a specific signal, say SIGPIPE, must be ignored. This is the purpose of line signal (SIGPIPE, SIG_IGN); that you may include at the beginning of the main program in the file containing main() Look at the beginning of the file and localize a number of #include lines like : #include You should add there the following line : #include Then, you should add the signal line at the beginning of the main program somewhere after variable declarations. For example : main(int argc, char *argv[]) { in c; char *tab; signal (SIGPIPE, SIG_IGN); ... If you want you can send me privately a copy of the first 50 lines of main() function code. I will help you doing the patch. After saving the file you can compile xmodem and tell us if it works. 73 de Bernard, f6bvp -----Original Message----- Hello Bernard, Thank you for picking up my question about "Broken pipe" issue and sending your suggestion. Please be patient for a while as I am not any computer language programmer at all. I read the source file of soundmodem and I believe the error message comes from the second logprintf statement (line 368) in alsaio.c program. ---------------------------alsaio.c-------------------------------- static inline void iotxstart(struct audioio_unix *audioio) { int err; if (snd_pcm_prepare(audioio->playback_handle) < 0) { logprintf(MLOG_ERROR, "Error preparing tx.\n"); } err = snd_pcm_start(audioio->playback_handle); if (err < 0) logprintf(MLOG_ERROR, "snd_pcm_start in iotxstart: %s", snd_strerror(err)); } ------------------------------------------------------------------- Can you explain me the following questions concerning your suggestion? 1. Are you suggesting adding additional three lines in alsaio.c program? If yes, which exact lines should I add? 2. What is the purpose and expected result of signal (SIGPIPE, SIG_IGN) addition? I am waiting your response soon. Regards, take -- To unsubscribe from this list: send the line "unsubscribe linux-hams" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html