diff options
| -rw-r--r-- | README.md | 58 |
1 files changed, 46 insertions, 12 deletions
@@ -72,6 +72,22 @@ Zum Deinstallieren: clean: make -C /usr/lib/modules/$(shell uname -r)/build M=$(PWD) clean + #### Wichtig: Bei clang/LLVM-Distros muss das Makefile so aussehen: + + obj-m += st_lsm6dsx.o st_lsm6dsx_i2c.o + st_lsm6dsx-objs := st_lsm6dsx_core.o st_lsm6dsx_buffer.o st_lsm6dsx_shub.o + + all: + make CC=clang LLVM=1 -C /usr/lib/modules/$(shell uname -r)/build M=$(PWD) modules + + install: + zstd -f st_lsm6dsx_i2c.ko -o st_lsm6dsx_i2c.ko.zst + cp st_lsm6dsx_i2c.ko.zst /usr/lib/modules/$(shell uname -r)/kernel/drivers/iio/imu/st_lsm6dsx/ + depmod -A + + clean: + make CC=clang LLVM=1 -C /usr/lib/modules/$(shell uname -r)/build M=$(PWD) clean + 4. Die geänderte Datei kompilieren: $ make @@ -95,24 +111,37 @@ Zum Deinstallieren: ## Um das Paket auf allen anderen Distros MIT DKMS zu installieren: -1. Kernel-Quellen herunterladen. Die relevanten Dateien sind: +1. Ordner für die Dateien erstellen und in diesen Ordner wechseln: - 1. drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c - 2. drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h - 3. drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c - 4. drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c - 5. drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c + $ mkdir st-lsm6dsx-shift13mi-1.2 + $ cd st-lsm6dsx-shift13mi-1.2 -2. Die Datei st_lsm6dsx_i2c.c bearbeiten. Nach Zeile 146 muss folgender Inhalt eingefügt werden: +2. Kernel-Quellen herunterladen. Die relevanten Dateien sind: + + - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.c + - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.h + - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.c + - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c + - drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.c + +3. Die Datei st_lsm6dsx_i2c.c bearbeiten. Nach Zeile 146 muss folgender Inhalt eingefügt werden: { "SMOCF00", ST_LSM6DSO_ID, }, -3. Ein Makefile mit folgendem Inhalt erstellen: +4. Ein Makefile mit folgendem Inhalt erstellen: obj-m += st_lsm6dsx.o st_lsm6dsx_i2c.o st_lsm6dsx-objs := st_lsm6dsx_core.o st_lsm6dsx_buffer.o st_lsm6dsx_shub.o -4. Eine Datei namens dkms.conf erstellen: + #### Für clang/LLVM-Distros: + Fügt einmal die Zeilen + + export CC=clang + export LLVM=1 + + in die Datei /etc/dkms/framework.conf ein. + +5. Eine Datei namens dkms.conf erstellen: PACKAGE_NAME="st-lsm6dsx-shift13mi" PACKAGE_VERSION="1.2" @@ -128,20 +157,25 @@ Zum Deinstallieren: MAKE="make -C /usr/lib/modules/${kernelver}/build M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build" CLEAN="make -C /usr/lib/modules/${kernelver}/build M=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean" -5. Den Treiber kompilieren und installieren: +6. Den Ordner in das richtige Verzeichnis kopieren: + + $ cd .. + # cp -r st-lsm6dsx-shift13mi-1.2/ /usr/src/ + +7. Den Treiber kompilieren und installieren: # dkms add st-lsm6dsx-shift13mi/1.2 # dkms build st-lsm6dsx-shift13mi/1.2 # dkms install st-lsm6dsx-shift13mi/1.2 -6. Neue Datei /etc/udev/hwdb.d/10-sensor-shiftbook.hwdb erstellen und folgenden Inhalt einfügen: +8. Neue Datei /etc/udev/hwdb.d/10-sensor-shiftbook.hwdb erstellen und folgenden Inhalt einfügen: sensor:modalias:acpi:SMOCF00:* ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1 #### Wichtig: Das Leerzeichen vor der zweiten Zeile muss vorhanden sein. -7. Alle wichtigen Dienste neu starten: +9. Alle wichtigen Dienste neu starten: # systemd-hwdb update # udevadm trigger |
