LINUX.ORG.RU

Сообщения pihter

 

Собрать curl динамически слинкованный с libcurl.so.4.8.0 вместо libcurl.so.4

…чтоб подложить в устройство на котором libcurl.so.4 – линк на другую версию и менять его нельзя

Должен быть способ, я в этом уверен

 , , ,

pihter
()

А можно ли запилить домашнее распознавание голоса?

Сабж. Ну типа как какая-нибудь алиса, тока дома, от сервака и чтоб она по командам умела мне какие-нибудь POST-запросы слать или прочее, современное, ненужное.

Если нет – то как можно организовать внешнее распознавание голоса и команды ко мне, желательно чтоб не пришлось слать нотариально-заверенный скан паспорта.

 распознавание голоса

pihter
()

В чем проблема чистить солнечные батареи марсоходов?

Сабж.

Приходится списывать марсоходы потому что не догадались кисточко-дворники задезайнить? Выглядит нереалистично. Отговорка такая?

 марсоход, солнечная батарея

pihter
()

Ищу трансивер для организации своего цифрового радиоканала

Смеркалось.

Давно мечтаю о паре девайсов, которые можно было бы подключить к компу по USB(/LPT/COM/PCI/UART/I2C/etc.) настроить радиосвязь и невозбранно обмениваться данными ( а то и сеть организовать )

Плюсом будет законность (возможность работать без лицензии, но, если что, такое тоже предлагайте), мощность (на самом деле – дальность) и независимость и конечно – цена.

Кто что бодобное занет? Наверняка же есть какие-нибудь CB-шки копеечные с COM-портом, но мне не попадались

Спасибо!

 ,

pihter
()

LIRC не понимает USB-UART в принципе?

или как?

Есть у меня товарищ, а аккаунта на ЛОРе у него нет, зато есть уже на пару дней боль как подружить lirc и ИК-приемник за 23 рубля через usb-uart кабелек. Собсна, слово потерпевшему:

есть pl2303, к нему ик-приёмник vs1838, какой драйвер в лирке использовать и скакими параметрами

putty при подключение на 9600 бод показывает байты

sudo mode2 -Husb_uirt_raw -d/dev/ttyUSB0 ничего не показывает

только устанавливает 115200 бод

после этого cat /dev/ttyUSB0 | hexdump -Cv показывает одни нули

делаем sudo stty -F /dev/ttyUSB0 9600, затем опять cat /dev/ttyUSB0 | hexdump -Cv, есть последовательность 0х80/0х00

как быть?

помогите, люди добрые, не проходите мимо!

 ,

pihter
()

IPC события в одном потоке

Смеркалось.

Возникла у меня потребность обмениваться событиями между процессом на одном хосте. Именно самим фактом события, но было б неплохо с сообщением. Мне известны такие способы: сокеты юниксовые и сетевые, очереди сообщений и сигналы. Еще пайпы.

Мне не нравится что во всех случаях, кроме сигналов, чтение – забота принимающего сигнал: то есть мне надо либо сидеть в блокировке и ждать сообщения (это не то что мне нужно, мне нужно чтоб программа работала все время) либо заводить отдельный тред и сидеть в блокировке там, а когда придет сообщение – звать уже колбек (это будет план БЭ, хочу поспрашать нет ли чего проще/дешевле). А сигналы мне не нравятся потому что пользовательских всего два, а привязать к ним данные – это надо отдельную песню городить ( ну типа по сигналу, например, выгребать сообщение из очереди )

В общем, как эксперты по всему решают эту проблему? Мож есть какая общеизвестная либа или как обычно зоопарк? Нужно для сей на сабжевую ОС, само собой. Предалгайте!

 ,

pihter
()

Самодельный self-signed сертификат для локалхостного вебсокета

Смеркалось.

Захотелось (пришлось) мне опять вляпаться в эту вашу вебнню, значит, надо вебсокет из странички запущенной на локалхосте к серваку на локалхосте. Колдуем:

openssl req -x509 -newkey rsa:2048 -keyout lclhost.key -out lclhost.crt -sha256 -days 365 -nodes -subj '/CN=localhost'

потом пакуем:

openssl pkcs12 -export -in lclhost.crt -inkey lclhost.key -out lclhost.p12

и устанавливаем в браузер. Далее, запускаем в браузере что-то вроде

