LINUX.ORG.RU

Сообщения czan

 

Ищу фильм

Форум — Talks

Фильм номер уно, суть токова: группа людей идёт и спорит кто из них андроид, который хочет погубить их всех. Также в этой группе был человек, который всю дорогу сосал верёвочку от капюшона. Его подозревали что это он андроид потому, что он не пил спиртного. В итоге был махач между двумя девушками-андроидами.

Фильм номер дос, суть токова: за одним человеком гонялась группа других людей, главный герой из подручных материалов клепал ловушки. Одной из этих ловушек была лампочка-бомба. (Не «Один дома»)

 , ,

czan
()

CSI без I2C

Форум — Development

Вот я ковыряюсь с драйверами для видеокамер, что подключены через MIPI CSI 2 и все они управляются через I2C. И возник вопрос: могут ли быть камеры, которые не требуют управления и просто гонят поток данных?

 ,

czan
()

Неподдерживаемая CSI камера

Форум — Development

Играюсь с MIPI CSI камерами на девките Jetson Nano с Ubuntu. Естественно, поддерживаются не все камеры. Например, хорошо работает из коробки LI-IMX219-MIPI-FF-NANO-H90 V1.3, а вот Raspberry Pi Camera Rev 1.3 P5V04A SUNNY на матрице OmniVision не работает. Вот у меня возник вопрос: как в системе Linux можно получить информацию про P5V04A SUNNY, как она там регистрируется? Из dmesg-а что-то ничего путного вытащить не могу.

Решение здесь.

 , ,

czan
()

Из структуры sock в структуру llc_sock

Форум — Development

Ковыряю ядро Linux. Очередные непонятки. Вот есть в ядре такой файл: /include/net/llc_conn.h , в нём есть функция static inline struct llc_sock *llc_sk(const struct sock *sk). Исходник. Сам текст функции:

static inline struct llc_sock *llc_sk(const struct sock *sk)
{
	return (struct llc_sock *)sk;
}

Насколько я понимаю, тут указатель на некую структуру sock будет переделываться на указатель на структуру llc_sock. Причём начало структуры llc_sock выглядит так:

struct llc_sock {
	/* struct sock must be the first member of llc_sock */
	struct sock	    sk;
	struct sockaddr_llc addr;		/* address sock is bound to */
...
	u32		    copied_seq;		/* head of yet unread data */
...

То есть, внутри структуры llc_sock есть структура sock. Меня интересует следующий вопрос: какое значение будет в copied_seq после подобного приведения? Насколько я могу судить, то значение copied_seq может быть любым, а struct sock sk будет являть собой struct sock sk из аргумента функции. Правильно ли это?

 ,

czan
()

af_llc.c без хедер-файла

Форум — Development

Продолжаю ковырять внутренности ядра. Теперь такой вопрос: есть файл net/llc/af_llc.c. Я заметил, что всё что содержится в этом файле не используется в других файлах. Нет никакого хедер-файла, который бы описывал функции/процедуры из af_llc.c. Вот с какой целью это может сделано?

 ,

czan
()

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

Форум — Development

Копаюсь в ядре Linux и частенько натыкаюсь, например, на такое:

struct inet_connection_sock *icsk = build_icsk(test);
KUNIT_ASSERT_EQ(test, 0,
                       mptcp_token_new_connect((struct sock *)icsk));

Вопрос: как работает вот это выражение:

(struct sock *)

Это, я так понимаю, преобразование из одной структуры в другую? Но как это происходит? Где посмотреть?

 , ,

czan
()

KUnit тестирование

Форум — Development

Экспериментирую с KUnit. Скачал ядро отсюда. Пытаюсь сделать тестирование с помощью KUnit по этой инструкции. Пункт с выполнением ./tools/testing/kunit/kunit.py run отрабатывает, вроде бы, хорошо. Выхлоп:

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

Теперь пытаюсь сделать пункт «Creating a .kunitconfig». Создаю .kunitconfig:

charlzk@Scarlett ~/Projects/linux-5.16 $ cp tools/testing/kunit/configs/default.config .kunitconfig
charlzk@Scarlett ~/Projects/linux-5.16 $ cat .kunitconfig
CONFIG_KUNIT=y
CONFIG_KUNIT_EXAMPLE_TEST=y
CONFIG_KUNIT_ALL_TESTS=y

Добавляю CONFIG_LIST_KUNIT_TEST=y в .kunitconfig:

charlzk@Scarlett ~/Projects/linux-5.16 $ cat .kunitconfig
CONFIG_KUNIT=y
CONFIG_KUNIT_EXAMPLE_TEST=y
CONFIG_KUNIT_ALL_TESTS=y
CONFIG_LIST_KUNIT_TEST=y

Теперь запускаю тестирование:

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

Согласно инструкции, сперва должен сгенерироваться .config, но конфиг не генерируется. Я подозреваю, что .kunitconfig вообще не играет никакой роли. Я даже попробовал закомментировать всё содержимое .kunitconfig:

charlzk@Scarlett ~/Projects/linux-5.16 $ cat .kunitconfig
#CONFIG_KUNIT=y
#CONFIG_KUNIT_EXAMPLE_TEST=y
#CONFIG_KUNIT_ALL_TESTS=y
#CONFIG_LIST_KUNIT_TEST=y

И запустить тестирование, но результат неизменный:

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

Прошу подсказать как работать с KUnit.

