6. 配置 AX.25 端口

每个 AX.25 应用程序都会读取特定的配置文件,以获取在您的 Linux 机器上配置的各种 AX.25 端口的参数。对于 AX.25 端口,读取的文件是/etc/ax25/axports文件。对于您系统上要使用的每个 AX.25 端口,您都必须在此文件中有一个条目。

6.1. 创建 AX.25 网络设备

网络设备是您使用 `ifconfig' 命令时列出的内容。这是 Linux 内核发送和接收网络数据的对象。几乎总是网络设备都与物理端口关联,但在某些情况下,这不是必需的。网络设备确实直接关联到设备驱动程序。

在 Linux AX.25 代码中,有许多设备驱动程序。最常见的可能是 KISS 驱动程序,但其他驱动程序包括 SCC 驱动程序、Baycom 驱动程序和 Soundmodem 驱动程序。

这些设备驱动程序中的每一个都将在启动时创建一个网络设备。

6.1.1. 创建 KISS 设备

内核编译选项:
Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    <*> Serial port KISS driver
    ...

最常见的配置可能是用于串行端口上的 KISS TNC。您需要预先配置 TNC 并将其连接到您的串行端口。您可以使用诸如 minicomseyon 之类的通信程序将 TNC 配置为 KISS 模式。

要创建 KISS 设备,您可以使用 kissattach 程序。在其最简单的形式中,您可以按如下方式使用 kissattach 程序

# /usr/sbin/kissattach /dev/ttyS0 radio 44.135.96.242
# kissparms -p radio -t 100 -s 100 -r 25

kissattach 命令将创建一个 KISS 网络设备。这些设备被称为 `ax[0-9]'。您第一次使用 kissattach 命令时,它会创建 `ax0',第二次它会创建 `ax1' 等。每个 KISS 设备都有一个关联的串行端口。

kissparms 命令允许您在 KISS 设备上设置各种 KISS 参数。

具体而言,所提供的示例将使用串行设备 `/dev/ttyS0' 和来自/etc/ax25/axports的条目创建一个 KISS 网络设备,端口名称为 `radio'。然后,它将其配置为 txdelayslottime 为 100 毫秒,ppersist 值为 25。

请参阅 man 页面以获取更多信息。

6.1.1.1. 配置双端口 TNC

ax25-utils 发行版中包含的 mkiss 实用程序允许您使用双端口 TNC 上的两个调制解调器。配置相当简单。它的工作原理是,获取连接到单个多端口 TNC 的单个串行设备,并使其看起来像多个设备,每个设备都连接到单个端口 TNC。您在执行任何 AX.25 配置之前执行此操作。然后您在其上执行 AX.25 配置的设备是伪 TTY 接口 (/dev/ttyq*),而不是实际的串行设备。伪 TTY 设备创建一种管道,通过该管道,设计为与 tty 设备通信的程序可以与设计为与 tty 设备通信的其他程序通信。每个管道都有一个主端和一个从端。主端通常称为 `/dev/ptyq*',从端称为 `/dev/ttyq*'. 主端和从端之间存在一对一的关系,因此/dev/ptyq0是管道的主端,而/dev/ttyq0是其从端。您必须先打开管道的主端,然后才能打开从端。mkiss 利用此机制将单个串行设备拆分为单独的设备。

示例:如果您有一个双端口 TNC,并且它以 9600 bps 的速度连接到您的/dev/ttyS0串行设备,则命令

# /usr/sbin/mkiss -s 9600 /dev/ttyS0 /dev/ptyq0 /dev/ptyq1
# /usr/sbin/kissattach /dev/ttyq0 port1 44.135.96.242
# /usr/sbin/kissattach /dev/ttyq1 port2 44.135.96.242

将创建两个伪 tty 设备,每个设备都看起来像一个普通的单端口 TNC。然后您可以将/dev/ttyq0/dev/ttyq1就像对待连接了 TNC 的传统串行设备一样对待。这意味着您将像上面描述的那样,在每个设备上使用 kissattach 命令,在 AX.25 端口的示例中称为port1port2。您不应在实际串行设备上使用 kissattach,因为 mkiss 程序会使用它。

mkiss 命令有许多可选参数,您可能希望使用它们。它们总结如下

