пятница, 10 апреля 2026 г.

Linux headers: обновление ядра ручками

 


 

 Linux headers — так называют заголовочные файлы ядра Linux. Это файлы на языке программирования C, которые определяют интерфейс между ядром Linux и библиотеками и программами пользовательского пространства. 

Использование

Заголовочные файлы нужны для компиляции кода, который взаимодействует с ядром
  • Для сборки драйвера устройства или другого загружаемого модуля, который подключается к ядру.
  • Для компиляции программ, которые в некоторых случаях работают с ядром не через glibc, например, утилит, работающих с ядром не через Glibc.

 Это была история, а это памятка по обновлению в ручном режиме: 

   apt install linux-headers-5.10.0-22-amd64
   apt install linux-headers
   dpkg -l | grep -i linux
   apt-get update linux-image
   apt-get update
   apt-get upgrade
   apt-get upgrade linux-image-amd64
   apt-get install linux-image-amd64 

четверг, 9 апреля 2026 г.

Включение или выключение интерфейсов

 


 Команда «ip» используется для настройки параметров сетевого интерфейса в ОС Linux. 
Эта команда хоть была ранше всеми привычной «ifconfig», но популярность сыграла позже в современных дистрибутивах Linux.

$ ip link set dev интерфейс действие

чтобы отключить выполните:
ip link set dev enp0s3 down

чтобы включить его:
ip link set dev enp0s3 up

Вынес в отдельный пост тк систаксис все время запоминаю, можете брать себе в напоминание

Памятка по объектам, как видите понофункциональная
Объект        Сокращен                        Назначение
link         l                 Отображение и изменение сетевых интерфейсов.
address     addr             Адрес протокола (IP или IPv6) на устройстве.
addrlabel     addrl             Конфигурация метки для выбора адреса протокола.
neighbour     n                 Отображение и управление соседними объектами (таблица ARP).
route         r                 Запись таблицы маршрутизации.
rule         ru                 Правило в базе данных политик маршрутизации.
maddress     m                Многоадресный адрес.
mroute         mr                 Запись кэша многоадресной маршрутизации.
tunnel         t                 Туннель через IP. 

 

 

 

 

 

 

 

 

 

 

 

 

вторник, 7 апреля 2026 г.

Вспоминаем былое: кодировка CP866

 




Работая уже на экспертном уровне, не редко приходится сталкиваться с архаичными, мало популярными и просто редкими вещами

В такие моменты при достаточно накопленном объеме знаний, начинаешь смотреть на технику, айти, инженерию как... как на биологию. По сути видишь как развивается техника и это не столько складный логический путь, как в какой-нибудь цивилизации, а компромис между разумнодостаточным. У нас никогда не будет столько памяти сколько хотим, столько места, столько времени на разработку, достаточных знаний о будущем, чтобы сделать раз и на века

Вот и герой нашего сегодня обзора как раз такой "CP866"

Зумеры не знают, а так как в девяностые из всего класса только у меня был комп, о котором мне нельзя было рассказывать, то и большая часть миленеалов тоже))

Проблема с кодировкой русских символов была и остается, увы тут мы были не первые и в роли особо догоняющих
То есть у нас были свои кодировки и такие даже видел, но работать не приходилось

А вот файл с кракозяблями и поиск кодировки для оного я нет нет, да досих пор встречаю

Обычно это связано с использованием Windows, где часто применяется кодировка CP866 или Windows-1251, тогда как в Linux обычно используется UTF-8, а в нынешних реалях даже UTF-32.

Прежде чем расскажу про нее, в двух словах как мы до нее докатились

ASCII – базовая кодировка
ASCII – это база-база, самая первая, что стала стандартом кодировки символов, что был массовым. Он предусматривает в своем составе английский алфавит ака латиницу. Состоит из 128 уникальных символов, которых и стало быстро не хватать. 

ISO – стандарт, представленный 8 битами. Младшая группа символов здесь представляет собой «базовый» ASCII, а старшая группа отводится под разнообразные языки. По сути использовалась Аски, которую удвоили, добавив в конце еще блок в 8 бит, нужный блок выбирался версией 

8859-0 – новый европейский вариант
8859-2 – Восточная Европа
8859-5 – поддержка кириллицы

