LINUX.ORG.RU

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

Почему ОС всё ещё не загружаются по сети?

Форум — Talks

Представьте, в ОС или каком-либо компоненте нашли уязвимость, взломали, и одно дело, утекшие данные, а ведь до кучи могут сделать хост частью своего ботнета, например. Вы хватаетесь за голову, что ж теперь, аудит проводить, куда лазили, что делали, или просто переустановить всё, опять же заново настраивать, — сплошной головняк. Восстановление из последнего бэкапа? Как давно он был сделан? Ведь наверняка с тех пор в конфигурацию хоста внесены изменения. Я веду к тому, что всё ещё популярно хранить актуальное состояние ОС в единственном экземпляре в «горячем» виде, так сказать.

А что если, экземпляр вашей ОС хранился бы в «холодном» виде в образе, на сервере, откуда бы загружался на ваш хост при каждом его включении, и подтягивал за собой всю конфигурацию, необходимую для работы. Хост взломали, а вы просто исправили баг в образе который хранится «на холодную» и жмякнули кнопочку reset для перезагрузки, и снова в строю. Это же просто офигенно.

Как раз сейчас я этим и занимаюсь и решил поделиться мыслями. Хочу перевести все свои сервисы на удалённую «бездисковую» загрузку по сети. Чтоб даже домашний ПК-роутер, раздающий интернеты, загружался по сети и подтягивал образ с соответствующей конфигурацией. Для этого нужен только DHCP, tftp-hpa и... grub2, либо syslinux.

Когда компьютер включается, UEFI / BIOS при необнаружении накопителей пытается загрузиться через сеть, это так по-умолчанию, можно тупо принести новый комп из магазина домой, закрытыми глазами его собрать, включить и он загрузится, и станет нодой, частью вашей сети, да... кра-со-та.

UEFI спросит DHCP-сервер, DHCP выдаст IP и скажет, что по такому-то адресу находится загрузчик. UEFI попытается загрузить его по TFTP-протоколу, и в случае успеха, уже сам grub2 покажет красивую менюшку с выбором ОС, — добро пожаловать бездисковую загрузку по сети!

С установкой и запуском tftp-hpa проблем не будет, /usr/sbin/in.tftpd --listen --secure --verbose /var/ftp/tftpboot

Предлагаю всё хранить в /var/ftp/tftpboot, туда же установим загрузчик GRUB2:

# grub-mknetdir --net-directory /var/ftp/tftpboot
Netboot directory for i386-pc created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/i386-pc/core.0
Netboot directory for i386-efi created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/i386-efi/core.efi
Netboot directory for x86_64-efi created. Configure your DHCP server to point to /var/ftp/tftpboot/boot/grub/x86_64-efi/core.efi

Далее DHCP, достаточно настроить чтобы он раздавал IP и говорил по какому адресу находится файл загрузчика, который UEFI будет загружать через TFTP.

# cat /etc/dhcpd.conf
shared-network arpanet {
  interface br0;

  allow booting;
  allow bootp;
  next-server 10.0.0.1;
  filename "boot/grub/i386-pc/core.0";

  subnet 10.0.0.0 netmask 255.0.0.0 {
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    option subnet-mask 255.0.0.0;
    option routers 10.0.0.1;
    range 10.0.0.2 10.0.0.254;
  }
}

Загрузка будет происходить с tftp://${next-server}/${filename}. У меня интерфейс br0 — бридж, в который вхожи все виртуальные машины. Именно br0 присвоен 10.0.0.1. У вас это может быть просто сетевая карта enp1s4po3te5ri7ng9.

Алсо, если у вас реально UEFI, можно добавить проверку, какой загрузчик отдавать системе:

option client-system-architecture-type code 93 = unsigned integer 16;

if option client-system-architecture-type = 00:09 {
  filename "boot/grub/x86_64-efi/core.efi";
}
else {
  filename "boot/grub/i386-pc/core.0";
}

У меня кстати на QEMU с OVMF загрузчик EFI не заработал. Не знаю почему, то ли OVMF кривой, то ли надо тестировать на реальном железе (пока не пробовал).

Ну и вишенкой на торте надо создать обычный grub.cfg vi /var/ftp/tftpboot/boot/grub/grub.cfg:

