LINUX.ORG.RU

Сообщения juf

 

Apple libc и вообще apple environment на Linux

Значит учусь я в «школе 21», мы там кодим на маках, но в условиях ковида нам можно сдавать проекты удаленно.

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

В общем появилась у меня идея с помощью systemd-nspawn создать контейнер, в котором будет среда максимально напоминающая мак. То есть установить маковскую libc, а так же ar, make, clang и прочие тулзы тех же версий что на маке. И мне кажется что это должно сработать, ведь никаких библиотек кроме стандартной мы не используем, а утилиты будут такие же.

Но т.к. я не очень опытен у меня есть пара вопросов. Как найти/собрать/где взять маковскую стандартную либу для си и плюсов? Чего я не учел и почему оно не даст ожидаемого эффекта?

 , , , ,

juf
()

make и правила для сборки различных частей одной библиотеки в многопотоке

Значит дали нам в школе задание самостоятельно имплементировать ряд функций из libс. А в качестве бонуса на повышенную оценку можно написать еще и несколько функций для работы с листами.

Все это должно собираться с помощью make, используя для создания библиотеки ar, и никаких этих ваших libtool. Основная часть должна собираться правилом $(NAME), бонусная bonus. Но собираться они должны в один файл $(NAME) - скажем lib.a и оба правила не должны делать что-либо если этого не требуется.

После чего я написал не хитрые правила

.PHONY: $(NAME) bonus

$(NAME): $(NAME)($(OBJ))

bonus: $(NAME)($(OBJ_BONUS))

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

При запуске нескольких потоков make видимо пытается добавить одновременно несколько объектников в архив, что приводит к тому что в архиве оказываются лишь некоторые из них. В случае с правилом $(NAME), так как цель является действительно изменяемым файлом можно написать так:

$(NAME): $(OBJ)
    $(AR) $(ARFLAGS) $@ $?

Но что делать с правилом bonus я не знаю. Я думал может быть мне поможет .SECONDEXPANSION, но

.PHONY: bonus
.SECONDEXPANSION

$(NAME): OBJ ?= $(OBJ_MAIN)
bonus: OBJ ?= $(OBJ_BONUS)

$(NAME): $$(OBJ)
    $(AR) $(ARFLAGS) $@ $?

bonus: $(NAME)

Не дало ожидаемых результатов, по сему нуждаюсь в вашей помощи.

 , , ,

juf
()

Раздел в разделе GPT

Можно ли в одном из разделов gpt диска создать новую gpt и создать внутри нее дополнительные разделы. Скажем создать аналог расширенного раздела из MBR

Что вообще произойдет, если я открою gdisk-ом /dev/sda1, создам там таблицу и еще пару разделов сверху? Это может адекватно работать или хотя бы вообще работать?

UPD: Про LVM знаю, и знаю что в реальности оно и не нужно, просто вдруг опечатался и ввел sdc1 вместо sdс, а gdisk даже не пикнул. Я конечно не стал создавать таблицу в разделе, но стало интересно понять что в теории будет и что должно произойти, как должна вести себя система? Знать побольше никогда не вредно. Спасибо всем за ответы.

 ,

juf
()

Portal 2 в ArchLinux зависает наглухо, приходится перезагружать

Через 1-2 минуты после начала игры, когда походишь по локации игрушка зависает, я вижу последний кадр и циклично повторяющиеся последние 200-300мс звука. При этом все что я могу сделать это воспользоваться sysrq, либо подключиться к ноуту по ssh

Нашел пару похожих тем редит и гит но решения в них не нашел.

Подскажите, что делать.

UPD После последнего обновления системы все заработало. Прилетело новое ядро и новые дрова на нвидию. Препрошел всю одиночку портала и никаких фризов не заметил)

 , , ,

juf
()

Видяха постоянно отваливается, не знаю что делать.

Уже на протяжении пары недель у меня на ноуте периодически отваливается графика и приходится его ребутать. Обычно картинка зависает, а звук еще секунд 30 идет, но потом и он пропадает.

Ноут с Nvida Optimus, дистирубив ArchLinux-x64.

Зависания происходят в любое время. может зависнуть через минуту после логина при попытке открыть nautilus, а может только через несеолько часов, но при попытки загрузиться в portal 2 вылетает всегда и сразу.

Проблема вроде как появилась после одного из обновлений системы, но когда и какого именно уже сложно понять. Я пробовал ставить nvidia, nvidia-dkms и nvidia-lts(вместе с linux-lts), откатывал стоявшие у меня изначально nvidia-dkms - не помогает.

