如果是ARM平台,需要修改Makefile文件,CROSS_COMPILE ?= aarch64-linux-gnu-这里修改成你的环境参数,以下配置配合rockchip 4.19源码编译正常,注意指定内核源码目录/home/admin2/kernel,内核源码要保证已经正常编译过一遍,以下是编译命令的关键参数

 M=$(PWD)  KDIR=/home/admin2/kernel

PWD := $(shell pwd)
MX_VER_TXT := $(PWD)/version.txt
MX_VER_MK := $(PWD)/driver/ver.mk
MX_VER_H := $(PWD)/driver/mx_ver.h
MX_BUILD_VER := $(shell awk '{if($$1=="Version" && $$2=="Number:"){print $$3}}' $(MX_VER_TXT))
MX_BUILD_DATE := $(shell awk '{if($$1=="Date:"){print $$2}}' $(MX_VER_TXT))
MX_CURR_DATE := $(shell date +%g%m%d%H)

CROSS_COMPILE ?= aarch64-linux-gnu-
CC := $(CROSS_COMPILE)gcc
CXX := $(CROSS_COMPILE)g++
AR := $(CROSS_COMPILE)ar
LD := $(CROSS_COMPILE)ld

all: driver_make

driver_make:
@cd driver;\
  $(MAKE)   -s  M=$(PWD)  KDIR=/home/admin2/kernel ARCH=arm64 CC=$(CC) CXX=$(CXX) AR=$(AR) LD=$(LD)

install:
@cd driver;\
make install -s

clean:
@rm -rf build.log
@rm -rf output
@cd driver;\
make clean -s

