LINUX.ORG.RU

Сообщения LINUX-ORG-RU

 

Прошивка телефона

Суть собственно в том что для задумки некого проекта мне нужна камера, камера есть на полуживом Beeline Smart 6 для него же будет писаться приложение, но он сейчас лишь включается показывает попытку зарядки (батарейки нет) и выключается, ранее телефон работал как звуковая карта (всё так же без батарейки, внутри проброшены проводки). По идее можно попробовать прошить на заводскую прошивку, у меня конечно её нет, но есть на 4pda при подключении в логах dmesg появляется

[  571.295045] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  571.295054] usb 3-4: Product: MT65xx Preloader
[  571.295060] usb 3-4: Manufacturer: MediaTek

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

Чем сейчас MediaTekи прошивают из под линукса? Может получится оживить, ну или добить окончательно.

 ,

LINUX-ORG-RU
()

Там у jabber.ru сертификат опят поехал не туда или не тот

Суть

По мотивам MITM-атака на JABBER.RU и XMPP.RU

Это что? Вернее почему?

Перемещено hobbit из general

 

LINUX-ORG-RU
()

SDL3 - Камера - Заметка

Короче захотел сделать фотку через SDL3 столкнулся с парой проблем.

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

  1. Появляется ошибка Parameter 'surface' is invalid если не сделать паузу после открытия камеры, решается в установлении паузы в 0,5 секунды после SDL_OpenCamera

  2. Первые кадры с камеры либо просто чёрные, либо очень тёмные. Решается пропуском (в моём случае 7) нескольких первых кадров.

Я забросил в SDL3 уведомительное issue, чтобы было

Продублирую тут тестовый пример и результаты

Информация о системе

Web-camera встроена в ноут, понятия не имею что за камера
description: Notebook
    product: K53U
    vendor: ASUSTeK Computer Inc.
    version: 1.0
Distributor ID:	Debian
Description:	Debian GNU/Linux 12 (bookworm)
Release:	12
Codename:	bookworm
fedor@nixfed:~/drawshoot$ cat SDL3/VERSION.txt 
3.1.3
fedor@nixfed:~/drawshoot$

Тестовый код

Makefile

SDL_DIR=SDL3
SDL_LIB_DIR=$(SDL_DIR)/build
SDL_INC_DIR=$(SDL_DIR)/include

test-1:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app

test-2:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY

test-3:
	$(CC) main.c -I$(SDL_INC_DIR) -L$(SDL_LIB_DIR) -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP


sdl:
	cd $(SDL_DIR) && mkdir build
	cd  $(SDL_DIR)/build && cmake ..
	cd  $(SDL_DIR)/build && $(MAKE) -j2

clean:
	-$(MAKE) -C $(SDL_DIR) clean
	-rm app

run:
	LD_LIBRARY_PATH=$(SDL_DIR)/build ./app

main.c

#include "SDL3/SDL.h"
#include "SDL3/SDL_camera.h"
#include <stdio.h>