set default=0
set timeout=60
menuentry "Boot SLAX" {
  linux /boot/os/slax/vmlinuz load_ramdisk=1 prompt_ramdisk=0 rw printk.time=0 from=http://10.0.0.1/slax/slax-64bit-9.9.1.iso
  initrd /boot/os/slax/initrfs.img
}
menuentry "Reboot" {
  reboot
}
menuentry "Shutdown" {
  halt
}
menuentry "Continue" {
  exit
}

На этом вся настройка. Для теста я использовал qemu-system-x86_64 -nic tap, который скриптами /etc/qemu-{ifup,ifdown} входил в бридж br0. BIOS спрашивал DHCP, DHCP выдавал IP и сообщал адрес загрузчика, далее BIOS загружал его с TFTP сервера и удачно грузился grub2, а дальше — дело тривиальное. Напихать кучу образов ОС.

Для примера можно использовать SLAX, для этого скачаем ISO-образ дистрибутива, стырим оттуда файлики /slax/boot/{vmlinuz,initrfs.img} и положим к себе в /var/ftp/tftpboot/boos/os/slax/.

Расскажу, как это работает, почему загружается SLAX и почему не загружается Debian / Ubuntu / Anything Else по сети.

Мы включили ПК, по TFTP загрузился grub2 и всё управление сейчас находится у него. Далее, выбирая пунктик меню загрузки SLAX, сам grub2 загружает с TFTP-сервера файлы /vmlinuz и /initrfs.img и передаёт управление уже ядру /vmlinuz. А ядро-то про TFTP сервер ничего не знает! И initrd SLAX'а, и любого другого дистрибутива ничего про TFTP не знает. До того момента, как мы грузимся по сети, мы работаем с TFTP-сервером, grub2 может оттуда загружать все свои модули, шрифты, аниме-картинку-с-понями для фона, но после того, как он передаёт управление ядру — забудьте про TFTP, всё.

В данном примере параметром к ядру указан from=http:// iso-образ SLAX, — да, iso-образ будет скачан с этого ресурса и SLAX будет успешно загружен по сети, нооо, важная деталь — это не параметр ядра, from= сохранится в /proc/cmdline, но ядро не знает что с этим делать, с from= будет работать сам /init скрипт находящийся в initrfs.img. Это чисто фича SLAX, и такой фичи нет у других дистрибутивов.

Как же тогда загрузить Ubuntu Live по сети? Да, grub2 может загрузить ISO образ размером 2гб, но оно вам надо? Ядро не знает про http и ftp (поправьте, если ошибаюсь), но ядро знает про NFS (Network File System) и умеет работать с ней. Таким образом, чтобы загрузить Ubuntu Live, вам надо точно так же извлечь vmlinuz и initrd из iso-образа Ubuntu, а параметром к ядру дописать root=/dev/nfs, таким образом ядро Ubuntu (и любого другого дистрибутива, т.к. это уже фича самого ядра Linux), будет знать, что после того как какой-нибудь скрипт в initrd запросит внешний файл, например, Live-образ системы, — ядро знает, что брать его надо с nfs://10.0.0.1/ubuntu-live — так-то!

Если будут вопросы, постараюсь ответить (хотя скоро спать).

За основу дистрибутива для загрузки по сети я беру любимый CRUX. Вся идея в том, чтобы загружался простенький busybox, подключался к сети (udhcpc), а затем через wget ftp://10.0.0.1/boot/pxelinux.cfg/54:52:00:12:34:56/init.sh && sh init.sh выполнял дальнейшие инструкции для загрузки, которые могут быть вообще любые. Подтягивал любой образ ФС по сети и switch_root в него! Так-то.

 

Spoofing
()

Snort для чайников

Форум — Security

Есть много статей по использованию сетевой системы обнаружения (IDS) и предотвращения вторжений (IPS) под названием Snort.

Например, вот эта: Система обнаружения вторжений на базе IDS Snort

Но не дойдя даже до половины ее, начинаешь зевать и ужасно хочется спать :)
Потому что статья написана не для простых пользователей, которым нравится копаться во всяком ... настройках, а для гиков.

И хотя есть статья под интригующем названием Система обнаружения вторжения для Чайников. Установка и Конфигурирование SNORT
она по сложности мало чем отличается от предыдущей.

Есть ли у кого простенькое хавту, чтобы в два притопа поставить этот Snort и не заморачиваться с его многочисленными настройками?

Как, например, Fail2ban: установил по дефолту - и забыл про него, а он себе молча работает и не компостирует мозги.

 

chukcha
()