remove:
@cd driver;\
make remove -s
disk:
@sudo $(MAKE) remove
@sudo $(MAKE) clean
@rm -f $(MX_VER_MK)
@echo -n "DRV_VER=" > $(MX_VER_MK)
@echo "$(MX_BUILD_VER)" >> $(MX_VER_MK)
@echo -n "REL_DATE=" >> $(MX_VER_MK)
@echo "$(MX_BUILD_DATE)" >> $(MX_VER_MK)
@echo "New $(MX_VER_MK) is created."
@rm -f $(MX_VER_H)
@echo "#ifndef _MX_VER_H_" >> $(MX_VER_H)
@echo "#define _MX_VER_H_" >> $(MX_VER_H)
@echo -n "#define DRIVER_VERSION \"" >> $(MX_VER_H)
@echo -n "$(MX_BUILD_VER)" >> $(MX_VER_H)
@echo "\"" >> $(MX_VER_H)
@echo "#endif" >> $(MX_VER_H)
@echo "New $(MX_VER_H) is created."
rm -rfi ../disk/*
cp -f version.txt ../disk
cp -f readme.txt ../disk
cp -R ../source ../mxu11x0
tar -cvzf ../disk/driv_linux_uport1p_v$(MX_BUILD_VER)_build_$(MX_CURR_DATE).tgz ../mxu11x0
rm -rf ../mxu11x0
@echo "Done"

  

交叉编译命令:make KDIR=/root/kernel4.19/  

模块编译成功后,注意需要依赖kernel的usbserial模块使用,如果内核已经集成usbserial,就不需要单独加载模块。

 

 

以下为设备信息:Devices:
Number 001/002 ID 110a:1110 UPort 1110

Bus 001 Device 002: ID 110a:1110 Moxa Technologies Co., Ltd.

 

 

以下官方的针对X86平台的编译说明:

# MOXA UPort 11x0 USB转串口集线器家族驱动程序安装指南
适用于 Linux Kernel 4.x
版权所有©2019,Moxa Inc.
=============================================================================
日期:2019年07月04日

目录

0. 注意事项
1. 介绍
2. 系统要求
3. 安装
3.1 驱动文件
3.2 设备命名规则
3.3 模块驱动程序配置
3.4 静态驱动程序配置
3.5 验证驱动程序安装
4. 卸载
5. Setserial
6. 故障排除

-----------------------------------------------------------------------------
0. 注意事项

MOXA UPort 11x0 USB转串口集线器驱动程序可以在 Linux 内核中使用,与 usbcore 和 usbserial 模块配合。这两个模块是 Linux 内核版本 2.6.x 及更高版本中的内置模块。在 Linux 内核版本中,您必须检查这两个内置模块是否存在。否则,您将无法使用 MOXA UPort 11x0 USB转串口集线器驱动程序。

-----------------------------------------------------------------------------
1. 介绍

MOXA UPort 11x0 USB转串口集线器 Linux 驱动程序支持以下设备。

- UPort 1110,1个RS-232 USB转串口集线器端口。
- UPort 1130,1个RS-422/485 USB转串口集线器端口。
- UPort 1130I,1个带隔离保护的RS-422/485 USB转串口集线器端口。
- UPort 1150,1个RS-232/422/485 USB转串口集线器端口。
- UPort 1150I,1个带隔离保护的RS-232/422/485 USB转串口集线器端口。
- USB 控制台,1个RS-232 USB转串口集线器端口。

该驱动程序支持 x86 和 x64(AMD64/EM64T)硬件平台。为了保持兼容性,此版本已针对多种 Linux 发行版进行了适当测试(请参阅 version.txt)。然而,如果出现兼容性问题,请联系 Moxa Technologies 技术支持(support@moxa.com)。

所有驱动程序均以源代码形式在本版本中发布,遵循 GNU 通用公共许可证。请参阅每个源代码文件中的 GNU 通用公共许可证声明以了解详细信息。

此版本的驱动程序只能作为可加载模块(模块驱动程序)安装。在安装驱动程序之前,请参阅用户手册中的硬件安装步骤。

-----------------------------------------------------------------------------
2. 系统要求
- 硬件平台:x86,x64
- 内核版本:2.6.x 及更高版本
- gcc 版本 3.x
- 内核源代码

Raspbian 的额外要求
- gcc-4.8.3 或更高版本
- ncurses-devel-5.9 或更高版本
- rpi-source,参考其网站上的说明。
(<https://github.com/notro/rpi-source/wiki>)

注意:
- rpi-source 是一个第三方包,提供用于构建驱动程序的集成内核资源。Real TTY 已使用此包进行了测试,并且运行良好。然而,不同 Raspbian 版本的要求可能有所不同。请阅读 Raspbian 和 rpi-source 的手册,以了解相关知识和限制。
- Real TTY 驱动程序已在 Raspbian Jessie(4.4.50)和 Buster(4.19)上针对 Pi 2/3 进行了测试。

-----------------------------------------------------------------------------
3. 安装

3.1 驱动文件
3.2 设备命名规则
3.3 模块驱动程序配置
3.4 静态驱动程序配置
3.5 验证驱动程序安装

3.1 驱动文件

可以从产品页面的网站上获取驱动文件。第一步是将驱动文件
“driv_linux_uport1p_[VERSION]_[BUILD].tgz”复制到用户目录中。
例如:/moxa。请按照以下命令执行。

# cd /moxa
# tar xvfz driv_linux_uport1p_[VERSION]_[BUILD].tgz

3.2 设备命名规则

您可以在 /<driver directory>/mxu11x0/ 中找到所有驱动文件。以下安装步骤取决于您要运行驱动程序的型号。

拨入和呼叫端口
-----------------------
该驱动程序保留了传统串行设备的属性。由于 usbcore 和 usbserial 这两个 USB 内置模块的限制,每个串行端口只有一个特殊的文件名。这就是拨入端口,命名为“ttyUSBxx”。

3.3 模块驱动程序配置

为了简化背后的流程,我们提供了一个步骤来构建、安装和加载 MOXA 驱动程序。您可以执行 ./mxinstall 来使用 MOXA 产品。一旦您成功执行了 ./mxinstall,您可以跳过步骤 3.3.1 和 3.3.2。

3.3.1 构建 MOXA 驱动程序
在使用 MOXA 驱动程序之前,您需要编译所有源代码。这一步只需要执行一次。
但是,如果您修改了源代码,您仍然需要重新编译源代码。

在 /moxa/mxu11x0/driver 中找到“Makefile”,然后运行

# make clean; make install

驱动文件“mxu11x0.ko”将被正确编译并分别复制到系统目录中。

3.3.2 加载 MOXA 驱动程序

当您将 UPort 1110/1130/1130I/1150/1150I 或 USB 控制台电缆插入您的电脑时,驱动程序将自动加载。此外,您也可以手动加载驱动程序。

# modprobe mxu11x0

它将激活模块驱动程序。您可以运行“lsmod”来检查“mxu11x0”是否已激活。在加载此模块驱动程序之前,您必须运行“lsmod”来检查“usbcore”和“usbserial”是否已激活。

3.4 静态驱动程序配置

注意:要使用静态驱动程序,您必须安装 Linux 内核源代码包。

3.4.1 创建链接
# cd /usr/src/<kernel-source directory>/drivers/usb/serial/
# ln -s /moxa/mxu11x0/driver/mxu11x0.c mxu11x0.c
# ln -s /moxa/mxu11x0/driver/mxu11x0.h mxu11x0.h
# ln -s /moxa/mxu11x0/driver/mxu1110_fw.h mxu1110_fw.h
# ln -s /moxa/mxu11x0/driver/mxu1130_fw.h mxu1130_fw.h
# ln -s /moxa/mxu11x0/driver/mxu1131_fw.h mxu1131_fw.h
# ln -s /moxa/mxu11x0/driver/mxu1150_fw.h mxu1150_fw.h
# ln -s /moxa/mxu11x0/driver/mxu1151_fw.h mxu1151_fw.h
# ln -s /moxa/mxu11x0/driver/mxu3001_fw.h mxu3001_fw.h

3.4.2 修改内核配置文件。
在配置文件中添加以下行。
/usr/src/<kernel-source directory>/drivers/usb/serial/Kconfig
...
config USB_SERIAL_CONSOLE
...
config USB_SERIAL_GENERIC
...
config MOXA_UPORT_11X0 <-- 添加此行。
tristate "USB Moxa UPort 11x0 Driver" <--
depends on USB_SERIAL <--

3.4.3 修改内核 Makefile
在 Makefile 的最后一行添加以下行。
/usr/src/<kernel-source directory>/drivers/usb/serial/Makefile
...
...