summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntonio Orefice2019-04-04 14:46:36 +0200
committerAntonio Orefice2019-04-04 14:46:36 +0200
commit2e0c3e77f4f916563c7d070466e09eeaffebdc76 (patch)
treecc96da5b896b5f6648ed9e09cc70d14832c7b833
downloadaur-2e0c3e77f4f916563c7d070466e09eeaffebdc76.tar.gz
Initial commit
-rw-r--r--.SRCINFO18
-rw-r--r--10-net-names-crc16.rules1
-rw-r--r--PKGBUILD22
-rwxr-xr-xcrc16.sh62
4 files changed, 103 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b5a3cf419e09
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,18 @@
+pkgbase = net-names-crc16
+ pkgdesc = Udev rule and helper script to rename interfaces using a crc16 calculation based on the mac address
+ pkgver = 1.0
+ pkgrel = 1
+ url = http://reactivated.net/writing_udev_rules.html
+ arch = any
+ license = GPL
+ depends = bash
+ depends = udev
+ provides = net-names-crc16
+ conflicts = net-names-crc16
+ source = 10-net-names-crc16.rules
+ source = crc16.sh
+ sha256sums = efc5582c92ab56dc743c63107cb39b0fb91333c2b1777fc8a002aa25a0aa4e14
+ sha256sums = 1760f03a70d16f0de9187e930aa1143f0de1425bb8cb53f90973f0f12bbe94a8
+
+pkgname = net-names-crc16
+
diff --git a/10-net-names-crc16.rules b/10-net-names-crc16.rules
new file mode 100644
index 000000000000..3038d889757c
--- /dev/null
+++ b/10-net-names-crc16.rules
@@ -0,0 +1 @@
+SUBSYSTEM=="net", ACTION=="add", KERNEL=="wlan*", PROGRAM="/usr/bin/crc16.sh $attr{address}", NAME="wlan%c{1}"
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..2478cf80f29a
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,22 @@
+# Maintainer: Antonio Orefice <kokoko3k@gmail.com>
+
+pkgname=net-names-crc16
+pkgver=1.0
+pkgrel=1
+pkgdesc='Udev rule and helper script to rename interfaces using a crc16 calculation based on the mac address'
+arch=('any')
+url="http://reactivated.net/writing_udev_rules.html"
+license=('GPL')
+provides=("${pkgname}")
+conflicts=("${pkgname}")
+depends=('bash' 'udev')
+source=(10-net-names-crc16.rules crc16.sh)
+
+package() {
+# cd ${pkgname}-${pkgver}
+ install -Dm644 10-net-names-crc16.rules ${pkgdir}/etc/udev/rules.d/10-net-names-crc16.rules
+ install -Dm755 crc16.sh ${pkgdir}/usr/bin/crc16.sh
+}
+
+sha256sums=('efc5582c92ab56dc743c63107cb39b0fb91333c2b1777fc8a002aa25a0aa4e14'
+ '1760f03a70d16f0de9187e930aa1143f0de1425bb8cb53f90973f0f12bbe94a8')
diff --git a/crc16.sh b/crc16.sh
new file mode 100755
index 000000000000..a350a8f2cddb
--- /dev/null
+++ b/crc16.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env bash
+
+# For testing purposes, an input of "123456789" should produce a crc of 0xBB3D
+
+function calc_crc16( )
+{
+
+ poly=0x8005
+
+ declare -a crc_16_table=(
+ 0x0000 0xC0C1 0xC181 0x0140 0xC301 0x03C0 0x0280 0xC241
+ 0xC601 0x06C0 0x0780 0xC741 0x0500 0xC5C1 0xC481 0x0440
+ 0xCC01 0x0CC0 0x0D80 0xCD41 0x0F00 0xCFC1 0xCE81 0x0E40
+ 0x0A00 0xCAC1 0xCB81 0x0B40 0xC901 0x09C0 0x0880 0xC841
+ 0xD801 0x18C0 0x1980 0xD941 0x1B00 0xDBC1 0xDA81 0x1A40
+ 0x1E00 0xDEC1 0xDF81 0x1F40 0xDD01 0x1DC0 0x1C80 0xDC41
+ 0x1400 0xD4C1 0xD581 0x1540 0xD701 0x17C0 0x1680 0xD641
+ 0xD201 0x12C0 0x1380 0xD341 0x1100 0xD1C1 0xD081 0x1040
+ 0xF001 0x30C0 0x3180 0xF141 0x3300 0xF3C1 0xF281 0x3240
+ 0x3600 0xF6C1 0xF781 0x3740 0xF501 0x35C0 0x3480 0xF441
+ 0x3C00 0xFCC1 0xFD81 0x3D40 0xFF01 0x3FC0 0x3E80 0xFE41
+ 0xFA01 0x3AC0 0x3B80 0xFB41 0x3900 0xF9C1 0xF881 0x3840
+ 0x2800 0xE8C1 0xE981 0x2940 0xEB01 0x2BC0 0x2A80 0xEA41
+ 0xEE01 0x2EC0 0x2F80 0xEF41 0x2D00 0xEDC1 0xEC81 0x2C40
+ 0xE401 0x24C0 0x2580 0xE541 0x2700 0xE7C1 0xE681 0x2640
+ 0x2200 0xE2C1 0xE381 0x2340 0xE101 0x21C0 0x2080 0xE041
+ 0xA001 0x60C0 0x6180 0xA141 0x6300 0xA3C1 0xA281 0x6240
+ 0x6600 0xA6C1 0xA781 0x6740 0xA501 0x65C0 0x6480 0xA441
+ 0x6C00 0xACC1 0xAD81 0x6D40 0xAF01 0x6FC0 0x6E80 0xAE41
+ 0xAA01 0x6AC0 0x6B80 0xAB41 0x6900 0xA9C1 0xA881 0x6840
+ 0x7800 0xB8C1 0xB981 0x7940 0xBB01 0x7BC0 0x7A80 0xBA41
+ 0xBE01 0x7EC0 0x7F80 0xBF41 0x7D00 0xBDC1 0xBC81 0x7C40
+ 0xB401 0x74C0 0x7580 0xB541 0x7700 0xB7C1 0xB681 0x7640
+ 0x7200 0xB2C1 0xB381 0x7340 0xB101 0x71C0 0x7080 0xB041
+ 0x5000 0x90C1 0x9181 0x5140 0x9301 0x53C0 0x5280 0x9241
+ 0x9601 0x56C0 0x5780 0x9741 0x5500 0x95C1 0x9481 0x5440
+ 0x9C01 0x5CC0 0x5D80 0x9D41 0x5F00 0x9FC1 0x9E81 0x5E40
+ 0x5A00 0x9AC1 0x9B81 0x5B40 0x9901 0x59C0 0x5880 0x9841
+ 0x8801 0x48C0 0x4980 0x8941 0x4B00 0x8BC1 0x8A81 0x4A40
+ 0x4E00 0x8EC1 0x8F81 0x4F40 0x8D01 0x4DC0 0x4C80 0x8C41
+ 0x4400 0x84C1 0x8581 0x4540 0x8701 0x47C0 0x4680 0x8641
+ 0x8201 0x42C0 0x4380 0x8341 0x4100 0x81C1 0x8081 0x4040
+ )
+
+ input="$1"
+ crc=0
+
+ len=${#input}
+ for (( i = 0; i<len; i++ ))
+ do
+ char=${input:$i:1}
+ j=$( printf "%02x" "'$char" )
+ declare -i buf=0x${j}
+ crc=$(( crc_16_table[ ( crc ^ buf ) & 0xff ] ^ ( crc >> 8 ) ))
+ done
+
+ printf "%04x" $crc
+}
+
+crc16=$( calc_crc16 "$1" )
+echo "$crc16"
+