Печёт от вебмакак

Форум — Talks

Приветствую! У меня просто термоядерный синтез между ягодицами! Это надо же умудрится наклепать сайтик с 2к пользователей онлайн чтобы оно жрало 24 ядра камня и 96Гб рамы... С*ка когда же вебмакаки вымрут...

P.S Не бомбил бы, если это бы не я админил этот веб-сервер. И не получал по шапке от тех же вебмакак: «почииму тормозитт наш сайтиикк».

P.P.S Да, накипело.

 , ,

Hg194
()

Управление архивом фоток. Автоматическая уменьшалка.

Форум — General

Вот есть куча фоток, снятых 16 мпикс смартфоном, весит каждая под 5 мб, но их можно уменьшать килобайт до 800 обычно без особой потери информативности.

Фотки стяны с разным разрешением.

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

Просто уменьшить все фотки в 2 раза - в принципе выход, но они разные и не все можно покоцать именно в 2 раза, какую-то может быть можно только в 1.5 раза коцать. А какую-то в 8 раз, потому что она вся смазанная.

Короче, есть чё на эту тему?

 

igloev
()

QEMU тормозит

Форум — General

Всех приветствую! Решил ознакомится с хвалёной QEMU, до этого в основном юзал виртуалбокс и иногда Vmware, основная система - опесузя тумбльвид, установил из репов qemu virt-manager и все что нужно к ним, запустил виртманагер, приконнектился (там это так называется) к QEMU выбрал создание новой системы, выделил ей 4 гига оперативы и 2 процессорных ядра, при таком раскладе виртуальная винда у меня при установке в вирт.бокс работает хоть и не так шустро как будучи основной но и не тормозит, я уж не говорю что основная ось - ни винда ни линух при запуске виртуальной оси в вирт.боксе или вмваре у меня не тормозила никогда вообще! Так вот продолжаю - вставил в вирт.CD-ROM создаваемой системы ISO образ винды 10-ки, у дальше началось ужасное - винда устанавливалась часа два наверно, в то время как если ставить её хоть как основную хоть виртуальную в виртуалбокс или вмваре ставится не больше часа, все время установки основная ось - опенсузя, жутко тупила, я даже вспомнил древние компы из 90-х, так опесузя у меня не тормозила даже на слабеньком нетбуке при максимальной нагрузке! Как установка закончилась вроде опенсузя ожила хотя и все равно как то несовсем, виртуальная десятка тоже как то работала не так шустро как в виртуалбоксе, что такое что я делаю не так? Как настроить QEMU на макс.быстродействие? Виртуалбокс и вмваре работают сразу нормально, и без доп.настроек, а тут тормоза дичайшие с этим QEMU, в чем проблема может быть? Проц. AMD Ryzen оперативы 8 гигов, аппаратная виртуализация в биосе включена, что может быть не так?

 

barmaley99
()

SimJacker - критическая уязвимость в SIM-картах

Форум — Security

Уязвимость, получившая название SimJacker, находится в программном обеспечении SIMalliance Toolbox Browser (S@T Browser), встроенном в большинство SIM-карт, которые используются мобильными операторами как минимум в 30 странах мира. Злоумышленники могут прибегнуть к ней независимо от марки устройства жертвы. По словам специалистов, этот эксплойт успешно используется хакерами последние несколько лет.

S@T Browser представляет собой приложение, которое устанавливается на SIM-карты, в том числе и на eSIM, как часть SIM Tool Kit (STK), и предназначено для того, чтобы мобильные операторы могли предоставлять своим клиентам разные базовые услуги. S@T Browser содержит ряд инструкций STK, таких как отправка сообщений, настройка звонков, запуск браузера, предоставление локальных данных, запуск по команде и отправка настроек, которые могут быть активированы сообщением.

Используя GSM-модем за 10 долларов, злоумышленники могут отправить на аппарат жертвы поддельное сообщение, содержащее вредоносный код. Это позволяет им:

  • Получить местоположение целевого устройства и его IMEI
  • Распространять любую информацию путём отправки поддельных сообщений от имени жертв
  • Совершать звонки на платные номера
  • Шпионить, приказав устройству позвонить по номеру телефона злоумышленника
  • Загружать вредоносные программы, заставляя браузер устройства открывать вредоносные веб-страницы
  • Отключать SIM-карту
  • Получать информацию о языке на устройстве, заряде аккумулятора и т. д.

 , , , ,

