update software documentation
This commit is contained in:
@@ -9,6 +9,8 @@
|
|||||||
|
|
||||||
- [Firmware Updates](hardware/001-firmware-updates.qd)
|
- [Firmware Updates](hardware/001-firmware-updates.qd)
|
||||||
- [Thunderbolt](hardware/002-thunderbolt.qd)
|
- [Thunderbolt](hardware/002-thunderbolt.qd)
|
||||||
|
- [Power Profiles](hardware/003-power-profiles.qd)
|
||||||
|
- [Keychron Keyboard](hardware/004-keychron.qd)
|
||||||
|
|
||||||
###! Software Configuration
|
###! Software Configuration
|
||||||
|
|
||||||
@@ -18,3 +20,5 @@
|
|||||||
- [Signal](software/004-signal.qd)
|
- [Signal](software/004-signal.qd)
|
||||||
- [Telegram](software/005-telegram.qd)
|
- [Telegram](software/005-telegram.qd)
|
||||||
- [GnuPG](software/006-opengpg.qd)
|
- [GnuPG](software/006-opengpg.qd)
|
||||||
|
- [GnuPG](software/007-kdeconnect.qd)
|
||||||
|
- [GnuPG](software/008-docker.qd)
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
.docname {Keychron Keyboard}
|
||||||
|
.include {docs}
|
||||||
|
|
||||||
|
# Keychron Keyboard
|
||||||
|
|
||||||
|
To enable access to the keyboard for the QMK launcher (or similar programs), set the following udev rule in
|
||||||
|
`/etc/udev/rules.d/99-keychron.conf`
|
||||||
|
|
||||||
|
```
|
||||||
|
# The Keyboard Itself
|
||||||
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0aa1", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
# The 2.4 Ghz Wireless Dongle
|
||||||
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="d030", MODE="0666", TAG+="uaccess", TAG+="udev-acl"
|
||||||
|
```
|
||||||
|
|
||||||
|
Values for `idVendor` and `idProduct` can be found with `lsusb | grep -i Keychron`.
|
||||||
|
|
||||||
|
Reload the udev rules `udevadm control --reload-rules`
|
||||||
|
|
||||||
|
## Firmware Updates
|
||||||
|
|
||||||
|
To enable firmware updates, install `yay -S dfu-util` to provide the required toolbox.
|
||||||
|
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
.docname {XPS 13 9350 (2024)}
|
||||||
|
.include {docs}
|
||||||
|
|
||||||
|
## Sound
|
||||||
|
|
||||||
|
Install the firmware `sof-firmware`
|
||||||
|
|
||||||
|
## Camera
|
||||||
|
|
||||||
|
The camera, while available on free software and without drivers,
|
||||||
|
produces a very bad, raw image with green tint.
|
||||||
|
|
||||||
|
To have a higher quality, we need to install a custom intel
|
||||||
|
driver.
|
||||||
|
|
||||||
|
Install `linux-firmware-intel libcamera-tools dkms linux-headers intel-vision-drivers-dkms-git pipewire-libcamera`.
|
||||||
|
|
||||||
|
Make sure that the `intel_cvs` kernel module (and dependency) is loaded:
|
||||||
|
|
||||||
|
`/etc/modules-load.d/intel_cvs.conf`:
|
||||||
|
```txt
|
||||||
|
gpio_ljca
|
||||||
|
usb_ljca
|
||||||
|
intel_cvs
|
||||||
|
```
|
||||||
|
|
||||||
|
After rebooting `cam -l` should show `1: Internal front camera (\_SB_.LINK1)`
|
||||||
|
after some warnings. `qcam` should start a raw camera stream.
|
||||||
|
The raw camera stream will have a greenish tint.
|
||||||
|
|
||||||
|
> Note: The Intel Vision Driver module must already be loaded when the ov02c10 sensor is probed.
|
||||||
|
> If you cannot see your camera, run `rmmod ov02c10` && `modprobe ov02c10` as root and try again.
|
||||||
|
|
||||||
|
For Firefox, open about:config (See Firefox#Configuration) and set media.webrtc.camera.allow-pipewire to "True".
|
||||||
|
|
||||||
|
For Chromium, enable the flag enable-webrtc-pipewire-camera in chrome://flags/ or set it in your configuration file.
|
||||||
|
|
||||||
|
### Proprietary Hardware Stack
|
||||||
|
|
||||||
|
The proprietary hardware stack requires additional components to be installed and configured,
|
||||||
|
but it provides substantially better video quality vs using only open source drivers and software.
|
||||||
|
First ensure that the above steps are complete at least to the point where qcam shows a raw camera stream.
|
||||||
|
|
||||||
|
Download `intel-ipu7-dkms-git` and modify the PKBUILD file.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
mkdir ~/.camera_driver
|
||||||
|
cd ~/.camera_driver
|
||||||
|
git clone https://aur.archlinux.org/intel-ipu7-dkms-git.git
|
||||||
|
cd intel-ipu7-dkms-git
|
||||||
|
nvim PKGBUILD
|
||||||
|
```
|
||||||
|
|
||||||
|
- remove the dependency `intel-ivsc-firmware` from the `depends` section.
|
||||||
|
- Change `source=("git+${url}")` to instead point to a specific commit and
|
||||||
|
add a patch file to it
|
||||||
|
`source=("git+https://github.com/intel/ipu7-drivers.git#commit=77e3a0065697314cc7437a6eefd7e0d36ab06a4b" "https://patch-diff.githubusercontent.com/raw/intel/ipu7-drivers/pull/67.patch")`
|
||||||
|
- Add another `'SKIP'` to `sha256sums`
|
||||||
|
- In the `prepare()` section, apply the patch: `patch -Np1 -i ../67.patch`
|
||||||
|
|
||||||
|
Here is the pkgfile
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Maintainer: Yamada Hayao <shun819.mail@gmail.com,>
|
||||||
|
# Contributer: Karim Vergnes <me@thesola.io>
|
||||||
|
|
||||||
|
pkgname=intel-ipu7-dkms-git
|
||||||
|
_pkgname=ipu7-drivers
|
||||||
|
pkgver=r77.77e3a00
|
||||||
|
pkgrel=1
|
||||||
|
pkgdesc="Intel IPU7 camera drivers (DKMS)"
|
||||||
|
arch=('any')
|
||||||
|
url="https://github.com/intel/${_pkgname}"
|
||||||
|
license=('unknown')
|
||||||
|
depends=('dkms')
|
||||||
|
provides=('intel-ivsc-driver-dkms-git' 'intel-ipu7-dkms')
|
||||||
|
conflicts=('intel-ivsc-driver-dkms-git')
|
||||||
|
makedepends=('git')
|
||||||
|
source=("git+https://github.com/intel/ipu7-drivers.git#commit=77e3a0065697314cc7437a6eefd7e0d36ab06a4b" "https://patch-diff.githubusercontent.com/raw/intel/ipu7-drivers/pull/67.patch")
|
||||||
|
sha256sums=('SKIP' 'SKIP')
|
||||||
|
|
||||||
|
pkgver() {
|
||||||
|
cd $_pkgname
|
||||||
|
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||||
|
}
|
||||||
|
|
||||||
|
prepare() {
|
||||||
|
cd "$srcdir/$_pkgname"
|
||||||
|
patch -Np1 -i ../67.patch
|
||||||
|
sed -i "s/^PACKAGE_VERSION=\".*\"$/PACKAGE_VERSION=\"$pkgver\"/g" ./dkms.conf
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir"
|
||||||
|
install -dm755 "$pkgdir/usr/src"
|
||||||
|
cp -rT "$_pkgname" "$pkgdir/usr/src/$_pkgname-$pkgver"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Run the package build and install
|
||||||
|
|
||||||
|
- `makepkg --syncdeps`
|
||||||
|
- `makepkg --install`
|
||||||
|
|
||||||
|
Install `intel-ipu7-camera-hal-git`
|
||||||
|
|
||||||
|
Download `icamerasrc-git` and modify the PKBUILD file.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cd ~/.camera_driver
|
||||||
|
git clone https://aur.archlinux.org/icamerasrc-git.git
|
||||||
|
cd icamerasrc-git
|
||||||
|
nvim PKGBUILD
|
||||||
|
```
|
||||||
|
|
||||||
|
- replace dpendency `ipu6-camera-hal` with `ipu7-camera-hal`
|
||||||
|
|
||||||
|
Run the package build and install
|
||||||
|
|
||||||
|
- `makepkg --syncdeps`
|
||||||
|
- `makepkg --install`
|
||||||
|
|
||||||
|
### Config Files
|
||||||
|
|
||||||
|
Make sure that the kernel modules load in the correct order
|
||||||
|
Remove the file `/etc/modules-load.d/intel_cvs.conf`.
|
||||||
|
|
||||||
|
Create the file `/etc/modprobe.d/90-ipu7-usbio-order.conf` with
|
||||||
|
|
||||||
|
```txt
|
||||||
|
softdep intel_ipu7 pre: usbio gpio_usbio i2c_usbio intel_cvs intel_skl_int3472_discrete
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the file `/usr/lib/udev/rules.d/90-ipu7-psys.rules`
|
||||||
|
|
||||||
|
```txt
|
||||||
|
KERNEL=="ipu7-psys0", MODE="0666", SYMLINK+="ipu-psys0"
|
||||||
|
```
|
||||||
|
|
||||||
|
Reboot the system.
|
||||||
|
|
||||||
|
Check that the camera is now working with
|
||||||
|
|
||||||
|
```sh
|
||||||
|
gst-launch-1.0 -v icamerasrc ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! videoconvert ! videoflip method=rotate-180 ! waylandsink
|
||||||
|
```
|
||||||
|
|
||||||
|
### V4L2 Relay
|
||||||
|
|
||||||
|
Now, we can create a V4L2 loopback device that presents the gstreamer/icamerasrc stream when activated.
|
||||||
|
|
||||||
|
Install `v4l2-relayd`.
|
||||||
|
|
||||||
|
Create the following file to instantiate the virtual v4l2loopback device on boot:
|
||||||
|
|
||||||
|
`/etc/modprobe.d/v4l2loopback.conf`:
|
||||||
|
|
||||||
|
```txt
|
||||||
|
options v4l2loopback card_label="Intel IPU7 Virtual Camera"
|
||||||
|
```
|
||||||
|
|
||||||
|
Create the systemd service file for the relay.
|
||||||
|
|
||||||
|
`/etc/v4l2-relayd.d/intel-ipu.conf`
|
||||||
|
|
||||||
|
```ini
|
||||||
|
VIDEOSRC="icamerasrc device-name=ov02c10-uf ! video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! videoconvert ! videoflip method=rotate-180"
|
||||||
|
FORMAT=NV12
|
||||||
|
WIDTH=1920
|
||||||
|
HEIGHT=1080
|
||||||
|
FRAMERATE=30/1
|
||||||
|
CARD_LABEL="Intel IPU7 Virtual Camera"
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, enable the `v4l2-relayd@intel-ipu.service`.
|
||||||
|
|
||||||
|
After restarting your machine, any supported applications should see your camera as a standard V4L2 device with wide support.
|
||||||
@@ -41,6 +41,9 @@ A system deployed with fz-stack **will not**:
|
|||||||
|
|
||||||
## Todos
|
## Todos
|
||||||
|
|
||||||
|
- node version in starship anzeigen
|
||||||
|
- node / nvm / npm version inspect
|
||||||
|
|
||||||
[arch-linux]: https://archlinux.org
|
[arch-linux]: https://archlinux.org
|
||||||
[arch-linux-wiki]: https://wiki.archlinux.org/title/Main_page
|
[arch-linux-wiki]: https://wiki.archlinux.org/title/Main_page
|
||||||
[hyprland]: https://hypr.land
|
[hyprland]: https://hypr.land
|
||||||
|
|||||||
@@ -87,3 +87,6 @@ Download and Install the following extensions
|
|||||||
Check <https://github.com/catppuccin/userstyles/tree/main>.
|
Check <https://github.com/catppuccin/userstyles/tree/main>.
|
||||||
Usage guide: <https://userstyles.catppuccin.com/getting-started/usage/>
|
Usage guide: <https://userstyles.catppuccin.com/getting-started/usage/>
|
||||||
|
|
||||||
|
## Enable PWAs
|
||||||
|
|
||||||
|
Enable PWAs by setting `browser.taskbarTabs.enabled` to `true` in `about:config`
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
.docname {KDE Connect}
|
||||||
|
.include {docs}
|
||||||
|
|
||||||
|
KDE connect provides features to connect to Android.
|
||||||
|
Install `kdeconnect`
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
.docname {Docker}
|
||||||
|
.include {docs}
|
||||||
|
|
||||||
|
Install the package `docker`. Make sure that the user is in the group `docker`:
|
||||||
|
`sudo usermod -aG docker $USER`.
|
||||||
|
|
||||||
|
If the group does not yet exist, it can be created with `groupadd -r docker`.
|
||||||
Reference in New Issue
Block a user