/*just for debug*/
const char * pixel_format_name(SDL_PixelFormat format)
{
    switch(format){
    case SDL_PIXELFORMAT_UNKNOWN:    return      "UNKNOWN";
    case SDL_PIXELFORMAT_INDEX1LSB:  return      "INDEX1LSB";
    case SDL_PIXELFORMAT_INDEX1MSB:  return      "INDEX1MSB";
    case SDL_PIXELFORMAT_INDEX2LSB:  return      "INDEX2LSB";
    case SDL_PIXELFORMAT_INDEX2MSB:  return      "INDEX2MSB";
    case SDL_PIXELFORMAT_INDEX4LSB:  return      "INDEX4LSB";
    case SDL_PIXELFORMAT_INDEX4MSB:  return      "INDEX4MSB";
    case SDL_PIXELFORMAT_INDEX8:     return      "INDEX8";
    case SDL_PIXELFORMAT_RGB332:     return      "RGB332";
    case SDL_PIXELFORMAT_XRGB4444:   return      "XRGB4444";
    case SDL_PIXELFORMAT_XBGR4444:   return      "XBGR4444";
    case SDL_PIXELFORMAT_XRGB1555:   return      "XXRGB1555";
    case SDL_PIXELFORMAT_XBGR1555:   return      "XXBGR1555";
    case SDL_PIXELFORMAT_ARGB4444:   return      "XARGB4444";
    case SDL_PIXELFORMAT_RGBA4444:   return      "XRGBA4444";
    case SDL_PIXELFORMAT_ABGR4444:   return      "XABGR4444";
    case SDL_PIXELFORMAT_BGRA4444:   return      "XBGRA4444";
    case SDL_PIXELFORMAT_ARGB1555:   return      "XARGB1555";
    case SDL_PIXELFORMAT_RGBA5551:   return      "XRGBA5551";
    case SDL_PIXELFORMAT_ABGR1555:   return      "XABGR1555";
    case SDL_PIXELFORMAT_BGRA5551:   return      "XBGRA5551";
    case SDL_PIXELFORMAT_RGB565:     return      "XRGB565";
    case SDL_PIXELFORMAT_BGR565:     return      "XBGR565";
    case SDL_PIXELFORMAT_RGB24:      return      "XRGB24";
    case SDL_PIXELFORMAT_BGR24:      return      "XBGR24";
    case SDL_PIXELFORMAT_XRGB8888:   return      "XXRGB8888";
    case SDL_PIXELFORMAT_RGBX8888:   return      "XRGBX8888";
    case SDL_PIXELFORMAT_XBGR8888:   return      "XXBGR8888";
    case SDL_PIXELFORMAT_BGRX8888:   return      "XBGRX8888";
    case SDL_PIXELFORMAT_ARGB8888:   return      "XARGB8888";
    case SDL_PIXELFORMAT_RGBA8888:   return      "XRGBA8888";
    case SDL_PIXELFORMAT_ABGR8888:   return      "XABGR8888";
    case SDL_PIXELFORMAT_BGRA8888:   return      "XBGRA8888";
    case SDL_PIXELFORMAT_XRGB2101010:   return   "XXRGB2101010";
    case SDL_PIXELFORMAT_XBGR2101010:   return   "XXBGR2101010";
    case SDL_PIXELFORMAT_ARGB2101010:   return   "XARGB2101010";
    case SDL_PIXELFORMAT_ABGR2101010:   return   "XABGR2101010";
    case SDL_PIXELFORMAT_RGB48:         return   "XRGB48";
    case SDL_PIXELFORMAT_BGR48:         return   "XBGR48";
    case SDL_PIXELFORMAT_RGBA64:        return   "XRGBA64";
    case SDL_PIXELFORMAT_ARGB64:        return   "XARGB64";
    case SDL_PIXELFORMAT_BGRA64:        return   "XBGRA64";
    case SDL_PIXELFORMAT_ABGR64:        return   "XABGR64";
    case SDL_PIXELFORMAT_RGB48_FLOAT:   return   "XRGB48_FLOAT";
    case SDL_PIXELFORMAT_BGR48_FLOAT:   return   "XBGR48_FLOAT";
    case SDL_PIXELFORMAT_RGBA64_FLOAT:  return   "XRGBA64_FLOAT";
    case SDL_PIXELFORMAT_ARGB64_FLOAT:  return   "XARGB64_FLOAT";
    case SDL_PIXELFORMAT_BGRA64_FLOAT:  return   "XBGRA64_FLOAT";
    case SDL_PIXELFORMAT_ABGR64_FLOAT:  return   "XABGR64_FLOAT";
    case SDL_PIXELFORMAT_RGB96_FLOAT:   return   "XRGB96_FLOAT";
    case SDL_PIXELFORMAT_BGR96_FLOAT:   return   "XBGR96_FLOAT";
    case SDL_PIXELFORMAT_RGBA128_FLOAT: return   "XRGBA128_FLOAT";
    case SDL_PIXELFORMAT_ARGB128_FLOAT: return   "XARGB128_FLOAT";
    case SDL_PIXELFORMAT_BGRA128_FLOAT: return   "XBGRA128_FLOAT";
    case SDL_PIXELFORMAT_ABGR128_FLOAT: return   "XABGR128_FLOAT";
    case SDL_PIXELFORMAT_YV12:          return   "XYV12";
    case SDL_PIXELFORMAT_IYUV:          return   "XIYUV";
    case SDL_PIXELFORMAT_YUY2:          return   "XYUY2";
    case SDL_PIXELFORMAT_UYVY:          return   "XUYVY";
    case SDL_PIXELFORMAT_YVYU:          return   "XYVYU";
    case SDL_PIXELFORMAT_NV12:          return   "XNV12";
    case SDL_PIXELFORMAT_NV21:          return   "XNV21";
    case SDL_PIXELFORMAT_P010:          return   "XP010";
    case SDL_PIXELFORMAT_EXTERNAL_OES:  return   "XEXTERNAL_OES";
    }
    return "UNKNOWN";
}

int main(int argc, char *argv[])
{
    SDL_InitSubSystem(SDL_INIT_CAMERA);
    int camera_count = 0;
    SDL_CameraID * camera_id = SDL_GetCameras(&camera_count);
    printf("count=%d id=%u %s\n",camera_count,camera_id,SDL_GetError());
    SDL_CameraSpec ** camera_spec;
    int camera_specs = 0;
    camera_spec = SDL_GetCameraSupportedFormats(*camera_id,&camera_specs);
    /*show supported formats and resolutions*/
    for(int i=0; i != camera_specs;i++)
    {
        printf("camera=%-2i "
               "w=%-4d h=%-4d "
               "format=%-14s "
               "frame_n=%-3d "
               "frame_d=%d\n",
               i,
               camera_spec[i]->width,
               camera_spec[i]->height,
               pixel_format_name(camera_spec[i]->format),
               camera_spec[i]->framerate_numerator,
               camera_spec[i]->framerate_denominator);
    }
    /*init camera*/
    SDL_Camera * cam =  SDL_OpenCamera(*camera_id, camera_spec[0]);

    #ifdef ENABLE_DELAY
        SDL_Delay(5000);
    #endif

    printf("[1] %s\n",SDL_GetError());
    SDL_Surface * frame;
    Uint64 t=0;
    SDL_Surface * s;
    SDL_Event event;
    while ( SDL_WaitEvent(&event) >= 0 )
    {
       if(event.type == SDL_EVENT_CAMERA_DEVICE_APPROVED)
       {
            printf("DEVICE_APPROVED!\n");
            break;
       };
       if(event.type == SDL_EVENT_CAMERA_DEVICE_DENIED)
       {
            printf("DEVICE_DENIED!\n");
            return 0;
       };
    }

    #ifdef ENABLE_FRAMEDROP
    for(int i=0;i<7;i++)
    {
        frame = SDL_AcquireCameraFrame(cam, &t);
        SDL_ReleaseCameraFrame(cam, frame);
    }
    #endif

    /*take photo*/
    frame = SDL_AcquireCameraFrame(cam, &t);
    printf("[2] %lu %s\n",t,SDL_GetError());
    /*convert photo*/
    s = SDL_ConvertSurface(frame, SDL_PIXELFORMAT_RGB24);
    /*save result*/
    SDL_SaveBMP(s,"out.bmp");
    printf("[4] %lu %s\n",t,SDL_GetError());
    /*release memory*/
    SDL_ReleaseCameraFrame(cam, frame);
    printf("[4] %lu %s\n",t,SDL_GetError());
    SDL_Quit();
    return 0;
}