Allakka
()

Bind и форвард onion

Форум — Talks

После отпуска решил апнуть @world
Прилетел бЫнд 9.14.4
ИИИ....форвард onion'а фсё

zone "onion." in {
	type forward;
	forwarders {
	    127.0.0.1 port 5300; //TOR
	};
};

выцарапал де'былд net-dns/bind-9.12.3_p4 в локал_оверлай, счас скомпиляю..и посмотрю, и че как
а так, nslookup на тор резовит онион четко.
Как так то?
Да, 9.12 робыть. Нафига такие апдейты...

 , ,

KosmiK
()

Насоветуйте дешевый VPS-хостинг для VPN

Форум — Talks

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

Так же хотелось бы чтобы не заблочили за нарушение авторских прав при скачивании торрентов

 ,

bsdfun
()

Защита от копирастической гэбни при загрузке торрентов

Форум — Talks

Какие есть варианты защиты от копирастов при загрузке торрентов (в частности кина) с европейского VPS? Отключение DHT, включение шифрования? В первый раз сегодня столкнулся с письмом счастья от правообладателей при загрузке фильмов через дополнение в kodi, скачивал через российский трекер. До этого качал/раздавал что угодно через православный qbittorrent и ничего не приходило. Как вообще происходит мониторинг этого дела в автоматическом режиме?

 ,

bsdfun
()

cgroups, systemd и распределение процессора.

Форум — Desktop

Есть 4 меделеных ядра, systemd, 2 пользователя и желание нагрузить комп многопотоком так, чтобы мне это не мешало. nice прекрасно работал давно, когда ядро было единственное и процессы однопоточные. Почитал про cgroups и сделал вывод, что с помошью этой штуки можно рулить приоритетами для многопоточной нагрузки на многоядерных системах, т.е. теоретически это то что надо.

Далее, раз уж системд всё равно есть, раз уж cgroups в него зашит, то и пользоваться нужно им. Вроде как каждой отдельной сессии пользователя выдаётся отдельный slice с собственной долей cpu и в соответствии с этой долей выделяются проценты cpu. Стандартно доли равные, но можно указать в /etc/systemd/system/user-1000.slice.d/50-CPUShares.conf

[Slice]
CPUShares=2048
и в /etc/systemd/system/user-1001.slice.d/50-CPUShares.conf
[Slice]
CPUShares=100
и вторичный пользователь должен получить малую долю cpu если у первичного появится достаточно потоков. Т.е. в теории то что нужно.

Ребут, логин первичного и вторичного пользователей, запуск условного майнера под вторичным, и что то идёт не так: условный майнер отказывается отдавать первичному пользователю более 50% свободного cpu, даже если первичный создаёт 8-10-12 потоков нагрузки.

Почему настройка CPUShares не применяется (механизм работает! но явно с равными шарами!) и предусмотрен ли способ применять изменения без перезагрузки системы? А без перезапуска сессии?

 , ,

kirill_rrr
()

Играем на P106-100 в линуксе без интегрированной графики

Форум — Talks

Собственно, обещал отписаться, как закончу. Огромное спасибо за подсказки всем в этом треде.

Для тех, кто в танке - есть Nvidia P106-100, майнинг вариант GTX1060, который можно дешево добыть у китайцев. Если после майнинга, то совсем совсем дешево. Играть на нем (официально) нельзя, но если воткнуть в материнку с интегрированной графикой и пропатчить виндовые дрова по методу Дяди Ляо, то можно.

В линуксе никто это дело почему-то не пытался даже заводить, а зря, ибо, как оказалось, заводится оно с полпинка. Есть иксы с композитингом и видеоускорением, работает steam и стриминг игр, виндовые игры на ура стартуют через proton. Ведьмак дал где-то 30-50 fps на ultra настройках, что для видюхи стоимостью меньше 100 баксов очень даже неплохо.

Кому интересно, я сделал инструкцию у себя в бложике.

Пока тестил только с проприетарным драйвером nvidia, в планах потом попробовать еще nouveau. Вдруг заработает vaapi, ибо nvenc/vdpau с проприетарным не взлетели, как и SLI ;)

sudo cast pon4ik peregrine sergej intelfx

 ,

ncrmnt
()

в копилку косяков debian buster