Идея простая, есть кракозябли и меняешь версию кодировки, пока не совпадет с осознанным тестом

KOI8-R
А вот тут расширенный вариант ASCII. Она предназначается для работы с символами русского алфавита. 

Кириллица здесь располагается в верхней части ASCII так, чтобы произношение алфавита соответствовало аналогам английского алфавита в нижней части таблицы. Это значить, что, если убрать в тексте на KOI8 восьмой бит каждого элемента, в итоге получится хорошо читаемая информация, но на английском языке.

За счет такой продуманности и стала популярной, есть для разных языков восточной европы, но по сути всегда видел лишь один
KOI8-R – для русского языка;

CP866
Альтернативная кодировка от IBM. Это  вторая попытка использовать символы русского алфавита в компьютерной технике. CP866 – это одна из расширенных версий ASCII.

Здесь первая часть полностью совпадает с базовой версией Аски, а нижняя часть позволяла закодировать дополнительные 128 символов. В них были включены как русские буквы, так и псевдографика.

И вот здесь читатель ты наверное услышал для себя новое слово - псевдографика

По крайней мере я надеюсь на это))

Да-да, в 90-ые и ранние 2000-ые мы рисовали текстом, сам успел на Паскале порисовать

Посмотрите на символы ближе к концу кодировки

Видите?

Думаете их мало?

Как бы не так, до сих пор работает ПО с псевдо-3Д графикой, что сразу уважение берет за тех кто такое писал, такое пишется с нуля и никакой автоматизации

Так относительно недавно я и вспомнил про нее обслуживая терминал управления в ближайшем подмосковье)

Ну и под конец, пара слов о последней, наиболее популярной на всяких вордо документах и вообще в виндовс:

 Windows -1251 – это еще одна расширенная версия ASCII. Данный стандарт был разработан корпорацией Microsoft. Появление соответствующей кодировки связано с ростом развития популярности графических операционных систем.

В Windows-1251 была убрана псевдографика. За счет этой особенности образовалась целая новая группа стандартов кодирования, которая выступала расширенной интерпретацией ASCII. Текстовые символы здесь могут быть зашифрованы при помощи всего 1 байта информации.

Из описания сразу понятно, что отрезав и переиспользовав часть кодо-поля будет накладки при не состыковки, иными словами если текст из KOI8-R открыть через 8859 еще можно, то 1251, и уж тем более ее куда более позднее переосмысление 1252 ,невозможно в принцпе 

Собственно поэтому и вымерла по факту

Ух, сегодня ударился в ностальгию, но мне можно после такого перерыва))

Всем добра)))

 






 

 

 

 

 

 

 

 

 

 

 

 

 

 

Телефония Хааса

 


 

     Слышим эффект хааса - т.е. себя с задержкой и нам этот голос еще и не нравится, все же слышали свой голос в записи, вспомнили? 
У нас в голове свой голос приятный, мы к нему привыкли и нам нравится, а когда на записи он как будто не наш и  это эхо очень мешает говорить, люди запинаются заикаются перезванивают. 
Если меньше <50 мс то даже если в динамике будет звук громче вашей речи то он не мешает. 
сливается с тем что мы говорим и эха не ощущается.

       Суммарное время в VoIP-сетях меньше < 50 мс - это идеальные условия всетях связи и очень редко, как правило задержка выше или +- рядом, с таким пустяком DSP процессоры легко справляют и не дают нам  нервничать.

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

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

    Телефонные компании появились намного раньше интернета, мой любимый Nortel Networks, так и вообще в 19 веке. И практически сразу начали бороться разными способами с эхо, активно начали с 50-ых годов, были эхозаградители, частотные фильтры и т.п. а теперь DSP-процессоры.

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

Вывод: человек аналоговый и вышедший из природной среды, придумал использовать для связи интерфейсы предназначенные для того чтобы общаться в непосредственной близости. 

На далекие расстояния и наша техника делает кучу несвойственной природе  работы по преобразованию из аналоговой информации в цифровую и обратно, из чего напрашивается естественный переход в полностью цифровое общение, как естественное, вышедшее из неествественного

Киберпанк и технократия постучались в наш дом 

воскресенье, 21 сентября 2025 г.