-c

启用向每个 KISS 帧添加一个字节的校验和。大多数 KISS 实现不支持此功能,但 G8BPG KISS ROM 支持。

-s <speed>

设置串行端口的速度。

-h

启用串行端口上的硬件握手,默认情况下它是关闭的。大多数 KISS 实现不支持此功能,但有些支持。

-l

启用将信息记录到 syslog 日志文件中。

6.1.2. 创建 6PACK 设备

内核编译选项:
Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <*> Serial port 6PACK driver
    ...

6PACK 是一种协议,某些 TNC 支持它作为 KISS 的替代方案。它的使用方式与 KISS 驱动程序类似,使用slattach命令而不是kissattach.

内核源代码中包含一个关于 6PACK 驱动程序的迷你 HOWTO,文件为/usr/src/linux/Documentation/networking/6pack.txt.

6.1.3. 创建 Baycom 设备

内核编译选项:
Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <?> BAYCOM ser12 fullduplex driver for AX.25
    <?> BAYCOM ser12 halfduplex driver for AX.25
    <?> BAYCOM picpar and par96 driver for AX.25
    <?> BAYCOM epp driver for AX.25
    ...

Thomas Sailer,尽管人们普遍认为它不会很好地工作,但他开发了对 Baycom 调制解调器的 Linux 支持。他的驱动程序支持Ser12串行端口,Par96和增强的PicPar并行端口调制解调器。有关调制解调器本身的更多信息,可以从 Baycom 网站 获取。

您的第一步应该是确定连接 Baycom 调制解调器的串行或并行端口的 i/o 和地址。当您拥有这些时,您必须使用它们配置 Baycom 驱动程序。

Baycom 驱动程序创建名为bc0, bc1, bc2等的网络设备,当它被配置时。

sethdlc 实用程序允许您使用这些参数配置驱动程序,或者,如果您只安装了一个 Baycom 调制解调器,您可以在加载 Baycom 模块时在 insmod 命令行上指定参数。

例如,一个简单的配置。禁用 COM1 的串行驱动程序:然后为 COM1 上的 Ser12 串行端口调制解调器配置 Baycom 驱动程序:并启用软件 DCD 选项

# setserial /dev/ttyS0 uart none
# insmod hdlcdrv
# insmod baycom mode="ser12*" iobase=0x3f8 irq=4

LPT1 上的 Par96 并行端口类型调制解调器:使用硬件 DCD 检测

# insmod hdlcdrv
# insmod baycom mode="par96" iobase=0x378 irq=7 options=0

这不是真正首选的方法。sethdlc 实用程序对于一个设备和多个设备一样容易使用。

sethdlc man 页面具有完整的详细信息,但几个示例将说明此配置的最重要方面。以下示例假定您已使用以下命令加载了 Baycom 模块

# insmod hdlcdrv
# insmod baycom

或者您在编译内核时内置了驱动程序。

配置bc0设备驱动程序作为 LPT1 上的并行端口 Baycom 调制解调器:使用软件 DCD

# sethdlc -p -i bc0 mode par96 io 0x378 irq 7

配置bc1设备驱动程序作为 COM1 上的串行端口 Baycom 调制解调器

# sethdlc -p -i bc1 mode "ser12*" io 0x3f8 irq 4

6.1.4. 配置 AX.25 信道访问参数

AX.25 信道访问参数等效于 KISS ppersist、txdelay 和 slottime 类型参数。同样,您也使用 sethdlc 实用程序。

同样,sethdlc man 页面是最完整信息的来源,但再举两个例子也无妨

配置bc0设备,TxDelay 为 200 mS,SlotTime 为 100 mS,PPersist 为 40,半双工

# sethdlc -i bc0 -a txd 200 slot 100 ppersist 40 half

请注意,定时值以毫秒为单位。

6.1.4.1. 配置内核 AX.25 以使用 Baycom 设备

Baycom 驱动程序创建 AX.25 内核代码可以使用的标准网络设备。配置与 PI 或 PacketTwin 卡的配置非常相似。

第一步是使用 AX.25 呼号配置设备。ifconfig 实用程序可用于执行此操作。

