aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Misic <twoexem@gmail.com>2026-03-26 17:04:31 +0100
committerMilan Misic <twoexem@gmail.com>2026-03-26 17:04:31 +0100
commit3d23a75f9d6b5713fc35a7672b4855baf7ced820 (patch)
tree275878123718f39091ad4bb98b1ec415a916d572
parent1100c261144e6b1b18edc329fae53fb9d0ece8c2 (diff)
Added README.md
-rw-r--r--README.md152
1 files changed, 152 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..897d096
--- /dev/null
+++ b/README.md
@@ -0,0 +1,152 @@
+# ST-LSM6DSX-SHIFT13MI (v1.2)
+
+Dieses Repositorium beinhaltet die Quelldaten des Pakets [st-lsm6dsx-shift13mi_1.2-1_amd64.deb](https://apt.twoexem.com/pool/main/s/st-lsm6dsx-shift13mi/), welches auf allen Geräten vom Typ SHIFT13mi / SHIFTbook der Firma SHIFT die Funktionsfähigkeit vom Gyroskop wiederherstellt.
+
+Mehr Hintergründe zu diesem Problem sind auf [der Forumsseite](https://forum.shiftphones.com/threads/reparatur-des-lagesensors-unter-linux-fur-die-automatische-bildschirmorientierung.7817/) zu finden.
+
+Dieses Paket wird nur solange nötig sein, bis ein Kernel-Patch im Mainline-Kernel ankommt.
+
+## Um das Paket über meinen Server zu installieren:
+
+1. GPG-Schlüssel importieren:
+
+ $ curl https://apt.twoexem.com/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/twoexem.gpg
+
+2. Apt-Quelle hinzufügen:
+
+ $ echo "deb [signed-by=/etc/apt/keyrings/twoexem.gpg] https://apt.twoexem.com stable main" | sudo tee /etc/apt/sources.list.d/twoexem.list
+
+3. Paket installieren:
+
+ # apt update
+ # apt install st-lsm6dsx-shift13mi
+
+## Um das Paket selbst auf Ubuntu zu installieren:
+
+1. Repo klonen:
+
+ $ git clone https://git.twoexem.com/twoexem/st-lsm6dsx-shift13mi/
+ cd st-lsm6dsx-shift13mi/
+
+2. Das Paket erstellen:
+
+ $ dpkg-deb --build --root-owner-group st-lsm6dsx-shift13mi
+
+3. Das Paket installieren:
+
+ # apt install ./st-lsm6dsx-shift13mi.deb
+
+Zum Deinstallieren:
+
+ # apt remove st-lsm6dsx-shift13mi
+
+## Um das Paket auf allen anderen Distros OHNE DKMS zu installieren:
+
+### Wichtig: Das Patch wird nach jedem Kernel-Update entfernt und muss neu installiert werden.
+
+1. Kernel-Quellen herunterladen. Die relevanten Dateien sind:
+
+ 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
+
+2. 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:
+
+ 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 -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 -C /usr/lib/modules/$(shell uname -r)/build M=$(PWD) clean
+
+4. Die geänderte Datei kompilieren:
+
+ $ make
+
+5. Das Paket installieren:
+
+ # make install
+
+6. 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:
+
+ # systemd-hwdb update
+ # udevadm trigger
+ # systemctl restart iio-sensor-proxy
+
+## Um das Paket auf allen anderen Distros MIT DKMS zu installieren:
+
+1. Kernel-Quellen herunterladen. Die relevanten Dateien sind:
+
+ 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
+
+2. 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:
+
+ 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:
+
+ PACKAGE_NAME="st-lsm6dsx-shift13mi"
+ PACKAGE_VERSION="1.2"
+
+ BUILT_MODULE_NAME[0]="st_lsm6dsx_i2c"
+
+ BUILT_MODULE_LOCATION[0]=""
+
+ DEST_MODULE_LOCATION[0]="/kernel/drivers/iio/imu/st_lsm6dsx/"
+
+ AUTOINSTALL="yes"
+
+ 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:
+
+ # 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:
+
+ 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:
+
+ # systemd-hwdb update
+ # udevadm trigger
+ # systemctl restart iio-sensor-proxy
+
+Um den Treiber zu deinstallieren:
+
+ # dkms remove st-lsm6dsx-shift13mi/1.2 \ No newline at end of file