Результаты

  • Ошибка Invalid surface
fedor@nixfed:~/drawshoot$ make test-1 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=845253408 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 0 
[4] 0 Parameter 'surface' is invalid
[4] 0 Parameter 'surface' is invalid
fedor@nixfed:~/drawshoot$ 

  • Чёрный снимок вместо нормального
fedor@nixfed:~/drawshoot$ make test-2 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3957504800 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 706952397 
[4] 706952397 
[4] 706952397 
fedor@nixfed:~/drawshoot$ 
  • Всё хорошо, ошибок нет, фотография с камеры нормальная
fedor@nixfed:~/drawshoot$ make test-3 run
cc main.c -ISDL3/include -LSDL3/build -lSDL3 -o app -DENABLE_DELAY -DENABLE_FRAMEDROP
LD_LIBRARY_PATH=SDL3/build ./app
count=1 id=3940756256 
camera=0  w=640  h=480  format=XYUY2          frame_n=30  frame_d=1
camera=1  w=640  h=480  format=XYUY2          frame_n=25  frame_d=1
camera=2  w=640  h=480  format=XYUY2          frame_n=20  frame_d=1
camera=3  w=352  h=288  format=XYUY2          frame_n=30  frame_d=1
camera=4  w=352  h=288  format=XYUY2          frame_n=25  frame_d=1
camera=5  w=352  h=288  format=XYUY2          frame_n=20  frame_d=1
camera=6  w=320  h=240  format=XYUY2          frame_n=30  frame_d=1
camera=7  w=320  h=240  format=XYUY2          frame_n=25  frame_d=1
camera=8  w=320  h=240  format=XYUY2          frame_n=20  frame_d=1
camera=9  w=176  h=144  format=XYUY2          frame_n=30  frame_d=1
camera=10 w=176  h=144  format=XYUY2          frame_n=25  frame_d=1
camera=11 w=176  h=144  format=XYUY2          frame_n=20  frame_d=1
camera=12 w=160  h=120  format=XYUY2          frame_n=30  frame_d=1
camera=13 w=160  h=120  format=XYUY2          frame_n=25  frame_d=1
camera=14 w=160  h=120  format=XYUY2          frame_n=20  frame_d=1
[1] 
DEVICE_APPROVED!
[2] 1329622684 
[4] 1329622684 
[4] 1329622684 
fedor@nixfed:~/drawshoot$ 

Может быть кому пригодится, досвиданья ::)

 , , , , sdl3

LINUX-ORG-RU
()

Теперь у меня есть флееешкааа! 32 Гигабата!

Это случилось! Теперь я не могу к месту и без говорить что у меня нет флешки! Это даже немножко грустно :( Но да ладно :)

Раньше у меня была вот такая только самодельная флешка на аж 4 килобайта, пополам с UART на ATmega8, на базе V-USB, но она давно дала дубу.

А теперь я как настоящий хипстер с 32 гигабатами

Сейчас я буду устанавливать все лиунксы


Да жж, ну и что. Во первых пятница! Во вторых Linux-install. А ещё это моя первая флешка за лет…10 наверное! Так что это то о чём нельзя молчать! Принимаю ваши поздравления. Расскажите вашу историю про вашу флешку. Наверняка вам есть что сказать!
НЕпреднамеренное нарушение русского языка вызвано особой стилистической подачей художественного текста

 , , , , эпохальное событие

LINUX-ORG-RU
()

Видео искалка - reptube

Студия Колобо.. кхм. Конгломерат корпораций "000 На Коленочке ЛТД" от создателей "И таааак сойдёёёт" представляяяееет! Очередную, но уникальную во всей солнечной системе, а может быть даже галактике, фигню!
Короче суть проста как две палки, часто кидают ссылки на ютуб которые нифига не работают, но иногда есть аналогичное видео на rutube/platforma/my.mail/etc и для автоматизации поиска накалякалось. Главное чтобы youtube.com не блокировался полностью, чтобы по ссылке можно было извлечь название видео. Можно просто искать видео на rutube/platforma/my.mail/etc с разным форматом вывода, пайпы, m3u вывод для mpv и прочее Собственно воть и всё. Конечно, можно просто использовать браузер и использовать поиск в нём, но вот зачем это делать, если это можно не делать! Гениально, где моя шоколадная медалька.

Недоисходники

Чет я приболел, лень писать смешульки так что я тут тупо скопирую readme дабы не запаривать Ъ своим очередным высеро…шедевром


Зависимости