# /sbin/ifconfig bc0 hw ax25 VK2KTJ-15 up

将为 Baycom 设备分配bc0AX.25 呼号VK2KTJ-15。或者,您可以使用 axparms 命令,但您仍然需要使用 ifconfig 命令来启动设备

# ifconfig bc0 up
# axparms -setcall bc0 vk2ktj-15

下一步是在/etc/ax25/axports文件中创建一个条目,就像您为任何其他设备所做的那样。在axports文件中的条目通过您配置的呼号与您配置的网络设备关联。在axports文件中,具有您配置 Baycom 设备时使用的呼号的条目将用于引用它。

然后,您可以像对待任何其他 AX.25 设备一样对待新的 AX.25 设备。您可以为其配置 TCP/IP,将其添加到 ax25d,并在其上运行 NET/ROM 或 ROSE,随您所愿。

6.1.5. 创建内核 Soundmodem 设备

内核编译选项:
Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <*> Soundcard modem driver
    [?]   soundmodem support for Soundblaster and compatible cards
    [?]   soundmodem support for WSS and Crystal cards
    [?]   soundmodem support for 1200 baud AFSK modulation
    [?]   soundmodem support for 2400 baud AFSK modulation (7.3728MHz crystal)
    [?]   soundmodem support for 2400 baud AFSK modulation (8MHz crystal)
    [?]   soundmodem support for 2666 baud AFSK modulation
    [?]   soundmodem support for 4800 baud HAPN-1 modulation
    [?]   soundmodem support for 4800 baud PSK modulation
    [?]   soundmodem support for 9600 baud FSK G3RUH modulation
    ...

Thomas Sailer 为内核构建了一个驱动程序,允许您将声卡用作调制解调器。将您的无线电直接连接到您的声卡以播放数据包!如果您想使用此软件,Thomas 建议至少使用 486DX2/66,因为所有的数字信号处理都由主 CPU 完成。

该驱动程序当前模拟 1200 bps AFSK、4800 HAPN 和 9600 FSK(G3RUH 兼容)调制解调器类型。当前唯一支持的声卡是 SoundBlaster 和 Windows Sound System 兼容型号。如果您有其他类型的声卡,您可以尝试本文档后面描述的用户模式 soundmodem。

声卡需要一些电路来帮助它们驱动 Push-To-Talk 电路,有关此方面的信息可从 Thomas 的 Soundmodem PTT 电路网页 获取。有很多可能的选项,它们是:检测来自声卡的音频输出,或使用来自并行端口、串行端口或 MIDI 端口的输出。Thomas 的网站上提供了每个选项的电路示例。

Soundmodem 驱动程序创建名为sm0, sm1, sm2等的网络设备,当它被配置时。

Note

Soundmodem 驱动程序与 Linux 声音驱动程序竞争相同的资源,因此如果您希望使用 Soundmodem 驱动程序,则必须确保未安装 Linux 声音驱动程序。当然,您可以将它们都编译为模块,并根据需要插入和删除它们。

6.1.5.1. 配置声卡