Unable to connect to remote asterisk

 

 После запуска **asterisk** через **systemctl** от пользователя **«asterisk»** обнаружилось, что при подключении к **CLI** выдаёт ошибку:

Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

После разбирательства выяснилось, что у папки **/var/run/asterisk** владелец указан root и права 755.

drwxr-xr-x  2 root    asterisk      40 июл  6 16:38 asterisk

После исправления владельца и прав вручную **asterisk** стартовал в штатном режиме. Но **/var/run** (а точнее /run, на который ссылается /var/run) является **tmpfs**, и после перезагрузки папки **/var/run/asterisk** вообще не появлялось, а после запуска **asterisk'а** папка создавалась по новой с теми же владельцем и правами.

Для решения данной проблемы воспользовался [инструкцией](https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html) и создал файл **asterisk.conf** в папке **/usr/lib/tmpfiles.d/** с таким содержимым:

d 0755 asterisk asterisk -

Теперь после перезапуска системы папка сразу создавалась с необходимым владельцем и правами:

drwxr-xr-x  2 asterisk    asterisk      40 июл  6 16:58 asterisk

 

 

/var/run
drwxr-xr-x  2 asterisk asterisk   80 Jun 21 14:21 asterisk

права asterisk чтобы мог создать

srwxrwxr-x 1 asterisk asterisk 0 Jun 21 14:21 asterisk.ctl
-rw-r--r-- 1 asterisk asterisk 5 Jun 21 14:21 asterisk.pid


asterisk.conf
[files]
astctlpermissions=0775
astctlowner = asterisk
astctlgroup = asterisk
astctl = asterisk.ctl



chown asterisk:asterisk asterisk
chown -R asterisk.asterisk /etc/asterisk /var/{lib,log,spool}/asterisk /usr/lib64/asterisk

понедельник, 3 февраля 2025 г.

Linux После удаления место не освободилось

 
 Такое случается на Linux, только обычно этого не кто не замечает так как файлы обычно малого объема, да и перезагрузка машины решает эту проблему, но когда файл большой (несколько ГБ) и место не освободилось сразу, а еще и перезагрузить нельзя, тогда приходится засучить рукава и разбираться в мат части

df -h

Показало, что мало место, путем поиска du -d1 -h находим источник занятого места. В моем случае это -  kamailio.log

Решение:

# lsof | grep deleted | grep kamailio
rsyslogd    1155                 root    6w      REG              253,4 3040190464      10981 /var/log/kamailio/kamailio.log (deleted)
in:imjour   1155  1172           root    6w      REG              253,4 3040190464      10981 /var/log/kamailio/kamailio.log (deleted)
rs:main     1155  1187           root    6w      REG              253,4 3040190464      10981 /var/log/kamailio/kamailio.log (deleted)

Интересным в этом выводе будет цифра 1155. Ищем ссылку на типа /proc/*наш id*/fd/*ссылка на файл*

# ls -l /proc/1155/fd|grep kamailio
l-wx------ 1 root root 64 Feb  2 11:10 6 -> /var/log/kamailio/kamailio.log (deleted)

Собственно временный файл найден, обнуляем

cat /dev/null > /proc/1155/fd/6

таким образом можно восстановить удаленный файл linux из временного

пятница, 9 августа 2024 г.

Debian 12 sources.list редактирование и уход от cdrom

 

 


 Если после установки постоянно просит диск и ничего с этим не сделать, то идем в сорс-листы и комментим вот такую строчку

 cat /etc/apt/sources.list
#deb cdrom:[Debian GNU/Linux 12.5.0 _Bookworm_ - Official amd64 NETINST with firmware 20240210-11:27]/ bookworm contrib main non-free-firmware

deb http://deb.debian.org/debian/ bookworm main
#non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm main
#non-free-firmware

deb http://security.debian.org/debian-security bookworm-security main
#non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main
#non-free-firmware

# bookworm-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bookworm-updates main
#non-free-firmware
deb-src http://deb.debian.org/debian/ bookworm-updates main
#non-free-firmware


 Пример из последнего Дебиан 12, но по сути так и в предыдущих версиях...по крайней мере где-то с 8ой

 

 

 

 

 

 

 

Linux headers: обновление ядра ручками

      Linux headers — так называют заголовочные файлы ядра Linux . Это файлы на языке программирования C, которые определяют интерфейс ме...