Любая версия Lua и утилита curl

  • Lua5.1
  • Luajit
  • Lua5.2
  • Lua5.3
  • Lua5.4

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

  • Аргументы опциональные
    • -h Отобразить справку
    • -d Отключить цветной вывод
    • -n [NUMBER] Количество результатов для вывода, в каждом из ресурсов
    • -v Подробный вывод, описание, имя канала, категория
    • -m Вывод в формате m3u (удобно для передачи в mpv)
    • -s Искать только точное совпадение с запросом
    • -l Отображать вывод в виде списка чистых ссылок
    • -ru --rutube Отобразить результаты с rutube.ru
    • -pl --platforma Отобразить результаты с platforma.ru
    • -my --mymail Отобразить результаты с my.mail.ru
    • -ok --okru Отобразить результаты с ok.ru
    • -dz --dzen Отобразить результаты с dzen.ru
    • -co --coub Отобразить результаты с coub.com

По умолчанию поиск ведётся везде, если вы выберите -ru будет показан
только вывод с rutube, если вы выберите больше ключей например ‘-pl -ru’
то будет выведено только то что выбрано, и в том порядке в котром идут ключи

Примеры

Использовать для поиска текстовый запрос, вывести 10 результатов с подробностями
аргументы можно спокойно смешивать с запросом, если в запросе нет символа - и
других символов интерпретируемых терминалом, в ином случае 'нужно обернуть в каычки'

reptube Рецепты салатов -n 10 -v

Получить только 1 вариант с названием

reptube -n 1 Почему надо выключать телефоны на борту самолета

Найти видео по ссылке из youtube

reptube https://www.youtube.com/watch?v=jN1fA6zupOM

Найти видео по ссылке из youtube в строгом режиме, 100% совпадение или ничего

reptube -s https://www.youtube.com/watch?v=jN1fA6zupOM

Оформить вывод в формат m3u, полезно для передачи видеоплеерам, например mpv

reptube -m https://www.youtube.com/watch?v=jN1fA6zupOM | mpv -

Можно использовать pipe удобно для скриптов

echo 'Фильмы' | reptube -m | mpv -

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

mpv $(reptube -l Мультики)

Примеры вывода

  • Первое попавшееся видео
dron@gnu:~$ reptube Фильм Матрица -n 1 
* [1] Матрица (фильм, 1999)
  https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Тоже самое только с подробным выводом
dron@gnu:~$ reptube Фильм Матрица -n 1 -v
* [1] Матрица (фильм, 1999)
  [Фильмач — фильмы и сериалы онлайн][Фильмы]
  Культовый киберпанк братьев Вачовски, стабильно занима
  ющий высокие места во всевозможных топах лучших фильмов. 
  Философский подтекст фильм так глубок, что его корни ищут
   не только в классической мысли, но и более спорных источ
  никах — от классического аниме до «Алисы в стране чудес».
  Днём Томас Андерсон пишет код в одной из поглотивших мир 
  корпораций, а по ночам взламывает цифровые системы. В мир
  е закулисья он носит имя Нео, и в сети для него нет ни од
  ной тайны. Однажды Нео приходит таинственное сообщение= «
  Ты увяз в Матрице», а также указание следовать за белым к
  роликом. Вскоре он находит того самого кролика на спине н
  екой Тринити, и она предлагает ему погрузиться в новую ре
  альность. После этого жизнь Нео разделяется на «до» и «по
  сле».Год выпуска= 1999Жанр= фантастика, боевикПродолжител
  ьность= 136 мин.Режиссёр= Лана Вачовски, Лилли ВачовскиВ 
  ролях= Киану Ривз, Лоренс Фишбёрн, Кэрри-Энн Мосс, Хьюго 
  Уивинг, Глория Фостер, Джо Пантольяно, Маркус Чонг, Джули
  ан Араханга, Мэтт Доран, Белинда МакКлориCтрана= США, Авс
  тралияCтудия= Groucho II Film Partnership, Warner Bros. P
  ictures Co., Bullet Time, Silver PicturesЗдесь вы можете 
  посмотреть фильм Матрица в русском синхронном переводе в 
  хорошем качестве (4k, 2k, Full HD, 1080p) совершенно бесп
  латно.
  https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • В фомате m3u
dron@gnu:~$ reptube Фильм Матрица -n 1 -m
#EXTM3U
#EXTINF:-1,'Матрица (фильм, 1999)'
https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Чистая ссылка
dron@gnu:~$ reptube Фильм Матрица -n 1 -l
https://rutube.ru/video/307c52af7c3e122855aea0899c247971/
  • Поиск по ссылке на youtube с точным совпадением
dron@gnu:~$ reptube -s 'https://www.youtube.com/watch?v=jN1fA6zupOM'
* [1] Почему надо выключать телефоны на борту самолета
  https://rutube.ru/video/3f329d37994e4f1c9e148028c1bf5d7a/
* [2] Почему надо выключать телефоны на борту самолета
  https://rutube.ru/video/4c87a2ea11f92883cfcfabd63a79c794/
dron@gnu:~$ 
  • Тупа мультики детю врубить (нет фильтра по возрату, на свой страх и риск)
reptube добрые мультфильмы -m | mpv -

Надеюсь кому пригодится
Досвиданья ::)

 , , , ,

LINUX-ORG-RU
()

Бесплатный хостинг / Бесплатный домен :)