ws = new WebSocket("wss://localhost:9988");

а на хосте что-то вроде

./websocketd --address=localhost --port=9988 --ssl --sslkey=./lclhost.key --sslcert=./lclhost.crt --loglevel=debug

и, значится, браузер ругается:

ws try to create ws...1
ws Connection closed... code:1015 reason:

а сервер ругается:

2022/08/24 09:25:50 http: TLS handshake error from 192.168.220.35:55234: remote error: tls: bad certificate

Что ж ему не нравится в моих сертификатах? При том, раньше работало, а на новых браузерах видимо чет ужесточили и – вот

UPD: chrome ругается несколько иначе:

2022/08/24 09:52:57 http: TLS handshake error from 192.168.220.35:55832: remote error: tls: unknown certificate

UPD2: додумался посмотреть что пишет браузер: MOZILLA_PKIX_ERROR_SELF_SIGNED_CERT – так, все-таки, самоподписанные больше нельзя?

 , ,

pihter
()

Траффик из определенного сетевого интерфейса в тор

Смеркалось.

Захотелось Понадобилось мне одну внешнюю железяку заставить ходить в интернет через тор. Воткнул вторую сетевушку, запилил ей статический айпи. Поднял dnsmasq, кастанул

iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

обычный NAT заработал, в интернет ходит

Дальше, поставил тор:

cat /etc/tor/torrc

VirtualAddrNetwork 10.0.0.0/10
AutomapHostsOnResolve 1
TransPort 9040
DNSPort 53

(кто знает что имеется в виду в первом параметре – научите дурака. Какой виртуальный адрес? Какой сети?)

а вот iptables для заворачивания трафика в тор на локальной машине:

# Generated by iptables-save v1.8.7 on Mon Jul 25 14:29:18 2022
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 9040
-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
#-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Mon Jul 25 14:29:18 202

и оно тоже работает, но только для моего ПК, а не для входящего, что и логично, ибо АУТПУТ – оно только для пакетов, сгенерированных на моем ПК.

Внимание вопрос – как завернуть внешний траффик туда же? Вроде надо из прероутинга – но у меня не выходит.

Явно ж у кого-то уже сделано – поделитесь

Спасибо

 ,

pihter
()

Автомагнитолы с линуксом. Бывают?

Сабж.

Личный опыт приветствуется.

 , ,

pihter
()

Посоветуйте копеечный USB осциллограф (можно DIY)

Сабж.

Заодно и софт. Про sigrok знаю, даже пользуюсь, но в смысле осциллографа он как-то бледненько.

Советуйте кто во что горазд, кто что пробовал, даже всякий смех типа ftdi-based советуйте, если у кого опыт есть.

Цель: оглядеться в этом вопросе не просто по гуглу, а на реальном опыте. Ну и есть потребность в нескольких штуках для полуигрушечных целей. А может и себе прикуплю какой повзрослее, если понравится и не пожалею денег.

 , ,

pihter
()

Как правильно юзать LuaSocket под оффтопиком?

Смеркалось.

Написал я как-то программку, хорошую, годную, естественно, под линукс. Написал на Си, для окнорисования использовал gtk и чуть-чуть немножечко Lua для всякого скриптования. Написал и пользуюсь и люди пользуются и вообще все замечательно.

Теперь (начинает играть тревожная музыка) о проблеме: некоторые несознательные граждане пользуются виндой и им нужна эта моя программка на винду: казалось бы, все кроссплатформенное, бери, компиляй под винду и раздавай кактусоедам. И я, собственно, так и сделал: построил билд-машинку, поднял на ней MXE (на редкость ловкая штука), немножечко переколдовал мейкфайл и все замечательно работало до тех пор пока я не подключил в свою lua-логику ейную библиотеку про сокеты.

Оказалось, что виндоус-версия ничего ни про какие луа сокеты не знает (сам луа у меня статически вкомпилен в бинарик основной программы), ну, думаю, не беда: нагуглил скомпиленный уже dll с этими сокетами, сунул в папку с программой – невразумительно ругается (%1 не является приложением вин32), ладно, думаю, я не тупее всех, склонил к себе исходники этих луа-сокетов, изородовал тамошний мейкфайл – стало оно мне dll-ку собирать вместе с проектом, но она (длл-ка) тоже не подхватывается, пишет «не найдена указанная процедура» – сижу, наслаждаюсь информативностью виндовых сообщений об ошибках…

