Запустить Orange Pi при подаче питания
Привет, ЛОР!
Есть Orange Pi 5 Plus, linux стартует после нажатия кнопки; как можно заставить стартовать апельсинку без нажатия кнопки? Перемкнуть контакты не предлагать 😃. WakeOnLan - как крайняя мера.
Привет, ЛОР!
Есть Orange Pi 5 Plus, linux стартует после нажатия кнопки; как можно заставить стартовать апельсинку без нажатия кнопки? Перемкнуть контакты не предлагать 😃. WakeOnLan - как крайняя мера.
Захотелось мне купить себе клавиатуру:
В числе просмотренных были Redragon Apas RGB, Dark Project KD87A Gateron Mechanical Cap Teal (но уж сильно негуманная цена).
Хотелось бы уложиться в 4-5 тысяч, заранее благодарен.
Собственно, вопрос: я что-то пропустил? Загрузил в KTorrent
два свежих файла и… после некоторого ожидания в статусе трекера: Error: HTTP 522
. Есть средства побороть ошибку?
Update:
ghost@darkstar $ ping -c 3 http://bt4.t-ru.org
ping: http://bt4.t-ru.org: Name or service not known
Блокировки?
Есть необходимость отслеживать состояние ethernet-подключения. Да, можно в консоли выполнить
cat /sys/class/net/eno1/carrier
и
cat /sys/class/net/eno1/operstate
и сделать выводы.
Можно сделать что-то вроде system("cat /sys/class/net/eno1/carrier")
, но как-то это мне не нравится.
inotify
не хочет работать с /sys
.
Как это сделать лучше из программы? Я могу открыть файлы, прочитать из них данные и обработать их. Нормально ли открывать их раз в секунду? Может, есть еще какие-то способы?
Привет, ЛОР!
У нас с коллегой один проект, который требует FreeRTOS и STM32. Создавать проекты с поддержкой FreeRTOS в stm32cube уже получается, а как добавить FreeRTOS-Plus - пока не понятно. Может кто-нибудь подсказать, что, куда и как, чтобы получить желаемое? Если что, то контроллер - stm32f767zitx. Не предлагайте, пожалуйста, сменить контроллер, от нас не зависит.
Доброго всем!
Для нужд тестирования tcp-клиента делаю простой сервер, от которого (пока) нужно только принять сообщение и подтвердить его прием.
Клиент (псевдокод):
cli_sd = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(cli_sd, SOL_SOCKET, SO_RCVTIME0, ...);
setsockopt(cli_sd, SOL_SOCKET, SO_SNDTIME0, ...);
connect(cli_sd, ...);
while (1) {
send(...);
recv(...);
}
Сервер (тоже псевдокод):
srv_sd = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(srv_sd, SOL_SOCKET, SO_REUSEADDR, ...);
bind(...);
while (1) {
cli_sd = accept(...);
setsockopt(..., SO_RCVTIME0, ...);
setsockopt(..., SO_SNDTIME0, ...);
int rd = recv(...);
if (errno == ECONNRESET) {
shutdown(cli_sd, ...);
close(cli_sd, ...);
continue;
}
send(...);
}
Обмен есть, сообщения посылаются/отправляются, а вот когда я прерываю работу клиента (чтобы сымитировать разрыв соединения) accept
как ни в чем не бывало, тут же соединяется, cli_sd
получает то же значение, что и было, но ведь клиент уже не работает.
Поскольку это первое серьезное приложение с сокетами, помогите разобраться, как переподсоединить клиента.
Добрый вечер, люди!
Дано: slackware 15, KDE. SD кардридер (встроенный). Вставляю карту и она автоматически монтируется без проблем. А вот при попытке Safely remove (в систрее) - не размонтируется. Только umount /dev/mmcblk0p1
вручную.
Подскажите, куда смотреть и что править.
Добрый день!
Есть такой код:
std::atomic_int g_thr_cnt(0);
class Logger
{
public:
~Logger() {};
static Logger& get_logger()
{
static Logger logger;
return logger;
}
void log(const std::string& _msg)
{
m_messages.push_back(_msg);
}
void log_job(std::atomic_int& _counter)
{
while (_counter > 0)
{
cout << "Log job" << endl;
usleep(670000);
}
cout << "Logger exited" << endl;
}
protected:
std::list<std::string> m_messages;
Logger() {};
Logger(const Logger& _obj); // no copies
const Logger& operator=(const Logger& _obj); // no assignment
};
void sig_handler(int _sig)
{
switch (_sig)
{
case SIGTERM:
{
cout << "Got SIGTERM" << endl;
}
g_thr_cnt = 0;
break;
default:
cout << "No, no, no, David Blaine, no street magic!" << endl;
}
}
int main()
{
g_thr_cnt = 1;
signal(SIGTERM, sig_handler);
Logger& logger = Logger::get_logger();
std::thread thr(&Logger::log_job, std::ref(logger), std::ref(g_thr_cnt));
thr.join();
cout << "[exited]" << endl;
return 0;
}
На хосте (CentOS stream, gcc (GCC) 8.5.020210514) он собирается и работает. Ок, идем на целевую ОС (Debian 8 в виртуалке, gcc (Debian 4.9.2-10) 4.9.2) и получаем ошибку:
Scanning dependencies of target thr
make[2]: Warning: File '/home/user/work/log-thr/src/main.cpp' has modification time 6673 s in the future
[ 50%] Building CXX object CMakeFiles/thr.dir/main.cpp.o
In file included from /usr/include/c++/4.9/thread:39:0,
from /home/user/work/log-thr/src/main.cpp:2:
/usr/include/c++/4.9/functional: In instantiation of ‘struct std::_Bind_simple<std::_Mem_fn<void (Logger::*)(std::__atomic_base<int>&)>(std::reference_wrapper<Logger>, std::reference_wrapper<std::__atomic_base<int> >)>’:
/usr/include/c++/4.9/thread:140:47: required from ‘std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = void (Logger::*)(std::__atomic_base<int>&); _Args = {std::reference_wrapper<Logger>, std::reference_wrapper<std::__atomic_base<int> >}]’
/home/user/work/log-thr/src/main.cpp:77:76: required from here
/usr/include/c++/4.9/functional:1665:61: error: no type named ‘type’ in ‘class std::result_of<std::_Mem_fn<void (Logger::*)(std::__atomic_base<int>&)>(std::reference_wrapper<Logger>, std::reference_wrapper<std::__atomic_base<int> >)>’
typedef typename result_of<_Callable(_Args...)>::type result_type;
^
/usr/include/c++/4.9/functional:1695:9: error: no type named ‘type’ in ‘class std::result_of<std::_Mem_fn<void (Logger::*)(std::__atomic_base<int>&)>(std::reference_wrapper<Logger>, std::reference_wrapper<std::__atomic_base<int> >)>’
_M_invoke(_Index_tuple<_Indices...>)
^
CMakeFiles/thr.dir/build.make:62: recipe for target 'CMakeFiles/thr.dir/main.cpp.o' failed
make[2]: *** [CMakeFiles/thr.dir/main.cpp.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/thr.dir/all' failed
make[1]: *** [CMakeFiles/thr.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2
Кто-нибудь знает, как заставить код собираться?
Добрый всем вечер!
Есть такой класс:
class BackgroundTask
{
public:
BackgroundTask();
~BackgroundTask();
void odd_job()
{
while (1)
{
// do something useful
}
}
void slot_need_stop()
{
std::terminate();
}
};
Где-то в main
:
std::thread jobt(&BackgroundTask::odd_job, &job);
jobt.join();
Слот slot_need_stop
связан с сигналом от обработчика SIGTERM и прерывает работу odd_job
.
Насколько корректно такое прерывание потока? Если нет, то посоветуйте, плиз, как. Заранее благодарен.
Здравствуйте, люди добрые!
Очередные вопросы про rsyslog (если что, rsyslog 8.4.2-1).
Теперь бы надо сделать вывод в лог в json. Добавил в rsyslog.conf шаблон:
template(name="outfmt" type="list" option.jsonf="on") {
property(outname="@timestamp"
name="timereported"
dateFormat="rfc3339" format="jsonf")
property(outname="host"
name="hostname" format="jsonf")
property(outname="severity"
name="syslogseverity-text" caseConversion="upper" format="jsonf")
property(outname="facility"
name="syslogfacility-text" format="jsonf")
property(outname="syslog-tag"
name="syslogtag" format="jsonf")
property(outname="source"
name="app-name" format="jsonf")
property(outname="message"
name="msg" format="jsonf")
}
и перезапустил службу. Однако, не вижу в логе JSON’а. Отсюда вопросы:
openlog(app_name, ...)
, т.е. именем программы?Всем привет!
Есть некоторое устройство, с которым идет обмен через последовательный порт. Я вычитываю количество доступных для чтения байтов, затем читаю их. Чтение очищает буфер и порт готов к приему сдедующего пакета. Сейчас я обмениваюсь с устройством через USB->UART.
Имеет ли значение какой порт используется, изменится ли поведение, если будет «железный» UART?
Может измениться ли поведение в зависимости от настроек порта (если да, от каких настроек это зависит)?
И снова здравствуйте!
Пытаюсь записать syslog в отдельный файл. Сделал тестовую программу в которой:
openlog("testlog", LOG_CONS, LOG_USER);
syslog(LOG_INFO, "TESTLOG: %s", argv[1]);
Бинарь на выходе имеет имя tsl.
В /etc/rsyslog.conf:
if $programmname startswith "testlog" then /home/user/test/test.log
Перезапускаю rsyslog, запускаю программу, а строка, которую я должен записать в лог оказывается и в test.log
и в /var/log/messages
Так и должно быть или я что-то делаю не так?
День добрый!
Дали тут мне задачу сделать демона. Как сделать демона - понятно, книг/доков/примеров достаточно. А что должно быть в самом демоне, чтобы обеспечить поддержку start/restart/stop средствами systemd?
Всем добра!
Понадобилось мне добавить параметр ядра при загрузке CentOS8.
Гугл говорит, что можно править /etc/default/grub + grub2-mkconfig а еще можно через grub2-editenv - set
Поскольку с GRUB’ом сталкиваюсь в первый раз, а в гугле всяких советов море, подскажите, как лучше/правильней?
Здравствуйте, добрые люди!
Собственно вопрос в названии. Для своих личных проектов хочу заказать иконки, остается выбрать исполнителя.
Может кто-нибудь порекомендовать сайт и исполнителя?
Поиск в Яндекс дал кое-что, помогите, плиз, с выбором.
Извините, но букв будет много.
Есть кастомная плате на базе zynq с двумя подключенными flash. На нулевой (QSPI) моя программа, первую (SPI) надо использовать для своих целей.
Беру их пример (xspips_flash_polled_example.c) и пытаюсь запустить. Если ничего не менять, то пример не работает, неверно читается ID флешки и зависает в цикле ожидания статуса.
Если в начале теста изменить FLASH_SPI_SELECT_1 на FLASH_SPI_SELECT_0 (что, вроде бы логично, ибо эта флешка 0-вая на своем контроллере), тогда Device ID корректный, все статусы приходят. А дальше сам тест - записываются тестовые данные, читаются и не совпадают.
Если есть добрые люди, которые знают, как исправить ситуацию - буду признателен.
Добрый всем день!
Вроде недавно обсуждали подобный вопрос, но найти не получается. Подскажите, пожалуйста, программы навигации по коду и построения диаграммы вызовов. Спасибо.
Собственно, subj. Пишу заголовок, указываю теги, доюавляю текст самого сообщения. После нажатия кнопки «Поместить» тема на форуме не добавляется.
Slackware64-current, Asus X509FA-EJ027.
После старта в dmesg:
root@darkstar:/home/live# dmesg | grep -i rtw
[ 15.357660] rtw_8821ce 0000:02:00.0: enabling device (0000 -> 0003)
[ 15.615515] rtw_8821ce 0000:02:00.0: Firmware version 24.8.0, H2C version 12
[ 15.634227] rtw_8821ce 0000:02:00.0: rfe 4 isn't supported
[ 15.634385] rtw_8821ce 0000:02:00.0: failed to setup chip efuse info
[ 15.634423] rtw_8821ce 0000:02:00.0: failed to setup chip information
еще:
root@darkstar:/home/live# lspci
02:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8821CE 802.11ac PCIe Wireless Network Adapter
root@darkstar:/home/live# iwconfig
lo no wireless extensions.
root@darkstar:/home/live# inxi -nx
Network: Device-1: Realtek RTL8821CE 802.11ac PCIe Wireless Network Adapter vendor: AzureWave driver: N/A port: 3000
bus-ID: 02:00.0
драйверы:
root@darkstar:/home/live# lsmod | grep -i rtw
rtw88_8821ce 16384 0
rtw88_8821c 94208 1 rtw88_8821ce
rtw88_pci 28672 1 rtw88_8821ce
rtw88_core 167936 2 rtw88_pci,rtw88_8821c
mac80211 1069056 2 rtw88_pci,rtw88_core
cfg80211 1032192 2 rtw88_core,mac80211
Ядро:
Linux darkstar.home.arpa 5.15.2 #1 SMP PREEMPT Fri Nov 12 11:44:33 CST 2021 x86_64 Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz GenuineIntel GNU/Linux
RJ-45 нет, так что надо поднимать wi-fi. Собственно, вопрос: как?
следующие → |