вторник, 12 июля 2022 г.

Connect ELM327 to Linux via Bluetootn

hcitool scan # get MAC for device
sudo rfcomm bind rfcomm0 00:12:06:21:96:94 # create /dev/rfcomm0
minicom -b 115200 -D /dev/rfcomm0


git clone https://github.com/norly/elmcan.git
cd elmcan/modules
make
sudo modprobe can-dev
sudo insmod can327.ko
sudo ./attach-me.sh /dev/rfcomm0
sudo ldattach \
       --debug \
       --speed 115200 \
       --eightbits \
       --noparity \
       --onestopbit \
       --iflag -ICRNL,INLCR,-IXOFF \
       29 \
       /dev/rfcomm0
Stucked with
ldattach: iflag (set/clear): 64/4352
ldattach: opened /dev/rfcomm0
ldattach: set to raw 115200 8n1: cflag=0x800018b2
ldattach: line discipline set to 29

суббота, 13 марта 2021 г.

msi.sdr in openwebrx on Orange pi zero

Download and install SDRplay API for device RSP1 for platform ARM Raspberry https://www.sdrplay.com/downloads/

$ wget https://www.sdrplay.com/software/SDRplay_RSP_API-ARM32-3.07.2.run

$ git clone https://github.com/pothosware/SoapySDR.git

$ git clone https://github.com/pothosware/SoapySDRPlay.git

Check sdr available:

$ SoapySDRUtil --info
Lib Version: v0.8.0-g351896d3
API Version: v0.8.0
ABI Version: v0.8
Install root: /usr/local
Search path:  /usr/local/lib/SoapySDR/modules0.8
Module found: /usr/local/lib/SoapySDR/modules0.8/libsdrPlaySupport.so (0.3.0-208f95d)
Available factories... sdrplay

$ SoapySDRUtil --find
Found device 0
  driver = sdrplay
  label = SDRplay Dev0 RSP1 B0005P0001


$ git clone https://github.com/jketterl/owrx_connector.git

Clone openwebrx  and configure

Check sdrplay issues if any
http://IP:8073/features

In sum we get CPU burn > 80% for 4 cores at 1GHz by sdrplay_apiService app and sluttering sound.
Unuseful on this embed.

Настройка Armbian на Orange Pi Zero

Для автоматического подключения к Wi-Fi через USB-адаптер, вместо встроенного:

# nmcli connection modify <SSID name> connection.interface-name <wlan eth name>

# service network-manager restart


вторник, 10 ноября 2020 г.

Установка драйверов nvidia на Debian 10

Хоть и установлен DKMS для NVIDIA, но каждый раз с обновлением ядра необходимо скачивать исходники ядра и пересобирать модули.

Add non-free repo to /etc/apt/sources.list
> deb http://deb.debian.org/debian/ buster main contrib non-free

# apt update
# apt install -y linux-headers-$(uname -r)
# apt install nvidia-detect
$ nvidia-detect  <- shows recomended driver. For me nvidia-legacy-340xx-driver
# apt install nvidia-legacy-340xx-driver nvidia-legacy-340xx-smi

Откат драйверов
# apt-get remove --purge nvidia-*
# Xorg -configure

После обновления ядра:
# dpkg --list | egrep -i 'linux-image|linux-headers' - Список установленных
# apt --purge remove linux-XXX
# apt install -y linux-headers-$(uname -r)
# dkms autoinstall

Также по теме
https://transang.me/how-to-reinstall-nvidia-driver-after-a-linux-kernel-upgrade/

вторник, 14 апреля 2020 г.

DMR: Непростой Basic Privacy

Хотел послушать обстановку в городе в связи с введением повышенной готовности.
DSD+ показал, что используется AlgID=BP.
Быстрое гугление выдало, что для Basic Privacy используется XOR и один из фиксированных 255 ключей.
Вооружившись официальным спеками, раскурил код DSDccx, и добавил реализацию. Но голос это не открыло.

Запуск DSD+ с параметром -v4 показал, что MFID=104, т.е. используется железо Hytera. А скорее всего 'импортозамещенное' Эрика.

Далее нашлось, что алгоритм Basic Encryption от Hytera совсем не то же самое, что Basic Privacy у MotoTRBO, а именно могут использоваться ключи на 40, 128 и 256 бит. Причем уже не фиксированные производителем, их можно задавать при настройке системы.

Причем, и MotoTRBO и Hytera BP определяются в DSD+ как Alg=BP без каких либо уточнений. Быть может свежая платная версия DSD эту разницу как-то отображает.