Кто какими пользуется, какие бывают. Поисковики выдают хренову тучу вариантов. Все их проверять удел сильных духом. Чтобы локация была в РФ, если дают ssh то клёво. Дохлость ресурсов, аптайм в целом по барабану. Кое-как работает и ладно. Интересно узнать как и о просто хостингах куда можно залить статику хоть по FTP и всё без всяких CMS (или если цмски как опция) так и VPS,VDS. Я выпал из всего этого, просто интересно было-бы узнать что сейчас ну стабильное что ли, пусть и скромное.

Ну и чтобы без всяких приколов типа, превышен некий лимит и тебе выставляют счёт. Не скажу что сильно надо, но на перспективу узнать хорошо бы. Если не знаете «хорошие» места, но знаете плохие места, то тоже будет полезно узнать. И не только мне. Гы ::)

Перемещено Dimez из general

 , , , ,

LINUX-ORG-RU
()

Часов много не бывает

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

clockrip
██████ ██████    ██████ ██████
    ██     ██ ██     ██ ██    
██████ ██████    ██████ ██████
██         ██ ██ ██         ██
██████ ██████    ██████ ██████

clockrip -f O -s
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO
    OO     OO OO     OO OO  OO OO     OO OO  OO
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO
OO         OO OO OO     OO  OO OO OO     OO  OO
OOOOOO OOOOOO    OOOOOO OOOOOO    OOOOOO OOOOOO

clockrip -f ▓ -s
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓ ▓▓▓▓▓▓
    ▓▓     ▓▓ ▓▓     ▓▓     ▓▓ ▓▓  ▓▓     ▓▓
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓     ▓▓ ▓▓▓▓▓▓
▓▓         ▓▓ ▓▓     ▓▓ ▓▓     ▓▓  ▓▓ ▓▓    
▓▓▓▓▓▓ ▓▓▓▓▓▓    ▓▓▓▓▓▓ ▓▓▓▓▓▓     ▓▓ ▓▓▓▓▓▓

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

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

Суть, мне нужны были часы как tty-clock нравится какой у них вывод, но только мне нужно было иметь возможность просто выводить время в таком виде в файл, а не держать обновляющееся время в терминале с виду дурацкая идея, но так надо, в этом вся суть.

  • clockrip

  • Аргументы опциональные

    • -h Отобразить справку
    • -u Выводить мировое UTC время, а не локальное
    • -s Отображать секунды
    • -f Установить символ заполнитель (одно знакоместо)
    • -ft [TEXT] Установить символ заполнитель (одно знакоместо)
    • -fw [TEXT] Установить символ заполнитель (два знакоместа)
    • -c [COLOR] Установить цвет заливки
    • -b [COLOR] Установить цвет заливки фона
    • -d Включить эффект мигания для точек разделителей
    • -t [TEMP] Установить цвет через значение температуры в Цельсиях
    • -bt [TEMP] Установить цвет фона через значение температуры в Цельсиях
    • -k [TEMP] Установить цвет через значение температуры в Кельвинах
    • -bk [TEMP] Установить цвет фона через значение температуры в Кельвинах

Ключи -t -k -bt -bk отменяют значение ключей -c -b
Ключи -t -k переопределяют друг друга, какой задан последним тот и задаёт значение
Ключи -bt -bk переопределяют друг друга, какой задан последним тот и задаёт значение

Цвет заливки может быть названием цвета из списка

  black |  red |  green |  yelow |  blue |  purple |  cyan |  gray
 bblack | bred | bgreen | byelow | bblue | bpurple | bcyan | bgray

Цвет заливки может быть кодом цвета от 0 до 256 или от 000000 до FFFFFF Если вместо времени отображается белиберда можно попробовать заменить -fw на -ft и наоборот, утилита работает только с заливкой символами шириной 1 или 2 знакоместа от любого иного варианта отображаемое форматирование поедет.

Может кому надо тоже, эта супер пупер утилита на все времена UnixWay ультраортодоксальна и не умеет сама обновлять время, а тупо её выводит, поэтому

  • watch -tcn 60 clockrip -c green Будет вызывать скрипт и обновлять время раз в минуту
  • watch -tcn 1 clockrip -s -c green Будет вызывать скрипт и обновлять время раз в секунду
  • watch -tcn 1 clockrip -s -fw 😊 Будет вызывать скрипт и обновлять время раз в секунду

Негодники

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

 , , , ,

LINUX-ORG-RU
()

Мистика в браузере и таинтвенный 0.0.0.63

Сижу в позе ждуна (руки на пузе), ничего не трогаю.
Cмотрю в ютубе про теорию групп в Firefox ESR 115 на Debian 12 Phenom II X6 x86_64 LITTLE_ENDIAN CHAR_BIT == 8

Внезапно, на вкладке где идёт видос происходит переход на 0.0.0.63 и страница отображает

Время ожидания соединения истекло

Время ожидания ответа от сервера 0.0.0.63 истекло.

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

Что это? Чво, меня опять похакали чтоль? Куда звонить и от кого принимать приветы?

UDP: Обходилок нету, просто браузер, просто работает. Из расширений лишь адблок.

 , , , ,

LINUX-ORG-RU
()

Кодирование и декодирование base64 на Си

Опять наговнокодил крч, кодирование/декодирование + возможность использования своего алфавита.

API

int base64_register(unsigned char * alphabet, unsigned char endcode ,struct base64 * base);

int base64_decode(unsigned char * src, size_t src_size,
                  unsigned char * dst, size_t dst_size, size_t * result_size,struct base64 * vatiant);

