summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorExcalibur2023-01-10 17:16:53 +0800
committerExcalibur2023-01-10 17:16:53 +0800
commit33de09c7165f49438fd3c362d9d055371b4ebc7e (patch)
tree0f487e93611ab2436a244ad8de8900a577d92196
downloadaur-33de09c7165f49438fd3c362d9d055371b4ebc7e.tar.gz
Initial commit
-rw-r--r--.SRCINFO21
-rw-r--r--.gitignore4
-rw-r--r--PKGBUILD42
-rw-r--r--dkms.conf7
-rw-r--r--fix-incompatible-pointer-types.patch22
5 files changed, 96 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..23b6bba8bf19
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,21 @@
+pkgbase = ch9344-dkms
+ pkgdesc = Kernel module for CH9344/CH348
+ pkgver = 1.9
+ pkgrel = 1
+ url = https://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html
+ arch = any
+ license = unknown
+ makedepends = unzip
+ depends = dkms
+ optdepends = linux-headers: Build the module for Arch kernel
+ optdepends = linux-lts-headers: Build the module for LTS Arch kernel
+ conflicts = ch9344
+ noextract = CH9344SER_LINUX-1.9.ZIP
+ source = CH9344SER_LINUX-1.9.ZIP::https://www.wch.cn/downloads/file/386.html
+ source = dkms.conf
+ source = fix-incompatible-pointer-types.patch
+ sha256sums = 2eb9bfb6a4e61834dc89565ef7f7b05abba77299ee05c98103a0eb85f2fb50e2
+ sha256sums = ad4c67e0c74661d19b74872f98254184d4b04e32e4c57b338a84fbcefa4c721f
+ sha256sums = 70fce0063774e6a9df1c73666b352723aeea5f37371dfaaf551926b80256b7a8
+
+pkgname = ch9344-dkms
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..9bdf47172b8a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+/pkg
+/src
+/*.pkg.*
+/*.ZIP \ No newline at end of file
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..b500f9845347
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Excalibur <saberconer@gmail.com>
+
+_pkgname=ch9344
+pkgname=${_pkgname}-dkms
+pkgver=1.9
+pkgrel=1
+url="https://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html"
+pkgdesc="Kernel module for CH9344/CH348"
+license=('unknown')
+arch=('any')
+depends=('dkms')
+makedepends=('unzip')
+conflicts=("${_pkgname}")
+optdepends=('linux-headers: Build the module for Arch kernel'
+ 'linux-lts-headers: Build the module for LTS Arch kernel')
+source=("CH9344SER_LINUX-$pkgver.ZIP::https://www.wch.cn/downloads/file/386.html"
+ 'dkms.conf'
+ 'fix-incompatible-pointer-types.patch')
+noextract=("CH9344SER_LINUX-$pkgver.ZIP")
+sha256sums=('2eb9bfb6a4e61834dc89565ef7f7b05abba77299ee05c98103a0eb85f2fb50e2'
+ 'ad4c67e0c74661d19b74872f98254184d4b04e32e4c57b338a84fbcefa4c721f'
+ '70fce0063774e6a9df1c73666b352723aeea5f37371dfaaf551926b80256b7a8')
+
+prepare() {
+ cd "$srcdir"
+ unzip -o "CH9344SER_LINUX-$pkgver.ZIP"
+ patch LINUX/driver/ch9344.c fix-incompatible-pointer-types.patch
+}
+
+build() {
+ :
+}
+
+package() {
+ dir_name="${_pkgname}-${pkgver}"
+ install -d "${pkgdir}"/usr/src/${dir_name}/
+ install -Dm644 dkms.conf "$srcdir"/LINUX/driver/* "${pkgdir}/usr/src/${dir_name}/"
+
+ sed -e "s/@_PKGNAME@/${_pkgname}/g" \
+ -e "s/@PKGVER@/${pkgver}/g" \
+ -i "${pkgdir}/usr/src/${dir_name}/dkms.conf"
+}
diff --git a/dkms.conf b/dkms.conf
new file mode 100644
index 000000000000..36fba1662253
--- /dev/null
+++ b/dkms.conf
@@ -0,0 +1,7 @@
+PACKAGE_NAME="@_PKGNAME@"
+PACKAGE_VERSION="@PKGVER@"
+MAKE[0]="make -C $kernel_source_dir M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build modules"
+CLEAN="make -C $kernel_source_dir M=$dkms_tree/$PACKAGE_NAME/$PACKAGE_VERSION/build clean"
+BUILT_MODULE_NAME[0]="@_PKGNAME@"
+DEST_MODULE_LOCATION[0]="/kernel/drivers/tty/serial"
+AUTOINSTALL="yes"
diff --git a/fix-incompatible-pointer-types.patch b/fix-incompatible-pointer-types.patch
new file mode 100644
index 000000000000..31088538733e
--- /dev/null
+++ b/fix-incompatible-pointer-types.patch
@@ -0,0 +1,22 @@
+diff --git a/ch9344.c b/ch9344.c
+index 1e37293..a16af82 100644
+--- a/ch9344.c
++++ b/ch9344.c
+@@ -79,7 +79,7 @@ static DEFINE_IDR(ch9344_minors);
+ static DEFINE_MUTEX(ch9344_minors_lock);
+
+ static void ch9344_tty_set_termios(struct tty_struct *tty,
+- struct ktermios *termios_old);
++ const struct ktermios *termios_old);
+
+ static int ch9344_get_portnum(int index);
+
+@@ -1597,7 +1597,7 @@ u8 cal_recv_tmt(__le32 bd)
+ }
+
+ static void ch9344_tty_set_termios(struct tty_struct *tty,
+- struct ktermios *termios_old)
++ const struct ktermios *termios_old)
+ {
+ struct ch9344 *ch9344 = tty->driver_data;
+ struct ktermios *termios = &tty->termios;