Soundmodem 驱动程序不初始化声卡。ax25-utils 包包含一个实用程序来执行此操作,名为 `setcrystal',它可以用于基于 Crystal 芯片组的声卡。如果您有其他卡,那么您将必须使用其他软件来初始化它。其语法相当简单

setcrystal [-w wssio] [-s sbio] [-f synthio] [-i irq] [-d dma] [-c dma2]

因此,例如,如果您希望配置一个 i/o 基地址为 0x388、irq 为 10 和 DMA 为 1 的 SoundBlaster 卡,您将使用

# setcrystal -s 0x388 -i 10 -d 1

要配置一个 i/o 基地址为 0x534、irq 为 5、DMA 为 3 的 Window Sound System 卡,您将使用

# setcrystal -w 0x534 -i 5 -d 3

[-f synthio]参数是设置合成器地址,而[-c dma2]参数是将第二个 DMA 通道设置为允许全双工操作。

6.1.5.2. 配置 Soundmodem 驱动程序

当您配置完声卡后,您需要配置驱动程序,告诉它声卡的位置以及您希望它模拟哪种类型的调制解调器。

sethdlc 实用程序允许您使用这些参数配置驱动程序,或者,如果您只安装了一张声卡,您可以在加载 Soundmodem 模块时在 insmod 命令行上指定参数。

例如,一个简单的配置,使用如上所述配置的一个 SoundBlaster 声卡,模拟一个 1200 bps 调制解调器

# insmod hdlcdrv
# insmod soundmodem mode="sbc:afsk1200" iobase=0x220 irq=5 dma=1

这不是真正首选的方法。sethdlc 实用程序对于一个设备和多个设备一样容易使用。

sethdlc man 页面具有完整的详细信息,但几个示例将说明此配置的最重要方面。以下示例假定您已使用以下命令加载了 Soundmodem 模块

# insmod hdlcdrv
# insmod soundmodem

或者您在编译内核时内置了驱动程序。

配置驱动程序以支持我们上面配置的 Windows Sound System 卡,以模拟 G3RUH 9600 兼容调制解调器作为设备sm0使用 0x378 的并行端口来控制 Push-To-Talk

# sethdlc -p -i sm0 mode wss:fsk9600 io 0x534 irq 5 dma 3 pario 0x378

配置驱动程序以支持我们上面配置的 SoundBlaster 卡,以模拟 4800 bps HAPN 调制解调器作为设备sm1使用位于 0x2f8 的串行端口来控制 Push-To-Talk

# sethdlc -p -i sm1 mode sbc:hapn4800 io 0x388 irq 10 dma 1 serio 0x2f8

配置驱动程序以支持我们上面配置的 SoundBlaster 卡,以模拟 1200 bps AFSK 调制解调器作为设备sm1使用位于 0x2f8 的串行端口来控制 Push-To-Talk

# sethdlc -p -i sm1 mode sbc:afsk1200 io 0x388 irq 10 dma 1 serio 0x2f8

6.1.5.3. 配置 AX.25 信道访问参数

AX.25 信道访问参数等效于 KISS ppersist、txdelay 和 slottime 类型参数。您也为此使用 sethdlc 实用程序。

同样,sethdlc man 页面是最完整信息的来源,但再举两个例子也无妨

配置sm0设备,TxDelay 为 100 mS,SlotTime 为 50mS,PPersist 为 128,全双工

# sethdlc -i sm0 -a txd 100 slot 50 ppersist 128 full

请注意,定时值以毫秒为单位。

6.1.5.4. 设置音频电平和调整驱动程序

音频电平的设置对于任何基于无线电的调制解调器的工作都非常重要。Soundmodem 也是如此。Thomas 开发了一些实用程序,使这项任务更容易。它们被称为 smdiagsmmixer

smdiag

提供两种类型的显示,示波器类型显示或眼图类型显示。

smmixer

允许您实际调整发射和接收音频电平。

要为 Soundmodem 设备在“眼图”模式下启动 smdiag 实用程序sm0您将使用

# smdiag -i sm0 -e

要为 Soundmodem 设备启动 smmixer 实用程序sm0您将使用

# smmixer -i sm0

6.1.5.5. 配置内核 AX.25 以使用 Soundmodem

Soundmodem 驱动程序创建 AX.25 内核代码可以使用的标准网络设备。配置与 PI 或 PacketTwin 卡的配置非常相似。

第一步是使用 AX.25 呼号配置设备。ifconfig 实用程序可用于执行此操作。

# /sbin/ifconfig sm0 hw ax25 VK2KTJ-15 up

将为 Soundmodem 设备分配sm0AX.25 呼号VK2KTJ-15。或者,您可以使用 axparms 命令,但您仍然需要 ifconfig 实用程序来启动设备

# ifconfig sm0 up
# axparms -setcall sm0 vk2ktj-15

下一步是在/etc/ax25/axports文件中创建一个条目,就像您为任何其他设备所做的那样。在axports文件中的条目通过您配置的呼号与您配置的网络设备关联。在axports文件中具有您配置 Soundmodem 设备时使用的呼号的条目将用于引用它。

然后,您可以像对待任何其他 AX.25 设备一样对待新的 AX.25 设备。您可以为其配置 TCP/IP,将其添加到 ax25d,并在其上运行 NET/ROM 或 ROSE,随您所愿。

6.1.6. 创建用户模式 Soundmodem 设备

内核编译选项:不适用

Thomas Sailer 编写了一个声音调制解调器驱动程序,该驱动程序在用户模式下使用内核声音驱动程序运行,因此它应该适用于 Linux 下支持的任何声卡。

该驱动程序作为用户模式程序实现soundmodem。图形化的soundmodemconfig程序允许配置和测试 soundmodem 驱动程序。除了内核声音支持外,您还需要内核 AX.25 mkiss 驱动程序。

可以从 http://www.baycom.org/~tom/ham/soundmodem 下载软件和文档。

6.1.7. 创建 YAM 设备

内核编译选项:
Amateur Radio support  --->
    [*] Amateur Radio support
    --- Packet Radio protocols
    <*>   Amateur Radio AX.25 Level 2 protocol
    ...
    AX.25 network device drivers  --->
    --- AX.25 network device drivers
    ...
    <?> YAM driver for AX.25
    ...

YAM 是 Yet Another Modem,是由 Nico Palermo 设计的 9600 波特调制解调器。有关 Linux 驱动程序的信息,请访问 http://www.teaser.fr/~frible/yam.html,而有关调制解调器的一般信息,请访问 http://www.microlet.com/yam/

6.1.8. 创建 PI 卡设备

内核编译选项:
General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Ottawa PI and PI/2 support for AX.25

PI 卡设备驱动程序创建名为 `pi[0-9][ab]' 的设备。检测到的第一张 PI 卡将被分配为 `pi0',第二张为 `pi1' 等。`a' 和 `b' 指的是 PI 卡上的第一个和第二个物理接口。如果您已构建内核以包含 PI 卡驱动程序,并且该卡已被正确检测到,则可以使用以下命令配置网络设备

