Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions driver/dkms/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
obj-m := ch343.o

KVER ?= $(shell uname -r)
KDIR ?= /lib/modules/$(KVER)/build
VERSION ?= $(shell cat VERSION)
SRC_DIR=$(shell pwd)

default:
$(MAKE) -C $(KDIR) M=$(SRC_DIR) modules

clean:
$(MAKE) -C $(KDIR) M=$(SRC_DIR) clean

install:
$(MAKE) -C $(KDIR) M=$(SRC_DIR) modules_install

unload:
/sbin/rmmod ch343

load: unload
/sbin/insmod ch343.ko

dkms.conf: dkms.conf.in
sed "s/@@VERSION@@/$(VERSION)/" $^ > $@

dkms-add: dkms.conf
/usr/sbin/dkms add $(SRC_DIR)

dkms-build: dkms.conf
/usr/sbin/dkms build ch343/$(VERSION)

dkms-install: dkms.conf
/usr/sbin/dkms install ch343/$(VERSION)

dkms-remove: dkms.conf
/usr/sbin/dkms remove ch343/$(VERSION) --all

modprobe-install:
modprobe ch343

modprobe-remove:
modprobe -r ch343

dev: modprobe-remove dkms-remove dkms-add dkms-builddkms-install modprobe-install
49 changes: 49 additions & 0 deletions driver/dkms/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Load the ch343 driver using dkms.

## Installing ch343ser files on linux systems

```bash
git clone https://github.com/WCHSoftGroup/ch343ser_linux.git
pkgver=printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short=7 HEAD)"
cd ch343ser_linux/driver/dkms
sudo install -Dm644 ch343.conf -t /etc/modules-load.d/
sudo install -Dm644 Makefile -t /usr/src/ch343ser-${pkgver}/
sudo install -Dm644 dkms.conf -t /usr/src/ch343ser-${pkgver}/
sudo install -Dm644 ../ch343.c -t /usr/src/ch343ser-${pkgver}/
sudo install -Dm644 ../ch343.h -t /usr/src/ch343ser-${pkgver}/
# Arch & Manjaro Linux
sudo install -Dm644 ../../udev/99-ch34x-arch.rules -t /usr/lib/udev/rules.d/
# Debian & Ubuntu Linux
sudo install -Dm644 ../../udev/99-ch34x.rules -t /usr/lib/udev/rules.d/
```

## dkms compilation of ch343ser depends on dkms and linux kernel headers.

- install ch343ser

```bash
sudo dkms add -m ch343ser -v ${pkgver}
sudo dkms build -m ch343ser -v ${pkgver}
sudo dkms install -m ch343ser -v ${pkgver}
cat /var/lib/dkms/ch343ser/${pkgver}/build/make.log
sudo dkms status
```

- remove ch343ser

```bash
sudo dkms remove -m ch343ser -v ${pkgver}
sudo dkms status
```

- autoinstall ch343ser

```bash
sudo dkms autoinstall
```

- force build ch343ser
```bash
sudo dkms build -m ch343ser -v ${pkgver} -k $(uname -r) --force
sudo dkms install -m ch343ser -v ${pkgver} -k $(uname -r) --force
```
1 change: 1 addition & 0 deletions driver/dkms/ch343.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ch343
9 changes: 9 additions & 0 deletions driver/dkms/dkms.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PACKAGE_NAME="ch343ser"
PACKAGE_VERSION="#MODULE_VERSION#"
AUTOINSTALL="yes"

MAKE="make KVER=$kernelver"
CLEAN="make clean"

BUILT_MODULE_NAME[0]="ch343"
DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/serial"