Долго гуглил по запросу gpu has fallen off the bus, но так и не нашел решения. У многих людей причиной этой ошибки были аппаратные проблемы, но я 2 часа гонял видюху Фур Марком и никаких проблем не обнаружил.

Вот кусок journalctl на момент зависания

апр 18 06:08:33 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:34 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:34 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:36 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:36 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:37 ciio kernel: NVRM: GPU at PCI:0000:01:00: GPU-4025b068-9a99-8a7d-71e9-a0fc73f6fbb5
апр 18 06:08:37 ciio kernel: NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.
апр 18 06:08:37 ciio kernel: NVRM: GPU at 0000:01:00.0 has fallen off the bus.
апр 18 06:08:37 ciio kernel: NVRM: A GPU crash dump has been created. If possible, please run
                                NVRM: nvidia-bug-report.sh as root to collect this data before
                                NVRM: the NVIDIA kernel module is unloaded.
апр 18 06:08:38 ciio kernel: irq 16: nobody cared (try booting with the "irqpoll" option)
апр 18 06:08:38 ciio kernel: CPU: 0 PID: 4784 Comm: steam Tainted: P           O    4.14.34-1-lts #1
апр 18 06:08:38 ciio kernel: Hardware name: ASUSTeK Computer Inc. N55SL/N55SL, BIOS N55SL.204 10/24/2012
апр 18 06:08:38 ciio kernel: Call Trace:
апр 18 06:08:38 ciio kernel:  <IRQ>
апр 18 06:08:38 ciio kernel:  dump_stack+0x5c/0x85
апр 18 06:08:38 ciio kernel:  __report_bad_irq+0x30/0xc0
апр 18 06:08:38 ciio kernel:  note_interrupt+0x23e/0x290
апр 18 06:08:38 ciio kernel:  handle_irq_event_percpu+0x51/0x70
апр 18 06:08:38 ciio kernel:  handle_irq_event+0x39/0x60
апр 18 06:08:38 ciio kernel:  handle_fasteoi_irq+0x80/0x140
апр 18 06:08:38 ciio kernel:  handle_irq+0x1c/0x30
апр 18 06:08:38 ciio kernel:  do_IRQ+0x41/0xd0
апр 18 06:08:38 ciio kernel:  common_interrupt+0x7d/0x7d
апр 18 06:08:38 ciio kernel:  </IRQ>
апр 18 06:08:38 ciio kernel: RIP: 0010:do_fast_syscall_32+0x36/0x214
апр 18 06:08:38 ciio kernel: RSP: 0018:ffffb13a432b3f38 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff8e
апр 18 06:08:38 ciio kernel: RAX: ffff88190dafea40 RBX: ffffb13a432b3f58 RCX: 00000000ff84d828
апр 18 06:08:38 ciio kernel: RDX: 0000000000000005 RSI: 0000000000000001 RDI: ffffb13a432b3f58
апр 18 06:08:38 ciio kernel: RBP: 00000000f7f36059 R08: 0000000000000000 R09: 0000000000000000
апр 18 06:08:38 ciio kernel: R10: 0000000000000000 R11: 0000000000000000 R12: ffff8818bc2a1d00
апр 18 06:08:38 ciio kernel: R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
апр 18 06:08:38 ciio kernel:  ? do_fast_syscall_32+0xab/0x214
апр 18 06:08:38 ciio kernel:  entry_SYSENTER_compat+0x7f/0x8e
апр 18 06:08:38 ciio kernel: handlers:
апр 18 06:08:38 ciio kernel: [<ffffffffc0269290>] usb_hcd_irq [usbcore]
апр 18 06:08:38 ciio kernel: Disabling IRQ #16
апр 18 06:08:38 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed
апр 18 06:08:38 ciio gvfsd-metadata[4106]: g_udev_device_has_property: assertion 'G_UDEV_IS_DEVICE (device)' failed

В это время в Xorg.0.log только

[    16.545] (II) systemd-logind: got pause for 13:75
[    16.545] (II) systemd-logind: got pause for 13:66
[    16.546] (II) systemd-logind: got pause for 13:76
[    16.546] (II) systemd-logind: got pause for 13:67
[    16.546] (II) systemd-logind: got pause for 13:74
[    16.546] (II) systemd-logind: got pause for 13:71
[    16.546] (II) systemd-logind: got pause for 13:73
[    16.546] (II) systemd-logind: got pause for 13:64
[    16.546] (II) systemd-logind: got pause for 226:0
[    16.546] (II) systemd-logind: got pause for 13:72

 ,

juf
()

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