# /sbin/ifconfig pi0a hw ax25 VK2KTJ-15 up

此命令将使用呼号配置检测到的第一张 PI 卡上的第一个端口VK2KTJ-15并使其处于活动状态。要使用该设备,您现在需要做的就是在您的/etc/ax25/axports文件中配置一个匹配的呼号/ssid 条目,您就可以继续了。

PI 卡驱动程序由 David Perry 编写。

6.1.9. 创建 PacketTwin 设备

内核编译选项:
General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Gracilis PackeTwin support for AX.25

PacketTwin 卡设备驱动程序创建名为 `pt[0-9][ab]' 的设备。检测到的第一张 PacketTwin 卡将被分配为 `pt0',第二张为 `pt1' 等。`a' 和 `b' 指的是 PacketTwin 卡上的第一个和第二个物理接口。如果您已构建内核以包含 PacketTwin 卡驱动程序,并且该卡已被正确检测到,则可以使用以下命令配置网络设备

# /sbin/ifconfig pt0a hw ax25 VK2KTJ-15 up

此命令将使用呼号配置检测到的第一张 PacketTwin 卡上的第一个端口VK2KTJ-15并使其处于活动状态。要使用该设备,您现在需要做的就是在您的/etc/ax25/axports文件中配置一个匹配的呼号/ssid 条目,您就可以继续了。

PacketTwin 卡驱动程序由 Craig Small, VK2XLZ 编写。

6.1.10. 创建通用 SCC 设备

内核编译选项:
General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] Z8530 SCC KISS emulation driver for AX.25

Joerg Reuter, DL1BKE,开发了对基于 Z8530 SCC 卡的通用支持。他的驱动程序可配置为支持各种不同类型的卡,并提供看起来像 KISS TNC 的接口,因此您可以将其视为 KISS TNC。

6.1.10.1. 获取和构建配置工具包

虽然内核驱动程序包含在标准内核发行版中,但 Joerg 发行了他的驱动程序的更新版本,其中包含您也需要获取的配置工具套件。

您可以从以下位置获取配置工具包:Joerg 的网页ftp://db0bm.automation.fh-aachen.de/incoming/dl1bkeftp://insl1.etec.uni-karlsruhe.de/pub/hamradio/linux/z8530ftp://ftp.ucsd.edu/hamradio/packet/tcpip/linux,或 ftp://ftp.ucsd.edu/hamradio/packet/tcpip/incoming

