LINUX.ORG.RU

Избранные сообщения superuser

Форум — General

Linux для магазина

 , , мойсклад

Привет всем. Решил открыть свое дело. Буду использовать программу «МойСклад» . Подскажите какую купить версию Linux для магазина? Покупать хочу чтобы был сертификат на Операционку и не было проблем с нелицензионным ПО. Давно пользуюсь Linux для дома, пересадил на него несколько знакомых. Какой системой пользоваться для меня не принципиально.

wwwdimon1
()
Форум — Linux-hardware

Не возможно построить wifi сеть 5GHz на модуле intel, история неуспеха...

 , , , ,

Доброго времени суток всем!

Появился у меня недавно промышленный мини ПК Qotom Q150S-S08. Установлен модуль wifi Intel Corporation Wireless 3165. И решил я сделать себе из него роутер, взамен умирающего Zyxel Keenetic II. Благо и HDD можно внутрь Qotom спрятать под файлопомойку, и настроить всё что мне нужно.

Начал настройку согласно мануалу одного американского любителя, который сделал всё практически так же (часть 1, часть 2, часть 3), только я попытался все настроить на Debian 11.

Сначала я обрадовался, мой iw list выдал красивую информацию:

       Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * AP/VLAN
                 * monitor
                 * P2P-client
                 * P2P-GO
                 * P2P-device
AP поддерживается - супер!
И с поддержкой каналов проблем нет (в отличии от автора статьи):
...
                Frequencies:
                        * 2412 MHz [1] (22.0 dBm)
                        * 2417 MHz [2] (22.0 dBm)
                        * 2422 MHz [3] (22.0 dBm)
                        * 2427 MHz [4] (22.0 dBm)
                        * 2432 MHz [5] (22.0 dBm)
                        * 2437 MHz [6] (22.0 dBm)
                        * 2442 MHz [7] (22.0 dBm)
                        * 2447 MHz [8] (22.0 dBm)
                        * 2452 MHz [9] (22.0 dBm)
                        * 2457 MHz [10] (22.0 dBm)
                        * 2462 MHz [11] (22.0 dBm)
                        * 2467 MHz [12] (22.0 dBm)
                        * 2472 MHz [13] (22.0 dBm)
                        * 2484 MHz [14] (22.0 dBm)
...

                Frequencies:
                        * 5180 MHz [36] (22.0 dBm)
                        * 5200 MHz [40] (22.0 dBm)
                        * 5220 MHz [44] (22.0 dBm)
                        * 5240 MHz [48] (22.0 dBm)
                        * 5260 MHz [52] (22.0 dBm)
                        * 5280 MHz [56] (22.0 dBm)
                        * 5300 MHz [60] (22.0 dBm)
                        * 5320 MHz [64] (22.0 dBm)
                        * 5500 MHz [100] (22.0 dBm)
                        * 5520 MHz [104] (22.0 dBm)
                        * 5540 MHz [108] (22.0 dBm)
                        * 5560 MHz [112] (22.0 dBm)
                        * 5580 MHz [116] (22.0 dBm)
                        * 5600 MHz [120] (22.0 dBm)
                        * 5620 MHz [124] (22.0 dBm)
                        * 5640 MHz [128] (22.0 dBm)
                        * 5660 MHz [132] (22.0 dBm)
                        * 5680 MHz [136] (22.0 dBm)
                        * 5700 MHz [140] (22.0 dBm)
                        * 5720 MHz [144] (22.0 dBm)
                        * 5745 MHz [149] (22.0 dBm)
                        * 5765 MHz [153] (22.0 dBm)
                        * 5785 MHz [157] (22.0 dBm)
                        * 5805 MHz [161] (22.0 dBm)
                        * 5825 MHz [165] (22.0 dBm)
...
Не надо патчить ядро, обрадовался я, и обломился.

Прежде всего проблема в том, что на 2.4GHz скорость ноута, в полуметре от железки - меньше 60Mb/s. Не будем паниковать раньше времени, переведём железку на 5GHz...

В общем, я столкнулся с проблемой, такой же как у автора статьи (только у него модуль Airetos AEX-QCA9880-NX, а у меня, напомню AC3165).
Хоть iw reg get и выдает следующий выхлоп:

global
country 00: DFS-UNSET
        (2402 - 2472 @ 40), (N/A, 20), (N/A)
        (2457 - 2482 @ 20), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
        (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, PASSIVE-SCAN
        (5170 - 5250 @ 80), (N/A, 20), (N/A), AUTO-BW, PASSIVE-SCAN
        (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, AUTO-BW, PASSIVE-SCAN
        (5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, PASSIVE-SCAN
        (5735 - 5835 @ 80), (N/A, 20), (N/A), PASSIVE-SCAN
        (57240 - 63720 @ 2160), (N/A, 0), (N/A)
iw list продолжает выдавать список каналов в 5GHz без пометки "(no IR)", но стоит попытаться стартануть hostapd, hostapd не стартует, и после этого выхлоп iw list так же меняется на следующий:
...
                Frequencies:
                        * 5180 MHz [36] (22.0 dBm) (no IR)
                        * 5200 MHz [40] (22.0 dBm) (no IR)
                        * 5220 MHz [44] (22.0 dBm) (no IR)
                        * 5240 MHz [48] (22.0 dBm) (no IR)
                        * 5260 MHz [52] (22.0 dBm) (no IR, radar detection)
                        * 5280 MHz [56] (22.0 dBm) (no IR, radar detection)
                        * 5300 MHz [60] (22.0 dBm) (no IR, radar detection)
                        * 5320 MHz [64] (22.0 dBm) (no IR, radar detection)
                        * 5500 MHz [100] (22.0 dBm) (no IR, radar detection)
                        * 5520 MHz [104] (22.0 dBm) (no IR, radar detection)
                        * 5540 MHz [108] (22.0 dBm) (no IR, radar detection)
                        * 5560 MHz [112] (22.0 dBm) (no IR, radar detection)
                        * 5580 MHz [116] (22.0 dBm) (no IR, radar detection)
                        * 5600 MHz [120] (22.0 dBm) (no IR, radar detection)
                        * 5620 MHz [124] (22.0 dBm) (no IR, radar detection)
                        * 5640 MHz [128] (22.0 dBm) (no IR, radar detection)
                        * 5660 MHz [132] (22.0 dBm) (no IR, radar detection)
                        * 5680 MHz [136] (22.0 dBm) (no IR, radar detection)
                        * 5700 MHz [140] (22.0 dBm) (no IR, radar detection)
                        * 5720 MHz [144] (22.0 dBm) (no IR, radar detection)
                        * 5745 MHz [149] (22.0 dBm) (no IR)
                        * 5765 MHz [153] (22.0 dBm) (no IR)
                        * 5785 MHz [157] (22.0 dBm) (no IR)
                        * 5805 MHz [161] (22.0 dBm) (no IR)
                        * 5825 MHz [165] (22.0 dBm) (no IR)
То есть появляется и "(no IR)", и "(no IR, radar detection)".

Пропатчить ядро способом автора не получилось.
При выполнении команды: fakeroot debian/rules binary-generic
возвратилась ошибка:

make: *** Нет правила для сборки цели «binary-generic».  Останов.

Я не силен в пересборках ядра, возможно из-за отличий в дистрибутивах нужно было что то делать немножко иначе? Подскажите, если кто знает. С другой стороны, так же нашёл другие посты на просторах инета, где у людей и на убунте не получилось повторить подвиг автора задумки.

Я не расстроился. Во первых и дистрибутив несколько другой, и модуль у автора другой. Обратил внимание, что автор упоминает, что исходный патч взял у OpenWRT. Я подумал, что OpenWRT - это же прошивка для роутера, а роутеры бывают разные, возможно есть и на intel'овских чипах, значит там всё предусмотрено, и пропатчено, как и должно быть. В принципе, я не гордый, мне как бы всё равно, что будет работать на железке, и поставил на железку OpenWRT x86-64. На OpenWRT настроил сеть, wifi... и обломался второй раз. На OpenWRT wifi так же не завелся - 5GHz молчит. Сделал на OpenWRT iw list, и увидел такую же картину, как и на Debian - и "(no IR)", и "(no IR, radar detection)" присутствуют точно так же.

А потом я все же нашел посты и на ЛОРе, где у людей были такие же проблемы с разными модулями, в том числе и от intel, и по тексту не совсем ясно, решили ли люди свои проблемы?
В частности темы:
* WiFi AP 5GHz ath10k "(no IR)", вопрошатель Miss_Burpl;
* ath10k + hostapd + 5ghz + linux 5.8 = fail, вопрошатель blind_oracle;
* Посоветуйте USB3 WiFi адаптер, вопрошатель AEP;
* Intel AX200 как точка доступа, вопрошатель post-factum.

С последней темой очень интересно, потому как у post-factum что то получилось, но из треда не понятно, что именно. И pekmop1024 в этой же теме показал свои выхлопы, из которых следует, что часть частот у него разблокированы.

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

А теперь собственно вопрошание о помощи. Как заставить работать эти грёбанные модули на каналах 5GHz?! Возможно кто-то знает какой-нибудь модуль от какого-либо производителя с разблокированными каналами, или такой, в котором их реально можно программно разблокировать? Желательно «AX»...

Спасибо, что дочитали до конца.
И отдельное спасибо всем ответившим.

ivanlex
()
Форум — Desktop

Посоветуйте настройки fstab для F2FS

 , ,

Собственно, накатил Линукс на SSD, выбрал в качастве ФС F2FS и почему-то не смог найти список опций для этой ФС.

Как включить сжатие в этой ФС?

Какие параметры посоветуете прописать в fstab?

Нужно ли включать discard (слыхал что у F2FS какой-то свой алгоритм дискарда, но включен ли он по умолчанию, Х/З)?

Vochatrak-az-ezm
()
Форум — Development

wxWidgets и cmake теперь не дружат?

 , , ,

имеется арч, последние пакеты, желание использовать wxWidgets в своем проекте на c++.

`--> pacman -Qs cmake
local/cmake 3.22.2-1
    A cross-platform open-source make system
local/extra-cmake-modules 5.90.0-1 (kf5)
    Extra modules and scripts for CMake


`--> pacman -Qs wx
local/wxgtk-common 3.0.5.1-3
    Common libraries and headers for wxgtk2 and wxgtk3
local/wxgtk3 3.0.5.1-3
    GTK+3 implementation of wxWidgets API for GUI


при добавлении в CmakeLists.txt
find_package(wxWidgets REQUIRED gl core base )
include("${wxWidgets_USE_FILE}")

происходит
`--> cmake ..
module path is
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find wxWidgets (missing: wxWidgets_LIBRARIES
  wxWidgets_INCLUDE_DIRS)
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/cmake/Modules/FindwxWidgets.cmake:1025 (find_package_handle_standard_args)
  CMakeLists.txt:16 (find_package)


примечательно, что чуть ранее все работало — накрылся на днях диск на 2Тб — купил ssd, переставил систему, и теперь не собирается то, что собиралось на старой.

дубликат темы

Решение

safocl
()
Форум — General

Загрузка с root=UUID=... без initrd

Можно ли так сделать? Думал, что всё просто - заменит root=/dev/sd... на root=UUID=..., но при загрузке получаю segfault с сообщением VFS: unable to mount on unknown-block(0,0).

Я знаю, что это работает в Ubuntu и Gentoo для ядер, собранных с genkernel; и там, и там используется initrd. Так можно ли обойтись без него, или no way?

tiandrey
()
Форум — Desktop

Как вы записываете звук при записи экрана

 , ,

Коллеги , на последней федоре(33) и последнем gnome (3.38.1) сломался любимый записыватель экрана https://github.com/EasyScreenCast/EasyScreenCast/issues/281#issuecomment-731557691

А штатный не пишет со звуком . Как вы решаете эту проблему ?

pinachet
()
Форум — Admin

Захват с камеры в OpenWRT без обработки

Ищу программу для того, чтобы можно было захватывать поток с камеры и передавать его по сети на сервер. Тот, в свою очередь уже будет обрабатывать видео. Цель: уменьшение нагрузки на проц. Камера Logitech C270 HD. Даёт, само собой HD-качество. Палитра: YUYV.

`cat /dev/video0' не работает. Как я понимаю, дело в том, что на камеру нужно подавать какие-то управляющие данные или как-то правильно обрабатывать прерывания.

Для OpenWRT часто советуют mjpg_streamer, но он использует обработку видео. Без задания fps и resolution что-то получить с камеры вобще не удаётся. Самое максимальное, что потянул роутер - 320x240x10fps. Далеко от HD.

Копался в настройках motion. Но он тоже оказался с преднастройками разрешения и fps. На компе выдвал загрузку проца в 0.5%. Для моего роутера ето будет все 150%.

На компьютере пробовал захватывать поток при помощи `mencoder tv:// -ovc copy -tv noaudio -o video.dump`. В результате получался несжатый поток, который даже проигрывался Totem. Нагрузка проца чуть ли не нулевая, чего не удавалось добится другими средствами захвата. Минус в том, что нет реализации в OpenWRT.

Есть ли какие-то щё средства для того, чтобы получить необработанный raw-поток с камеры, чтобы не грузить проц?

abr_linux
()
Форум — Development

Навеяно свежей дырой в Xorg

 , ,

Привет, ЛОР!

Ты, наверное, уже видел свежую дыру в Xorg, патч для которой выглядит буквально вот так:

-        else
+        else {
             free(to->button->xkb_acts);
+            to->button->xkb_acts = NULL;
+        }

В связи с этим у меня возник вопрос: а почему в стандартной библиотеке C нет макроса SAFE_FREE()?

#define SAFE_FREE(ptr) do{free(ptr);(ptr)=NULL;}while(0)

Напомню, что значение указателя после вызова free() является неопределённым согласно стандарту. Не только значение памяти, на которое он указывает, но и значение самого указателя, и работа с ним представляет собой жуткое undefined behaviour, а значит единственное что можно сделать – занулить его.

Так вот, почему даже таких банальных вещей нет? Я уже не говорю про строковый тип, а то даже Эдичка тут строки не осилил.

Моя гипотеза тут: C – это язык культа страданий во имя страданий.

hateyoufeel
()
Форум — Talks

Переводилка для вашего ПекА

 , , , ,

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

Обновлено.

Зависимости apt install lua xclip xsel xdotool aosd_cat translate-shell

Вопщем таксь.
Порой, нужно не просто выделить текст где угодно и увидеть его по перевод по горячей клавише,
но и получить его перевод в виде текста. К счастью в x11 есть аж три буфера обмена.
Поэтому добавил опцию copy_translated=true/false.

Суть проста:

  • вешаете скрипт, например на F7
  • выделяете произвольный текст без его копирования через контекстное меню(как и было)
  • нажимаете F7 и
  • всплывает текст перевода (как и было)
  • нажимаете среднюю кнопку мышки и в любом поле ввода вставляется оригинальный текст
  • нажимаете правую кнопку мышки и через контекстное меню делаете вставить и вставляется переведённый вариант
  • повторное нажатие F7 ещё раз покажет перевод, без повторного выделения
#! /bin/env lua
local poptrans =
{
    -- select language from lang to lang
    lang_from = "auto", --auto,en,fr,de or other
    lang_to   = "ru",
    -- copy translated text to clipboard
    -- if you select text (no use context menu textcopy)
    --   - middle mouse button paste translated text
    --   - right mouse button context menu paste original text
    --   - script used 2 levels X11 clipboard buffest of 3 levels :)
    copy_translated = true,
    -- how more seconds show you translated text
    show_timer = 3,
    -- popup translated text under mouse position
    follow_mouse = true,
    -- if follow_moise is false, set translated
    -- text position static coords
    popup_pose_x = 0,
    popup_pose_y = 0,
    -- max width message in screen, zero is auto
    popup_width  = 0,
    -- get text from system clipboard
    app_clipboard = "xclip -o 2> /dev/null",
    -- set text to system clipboard
    app_set_clipb = "xsel -b -i ",
    -- get mouse systemd coords
    app_mousepose = "xdotool getmouselocation 2> /dev/null",
    -- show text popup with translated text
    app_popup_msg = "aosd_cat -x %d -y %d -B white -R white -t 0 -p 0 -u %d -w %d"
}

function poptrans:run()
    local translated = '';
    self.previos_text = '';
    -- read clipboard
    local exec = io.popen(self.app_clipboard);
    local text = exec:read('*all');exec:close();
    -- get cursor position
    exec = io.popen(self.app_mousepose);
    if self.follow_mouse then
        self.popup_pose_x,self.popup_pose_y = exec:read("*all"):match("x:(%d+) y:(%d+)");
        self.popup_pose_x = self.popup_pose_x+3; exec:close();
    end
    -- do not translate previos text or empty or translated text
    if text ~= previos_text and text ~= '' and text ~= translated then
      local from = ''
      if self.lang_from ~= "auto" then
        from = self.lang_from;
      end
      exec = io.popen('trans   '..from..':'..self.lang_to.." -b '"..text.."'");
      translated = exec:read("*all"); exec:close();
      if self.copy_translated then
         exec = io.popen(self.app_set_clipb,'w')
         exec:write(translated:sub(1,#translated-1));
         exec:flush();
         exec:close();
      end
      previos_text = text;
      exec = io.popen(
      self.app_popup_msg:format(
      self.popup_pose_x,self.popup_pose_y,self.show_timer*1000,self.popup_width),"w");
      exec:write(translated);exec:close();
    end
end

poptrans:run()

Не используйте версию из истории правок!. Там опасный баг с кавычками, (спасибо @maxcom исправить дал)
Единственное что там полезно это пример как делать перевод через гугл API по токену.
Но раз появилась возможность правки то ::)

- ИСПОЛЬЗОВАТЬ НА СВОЙ СТРАХ И РИСК, Я НЕ НЕСУ НИКАКОЙ ОТВЕТСТВЕННОСТИ
- ВСЁ ПРЕДОСТАВЛЯЕТСЯ КАК ЕСТЬ, ЛЮБЫЕ СОМНЕНИЯ ДОЛЖНЫ ВЕСТИ
- К ОТКАЗУ ОТ ИСПОЛЬЗОВАНИЯ
LINUX-ORG-RU
()
Форум — General

Как посмотреть тайминги DDR из линуха?

 ,

Подскажите, а возможно как-то посмотреть на линухе тайминги памяти?

У меня в биосе почему-то не показываются текущие тайминги (мать gigabyte), а устанавливать винду только чтобы посмотреть тайминги ddr это как-то... тупо?

devorg
()
Форум — Desktop

Ядро 5.17 ПК не выключается

 , , , ,

Сдрассьте!

Внутренне прекрасно понимаю, ядро тестовое, не факт что вообще понадобится.. но ### уже 5.17.6, а проблема не исчезает..

Стационарный корытор, Манжара, systemd, KDE, Intel, Ksas. Важный нюанс - в бивисе включен wake-on-lan и restore-after-power-lost (отключать их нельзя). *ПК должен включаться по рассписанию, а в крайних случаях - через ssh-запрос на роутер (он с мобилой в одной впн)

В общем, симптом: через 3 секунды после выключения, ПК включается обратно. Не помогает ничего кроме обесточивания: перетискал все S1-S3 состояния, выключал по-разному (с кнопки то же самое), ковырял демонов - не помогает.

Начал думать, роутер флудит wol (микротик 2011) так-вот, нет, работает строго по графику+ssh.

Единственная зацепка - если потушить на материнке wol, то выключается штатно (а смысл?)

Наверняка же была такая проблема и раньше... в исаях 5.17 и на оффорум маньки - ни бита..

hargard
()
Форум — Admin

OpenWRT Wake-On-Wan на Archer C7

 , ,

Доброе время суток.
Подскажите, плиз, рабочее решение для Wake on Wan (WOL over Internet) - Archer C7 v2 и OpenWRT 18.06.2.
Перепробовал все рекомендации - и ip neigh на целевой компьютер и на броадкаст MAC. Пробросы делал, порты отрывал, с бубном танцевал.
Внутри сети пакеты бегают, извне - никак.

manitu2
()
Форум — General

ChatGPT

 

Люди, это конец человечества.

Эта штука имеет НАСТОЯЩИЙ РАЗУМ на уровне среднего студента.

Да, делает ошибки, но легко исправляется, если на них указать.

Я в реальном шоке. Тут вот на Хабре один человек написал:

===

ДлчНикакой «войны с ИИ» не может быть. Сейчас мы прошли этап искуственного идиота, и создали искуственного умника. Просто брутфорсом, больше связей и больше размеченных данных. Нейросетка все также не обучается в процессе разговора, все также не моделирует реальность. Или я упустил, и ей задавали вопросы типа «нарисуем круг желтого цвета диаметром 1, через центр круга проведем 4 отрезка желтого цвета длинной 2, середина каждого отрезка пусть совпадет с центром круга, угол пересечения отрезков пусть будет 45 градусов. Какой обьект нарисован, выдай все варианты.»

===

Прикол в том, что я задал ИИ именно этот вопрос и он легко справился. У меня нет доступа к Хабру, чтобы там ответить, но это просто жесть полная. Настала новая эпоха.

Или например, «напиши код, который рисует машину на языке Wolfram Mathematica». Написал код, который рисует микроавтобус.

Nxx
()
Статьи — Desktop

Zram vs Zswap. Часть 1: практика

 , ,

Хочу поделиться историей вылезшего косяка настройки свопа.

Я до сих пор гоняю в качестве десктопа железки с очень малым объёмом памяти и соответственно очень активно своплюсь. Раньше для этоого использовал традиционный и более распиареный zram, но потом у меня закралось подозрение что я всё делаю неправильно...

( читать дальше... )

kirill_rrr
()
Форум — Desktop

Система становится неюзабельной после рассвопливания

 , , ,

Ситуция: система глубоко ушла в своп. 6гб+. После завершение каких-то процессов и система «рассвопилась». В свопе осталось 300-400мб. Далее я система становится неюзабельной. При любой деятельности(переключение между вкладками) или что-то открываю в редакторе - активно что-то в hdd происходит со свопом. Такое ощущение, что весь софт начинает игнорить озушку и работает со свопом. Такое было и на пк с 32гб озу(но проявляло себя очень редко ввиду того, что почти всегда всё вращается в озушке и не вылазит в своп), когда запускаются скрипты, которые точно так же 6гб+ вылазят в своп(да-да, бывает и 32гб съедают и 20-30гб своп) и на тачке с малым кол-вом озу(сейчас работаю на пк с 4гб озу + zram(на машине с 32гб озу zram не было)). Как это починить?

Сейчас это крайне неудобно: сидишь что-то пишешь - вроде норм работает. Запустил какую-то фигню; вылезло в своп и потом тачка неюзабельная. Любое действие - шуршит винт и свопится.

Проблема наблюдалась и на debian и на gentoo

Приходится тачку перезагружать

sysctl -a 

https://pastebin.com/UBZj65ZC

serg002
()
Форум — General

zram и zswap или что то ещё,вместе?

 , ,

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

zram и zswap можно использовать вместе, есть ли распределение, приоритеты?

Zswap на ссд или hdd, lz4 lzo, и что то новенькое появилось?

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

Есть что ещё новенькое из этой оперы или пока им нет альтернатив действительно полезных а не из шило на мыло?

SPRATAY
()
Форум — Development

Шок от С. Как склеивать строки?

 

Осваиваю си. Всё шло хорошо пока внезапно не понадобилось склеить строки (константные и переменные). Покурил stackoverflow. Предлагают 2 варианта:

Первый - создать char buf[молись_чтобы_хватило] и делать str(n)cat/sprintf в этот buf.

Второй - использовать asprintf, который расширение, нестандарт и вообще.

Вопрос: как вы склеиваете строки? Может есть какая-нибудь общепринятая либа?

Простите за нубский вопрос

makoven
()
Форум — Talks

А поделитесь-ка своим PS1

 , ,

Собственно сабж. Вот скрипт для получения моего:

case "${TERM}" in
xterm*|rxvt*)
    clr_mode=9
    ;;
*)
    clr_mode=3
    ;;
esac

if [ ${UID} -eq 0 ] ; then
  usr_color="\e[0;31m"
  usr_sign="#"
else
  usr_color="\e[0;${clr_mode}2m"
  usr_sign="\$"
fi

# source /usr/share/bash-completion/bash_completion
# или 
# source /etc/bash_completion

# enable showing the dirty (unstaged/staged) state
export GIT_PS1_SHOWDIRTYSTATE=1
# enable showing the stashed state
export GIT_PS1_SHOWSTASHSTATE=1
# enable showing the untracked state
export GIT_PS1_SHOWUNTRACKEDFILES=1
# enable showing the upstream state
export GIT_PS1_SHOWUPSTREAM="auto verbose"

type __git_ps1 &>/dev/null && git_prompt='$(__git_ps1 " %s")'

if [ -n "$SSH_CLIENT" ]; then
    host_prompt="\e[1;33m@$(echo $SSH_CONNECTION | awk '{print $3":"$4}')\e[m"
fi

PS1="\[${usr_color}\]\u\[\e[m\]$host_prompt \[\e[1;34m\]\w\[\e[m\]\[\e[1;35m\]${git_prompt}\[\e[m\] \[${usr_color}\]${usr_sign}\[\e[m\] "

unset color_prompt force_color_prompt git_prompt usr_color usr_sign host_prompt

В итоге выходит нечто такое:

\[\e[0;92m\]\u\[\e[m\] \[\e[1;34m\]\w\[\e[m\]\[\e[1;35m\]$(__git_ps1 " %s")\[\e[m\] \[\e[0;92m\]$\[\e[m\]

Выглядит так

KennyMinigun
()
Форум — Development

Линковка при сборке, линковка при запуске. Всё сложно.

 , ,

Есть библиотека, которая может собираться в двух исполнениях, статической или динамической. Назову её условно libseveral. libseveral.so установлена в операционной системе. Есть разделяемые библиотеки (.so), установленные в операционной системе, они ссылаются прямо или косвенно на libseveral.so в динамическом исполнении и тянут её в память за собой, назову их - libanother1.so, libanother2.so и libanother3.so. Есть мой проект разделяемой биллиотеки (назову libroot.so), которая: а) линкует libseveral.a в статическом исполнении, б) линкует системные libanother1.so, libanother2.so и libanother3.so. В результате, libseveral.a в бинарник не попадает, а тот оказывается слинкован с libseveral.so через остальные библиотеки. Я приблизительно понимаю почему, но не уверен.

libseveral.a
libseveral.so

libanother1 -> libseveral.so
libanother2 -> libanother3.so
libanother3 -> libseveral.so

libroot.so -> libseveral.a
libroot.so -> libanother1.so
libroot.so -> libanother2.so

Вопрос. Существует ли способ сделать так, что бы к libroot.so было прилинковано всё содержимое libseveral.a, а остальные библиотеки, libanother… которые линкуются в рантайме не загружали за собой libseveral.so, а вызывали вместо этого libseveral.a, слинкованный в libroot.so? Менять библиотеки, лежащие в операционной системе нельзя, так же как и устанавливать в систему ничего, кроме libroot.so - требование. Мне необходимо, что бы всё прилинкованное к libroot.so вызывало исключительно libseveral.a, т.к. libseveral.a это мой форк. Как-то так.

normann
()
Галерея — Рабочие места

Перепаял чип Amlogic S912 на сгоревшем самодельном ноутбуке

 ,

Кто помнит предыдущую серию про самодельный ноутбук я сжёг его, включив в него адаптер USB=>UART TTL, а в него видеорегистратор. Не знаю, что пошло не так, но перестал работать USB, сначала отказал хаб, система поначалу загружалась, потом перестала. Бутлоадер работал, в нём USB порты тоже все работали. Но что делать? Заказал новый чип на али, 700р он стоит. Получил, перепаял. Не с первого раза, пришлось несколько раз нагревать снова и шевелить, в итоге всё работает, пост пишу с него. Работает всё, и WiFi, и все USB и SD карточка. Данные на eMMC не пострадали. Приложу фото с бардаком на столе. Нижний подогрев из жёсткой фольги из поддончиков для выпечки, лампа галогенка, регулирование диммером.

Тема с ноутбуком будет продолжаться!

burato
()