Теперь вопросы:

  1. Как это вообще побеждать?

  2. Как это делается правильно?

  3. Как это можно победить наименьшей кровью? (ну, например, заставлять кактусоедов сначала что-то там себе устанавливать на винду, а потом уже пущать мою прогу)

Линукс тут при том, что программа разрабатывается под линукс, а виндоверсия – приятный бонус в данном случае.

Спасибо!

 , , ,

pihter
()

Шлем виртуальной реальности из смартфона для minecraft. Возможно?

Как?

Просто любопытно послушать до чего там дошел прогресс, а 50 тыщ выкидывать на игрушку жалко

 ,

pihter
()

Сертификат Х509 для веб морды эмбеда с заранее неизвестным IP

Есть свой УЦ. У пользователей сертификат уже установлен в барузерах, для другой фигни.

На веб морду надо HTTPS да такой, чтоб не ругался браузер что он его знать не знает. Сложность в том что у веб морд в проде будут самые разыне айпи и, соответственно, заранее сертификат туда не сгенерить.

Как эта проблема решается по уму? Отказ от шифрования? На каждой железке генерить самоподписанный и просить пользователя ему доверять? На каждую железяку складывать приватный ключ от УЦ и генерить на месте когда уже узнаешь айпи?

 , ,

pihter
()

Ubuntu не слушается openssl.cnf (нужно разрешить md5 для сертификатов)

curl при попытке заавторизоваться на неком удаленном хттп-ресурсе с .pem сертификатом ругается:curl: (58) could not load PEM client certificate, OpenSSL error error:140AB18E:SSL routines:SSL_CTX_use_certificate:ca md too weak, (no key found, wrong pass phrase, or wrong file format?)

нагуглил в /etc/ssl/openssl.cnf в последней строке CipherString = DEFAULT@SECLEVEL=2 понизить уровень до 1 или даже нуля, на девуане и дебиане – помогает, в убунте – нет.

ЧЯДНТ?

 , ,

pihter
()

3d печать алюминием по аддитивной технологии. Бывает?

Пятница.

Задался я тут вопросом, а отчего так не делают? Ведь выглядит, на первый взгляд, достаточно просто: алюминий относительно легко расплавить (дуга не нужна), проволоки из него и так гора, казалось бы – бери любой готовый 3д принтер, мало-мало поколдуй с экструдером и вперед? Почему так не делают? Не будет приплавляться? Ютуб молчит по части готовых проб и ошибок (хотя тут, вероятно, я ищу не тем местом). В общем, кто что слыхал/пробовал по теме?

 ,

pihter
()

SPI slave atmega8 и линуксовый SPI

Смеркалось.

Подруживаю одноплатник с линуксом с мегой по SPI. Линуксовая часть получилась отменной, а в от самое простое, мега, два дня уже ниче не отвечает.

Мега работает в слейве, на прием все идеально, а в ответ не шлет ни бита. Микруху менял на новую – то же самое. Мега-код:

#define LED_PORT PORTC
#define LED_DDR  DDRC
#define LED_PIN  PINC
#define LED_BIT  PC5

#define PORT_SPI PORTB
#define DDR_SPI  DDRB
#define PIN_SPI  PINB
#define SCK      PB5
#define MISO     PB4
#define MOSI     PB3
#define SS       PB2

#include <avr/io.h>
#include <util/delay.h>

void SPI_init_S (void){
  DDR_SPI  &= ~(1<<MOSI);
  PORT_SPI &= ~(1<<MOSI);

  DDR_SPI  |=  (1<<MISO);
  PORT_SPI &= ~(1<<MISO);

  DDR_SPI  &= ~(1<<SCK);
  PORT_SPI &= ~(1<<SCK);

  DDR_SPI  &=  (1<<SS);
  PORT_SPI |=  (1<<SS);
  SPCR =  (1<<SPE);
}

unsigned char SPI_WR (unsigned char data_w) {
  SPDR = data_w;
  while (!(SPSR & (1<<SPIF)));
  return (SPDR);
}