您会找到多个版本,选择最适合您要使用的内核的版本z8530drv-2.4a.dl1bke.tar.gz适用于 2.0.* 内核,以及z8530drv-utils-3.0.tar.gz适用于 2.1.6 或更高版本的内核。

以下命令是我用于编译和安装内核版本 2.0.30 的软件包的命令

# cd /usr/src
# gzip -dc z8530drv-2.4a.dl1bke.tar.gz | tar xvpofz -
# cd z8530drv
# make clean
# make dep
# make module         # If you want to build the driver as a module
# make for_kernel     # If you want the driver to built into your kernel
# make install

完成上述操作后,您应该在您的/sbin目录中安装了三个新程序:gencfgsccinitsccstat。您将使用这些程序来配置您的卡的驱动程序。

您还将在您的/dev中创建一组新的特殊设备文件,称为scc0-scc7。这些将在稍后使用,并将是您最终将使用的“KISS”设备。

如果您选择“make for_kernel”,那么您将需要重新编译您的内核。为了确保您包含对 z8530 驱动程序的支持,您必须确保在内核 `Y' 时回答 `Z8530 SCC kiss 仿真驱动程序用于 AX.25' `make config'.

如果您选择“make module”,那么新的scc.o将已安装在相应的/lib/modules目录中,您无需重新编译内核。请记住在使用 insmod 命令加载模块之前尝试配置它。

6.1.10.2. 为您的卡配置驱动程序

z8530 SCC 驱动程序的设计尽可能灵活,以便支持尽可能多的不同类型的卡。这种灵活性在配置方面付出了一些代价。

软件包中有更全面的文档,如果您有任何问题,应该阅读这些文档。您尤其应该查看doc/scc_eng.docdoc/scc_ger.doc以获取更详细的信息。我概括了重要的细节,但因此我没有包含很多较低级别的细节。

主配置文件由 sccinit 程序读取,称为/etc/z8530drv.conf。此文件分为两个主要阶段:硬件参数配置和通道配置。在您配置完此文件后,您只需要添加

# sccinit

rc文件中,该文件配置您的网络,驱动程序将根据配置文件的内容进行初始化。您必须在尝试使用驱动程序之前执行此操作。

6.1.10.2.1. 硬件参数配置

第一部分分为节,每个节代表一个 8530 芯片。每个节都是一个带有参数的关键字列表。默认情况下,您可以在此文件中最多指定四个 SCC 芯片。#define MAXSCC 4scc.c中,如果您需要支持更多芯片,可以增加此值。

允许的关键字和参数是

chip

关键字用于分隔节。它将接受任何参数。参数未使用。chipkeyword 用于分隔节。它将接受任何参数。参数未使用。

data_a

此关键字用于指定 z8530 通道 `A' 的数据端口的地址。参数是十六进制数,例如 0x300

ctrl_a

此关键字用于指定 z8530 通道 `A' 的控制端口的地址。参数是十六进制数,例如 0x304

data_b

此关键字用于指定 z8530 通道 `B' 的数据端口的地址。参数是十六进制数,例如 0x301

ctrl_b

此关键字用于指定 z8530 通道 `B' 的控制端口的地址。参数是十六进制数,例如 0x305

irq

此关键字用于指定此节中描述的 8530 SCC 使用的 IRQ。参数是一个整数,例如 5

pclock

此关键字用于指定 8530 的 PCLK 引脚上的时钟频率。参数是以 Hz 为单位的整数频率,如果未提供关键字,则默认为 4915200。

board

支持此 8530 SCC 的板类型。参数是一个字符串。允许的值为

PA0HZP

PA0HZP SCC 卡

EAGLE

Eagle 卡

PC100

DRSI PC100 SCC 卡

PRIMUS

PRIMUS-PC (DG9BL) 卡

BAYCOM

BayCom (U)SCC 卡

escc

此关键字是可选的,用于启用对扩展 SCC 芯片 (ESCC)(如 8580、85180 或 85280)的支持。参数是一个字符串,允许的值为 `yes' 或 `no'。默认值为 `no'。

vector

此关键字是可选的,用于指定 PA0HZP 卡的向量锁存器(也称为“intack 端口”)的地址。所有芯片只能有一个向量锁存器。默认值为 0。

special

