To get the list of webcams
v4l2-ctl --list-devices
Example outout for 2 cameras
vi-output, imx219 7-0010 (platform:54080000.vi:0):
/dev/video0
B525 HD Webcam (usb-70090000.xusb-2.2):
/dev/video1
To get the list of webcams
v4l2-ctl --list-devices
Example outout for 2 cameras
vi-output, imx219 7-0010 (platform:54080000.vi:0):
/dev/video0
B525 HD Webcam (usb-70090000.xusb-2.2):
/dev/video1
My USB speakers seem to have some buggy firmware in that the device name has been corrupted with some binary. At first I thought it was unicode, but uni2ascii
said overwise. Since I need to be able to type the name into config files I had to rename the device using udev.
First we need to fine the name of the device.
Run udevadm monitor --kernel --subsystem-match=sound
Unplug and re-plug in the DAC, this results in:
KERNEL[1585.716702] remove /devices/pci0000:00/0000:00:12.0/usb4/4-5/4-5:1.0/sound/card1/controlC1 (sound)
# my conversion of Goodman's code | |
import numpy as np | |
import matplotlib.pyplot as plt | |
# Program for simulating Speckle Formation by Free Space Propagation | |
# Translate from Mathematica | |
# Ref: Goodman, Joseph W. 2020. Speckle Phenomena in Optics: Theory and Applications, Second Edition. SPIE. | |
n = 1024 # nxn array size |
My system consists of a host PC that has two ethernet cards. What I want to do is use one for connecting to the inernet and the other to run a private network of Raspberry Pi computers.
My first ethenet card is easy, it's basically grabbing its setting via DHCP from my router. What I need to do is create a different subnet for the second card. So first of all I need to look up current IP address. On linux I can run ip a
I need to find the address and mask from there. In my case it's the line starting inet 192.168.86.36/24
The 24 is mask, in this case the last digit of the IP address are all on the same subnet. See https://www.calculator.net/ip-subnet-calculator.html here if you want to calculate your own range.
For the second card I need to pick a static IP address that's on a different subnet. There are a number of IP address that are reserved for private networks so it's best to use one of these.
Class A- 10.0.0.0 to 10.255.255.255
Class B- 172.16.0.0 to 172.31.255.255
Class C- 192.168.0.0 to 19
Apply a cube LUT to mpv playback
mpv -vf=lut3d=XT4_FLog_FGamut_to_ETERNA_BT.709_33grid_V.1.01.cube FILE.MOV
or
celluloid --mpv--vf=lut3d=XT4_FLog_FGamut_to_ETERNA_BT.709_33grid_V.1.01.cube FILE.MOV
Loguru is my favorite way to perform logging in python. It's generally so simple to use but a few things are missing from the documentation.
This is based on the loguru example, but also includes the hostname of the sender. To add extra fields the pefered method is to add to record["extra"]
dictionary (which is normally empty). The client code sends the log messages over the network and to stderr
.
class LoggingSocketHandler:
def __init__(self, host, port, timeout=600):
I have simple bash script that starts lots of processes. If one fails I want to stop everything. There maybe a better way to do this but I came up with this.
First create two scripts to test our main script. good_sleep
that sleeps for 10 seconds and exits with no error.
#!/bin/bash
echo " good sleeping"
sleep 10
echo "done"
Linux mint has a few annoyances when using dual monitors. First fixing the log in screen. By default, it uses the same resolution as the primary monitor in the secondary screen. My secondary monitor is much larger so it doesn't display correctly. It's only cosmentic but it annoys me.
Create or append the file /etc/lightdm/lightdm.conf.d/70-linuxmint.conf
so that it has the lines
[SeatDefaults]
user-session=cinnamon
display-setup-script=/usr/bin/lightdmxrandr.sh