BMI260 IMU driver
January 28, 2024 · View on GitHub
This is a kernel module driver for the Bosch BMI260 IMU. This module is based off of the existing kernel BMI160 implementation. The 260 appears to follow the same specifications as the 270, or close enough to work at least. The configuration binary comes from Chromium OS.
Currently only i2c connections are supported, SPI may come later.
Installation
To install, you may use the AUR package bmi260-dkms which builds from this
repository, or install this repository as a dkms package.
Arch Install
Install from the Arch User Repository (AUR).
yay -S bmi260-dkms
pikaur -S bmi260-dkms
# etc....
❄️ NixOS
Using nix flakes support
There is a NUR module maintained by @Cryolitia
{
description = "NixOS configuration with flakes";
inputs.cryolitia-nur.url = "github:Cryolitia/nur-packages/master";
outputs = { self, nixpkgs, cryolitia-nur }: {
# replace <your-hostname> with your actual hostname
nixosConfigurations.<your-hostname> = nixpkgs.lib.nixosSystem {
# ...
modules = [
# ...
cryolitia-nur.nixosModules.bmi260
hardware.sensor.iio.bmi260.enable = true;
];
};
};
}
Other Distributions
You can also install as a DKMS package manually if you are on Fedora or another distro.
sudo git clone https://github.com/hhd-dev/bmi260 /usr/src/bmi260-0.0.1
cd /usr/src/bmi260-0.0.1
sudo sed -e "s/@_PKGBASE@/bmi260/" \
-e "s/@PKGVER@/0.0.1/" \
-i dkms.conf
sudo dkms install bmi260/0.0.1
To uninstall:
sudo dkms uninstall bmi260/0.0.1
sudo rm -r /usr/src/bmi260-0.0.1
License
The driver in this repository is licensed under GPL-2.0-only, following the driver it is based on (for the Bosch 160).
The configuration blob that is uploaded to the BMI 260 is sourced from ChromeOS and licensed under BSD-3-Clause.