 , ,

czan
()

Jednakost - олимпиадное программирование

Форум — Development

Есть задача. Коротенько о том, что надо сделать: на вход даётся строчка A и строчка B. Пример для А: «143175», для В: «120». Нужно между символами в строчке А вставить минимальное количество знаков «+» чтобы получить В. В данном случае: 14 + 31 + 75 = 120. На выходе программа должна возвращать минимальное количество плюсов. Количество символов в А не больше 1000, значение В не больше 5000. Время работы программы должно быть меньше 1 секунды.

Пример 2: А=«5025», В=«30». 5 + 25 = 30. Минимальное количество плюсов: 1.

Пример 3: А=«999899», В=«125». 9 + 9 + 9 + 89 + 9 = 125. Минимальное количество плюсов: 4.

Я написал такую программу:

checkPluses :: Int -> Int -> Int -> String -> String -> Bool
checkPluses result pVal 0 "" xs = pVal + (read xs :: Int) == result
checkPluses result pVal plusCount "" xs =
  checkPluses result pVal plusCount [head xs] (tail xs)
checkPluses result pVal plusCount xs xs'
  | pVal > result = False
  | (length xs' < plusCount) = False
  | (checkPluses result (pVal + (read xs :: Int)) (plusCount - 1) "" xs') ==
    False = checkPluses result pVal plusCount (xs ++ [head xs']) (tail xs')
  | otherwise = True

checkPlus :: String -> String -> Int -> Bool
checkPlus xs res pluses =
  checkPluses (read res :: Int) 0 pluses "" xs

searchPlusesIter :: Int -> String -> String -> Int
searchPlusesIter pluses xs res
  | checkPlus xs res pluses == True = pluses
  | otherwise = searchPlusesIter (pluses + 1) xs res

searchPluses :: String -> String -> Int
searchPluses = searchPlusesIter 0
Пример работы программы:
λ> searchPluses "143175" "120"
2
Моя программа по сути наивно перебирает количество плюсов и смотрит на выход. Для первого примера она проверяет 1 + 43175 != 120, потом проверяет 14 + 3175 != 120, и т.д. Потом проверяет два плюса: 1 + 4 + 3175 != 120, 1+ 43 + 175 != 120, ..., 14 + 3 + 175 != 120, 14 + 31 + 75 == 120. И возвращает количество плюсов. Программа работает, но очень медленно.

Прошу идей по алгоритму.

 ,

czan
()

Китайская Народная Республика запустила спутник Shiyan-6

Форум — Talks

Почему то народ на этом ресурсе любит обсуждать Илона Маска и его ракеты и в то же время не замечают других людей работающих в сфере космоса. Тут, буквально вчера, Китайская Народная Республика запустила ещё один искусственный спутник земли Shiyan-6.

За неделю Китай успешно вывел на орбиту 2 спутника

Shiyan-6 был запущен на орбиту для изучения околоземного пространства и тестирования космического оборудования. Этот аппарат является вторым спутником этой серии. Предыдущий запуск серии Shiyan (Xinjishu Shiyan-G и Xinjishu Shiyan-H) прошел в конце мая. Цель данных аппаратов — это испытание новых технологий передачи данных и наблюдение за Землей.

Стоит отметить, что в последнее время Китай активно запускает на орбиту свои аппараты. Так, несколько дней назад, 3 июля, страна вывела на орбиту Земли спутник серии спутник Gaofen. Эти космические аппараты предназначены для сбора специальных данных, которые в будущем используются в сельском и лесном хозяйстве, а также для мониторинга окружающей среды.

Cсылка.

 , ,

czan
()

Texlive 2020. No hyphenation patterns were preloaded for `Russian`.

Форум — General

Тут случилось мне обновиться с texlive 2019 до texlive 2020 на gentoo. И приключилось вот это:

Package babel Warning: No hyphenation patterns were preloaded for
(babel)                the language `Russian' into the format.
(babel)                Please, configure your TeX system to add them and
(babel)                rebuild the format. Now I will use the patterns
(babel)                preloaded for english instead on input line 28.
Полный вывод здесь. Но пакет с поддержкой русского языка установлен:
*  dev-texlive/texlive-langcyrillic
      Latest version available: 2020
      Latest version installed: 2020
      Size of files: 3 110 KiB
      Homepage:      http://www.tug.org/texlive/
      Description:   TeXLive Cyrillic
      License:       GPL-1 GPL-2 LPPL-1.3 LPPL-1.3c MIT public-domain TeX-other-free
Пробовал снести texlive и установил заново. Ничего не поменялось. Как можно прикрутить поддержку переносов? Текст tex-файла здесь.

 , ,

czan
()

ГОСТ Р 34.11-94

Форум — Security

Пытаюсь понять алгоритм хеш-функции из ГОСТ Р 34.11-94. Текст можно посмотреть здесь: http://docs.cntd.ru/document/1200004857 . Пытаюсь разобрать пример А.3.1. Разобрался до генерации ключа К1, а вот сгенерировать ключ К2 не получается. Согласно тексту ГОСТ-а нужно XOR-ить Х1 и Х2. Мой вопрос: Что тут есть Х1 и Х2? Насколько я понимаю Х1 здесь 6E 65 6C 20 73 69 68 54, а Х2 это 3D 68 74 67 20 73 69 20. Так это или нет?

 

czan
()

Создать Rpm пакет из готовых путей

Форум — General

На учёбе дали задание сделать rpm пакет для CentOS 8 из пути. Пример: есть /usr/bin/some_app - это готовая программа. Нужно сделать из этого пути rpm пакет так, чтобы можно было установить эту программу по тому же пути. Я почитал, но везде пишут про делание rpm-ов из исходников. Прошу помощи как это сделать.

 , ,

czan
()

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