int main(void) {
  CONFUGURE_PIN_AS_OUTPUT( LED_DDR, LED_BIT );

  SET_PIN_LOW( LED_PORT, LED_BIT );

  unsigned char data_w = 'B', data_r; 

  SPI_init_S();

  while(1){
    data_r = SPI_WR(data_w);
    data_r = SPI_WR(data_w);
    data_r = SPI_WR(data_w);
    if (data_r == 0) SET_PIN_LOW( LED_PORT, LED_BIT );
    if (data_r == 255) SET_PIN_HIGH( LED_PORT, LED_BIT );
  }

  return 0;
}

джва раза перечитал датащит, не пойму что там может не работать. Если укого завалялся гарантированно-рабочий пример – буду признателен.

(проблемы точно не на принимающей стороне, смотрю лог анализатором, даже прямо к ножке припаивался)

 , ,

pihter
()

rsync: возможно ли перемещение скачанных файлов из временного каталога разом?

… а не по-одному. Я о том, что если у меня файлы могут быть логически связаны друг с другом и их нужно подгружать на ходу.

Вроде рсинк идеально справляется, но вот гипотетически может случиться ситуация, когда он скачал один файл, который ссылается на другой, который он еще не скачал. Если бы их из временного каталога перемещать вместе-разом – было бы иделаьно.

Возможно ли, без модификации кода рсинка?

 

pihter
()

wiringPi работает при сборке на борде, но не работает при кросскомпиляции

Смеркалось.

Потребовалось мне подергать пинами из сишного кода на orangepi-one. Ну я склонил прямо на борду wiringOP собрал прям там, получилась .so-шка, которая поставилась в систему и хидеры мне дали, заинклудил, добавил – -lwiringPi линковщику все заработало.

Зачесалось у меня в одном месте, надоело каждый раз на борде собирать, дай, думаю, кросскомпилятор натравлю. Поставил из пакетов gcc-arm-linux-gnueabihf, подправил мейкфайл – он ожидаемо не нашал на хосте библиотеку.

Тогда я, зачем-то, взял нужные мне объектники от wiringPi и прямо прилинковал к своему бинярю. Стало собираться, однако на устройстве команды типа сет_пин не работают, ошибок нет, просто физический уровень не меняется на пинах. Подумал, может я накосячил с опциями сборки и моя библиотека собрана немного не для той борды – забрал объектники прямо с собраной на плате версии библиотеки – обратно же, собирается но не работает.

Тогда стянул собранную прямо на борде .so-шку, положил ее в каталог сборки, сказал линковщику -L. и опять собралось и не работает.

В общем, ЯННП.

 ,

pihter
()

Получить информацию о питании на процессоре

Есть камень:

# cat /proc/cpuinfo
system type		: BCM7231B2 STB platform
processor		: 0
cpu model		: Broadcom BMIPS4380 V6.4  FPU V0.1
BogoMIPS		: 630.78
cpu MHz			: 634.507
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: no
ASEs implemented	: mips16
shadow register sets	: 1
kscratch registers	: 0
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

processor		: 1
cpu model		: Broadcom BMIPS4380 V6.4  FPU V0.1
BogoMIPS		: 634.88
cpu MHz			: 634.507
wait instruction	: yes
microsecond timers	: yes
tlb_entries		: 32
extra interrupt vector	: yes
hardware watchpoint	: no
ASEs implemented	: mips16
shadow register sets	: 1
kscratch registers	: 0
core			: 0
VCED exceptions		: not available
VCEI exceptions		: not available

работает, понятно, под линуксом. Возможно ли программно получить с него информацию о питании? Как это вообще делается, есть какие-то системные вызовы или это всегда индивидуально? Где в документации искать?

Спасибо

 , ,

pihter
()

Распаковка mipsel boot.img с ядром и рамдиском

Есть mipsel железяка, у ней есть рекавери-образ, вшитый на ейный нанд. Есть тулза читать-писать этот образ, надо бы его модицфицировать.

Я его вычитываю, копирую себе. file показывает что это gzip архив. Распаковываю, распаковывается, file показывает что это mipsel32 ELF. (ядро вначале?) Вся конструкция весит 27 мегабайт в распакованном виде, так что там явно кроме ядра еще и рамдиск.

Андроидские тулзы не работают. Какие идеи как это все разобрать и собрать взад?

 , mipsel

pihter
()

RSS подписка на новые темы