lsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget=/translations/zh_CN/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/zh_TW/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/it_IT/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ja_JP/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/ko_KR/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget=/translations/sp_SP/networking/device_drivers/hamradio/baycommodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhW/var/lib/git/docbuild/linux/Documentation/networking/device_drivers/hamradio/baycom.rsthKubhsection)}(hhh](htitle)}(hLinux Drivers for Baycom Modemsh]hLinux Drivers for Baycom Modems}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(h7Thomas M. Sailer, HB9JNX/AE4WA, h](h!Thomas M. Sailer, HB9JNX/AE4WA, <}(hhhhhNhNubh reference)}(hsailer@ife.ee.ethz.chh]hsailer@ife.ee.ethz.ch}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:sailer@ife.ee.ethz.chuh1hhhubh>}(hhhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe drivers for the baycom modems have been split into separate drivers as they did not share any code, and the driver and device names have changed.h]hThe drivers for the baycom modems have been split into separate drivers as they did not share any code, and the driver and device names have changed.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(h^This document describes the Linux Kernel Drivers for simple Baycom style amateur radio modems.h]h^This document describes the Linux Kernel Drivers for simple Baycom style amateur radio modems.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hhh](h)}(h$The following drivers are available:h]h$The following drivers are available:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubhdefinition_list)}(hhh](hdefinition_list_item)}(hXbaycom_ser_fdx: This driver supports the SER12 modems either full or half duplex. Its baud rate may be changed via the ``baud`` module parameter, therefore it supports just about every bit bang modem on a serial port. Its devices are called bcsf0 through bcsf3. This is the recommended driver for SER12 type modems, however if you have a broken UART clone that does not have working delta status bits, you may try baycom_ser_hdx. h](hterm)}(hbaycom_ser_fdx:h]hbaycom_ser_fdx:}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhKhj#ubh definition)}(hhh]h)}(hXThis driver supports the SER12 modems either full or half duplex. Its baud rate may be changed via the ``baud`` module parameter, therefore it supports just about every bit bang modem on a serial port. Its devices are called bcsf0 through bcsf3. This is the recommended driver for SER12 type modems, however if you have a broken UART clone that does not have working delta status bits, you may try baycom_ser_hdx.h](hgThis driver supports the SER12 modems either full or half duplex. Its baud rate may be changed via the }(hj<hhhNhNubhliteral)}(h``baud``h]hbaud}(hjFhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhj<ubhX. module parameter, therefore it supports just about every bit bang modem on a serial port. Its devices are called bcsf0 through bcsf3. This is the recommended driver for SER12 type modems, however if you have a broken UART clone that does not have working delta status bits, you may try baycom_ser_hdx.}(hj<hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj9ubah}(h]h ]h"]h$]h&]uh1j7hj#ubeh}(h]h ]h"]h$]h&]uh1j!hhhKhjubj")}(hbaycom_ser_hdx: This is an alternative driver for SER12 type modems. It only supports half duplex, and only 1200 baud. Its devices are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx does not work with your UART. h](j()}(hbaycom_ser_hdx:h]hbaycom_ser_hdx:}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK hjjubj8)}(hhh]h)}(hThis is an alternative driver for SER12 type modems. It only supports half duplex, and only 1200 baud. Its devices are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx does not work with your UART.h]hThis is an alternative driver for SER12 type modems. It only supports half duplex, and only 1200 baud. Its devices are called bcsh0 through bcsh3. Use this driver only if baycom_ser_fdx does not work with your UART.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj|ubah}(h]h ]h"]h$]h&]uh1j7hjjubeh}(h]h ]h"]h$]h&]uh1j!hhhK hjhhubj")}(hhbaycom_par: This driver supports the par96 and picpar modems. Its devices are called bcp0 through bcp3. h](j()}(h baycom_par:h]h baycom_par:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK$hjubj8)}(hhh]h)}(h[This driver supports the par96 and picpar modems. Its devices are called bcp0 through bcp3.h]h[This driver supports the par96 and picpar modems. Its devices are called bcp0 through bcp3.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK#hjubah}(h]h ]h"]h$]h&]uh1j7hjubeh}(h]h ]h"]h$]h&]uh1j!hhhK$hjhhubj")}(h{baycom_epp: This driver supports the EPP modem. Its devices are called bce0 through bce3. This driver is work-in-progress. h](j()}(h baycom_epp:h]h baycom_epp:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j'hhhK)hjubj8)}(hhh]h)}(hnThis driver supports the EPP modem. Its devices are called bce0 through bce3. This driver is work-in-progress.h]hnThis driver supports the EPP modem. Its devices are called bce0 through bce3. This driver is work-in-progress.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1j7hjubeh}(h]h ]h"]h$]h&]uh1j!hhhK)hjhhubeh}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(h#The following modems are supported:h]h#The following modems are supported:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hj hhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKHuh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hser12h]hser12}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hj7ubah}(h]h ]h"]h$]h&]uh1j5hj2ubj6)}(hhh]h)}(hXThis is a very simple 1200 baud AFSK modem. The modem consists only of a modulator/demodulator chip, usually a TI TCM3105. The computer is responsible for regenerating the receiver bit clock, as well as for handling the HDLC protocol. The modem connects to a serial port, hence the name. Since the serial port is not used as an async serial port, the kernel driver for serial ports cannot be used, and this driver only supports standard serial hardware (8250, 16450, 16550)h]hXThis is a very simple 1200 baud AFSK modem. The modem consists only of a modulator/demodulator chip, usually a TI TCM3105. The computer is responsible for regenerating the receiver bit clock, as well as for handling the HDLC protocol. The modem connects to a serial port, hence the name. Since the serial port is not used as an async serial port, the kernel driver for serial ports cannot be used, and this driver only supports standard serial hardware (8250, 16450, 16550)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK.hjNubah}(h]h ]h"]h$]h&]uh1j5hj2ubeh}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(hhh](j6)}(hhh]h)}(hpar96h]hpar96}(hjqhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjnubah}(h]h ]h"]h$]h&]uh1j5hjkubj6)}(hhh]h)}(hXThis is a modem for 9600 baud FSK compatible to the G3RUH standard. The modem does all the filtering and regenerates the receiver clock. Data is transferred from and to the PC via a shift register. The shift register is filled with 16 bits and an interrupt is signalled. The PC then empties the shift register in a burst. This modem connects to the parallel port, hence the name. The modem leaves the implementation of the HDLC protocol and the scrambler polynomial to the PC.h]hXThis is a modem for 9600 baud FSK compatible to the G3RUH standard. The modem does all the filtering and regenerates the receiver clock. Data is transferred from and to the PC via a shift register. The shift register is filled with 16 bits and an interrupt is signalled. The PC then empties the shift register in a burst. This modem connects to the parallel port, hence the name. The modem leaves the implementation of the HDLC protocol and the scrambler polynomial to the PC.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK6hjubah}(h]h ]h"]h$]h&]uh1j5hjkubeh}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(hhh](j6)}(hhh]h)}(hpicparh]hpicpar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjubah}(h]h ]h"]h$]h&]uh1j5hjubj6)}(hhh]h)}(hX$This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem is protocol compatible to par96, but uses only three low power ICs and can therefore be fed from the parallel port and does not require an additional power supply. Furthermore, it incorporates a carrier detect circuitry.h]hX$This is a redesign of the par96 modem by Henning Rech, DF9IC. The modem is protocol compatible to par96, but uses only three low power ICs and can therefore be fed from the parallel port and does not require an additional power supply. Furthermore, it incorporates a carrier detect circuitry.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK?hjubah}(h]h ]h"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(hhh](j6)}(hhh]h)}(hEPPh]hEPP}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjubah}(h]h ]h"]h$]h&]uh1j5hjubj6)}(hhh](h)}(hNThis is a high-speed modem adaptor that connects to an enhanced parallel port.h]hNThis is a high-speed modem adaptor that connects to an enhanced parallel port.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhjubh)}(hHIts target audience is users working over a high speed hub (76.8kbit/s).h]hHIts target audience is users working over a high speed hub (76.8kbit/s).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjubeh}(h]h ]h"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]uh1j0hj-ubj1)}(hhh](j6)}(hhh]h)}(heppfpgah]heppfpga}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj!ubah}(h]h ]h"]h$]h&]uh1j5hjubj6)}(hhh]h)}(h&This is a redesign of the EPP adaptor.h]h&This is a redesign of the EPP adaptor.}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj8ubah}(h]h ]h"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]uh1j0hj-ubeh}(h]h ]h"]h$]h&]uh1j+hjubeh}(h]h ]h"]h$]h&]colsKuh1jhj ubah}(h]h ]h"]h$]h&]uh1j hj hhhhhNubh)}(hXAll of the above modems only support half duplex communications. However, the driver supports the KISS (see below) fullduplex command. It then simply starts to send as soon as there's a packet to transmit and does not care about DCD, i.e. it starts to send even if there's someone else on the channel. This command is required by some implementations of the DAMA channel access protocol.h]hXAll of the above modems only support half duplex communications. However, the driver supports the KISS (see below) fullduplex command. It then simply starts to send as soon as there’s a packet to transmit and does not care about DCD, i.e. it starts to send even if there’s someone else on the channel. This command is required by some implementations of the DAMA channel access protocol.}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj hhubeh}(h]#the-following-drivers-are-availableah ]h"]$the following drivers are available:ah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hThe Interface of the driversh]hThe Interface of the drivers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj~hhhhhKVubh)}(hXMUnlike previous drivers, these drivers are no longer character devices, but they are now true kernel network interfaces. Installation is therefore simple. Once installed, four interfaces named bc{sf,sh,p,e}[0-3] are available. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There's also a patch available from me for WAMPES which allows attaching a kernel network interface directly.h]hXOUnlike previous drivers, these drivers are no longer character devices, but they are now true kernel network interfaces. Installation is therefore simple. Once installed, four interfaces named bc{sf,sh,p,e}[0-3] are available. sethdlc from the ax25 utilities may be used to set driver states etc. Users of userland AX.25 stacks may use the net2kiss utility (also available in the ax25 utilities package) to convert packets of a network interface to a KISS stream on a pseudo tty. There’s also a patch available from me for WAMPES which allows attaching a kernel network interface directly.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhj~hhubeh}(h]the-interface-of-the-driversah ]h"]the interface of the driversah$]h&]uh1hhhhhhhhKVubh)}(hhh](h)}(hConfiguring the driverh]hConfiguring the driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKcubh)}(hX9Every time a driver is inserted into the kernel, it has to know which modems it should access at which ports. This can be done with the setbaycom utility. If you are only using one modem, you can also configure the driver from the insmod command line (or by means of an option line in ``/etc/modprobe.d/*.conf``).h](hXEvery time a driver is inserted into the kernel, it has to know which modems it should access at which ports. This can be done with the setbaycom utility. If you are only using one modem, you can also configure the driver from the insmod command line (or by means of an option line in }(hjhhhNhNubjE)}(h``/etc/modprobe.d/*.conf``h]h/etc/modprobe.d/*.conf}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jDhjubh).}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKehjhhubh)}(h Examples::h]h Examples:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjhhubh literal_block)}(himodprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4h]himodprobe baycom_ser_fdx mode="ser12*" iobase=0x3f8 irq=4 sethdlc -i bcsf0 -p mode "ser12*" io 0x3f8 irq 4}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKmhjhhubh)}(hBoth lines configure the first port to drive a ser12 modem at the first serial port (COM1 under DOS). The * in the mode parameter instructs the driver to use the software DCD algorithm (see below)::h]hBoth lines configure the first port to drive a ser12 modem at the first serial port (COM1 under DOS). The * in the mode parameter instructs the driver to use the software DCD algorithm (see below):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjhhubj)}(hVinsmod baycom_par mode="picpar" iobase=0x378 sethdlc -i bcp0 -p mode "picpar" io 0x378h]hVinsmod baycom_par mode="picpar" iobase=0x378 sethdlc -i bcp0 -p mode "picpar" io 0x378}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKthjhhubh)}(hBoth lines configure the first port to drive a picpar modem at the first parallel port (LPT1 under DOS). (Note: picpar implies hardware DCD, par96 implies software DCD).h]hBoth lines configure the first port to drive a picpar modem at the first parallel port (LPT1 under DOS). (Note: picpar implies hardware DCD, par96 implies software DCD).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhjhhubh)}(hThe channel access parameters can be set with sethdlc -a or kissparms. Note that both utilities interpret the values slightly differently.h]hThe channel access parameters can be set with sethdlc -a or kissparms. Note that both utilities interpret the values slightly differently.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjhhubeh}(h]configuring-the-driverah ]h"]configuring the driverah$]h&]uh1hhhhhhhhKcubh)}(hhh](h)}(h Hardware DCD versus Software DCDh]h Hardware DCD versus Software DCD}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj4hhhhhKubh)}(hTo avoid collisions on the air, the driver must know when the channel is busy. This is the task of the DCD circuitry/software. The driver may either utilise a software DCD algorithm (options=1) or use a DCD signal from the hardware (options=0).h]hTo avoid collisions on the air, the driver must know when the channel is busy. This is the task of the DCD circuitry/software. The driver may either utilise a software DCD algorithm (options=1) or use a DCD signal from the hardware (options=0).}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4hhubj )}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjVubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKAuh1jhjVubj,)}(hhh](j1)}(hhh](j6)}(hhh]h)}(hser12h]hser12}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjsubah}(h]h ]h"]h$]h&]uh1j5hjpubj6)}(hhh]h)}(hif software DCD is utilised, the radio's squelch should always be open. It is highly recommended to use the software DCD algorithm, as it is much faster than most hardware squelch circuitry. The disadvantage is a slightly higher load on the system.h]hif software DCD is utilised, the radio’s squelch should always be open. It is highly recommended to use the software DCD algorithm, as it is much faster than most hardware squelch circuitry. The disadvantage is a slightly higher load on the system.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j5hjpubeh}(h]h ]h"]h$]h&]uh1j0hjmubj1)}(hhh](j6)}(hhh]h)}(hpar96h]hpar96}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j5hjubj6)}(hhh]h)}(hX"the software DCD algorithm for this type of modem is rather poor. The modem simply does not provide enough information to implement a reasonable DCD algorithm in software. Therefore, if your radio feeds the DCD input of the PAR96 modem, the use of the hardware DCD circuitry is recommended.h]hX"the software DCD algorithm for this type of modem is rather poor. The modem simply does not provide enough information to implement a reasonable DCD algorithm in software. Therefore, if your radio feeds the DCD input of the PAR96 modem, the use of the hardware DCD circuitry is recommended.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]uh1j0hjmubj1)}(hhh](j6)}(hhh]h)}(hpicparh]hpicpar}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j5hjubj6)}(hhh]h)}(hNthe picpar modem features a builtin DCD hardware, which is highly recommended.h]hNthe picpar modem features a builtin DCD hardware, which is highly recommended.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1j5hjubeh}(h]h ]h"]h$]h&]uh1j0hjmubeh}(h]h ]h"]h$]h&]uh1j+hjVubeh}(h]h ]h"]h$]h&]colsKuh1jhjSubah}(h]h ]h"]h$]h&]uh1j hj4hhhhhNubeh}(h] hardware-dcd-versus-software-dcdah ]h"] hardware dcd versus software dcdah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h/Compatibility with the rest of the Linux kernelh]h/Compatibility with the rest of the Linux kernel}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj0hhhhhKubh)}(hXThe serial driver and the baycom serial drivers compete for the same hardware resources. Of course only one driver can access a given interface at a time. The serial driver grabs all interfaces it can find at startup time. Therefore the baycom drivers subsequently won't be able to access a serial port. You might therefore find it necessary to release a port owned by the serial driver with 'setserial /dev/ttyS# uart none', where # is the number of the interface. The baycom drivers do not reserve any ports at startup, unless one is specified on the 'insmod' command line. Another method to solve the problem is to compile all drivers as modules and leave it to kmod to load the correct driver depending on the application.h]hXThe serial driver and the baycom serial drivers compete for the same hardware resources. Of course only one driver can access a given interface at a time. The serial driver grabs all interfaces it can find at startup time. Therefore the baycom drivers subsequently won’t be able to access a serial port. You might therefore find it necessary to release a port owned by the serial driver with ‘setserial /dev/ttyS# uart none’, where # is the number of the interface. The baycom drivers do not reserve any ports at startup, unless one is specified on the ‘insmod’ command line. Another method to solve the problem is to compile all drivers as modules and leave it to kmod to load the correct driver depending on the application.}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0hhubh)}(hThe parallel port drivers (baycom_par, baycom_epp) now use the parport subsystem to arbitrate the ports between different client drivers.h]hThe parallel port drivers (baycom_par, baycom_epp) now use the parport subsystem to arbitrate the ports between different client drivers.}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0hhubh)}(h vy 73s deh]h vy 73s de}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0hhubh)}(h!Tom Sailer, sailer@ife.ee.ethz.chh](h Tom Sailer, }(hjkhhhNhNubh)}(hsailer@ife.ee.ethz.chh]hsailer@ife.ee.ethz.ch}(hjshhhNhNubah}(h]h ]h"]h$]h&]refurimailto:sailer@ife.ee.ethz.chuh1hhjkubeh}(h]h ]h"]h$]h&]uh1hhhhKhj0hhubh)}(hhb9jnx @ hb9w.ampr.orgh]hhb9jnx @ hb9w.ampr.org}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj0hhubeh}(h]/compatibility-with-the-rest-of-the-linux-kernelah ]h"]/compatibility with the rest of the linux kernelah$]h&]uh1hhhhhhhhKubeh}(h]linux-drivers-for-baycom-modemsah ]h"]linux drivers for baycom modemsah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksj5footnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjj{jxjjj1j.j-j*jju nametypes}(jj{jj1j-juh}(jhjxj jj~j.jj*j4jj0u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.