int base64_encode(unsigned char * src, size_t src_size,
                  unsigned char * dst, size_t dst_size, size_t * result_size,struct base64 * vatiant);

Пример


#include <stdio.h>
#include <string.h>
#include "base64.h"
int main(int argc, char **argv)
{
    /* prepare input */
    unsigned char inp[] = "Hello World!";
    size_t        inp_size = strlen(inp);
    /* prepare ouput */
    size_t        out_size = inp_size * 1.5; // or ((inp_size / 3) * 4) + 4
    unsigned char out[out_size];
    /* prepare variable to save data len (can ignore it and set NULL) */
    size_t        written = 0;
    /* set data, if last parametr is NULL used RFC4648 base64 alphabet */
    int status = base64_encode(inp,inp_size,out,out_size,&written,NULL);
    if(status != BASE64_SUCCESS)
    {
        fprintf(stderr,"Error: code = %c\n",status);
        return status;
    }
    /*out_size > written size, in this case need set '\0' */
    out[written] = '\0';
    printf("data = %s  size = %d\n",out, written);
    return 0;
}

Негодники

Ковыряясь в коде @mittorn понял что я со своей Lua совсем забыл как на Сишечке что-то делать. Реально тупо всё забыл. В качестве тренировки решил хотя бы переписать вот это с Lua на C. И блин у меня на тупо переписывание лоб в лоб ушло несколько дней. И то, я не уверен, всё ли у меня правильно. Вот так вот, касаемо основных инструментов нужна периодическая практика, иначе вжух и зобыл. Эх, ладна, пойду гематогенку съем.

Вдруг кому надо (перед использованием перекреститься, мало ли что!)
Если что сегодня пятница, так что, чур я в домике 🏠

Перемещено leave из talks

 , , , ,

LINUX-ORG-RU
()

github затирает статистику о посещениях с linux.org.ru?

Неделю назад заходит в Insights->Traffic репозитория, там была статистика Referring sites был яндекс, гугл и linux.org.ru, причём с ЛОР было максимальное количество входов порядка 10+ против 7 гугла и 3 яндекса. Не знаю зачем сегодня снова туда залез, смотрю, а информации о ЛОРе нету, лишь счётчик гугла стал 9 и яндекса 4, плюс с ютуба 1 появился, и яндекс второй

Это они жопшники пытающиеся сделать вид что LOR не существует или у них в случайном порядке, но не более четырёх мест отображается? Хотя нет, вроде отсортировано по количеству и там на самом верху должен быть ЛОР, и он там и был раньше.

Если кто не понял, я про это

Там внизу LOR был на самом верху. А потом фигак и исчез.
Просто обратил внимание.

 , , , ,

LINUX-ORG-RU
()

Только что меня выкинуло из логина

Сидел тыкал по темам, решил ответить на одну тему и фигаг, а я разлогинен оказался. Я точно не выходил из профиля. Может куки протухли, может ещё что. Я так и не понял, просто залогинился обратно и всё.

Держу в курсе :D

 

LINUX-ORG-RU
()

Как удобнее держать код в нескольких репах?

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

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

[remote "all"]
    url = git@gitflic.ru:blogdron/someproject.git
    url = git@github.com:blogdron/someproject.git

сделать

git push -u all master

И всё, теперь каждый git push будет отправлять изменения в два (и более) репозитория. Но, ради эксперимента я взял и удалил первый репозиторий на стороне хостинга, имитируя например его недоступность, вношу изменения и делаю git push

dron@gnu:~/Рабочий-стол/lalala$ git push
fatal: Не удалось прочитать из внешнего репозитория.

Удостоверьтесь, что у вас есть необходимые права доступа
и репозиторий существует.

Ни туда, ни сюда. :( И теперь надо специально отправлять в рабочую репу и/или изменять конфигурацию. Херня какая-то. Как можно игнорировать недоступность репы?

Ещё думалось, зеркалить. Ну, одни дают это делать, другие не дают, херня костыльная короче. Но у всех есть токен API через который можно делать изменения с репозиториями и как вариант написать скрипт, который будет раз в N времени по желанию левой пятки синхронизировать локальные репозитории/включая их создание если их на той стороне нет, с удалёнными отправляя в них изменения. Так каталоги проектов будут чистые и без всякого мусора от разных репозиториев хранения кода, за исключением одного типа основного.

А вы как делаете? Если делаете вообще. У меня сильной надобности нет, скорее спортивный интерес.

 

LINUX-ORG-RU
()

А мне нравится (безрамочный стиль кнопок в профиле)

У этих кнопочек нет рамочек, а кажется были

Вот тут есть рамочки у кнопок

Бросилось в глаза может меня глючит и так и было.
Даже F12 не нажимал увидеть разницу. Как по мне норм и без рамочек :D . Но вдруг это поломка

dron@gnu:~$ firefox-esr --version
Mozilla Firefox 115.13.0esr
dron@gnu:~$ 

 , ,

LINUX-ORG-RU
()

«Скучно», дайте баг или запилить куда-то фичу

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

  • Киньте ссылку на проект tar.gz/гит/фигит или типа того.
  • Что не так или что надо
  • Как сейчас и как должно быть

Всё, больше меня ничего не интересует. C и/или Lua
Может утилита какая падает на C, или очередная шизанутая игра на Lua не запускается на новой версии Love2D. Понятия не имею что можно предложить :)

 , , баги, ,