此关键字是可选的,用于指定多个卡上的特殊功能寄存器的地址。默认值为 0。

option

此关键字是可选的,默认为 0。

更流行的卡的一些示例配置如下

BayCom USCC

chip    1
data_a  0x300
ctrl_a  0x304
data_b  0x301
ctrl_b  0x305
irq     5
board   BAYCOM
#
# SCC chip 2
#
chip    2
data_a  0x302
ctrl_a  0x306
data_b  0x303
ctrl_b  0x307
board   BAYCOM

PA0HZP SCC 卡

chip 1
data_a 0x153
data_b 0x151
ctrl_a 0x152
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
data_b 0x155
ctrl_a 0x156
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no

DRSI SCC 卡

chip 1
data_a 0x303
data_b 0x301
ctrl_a 0x302
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no

如果您已经为您的卡在 NOS 下工作配置,那么您可以使用 gencfg 命令将 PE1CHL NOS 驱动程序命令转换为适合在 z8530 驱动程序配置文件中使用的形式。

要使用 gencfg,您只需使用与您在 NET/NOS 中使用的 PE1CHL 驱动程序相同的参数来调用它。例如

# gencfg 2 0x150 4 2 0 1 0x168 9 4915200

将为 OptoSCC 卡生成一个骨架配置。

6.1.10.3. 通道配置

通道配置部分是您指定与您正在配置的端口关联的所有其他参数的位置。同样,此部分分为节。一个节代表一个逻辑端口,因此对于硬件参数节中的每个节,都会有两个这样的节,因为每个 8530 SCC 支持两个端口。

这些关键字和参数也写入/etc/z8530drv.conf文件,并且必须出现在硬件参数部分之后

顺序在此部分非常重要,但如果您坚持建议的顺序,它应该可以正常工作。关键字和参数是

device

此关键字必须是端口定义的第一行,并指定配置其余部分适用的特殊设备文件的名称。例如/dev/scc0

speed

此关键字指定接口的速度,以比特/秒为单位。参数是一个整数:例如1200

clock

此关键字指定数据时钟的来源。允许的值为

dpll

正常半双工操作

external

MODEM 提供自己的 Rx/Tx 时钟

divider

如果安装了全双工分频器,则使用它。

mode

此关键字指定要使用的数据编码。允许的参数是nrzinrz

rxbuffers

此关键字指定要分配内存的接收缓冲区数。参数是一个整数,例如 8。

txbuffers

此关键字指定要分配内存的发送缓冲区数。参数是一个整数,例如 8。

bufsize

此关键字指定接收和发送缓冲区的大小。参数以字节为单位,表示帧的总长度,因此它还必须考虑 AX.25 标头,而不仅仅是数据字段的长度。此关键字是可选的,默认值为384

txdelay

KISS 发送延迟值,参数是以 mS 为单位的整数。

persist

KISS persist 值,参数是一个整数。

slot

KISS 时隙时间值,参数是以 mS 为单位的整数。

tail

KISS 发送尾部值,参数是以 mS 为单位的整数。

fulldup

KISS 全双工标志,参数是一个整数。1==全双工,0==半双工。

wait

KISS 等待值,参数是以 mS 为单位的整数。

min

KISS 最小值,参数是以 S 为单位的整数。

maxkey

KISS 最大键控时间,参数是以 S 为单位的整数。

idle

KISS 空闲计时器值,参数是以 S 为单位的整数。

maxdef

KISS maxdef 值,参数是一个整数。

group

KISS 组值,参数是一个整数。

txoff

KISS txoff 值,参数是以 mS 为单位的整数。

softdcd

KISS softdcd 值,参数是一个整数。

slip

KISS slip 标志,参数是一个整数。

6.1.10.4. 使用驱动程序

要使用驱动程序,您只需将/dev/scc*设备视为连接了 KISS TNC 的串行 tty 设备即可。例如,要配置 Linux 内核网络以使用您的 SCC 卡,您可以像这样使用

# kissattach -s 4800 /dev/scc0 VK2KTJ

您还可以使用 NOS 以完全相同的方式连接到它。例如,从 JNOS,您将像这样使用

attach asy scc0 0 ax25 scc0 256 256 4800