Заявляют, что даже не при полном совпадении ключа речь может быть понятной (пост #15, открывать через USA прокси).
Эрика может использовать только программируемый 40-битный ключ или аналоговый 56-битный ключ.
В сумме с этим уже можно что-то поделать. Но проверять я, конечно, это не буду.
73

воскресенье, 15 марта 2020 г.

Tp-Link TL-WN821n v4 linux driver rtl8xxxu


Сначала очень успешно использовал драйвер rtl8192cu от pvaret, но после обновления до debian 10 он стал работать медленно и рвать соединение.
На репозитории обновили информацию, что нужно теперь запускать rtl8xxxu, который начиная с версии ядра 4.4 стал вполне себе неплох.

Добавление строчек в /etc/modprobe.d/blacklist.conf приводило к полному отключению wifi:
blacklist rtl8192cu
alias usb:v0BDAp8178d*dc*dsc*dp*icFFiscFFipFFin* rtl8xxxu
Последнюю строчку добавил (по "вредному" совету отсюда), так как отсутствовала поддержка для конкретных VID-PID:
modinfo rtl8xxxu 
Данные VID-PID поддерживаются в системе только драйвером rtl8192cu:
cat /lib/modules/`uname -r`/modules.alias | grep 8178
alias usb:v07B8p8178d*dc*dsc*dp*ic*isc*ip*in* rtl8192cu
alias usb:v0BDAp8178d*dc*dsc*dp*ic*isc*ip*in* rtl8192cu
И наконец я нашел корень проблемы. Оказалось дело в том, что в Debian как и в некоторых других дистрибутивах не включен параметр поддержки rtl8178:
egrep "UNTESTED" /boot/config-`uname -r`
# CONFIG_RTL8XXXU_UNTESTED is not set
Читаем официальную документацию на пересборку ядра тут п.4.5, и делаем по шагам:
# apt-get install linux-headers-4.19.0-8-amd64
# apt-get install linux-source-4.19
# tar xaf /usr/src/linux-source-4.19.tar.xz
# if [ -d linux ]; then rm linux; fi; ln -s linux-source-4.19 linux
# cd linux
Копирование конфигураций
# cp /boot/config-`uname -r` .config
# cp /usr/src/linux-headers-`uname -r`/Module.symvers .
Устанавливаем новый флаг. С остальным соглашаемся
# ./scripts/config --set-val CONFIG_RTL8XXXU_UNTESTED y
# apt install libelf-dev
# make modules_prepare
# make M=drivers/net/wireless/realtek/rtl8xxxu
Бэкап оригинального драйвера
# mv /lib/modules/`uname -r`/kernel/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko{,.bak}
Копирование нового драйвера
# cp /usr/src/linux/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.ko /lib/modules/`uname -r`/kernel/drivers/net/wireless/realtek/rtl8xxxu/
# depmod -a
# modprobe -r rtl8xxxu rtl8192cu

И после перетыкания USB-WiFi работает новый драйвер:
$ lsmod | grep rtl
rtl8xxxu 135168 0
mac80211 835584 2 ath5k,rtl8xxxu
usbcore 294912 4 xhci_hcd,usbhid,xhci_pci,rtl8xxxu
Скорость неплохая - около 20Мб/c в обе стороны прокачивает. Светодиод на свистке не работает.
Есть одно НО - при следующем обновлении ядра процедру придется повторить.

суббота, 2 ноября 2019 г.

Хакиндос на MacBook Pro 2011

Есть в хозяйстве Mac Book Pro 2011 late (он же MacBookPro8,1) - один из тех последних, кому можно памяти впихнуть и второй HDD вместо дисковода воткнуть.
Только вот под окошками привычнее с документами и фотографиями работать на "бесплатной" основе.

Прошло 2 дня..
Были попытки и похачить Boot Camp Assistant, чтобы создать загрузочную USB-флешку. Только BIOS в версиях non-retina не поддерживает загрузку с USB-флешек.
Есть вариант с загрузкой USB через rEFInd, но тоже не получилось.
Уже хотел разбирать и вставлять дисковод и искать раритетный DVD-RW диск.

Наконец наткнулся на вариант с установкой через VirtualBox. Как всегда не без нюансов.
По порядку:


  1. Скачиваем и ставим ВСЕ компоненты (включая консольную версию)
  2. Создаем виртуальный жесткий диск, который является ссылкой на реальный:
    1. Через diskutil list смотрим идентификаторы своих разделов
    2. Размонтируем diskutil unmount /dev/disk#s# (где # - ваши идентификаторы раздела с BootCamp/Windows)
    3. Создаем файл виртуального жесткого диска
      • sudo VBoxManage internalcommands createrawvmdk -filename ~/RawWinDisk.vmdk -rawdisk /dev/disk# -partitions 1,#
        • где 1 - раздел с EFI,
        • # - раздел под Windows.
  3. Запускаем VirtualBox от суперпользователя (иначе установщик Windows ругался на какие-то проблемы)
    • sudo /Applications/VirtualBox.app/Contents/MacOS/VirtualBox
  4. Добавляем новую машину с произвольным именем и типом дистрибутива, например Microsoft Windows 7 (64-bit). Выбираем "Не использовать диск".
  5. Идем в настройки машины -> Носители.
    • На контроллере SATA ставим Кеширование ввода/вывода, иначе будет ошибка при запуске VERR_ACCESS_DENIED
    • Создаем контроллер IDE с типом ICH6 и к нему подключаем CD-привод и образ HDD RawWinDisk.vmdk.
    • Добавляем в привод оптических дисков наш ISO-образ Windows.
  6. Запускаем машину. Делаем полную установку.
  7. В установщике переформатируем BootCamp раздел в NTFS.
  8. Дожидаемся копирования и первичной установки.
  9. В момент перезагрузки необходимо выключить виртуальную машину, перезагрузить ноутбук и удерживать клавишу Alt до появления устройств для загрузки. Выбираем Windows и завершаем установку
  10. Ставим драйвера BootCamp 5.1.5621. Для своего ноута и разрядности винды смотрим таблицу соответствия
  11. По итогу получил в списке Загрузочные диски новый вариант загрузки Новый Windows.