Форум — General

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

  1. самый критичный. при большом количестве LV, pvscan зависает. виснет именно userspace процесс, в ядре никаких проблем. прибить pvscan, запустить заново - и работает. но. это полный пипец. тем более если на компе много LV ( например, libvirt kvm сервер ) - загрузка зависает, виртуалки не стартуют. пока добавил костыль ( стартует из крона, ждёт 2 минуты и убивает процессы pvscan, которые запустил systemd; после этого загрузка продолжается ) . в выходные буду ковырять подробнее
  2. /etc/network/interfaces теперь игнорируется при загрузке. вручную можно вполнить ifup/ifdown, но кто блин будет делать это вручную. по умолчанию используется systemd-network. я с ним не знаком, поставил и настроил привычный network-manager, перенёс сетевую конфигурацию в него. некоторых вещей не хватает ( хуки на up/down ), надо курить документацию. и, видимо, изучать systemd-network, наше блин светлое будущее
  3. в связи с заменой xorg на wayland + xwayland, частично не работает клавиатура в x2go. причина - keyboard rules теперь не xfree86, а evdev
    ## было:
    ## /usr/bin/setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle,grp:ctrl_shift_toggle" -rules xfree86
    ## стало:
    /usr/bin/setxkbmap -layout "us,ru" -option "grp:alt_shift_toggle,grp:ctrl_shift_toggle" -variant '' -model 'pc105'  -rules evdev
    
  4. в nautilus перестали создаваться thumbnail'ы картинок. лечится установкой пакета libgdk-pixbuf2.0-bin

 

router
()

Как организовать перехват нескольких редиректов при выполнении proxy_pass в nginx ?

Форум — General

Собственно сабж. Как организовать перехват и перенаправление нескольких редиректов при выполнении proxy_pass в nginx ? Т.е. имеется ввиду, когда по ссылке цепочкой идёт один 302-й редирект за другим.

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

{

***

proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirect;
}