LINUX-ORG-RU
()

mktemp в свежем chroot

#Разворачиваем значит чрут
$sudo debootstrap --variant=minbase  bullseye  ./bullseye
#Входим в него
$sudo chroot ./bullseye
#Выполняем 
mktemp 
mktemp: failed to create file via template '/tmp/user/0/tmp.XXXXXXXXXX': No such file or directory

В свежем chroot пустой /tmp хорошо, логически понимаю что в нём нет каталога user/0/.

Вопрос, ранее я с этим не сталкивался, так всегда было или mktemp всегда ожидал каталог user/0/ в /tmp?

И второй вопрос, кто, когда и как инициализирует эти каталоги автоматом?

Я делаю чрут для потыкать что-то и удалить, пользователи кроме рута мне там не нужны чаще всего.

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

Ладно я понял что сначала он каталог не может найти, я его создал, работа продолжилась, но вот потом опять ошибка

sudo debootstick --config-root-password-none bullseye img.img
I: detected target system: amd64 PC
I: using default disk layout: /usr/share/debootstick/disk-layouts/target/pc/disk-layout
I: draft image - partitioning and formatting... done
I: draft image - copying filesystem tree... done
I: draft image - generating fstab... done
I: draft image - updating package manager database... done
I: draft image - installing packages: linux-image-amd64 lvm2 gdisk dosfstools kmod udev grub-pc shim-signed initramfs-tools grub-efi-amd64-signed fdisk init...
I: draft image - setting up bootloader... done
I: draft image - kernel bootargs: quiet rootdelay=3
I: draft image - performing sanity checks... done
I: draft image - generating /etc/hosts (it was empty or missing)... done
I: draft image - adding missing locale definition... done
I: final image - partitioning and formatting... done
I: final image - copying content from draft image... done
I: final image - generating fstab... done
mktemp: failed to create file via template '/tmp/user/0/tmp.XXXXXXXXXX': No such file or directory
tac: failed to create temporary file in '/tmp/user/0': No such file or directory
tmp/chrooted-customization-final.sh: 297: cannot create : Directory nonexistent

E: an error occured.
E: did you try 'debootstick --help-os-support'?
I: restoring a clean state... done

Каталог есть и в чруте и у меня в системе, но он там ещё чрутается. Я пока запутался. И не пойму с debootstick пробелемы или проблемы в mktemp который не может работать просто с каталогом /tmp просто с пустым.

Буду попозже разбираться, но пока может сработает помощь зала. Но уже есть желание не разбираться, а самому сесть писать генерилку загрузочных образов из чрутов, но всё же может эту утилиту можно заставить работать. Опять же суть в том что я допетрить хочу кто виноват, ранее дебутстик же у людей работал? Раньше же в свежем чруте tmp тоже был пуст, значит раньше у mktemp было иное поведение? Вроде логично, вот я и грешу на mktemp. Нипатятна :(

 , debootstick, , mktemp,

LINUX-ORG-RU
()

Вся жизнь наоборот!

Больше года назад сломался звук на ПеКа я его и так и эдак, но всё тщетно, суть оказалась в железе. Недолго горевал благо на руках был дохлый и убитый в хлам ноут и билайн смарт 6 обмылок, тоже убитый в доску, найдя способ через пульсу пускать системный звук по сети перепробовал всякие клиенты из фдроида для приёма PCM звука по TCP, всё оказалось так себе и сел я значит писать на love2d программку.

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

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

И вот сегодня залипая в ютубы/рутубы просто так открыл видео про стеееееррееевоооо и у меня переклинило, звук наоборот… Лево и право перепутаны. Думаю, блин может в приложении что? Я в него уже давно не залезал, подключился к ноуту на прямую… Перепутан звук. Думаю может видео просто кривое и автор мудак, перепроверил, нет и другие стерео-проверки такие же, мудак это я. И вот я понял что больше года назад в тот момент когда я чинил наушники я проверял их через своё приложение в котором эффектом были перекинуты каналы наоборот и я проводки в итоге спаял наоборот.

И только спустя год я это заметил. ЛОООООООООООООООООООООООООООЛ. Вот такие дела :) А я думал я внимательный, хехе. Перепаял, теперь как белый человек у меня слева лево, а справа право!

А линукс тут при том что так или иначе все устройства работали на нём и разрабатывалось всё под него.

 , , , ,

LINUX-ORG-RU
()

Каст не всегда работает

test @Aceler @Aceler

@Aceler

test 
@Aceler @Aceler

@Aceler

test @maxcom @maxcom

@maxcom

test 
@maxcom @maxcom

@maxcom

 ,

LINUX-ORG-RU
()

Ютуб у меня перестал лагать :)

Обновление:

-Способ более не работает или будет работать не у всех.

Короче в firefox 115 ESR килобиты и вечная подгрузка раз в секунду (ну не всегда, но один фиг периодические ожидания), в firefox 127 такая же херня.

  • about:config network.http.http3 влючен

Просто ради эксперимента открыл chromium

  • Version 126.0.6478.126 (Official Build) built on Debian trixie/sid, running on Debian trixie/sid (64-bit)

Принудительно включил этот tcp over udp

И стало как раньше, скачки 20+ мегабит подгрузки на несколько секунд и мои 1080p видосики не лагают больше.