6.1.10.5. sccstatsccparam 工具

为了帮助诊断问题,您可以使用 sccstat 程序来显示 SCC 设备的当前配置。要使用它,请尝试

# sccstat /dev/scc0

您将看到与/dev/scc0SCC 端口的配置和运行状况相关的非常大量的信息。

sccparam 命令允许您在启动后更改或修改配置。其语法与 NOS 非常相似param命令,因此要将设备的txtail设置设置为 100ms,您将使用

# sccparam /dev/scc0 txtail 0x8

6.1.11. 创建 BPQ 以太网设备

内核编译选项:
General setup  --->
    [*] Networking support
Network device support  --->
    [*] Network device support
    ...
    [*] Radio network interfaces
    [*] BPQ Ethernet driver for AX.25

Linux 支持 BPQ 以太网兼容性。这使您可以在以太网 LAN 上运行 AX.25 协议,并将您的 Linux 机器与 LAN 上的其他 BPQ 机器互联。

BPQ 网络设备被命名为 `bpq[0-9]'。`bpq0' 设备与 `eth0' 设备关联,`bpq1' 设备与 `eth1' 设备关联,依此类推。

配置非常简单。您首先必须配置一个标准的以太网设备。这意味着您将编译您的内核以支持您的以太网卡,并测试它是否工作。有关如何执行此操作的更多信息,请参阅 Ethernet-HOWTO

要配置 BPQ 支持,您需要使用 AX.25 呼号配置以太网设备。以下命令将为您执行此操作

# /sbin/ifconfig bpq0 hw ax25 vk2ktj-14 up

同样,请记住,您指定的呼号应与您希望用于此端口的/etc/ax25/axports文件中的条目匹配。

6.1.12. 配置 BPQ 节点以与 Linux AX.25 支持通信

BPQ 以太网通常使用多播地址。Linux 实现不使用多播地址,而是使用普通的以太网广播地址。因此,BPQ ODI 驱动程序的 NET.CFG 文件应修改为类似于这样

LINK SUPPORT

        MAX STACKS 1
        MAX BOARDS 1

LINK DRIVER E2000                    ; or other MLID to suit your card

        INT 10                       ;
        PORT 300                     ; to suit your card

        FRAME ETHERNET_II

        PROTOCOL BPQ 8FF ETHERNET_II ; required for BPQ - can change PID

BPQPARAMS                            ; optional - only needed if you want
                                     ; to override the default target addr

        ETH_ADDR  FF:FF:FF:FF:FF:FF  ; Target address

6.2. 创建/etc/ax25/axports文件

/etc/ax25/axports是一个简单的文本文件,您可以使用文本编辑器创建它。的格式/etc/ax25/axports文件如下

portname  callsign  baudrate  paclen  window  description

其中

portname

是您将用来引用端口的文本名称。

callsign

是您要分配给端口的 AX.25 呼号。

baudrate

是您希望端口与 TNC 通信的速度。

paclen

是您要配置端口用于 AX.25 连接模式连接的最大数据包长度。

window

是 AX.25 窗口 (K) 参数。这与许多 TNC 的MAXFRAME设置相同。

description

是端口的文本描述。

在我的情况下,我的看起来像

radio    VK2KTJ-15       4800        256     2       4800bps 144.800 MHz
ether    VK2KTJ-14       10000000    256     2       BPQ/ethernet device

请记住,您必须为创建的每个 AX.25 端口分配唯一的呼号/ssid。为您要使用的每个 AX.25 设备创建一个条目,包括 KISS、Baycom、SCC、PI、PT 和 Soundmodem 端口。此处的每个条目都将描述一个 AX.25 网络设备。此文件中的条目通过呼号/ssid 与网络设备关联。这是要求唯一呼号/ssid 的至少一个充分理由。

6.3. 配置 AX.25 路由

您可能希望为特定主机配置默认的 digipeater 路径。这对于正常的 AX.25 连接以及基于 IP 的连接都很有用。axparms 命令使您能够执行此操作。同样,man 页面提供了完整的描述,但一个简单的示例可能是

# /usr/sbin/axparms -route add radio VK2XLZ VK2SUT

此命令将为VK2XLZ通过VK2SUT在名为radio.