location @handle_redirect {
resolver 8.8.8.8;
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
но вот только хватает этого на одну итерацию. В случае наличия повторного редиректа нужно повторить перехват ошибок и конструкцию @handle_redirect. Существует ли возможность заставить nginx следовать редиректам до упора, без применения сторонних средств типа PHP или CGI ? Или это невозможно ?

 

Blacksmith
()

Приложение в debian на отдельный интерфейс

Форум — General

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

 ,

qwertynobody
()

Origin

Форум — Games

Дарю инструкцию для интересующихся:

$ mkdir -p ${HOME}/Origin

В директории Origin создаём файл hchmod.c с содержимым:

#include <dlfcn.h>
#include <sys/stat.h>
#include <unistd.h>

int (*mkdir_real)(const char *pathname, mode_t mode) = NULL;
int (*chmod_real)(const char *pathname, mode_t mode) = NULL;
int (*fchmod_real)(int fd, mode_t mode) = NULL;

int mkdir(const char *pathname, mode_t mode){
  if ( mkdir_real == NULL ){
        mkdir_real = dlsym(RTLD_NEXT,"mkdir");
  }
return (mkdir_real(pathname, mode | S_IWUSR ));
}

int chmod(const char *pathname, mode_t mode){
  if ( chmod_real == NULL ){
        chmod_real = dlsym(RTLD_NEXT,"chmod");
  }
return (chmod_real(pathname, mode | S_IWUSR ));
}

int fchmod(int fd, mode_t mode){
  if ( fchmod_real == NULL ){
        fchmod_real = dlsym(RTLD_NEXT,"fchmod");
  }
return (fchmod_real(fd, mode | S_IWUSR ));
}
Собираем:
$ cd ${HOME}/Origin
$ gcc -shared -fPIC -D_GNU_SOURCE -o hchmod.so hchmod.c -ldl
Если вы уже безуспешно пытались установить Origin, то надо поправить права на папку:
$ chmod 755 "${HOME}/.wine/drive_c/Program Files (x86)/Origin"
или удалить её:
$ rm -R "${HOME}/.wine/drive_c/Program Files (x86)/Origin"
Качаем и устанавливаем Origin
$ wget https://download.dm.origin.com/origin/live/OriginSetup.exe
...
$ export LD_PRELOAD=${HOME}/Origin/hchmod.so 
$ wine OriginSetup.exe

Upd.: когда-то была ошибка входа, помогало это:

$ export LC_TIME=en_US.UTF-8
$ cd "$HOME/.wine/drive_c/Program Files (x86)/Origin/" 
$ wine Origin.exe

 , , , ,

superuser
()

С космодрома Восточный стартовала ракета «Союз-2.1б»

Форум — Talks

МОСКВА, 5 июл — РИА Новости. С космодрома Восточный стартовала ракета «Союз-2.1б» с метеорологическим спутником «Метеор-М» №2-2 и 32 малыми спутниками.

Это первый пуск с Восточного в 2019 году. За ним наблюдали секретарь Совета безопасности Николай Патрушев, вице-премьер Юрий Борисов, глава «Роскосмоса» Дмитрий Рогозин, а также вице-премьер — полпред президента на Дальнем Востоке Юрий Трутнев.

Старт состоялся в 8:42 по московскому времени. Через десять минут от носителя отделился разгонный блок «Фрегат», чтобы развести аппараты по трем разным орбитам. Через час после пуска «Метеор-М» вышел на рабочую орбиту средней высотой 832 километра.

Далее «Фрегат» будет выводить на две другие орбиты — высотой порядка 580 и 530-540 километров — малые спутники США, Великобритании, Германии, Таиланда и Чехии, а также несколько университетских аппаратов из Швеции, Франции, Германии, Эстонии и Эквадора.

Россию представят три научно-образовательных аппарата «Сократ», «ВДНХ-80» и «АмурСат».

После окончания миссии «разгонник» переведут на траекторию входа в атмосферу. Примерно в 14:07 мск несгоревшие элементы конструкции приводнятся в несудоходном районе Тихого океана.

Прошлый аналогичный запуск с Восточного в ноябре 2017 года закончился неудачно. Ракета штатно стартовала с «Метеором-М» №2-1 и 18 малыми аппаратами, но разгонный блок не смог вывести их на орбиту из-за неправильно заложенных алгоритмов.

https://ria.ru/20190705/1556227683.html

 , , ,

kickass
()

Как включить LTO

Форум — Development

При сборке модулей добавляю -flto -fno-fat-lto-objects, при вызове ld ничего не добавляю, не знаю что надо, результат.

arm-none-eabi-ld: /tmp/pmc/hal/adc.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/hal/can.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/hal/hal.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/hal/pwm.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/hal/usart.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/ap.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/cml.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/lib.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/m.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/pmc.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/sh.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/task.o: plugin needed to handle lto object
arm-none-eabi-ld: /tmp/pmc/tel.o: plugin needed to handle lto object
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x2a): undefined reference to `halStart'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x2e): undefined reference to `halMain'
/tmp/pmc/hal/entry.o:(.vectors+0x8): undefined reference to `irqNMI'
/tmp/pmc/hal/entry.o:(.vectors+0xc): undefined reference to `irqHardFault'
/tmp/pmc/hal/entry.o:(.vectors+0x10): undefined reference to `irqMemoryFault'
/tmp/pmc/hal/entry.o:(.vectors+0x14): undefined reference to `irqBusFault'
/tmp/pmc/hal/entry.o:(.vectors+0x18): undefined reference to `irqUsageFault'
/tmp/pmc/hal/entry.o:(.vectors+0x2c): undefined reference to `irqSVCall'
/tmp/pmc/hal/entry.o:(.vectors+0x38): undefined reference to `irqPendSV'
/tmp/pmc/hal/entry.o:(.vectors+0x3c): undefined reference to `irqSysTick'
/tmp/pmc/hal/entry.o:(.vectors+0x78): undefined reference to `irqDMA1_Stream3'
/tmp/pmc/hal/entry.o:(.vectors+0x88): undefined reference to `irqADC'
/tmp/pmc/hal/entry.o:(.vectors+0x90): undefined reference to `irqCAN1_RX0'
/tmp/pmc/hal/entry.o:(.vectors+0x94): undefined reference to `irqCAN1_RX1'
/tmp/pmc/hal/entry.o:(.vectors+0x98): undefined reference to `irqCAN1_SCE'
/tmp/pmc/hal/entry.o:(.vectors+0xa4): undefined reference to `irqTIM1_UP_TIM10'
/tmp/pmc/hal/entry.o:(.vectors+0xdc): undefined reference to `irqUSART3'
Makefile:57: recipe for target '/tmp/pmc/pmc' failed
make: *** [/tmp/pmc/pmc] Error 1

Если вызвать gcc вместо прямого вызова ld то получаю проблемы со всяким стартовым кодом и библиотеками которые мне не нужны. Когда-то я и перешел на вызов ld чтобы не иметь этих проблем.

/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans0.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans0.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans1.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans1.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans2.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans2.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans3.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans3.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans4.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans4.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans5.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans5.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans6.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans6.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans7.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans7.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans8.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans8.ltrans.o
/usr/libexec/gcc/arm-none-eabi/ld: error: /tmp/ccs6XVoG.ltrans9.ltrans.o uses VFP register arguments, /tmp/pmc/pmc.1.o does not
/usr/libexec/gcc/arm-none-eabi/ld: failed to merge target specific data of file /tmp/ccs6XVoG.ltrans9.ltrans.o
/usr/lib/gcc/arm-none-eabi/5.3.0/../../../../arm-none-eabi/lib/crt0.o: In function `_start':
/var/tmp/portage/cross-arm-none-eabi/newlib-2.4.0/work/newlib-2.4.0/newlib/libc/sys/arm/crt0.S:403: undefined reference to `main'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x34): undefined reference to `ldSdata'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x38): undefined reference to `ldEtext'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x3c): undefined reference to `ldEdata'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x40): undefined reference to `ldSbss'
/tmp/pmc/hal/entry.o: In function `__iRbssComp':
(.text+0x44): undefined reference to `ldEbss'
/tmp/pmc/hal/entry.o:(.vectors+0x0): undefined reference to `ldStack'
/tmp/ccs6XVoG.ltrans4.ltrans.o: In function `halStart':
<artificial>:(.text+0x9c0): undefined reference to `ldSvectors'
collect2: error: ld returned 1 exit status
Makefile:57: recipe for target '/tmp/pmc/pmc' failed
make: *** [/tmp/pmc/pmc] Error 1

Undefined reference это понятно, надо как-то объяснять, что функция вызывается из вне и выбрасывать ее нельзя.

В первом случае похоже никакого LTO нет, судя по времени работы ld и сообщениях о плагинах, но почему есть undefined reference? Во втором не знаю как сделать, чтобы компоновки не было, а только бы произошла оптимизация и генерация объектного кода, дальше я бы сам вызвал ld как мне надо.

Исходный Makefile.

 ,

amaora
()

Помогите выбрать осциллограф

Форум — Talks

Надумалось мне купить на поиграться осциллограф. Точных целей для такой покупки у меня нет. Брать решил бу на авито. Из всех представленных моделей в моем регионе мне приглянулись:

С1-49 за 2000 рублей

С1-68 за 2500 рублей

С1-94 за 3500 рублей

Поскольку в данной теме я нуль то хотелось бы знать что посоветует разум лора.

 

Behem0th
()

Скандинавская альтернатива Let's Encrypt

Форум — Admin

Всем доброго дня!

Вопрос по сабжу, кто-нибудь уже использовал BuyPass в проде?

 , , ,

Twissel
()

Стала доступна бета-версия S.T.A.L.K.E.R. Зов припяти на движке OpenXRay

Новости — Игры
Группа Игры

После полу-годовой работы над стабильностью, стала доступна бета-версия игрового движка OpenXRay.

Побеждены случайные вылеты, улучшен рендер (ближе к ванильной картинке), игру можно пройти до конца.

Известные баги и проблемы:

  • При выходе из игры процесс может зависнуть
  • При переходе между локациями/повторной загрузке сейвов портится картинка, игра может вылететь (пока решается только через перезапуск игры с загрузкой сейва)
  • Сейвы и логи не поддерживают UTF-8
  • Проект не собирается clang

Для работы игры понадобятся ресурсы от оригинальной игры, они должны находиться в ~/.local/share/GSC/SCOP/

Для steam их можно получить следующим образом:

steamcmd "+@sSteamCmdForcePlatformType windows" +login <username> +force_install_dir ~/.local/share/GSC/SCOP/ +app_update 41700 +quit

Если ресурсы из GOG, нужно привести все пути к нижнему регистру(это особенность движка)

Перед началом игры нужно исправить строку в ~/.local/share/GSC/SCOP/_appdata_/user.ltx renderer renderer_r1 на renderer renderer_gl, и vid_mode 1024x768 на ваше разрешение, иначе оно слетит.

PPA (пока только для bionic)

В планах дальнейшее улучшение рендера, поддержка ресурсов от ClearSky (сейчас в отдельной WIP ветке) и TЧ.

>>> Подробности

 , ,

eagleivg
()