Оно походу идёт в обход кеширующих серверов ибо у http3 с этим мягко говоря проблемы. Но я даже смотреть не буду откуда именно сейчас трафик мне по нормальному летит. А то накаркаю ещё и каркуши его сломають. Кому интересно сами ковыряйтесь :)

А сначала я хотел CDNы у себя заблокировать дабы оно пыталось трафик откуда то ещё брать, а оно вот так расчехлилось.

 , видосики, ,

LINUX-ORG-RU
()

Сборка модуля ядра

Решил тут на досуге opemu поковырять маленько.

uname -a
Linux gnu 6.8.9-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.8.9-1 (2024-05-15) x86_64 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux trixie/sid
Release:	n/a
Codename:	trixie
dron@gnu:~/Рабочий-стол/sonc$

Сейчас у меня загружено ядро 6.8.9, в Debian для него нет linux-headers в репе. Поэтому скачал

Распаковал, далее (всё успешно)

cp /boot/config-6.8.9-amd64 ./.config
make oldconfig && make prepare

Далее в Makefile модуля подменил путь

Сам Makefile для наглядности

# --force-vermagic
###################################################
MODULE_NAME := op_emu
###################################################
$(MODULE_NAME)-objs := opemu/sse3.o           \
                       opemu/ssse3.o          \
                       opemu/sse41.o          \
                       opemu/sse42.o          \
                       opemu/opemu.o          \
                       opemu/fpins.o          \
                       opemu/trap_hook.o      \
                       opemu/opemu_math.o     \
                       libudis86/syn.o        \
                       libudis86/itab.o       \
                       libudis86/decode.o     \
                       libudis86/udis86.o     \
                       libudis86/syn-att.o    \
                       libudis86/syn-intel.o  \
###################################################
obj-m += $(MODULE_NAME).o
###################################################
KBUILD_CFLAGS += -DDEBUG -g -O2 -march=native \
                                -mtune=native \
                                -mmmx         \
                                -msse         \
                                -msse2        \
###################################################
#KERNEL_PATH ?= /lib/modules/$(shell uname -r)/build
KERNEL_PATH = /home/dron/Рабочий-стол/linux-6.8.9
###################################################
export KBUILD_CFLAGS
###################################################
all:
	make -C $(KERNEL_PATH) M=$(PWD)  modules
#	-rm ./*.order
#	-rm ./*.symvers
#	-rm ./*.mod
#	-rm ./*.o
#	-rm ./*.c
###################################################
clean:
	make -C $(KERNEL_PATH) M=$(PWD) clean
###################################################

Всё ломается на этапе

  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/udis86.o
  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/syn-att.o
  CC [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/libudis86/syn-intel.o
  LD [M]  /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.o
  MODPOST /mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/Module.symvers
WARNING: Module.symvers is missing.
         Modules may not have dependencies or modversions.
         You may get many unresolved symbol errors.
         You can set KBUILD_MODPOST_WARN=1 to turn errors into warning
         if you want to proceed at your own risk.
WARNING: modpost: "memcpy" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "vsnprintf" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__fentry__" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__x86_indirect_thunk_rax" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "_printk" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__stack_chk_fail" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "kernel_fpu_begin_mask" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "kernel_fpu_end" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "__x86_indirect_thunk_rdx" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: "ftrace_set_filter_ip" [/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko] undefined!
WARNING: modpost: suppressed 11 unresolved symbol warnings because there were too many)
make[3]: *** Нет правила для сборки цели «/mnt/STORAGE/НАБРОСКИ/opemu-linux-непонятно-что-с-лицензией/op_emu.ko», требуемой для «__modfinal».  Останов.
make[2]: *** [/home/dron/Рабочий-стол/linux-6.8.9/Makefile:1854: modules] Ошибка 2
make[1]: *** [Makefile:240: __sub-make] Ошибка 2
make[1]: выход из каталога «/home/dron/Рабочий-стол/linux-6.8.9»
make: *** [Makefile:34: all] Ошибка 2

Как сгенерировать Module.symvers от текущего ядра?

Заранее, тут нету, в смысле нет каталога build что симлинк на /usr/src/linux-headers-6.8.9 котрого тоже нету ибо нет пакета. И где Module.symvers текущего загруженного ядра тогда брать? Типа собирать из исходников со своим конфигом и от туда? А без этого как? Например я хочу собрать модуль для 10ти ядер, которых даже в дистрибутиве нет, что мне каждое собирать? Пока не нагуглил, вот спрашиваю

/lib/modules/6.8.9-amd64$ ls
kernel             modules.builtin.alias.bin  modules.dep.bin  modules.symbols
modules.alias      modules.builtin.bin        modules.devname  modules.symbols.bin
modules.alias.bin  modules.builtin.modinfo    modules.order
modules.builtin    modules.dep                modules.softdep

Давно в таком виде всё это не тыкал, что я упускаю, где что недопонимаю? Сонный уже, колпачок не варит. Вот блин приключения на ровном месте, хехе.

P.S. Чисто для проверки сборки подсунул Module.symvers из /lib/modules/6.9.7-amd64/build, всё успешно собралось, но модуль такой загрузить нельзя понятное дело. Это так, для справки

Косвенно решено:

 , , symvers, , сборка модуля

LINUX-ORG-RU
()

До завтра

У вас осталось меньше 15ти минут. Я бы таймер повесил на главной. Прикольно бы было.

 , , ,

LINUX-ORG-RU
()

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