LINUX.ORG.RU

Сообщения marxengels

 

Как правильно добавить опцию в вызов gcc

Форум — General

Существует некая среда разработки Xilinx ISE, имеющая ограниченную поддержку под линукс. В ходе работы с ней вызывается симулятор схемы, который собирает из исходных кодов verilog/vhdl некие .С-файлы, и затем, для симуляции компилирует их при помощи GCC.

В логе это выглядит следующим образом:

Compiling isim/Barrel_Shifter_isim_beh.exe.sim/work/m_02392917152912931626_1577402672.c to isim/Barrel_Shifter_isim_beh.exe.sim/work/m_02392917152912931626_1577402672.lin64.o with command:
"/usr/bin/gcc" -Wa,-W  -O  -fPIC  -m64  -c -o "isim/Barrel_Shifter_isim_beh.exe.sim/work/m_02392917152912931626_1577402672.lin64.o" -I"/opt/Xilinx/14.7/ISE_DS/ISE/./data/include" "isim/Barrel_Shifter_isim_beh.exe.sim/work/m_02392917152912931626_1577402672.c"

Прошу заметить, что gcc вызывается по абсолютному пути «/usr/bin/gcc».

Исходно, он при этом выдает ошибку «Implicit function geclaration», после чего, из-за наличия ошибки, дальнейшая симуляция не запускается.

«Ошибка» в .С файлах вызвана тем, что подготовка их из исходников verilog/vhdl происходит без явного написания прототипов. Что по сути не критично и может быть погашено вызовом gcc c опцией «-Wno-implicit».

Я стал думать как это исправить:

  1. Повлиять я внутреннюю работу среды я вроде как не могу, а вот повлиять на запуск компилятора — могу.

  2. Однако, оказывается, CFLAGS и прочие переменные среды — это лажа, так как gcc их не смотрит.

  3. Я думал, можно перед запуском среды разработки дополнить PATH cпереди:

    #export PATH=«somedir:$PATH»

и положить скрипт:

somedir/gcc

#!/bin/sh
exec /usr/bin/gcc -Wno-implicit $*

Однако, как было выше сказано, среда запускает gcc по абсолютному пути.

  1. Пришлось сделать:

    #mv /usr/bin/gcc /usr/bin/_gcc

/usr/bin/gcc

#!/bin/sh
exec /usr/bin/_gcc -Wno-implicit $*

Это, естественно, работает, но, по сути своей — ужасно.

Вопрос: как сделать это правильно?

 , , , ,

marxengels
()

Openvpn клиент не получает ip

Форум — Admin

Поднял я тут на одной машине openvpn server, а на другой клиента создаю.

Настройки:

- сервер: https://pastebin.com/80miyJKv

- клиент: https://pastebin.com/XVu2buth

Клиент успешно находит сервер, коннектится и его лог заканчивается следующим:

...
...
Sun Dec  9 19:38:59 2018 us=136878 ROUTE_GATEWAY 192.168.1.1/255.255.255.0 IFACE=eth1 HWADDR=00:e0:4c:53:44:58
Sun Dec  9 19:38:59 2018 us=138649 TUN/TAP device tap0 opened
Sun Dec  9 19:38:59 2018 us=138944 TUN/TAP TX queue length set to 100
Sun Dec  9 19:38:59 2018 us=139173 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Dec  9 19:38:59 2018 us=139558 /usr/bin/ip link set dev tap0 up mtu 1500
Sun Dec  9 19:38:59 2018 us=151381 /usr/bin/ip addr add dev tap0 10.8.0.201/24 broadcast 10.8.0.255
Sun Dec  9 19:38:59 2018 us=161408 /usr/bin/ip route add 10.8.0.1/24 via 10.8.0.1
Error: Invalid prefix for given prefix length.
Sun Dec  9 19:38:59 2018 us=170304 ERROR: Linux route add command failed: external program exited with error status: 2
Sun Dec  9 19:38:59 2018 us=170545 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Dec  9 19:38:59 2018 us=170680 Initialization Sequence Completed

При этом на созданном интерфейсе не выставляется ip адрес:

[client]$ ip a
...
...
47: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 4e:d2:00:a7:0d:48 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::4cd2:ff:fea7:d48/64 scope link 
       valid_lft forever preferred_lft forever

Следует ли из лога, что клиент пытается вызвать настройку адреса?

Если после этого вручную повторить команду из лога, адрес настроится и все будет прекрасно работать:

[client]$ /usr/bin/ip addr add dev tap0 10.8.0.201/24 broadcast 10.8.0.255

[client]$# ip a
...
...
47: tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/ether 4e:d2:00:a7:0d:48 brd ff:ff:ff:ff:ff:ff
    inet 10.8.0.201/24 brd 10.8.0.255 scope global tap0
       valid_lft forever preferred_lft forever
    inet6 fe80::4cd2:ff:fea7:d48/64 scope link 
       valid_lft forever preferred_lft forever

[client]$ ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=325 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=162 ms
^C

Поскажите, на каком этапе ошибка? Настройки openvpn или действительно клиент не может вызвать ip addr? (Для тестов и сервер и клиент запускаются прямо от рута.)

 

marxengels
()

Systemd predictive network names & USB tethering

Форум — Admin

Есть желание чтобы подключаемые мною сетевыеустройства получани известные мне постояные имена. Ниже изложенное решение работает со всем, кроме usb tethering...

Стандартное поведение Predictable Network Interface Names таково: https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/; конспект: https://paste.pound-python.org/show/Yz4ntBsDqKTz2FTkq3gC/.

Последовательность перебора политик определяестя файлом:

/usr/lib/systemd/network/99-default.link
---------------------------------------------------
[Link]
NamePolicy=kernel database onboard slot path
MACAddressPolicy=persistent

А для ручного указания имени согласно man system.link надо создать файл:

/etc/systemd/network/10-myphone.link
------------------------------------------
[Match]
MacAddress=............................
[Link]
Name=myphone

(Возможные условия Match указаны в man systemd.link:https://paste.pound-python.org/show/sRlUI47G1hexShExZIPE/)

Однако, переименования не происходит, и устройство по-прежнему получает географическое имя enp0s29f7u3

Проверим действие настроек:

# udevadm test-builtin net_setup_link /sys/class/net/enp0s29f7u2

https://bpaste.net/show/ccee6b833804

Аналогичный файл .link с мак-адресами других устройств срабатывает на отлично, включая встроенный eth, wlan, wwan, usb-lan, usb-wlan.

------------------------------------------------------

Подозрительным кажется то, что udevadm info не показывает ID_NET_NAME_MAC:

# udevadm info -e

https://paste.pound-python.org/show/IBa0mICN6Pdw2NwkInaB/

Хотя например для встроенной сетевой карты возможное к переименованию имя согласно политике 'mac' --- известно:

https://paste.pound-python.org/show/9Ggk7rXwMSq3vC8S6Tlb/

Если, например, попробовать включить включить в 99-default.link политику именно по мак-адресам, то все, наличествующие в системе, карточки, включая usb-lan брелоки, будут правильно переименованы в 'enx......', кроме, опять же, телефона!

Вывод: udev и/или systemd не могут запросить мак адрес у такой карточки. Так ли это?

Вопрос: как правильно написать .link для того, что мне надо?

 , , ,

marxengels
()

Систем виснет намертво раз в сутки

Форум — Linux-hardware

Archlinux, i4440, 16Gb RAM, использую интегрированное видео — три монитора.

Раз в сутки в момент активного использвоания (8 окон по 20 вкладок firefox, играет youtube, deluge, активный доступ к диску и т.п.) система может зависнуть намертво. Не работают устройства ввода, звук зацикливается на последних нескольких секундах. ctrl-alt-f1, sysrq+..., ctrl-alt-del не реагирует. Вырубаю кнопкой.

Редко (каждый десятый раз) может вылететь из иксов в консоль с dmesg сообщениями. Изредка зависает вне использования, обычно, если крутится скринсейвер (если оставить с caffeine, зависать в простое не будет).

По sudo journalctl -b -1 поcледний по времени блок следующий:

фев 18 17:16:23 ttake kernel: general protection fault: 0000 [#1] PREEMPT SMP
фев 18 17:16:23 ttake kernel: Modules linked in: fuse input_leds led_class nct6775 hwmon_vid cfg80211 rfkill nls
фев 18 17:16:23 ttake kernel:  snd_hda_core battery evdev snd_hwdep snd_pcm wmi parport_pc mei_me mei snd_timer 
фев 18 17:16:23 ttake kernel: CPU: 1 PID: 15070 Comm: main Tainted: G           O    4.9.8-1-ARCH #1
фев 18 17:16:23 ttake kernel: Hardware name: MSI MS-7816/B85-G43 (MS-7816), BIOS V3.9 07/17/2014
фев 18 17:16:23 ttake kernel: task: ffff880400172ac0 task.stack: ffffc9000bbbc000
фев 18 17:16:23 ttake kernel: RIP: 0010:[<ffffffff811ff054>]  [<ffffffff811ff054>] lock_page_memcg+0x24/0x80
фев 18 17:16:23 ttake kernel: RSP: 0000:ffffc9000bbbfcf0  EFLAGS: 00010286
фев 18 17:16:23 ttake kernel: RAX: ffff880400172ac0 RBX: fffd88040f011c00 RCX: ffffea0008175d00
фев 18 17:16:23 ttake kernel: RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffea0008175d00
фев 18 17:16:23 ttake kernel: RBP: ffffc9000bbbfd08 R08: ffffc9000bbbfe58 R09: 0000000000000001
фев 18 17:16:23 ttake kernel: R10: 00000000000001e0 R11: 0000000000000000 R12: ffffea0008175d00
фев 18 17:16:23 ttake kernel: R13: ffffea0008175d00 R14: ffffea0008175d00 R15: 0000000000000000
фев 18 17:16:23 ttake kernel: FS:  00007fc2f3018400(0000) GS:ffff88041ea80000(0000) knlGS:0000000000000000
фев 18 17:16:23 ttake kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
фев 18 17:16:23 ttake kernel: CR2: 00007fc275a10000 CR3: 00000003943a5000 CR4: 00000000001406e0
фев 18 17:16:23 ttake kernel: Stack:
фев 18 17:16:23 ttake kernel:  0000000000000000 ffffea0008175d00 ffff880394406480 ffffc9000bbbfd28
фев 18 17:16:23 ttake kernel:  ffffffff811c7c86 8000000205d74027 ffffc9000bbbfe58 ffffc9000bbbfd78
фев 18 17:16:23 ttake kernel:  ffffffff811b9b83 ffffc9000bbbfdf8 ffffea00081f8880 0000000000000000
фев 18 17:16:23 ttake kernel: Call Trace:
фев 18 17:16:23 ttake kernel:  [<ffffffff811c7c86>] page_add_file_rmap+0x16/0x140
фев 18 17:16:23 ttake kernel:  [<ffffffff811b9b83>] alloc_set_pte+0x243/0x600
фев 18 17:16:23 ttake kernel:  [<ffffffff81181354>] filemap_map_pages+0x3e4/0x410
фев 18 17:16:23 ttake kernel:  [<ffffffff811bca97>] handle_mm_fault+0xeb7/0x16d0
фев 18 17:16:23 ttake kernel:  [<ffffffff81230497>] ? __fget+0x77/0xb0
фев 18 17:16:23 ttake kernel:  [<ffffffff81068894>] __do_page_fault+0x2b4/0x510
фев 18 17:16:23 ttake kernel:  [<ffffffff81068b12>] do_page_fault+0x22/0x30
фев 18 17:16:23 ttake kernel:  [<ffffffff8160bc98>] page_fault+0x28/0x30
фев 18 17:16:23 ttake kernel: Code: 1f 84 00 00 00 00 00 0f 1f 44 00 00 55 48 89 e5 41 55 41 54 53 49 89 fd e8 1
фев 18 17:16:23 ttake kernel: RIP  [<ffffffff811ff054>] lock_page_memcg+0x24/0x80
фев 18 17:16:23 ttake kernel:  RSP <ffffc9000bbbfcf0>
фев 18 17:16:23 ttake kernel: ---[ end trace 132e63ea5170a47f ]---

 

marxengels
()

Шрифты

Форум — Desktop

Знаю, на ЛОРе любят в шрифты.

Итак, есть два монитора benq g2220hd, причем установлены они так, что один повернут 90ccw. Когда начал настраивать шрифты, столкнулся с subpixel rendering. Посмотрел тест на http://www.lagom.nl/lcd-test/subpixel.php, --- у меня rgb. Но, получается что на повернутом мониторе «как-бы v-rgb». Как все это правильно настроить, на что это влияет визуально и можно ли отдельно настраивать отображение на каждом мониторе?

 

marxengels
()

/usr, /opt, /var

Форум — Admin

Обычно выносил /usr, /opt, /var, /home, /tmp на отдельные разделы. Есть идея* вынести их на отдельные разделы, но по-нескольку, разместив эти ветки в папках первого уровня на этих разделах. Разделы предлагается примонтировать куда-то вроде /mnt/systpart

Так, вся ФС разбивается на три класса:

'root' не более 512М
'soft' 
'data' 
/mnt +
     + softpart +
     |          + usr
     |          + opt
     |          + var
     |
     + datapart +
                + home
                + tmp

/usr  -> mnt/softpart/usr
/var  -> mnt/softpart/var
/opt  -> mnt/softpart/opt
/home -> mnt/datapart/home
/tmp  -> mnt/datapart/tmp

Как правильнее (более лучше) обеспечить доступ к рассматриваемым веткам:

а) по "mount -o bind"

б) создава символические ссылки типа "/usr -> mnt/syspart/usr"?

Как в избранном варианте заставить систему загружаться? (Попробовал оба варианта, с наскока не получилось.)

_____

* LVM не предлагать

 , , ,

marxengels
()

suspend (kms, intel)

Форум — Desktop

Задача: заставить работать suspend.

Последний раз использовал suspend в 2010 году, также на archlinux. KMS тогда было не в моде. Как-то из коробки настроил засыпание при помощи pm-utils.

Все еще использую archlinux. Попробовал настроить suspend как раньше — не работает: на десктопе (i5-4440 + integrated graphics); на ноуте 3q en8901n (atom n450 + i915). Прочитал archwiki — в растерянности... Вне зависимости от экзотичности железа — просто из коробки (а также с настройками по wiki) ничего нигде не работает.

Немножко погуглил: kms мешает просыпаться, а точнее реинициализровать видеокарту?

Вопросы:

а) как вообще это настроить хоть где-нибудь? как это сейчас должно работать? pm-utils еще в моде? с kms они дружат?

б) как заставить это работать на планшете asus t100ta (такое же ядро, Intel(R) Atom(TM) CPU Z3775 @ 1.46GHz, Z36xxx/Z37xxx Series Graphics & Display (rev 0d)):

$ zgrep PM_ /proc/config.gz 
CONFIG_PM_STD_PARTITION=""
CONFIG_PM_SLEEP=y
CONFIG_PM_SLEEP_SMP=y
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_WAKELOCKS=y
CONFIG_PM_WAKELOCKS_LIMIT=100
CONFIG_PM_WAKELOCKS_GC=y
CONFIG_PM_RUNTIME=y
CONFIG_PM_DEBUG=y
CONFIG_PM_ADVANCED_DEBUG=y
# CONFIG_PM_TEST_SUSPEND is not set
CONFIG_PM_SLEEP_DEBUG=y
# CONFIG_DPM_WATCHDOG is not set
CONFIG_PM_TRACE=y
CONFIG_PM_TRACE_RTC=y
CONFIG_PM_CLK=y
CONFIG_X86_PM_TIMER=y
# CONFIG_PCIEASPM_DEBUG is not set
CONFIG_PCIEASPM_DEFAULT=y
# CONFIG_PCIEASPM_POWERSAVE is not set
# CONFIG_PCIEASPM_PERFORMANCE is not set
CONFIG_PM_DEVFREQ=y

 , , ,

marxengels
()

Книжка по о том как сделать хороший, годный source.tar.gz

Форум — Development

Посоветуйте, пожалуйста, где почитать о создании open-source пакетов исходных кодов. Ну, как принято, чтобы и configure и make и даже README, NEWS, Changelog, все что там вообще принято. Короче, программирование в традициях сообщества. Как кодить на конкретном языке пишут везде, как сделать простой makefile, да и как устанавлить чужие программы — тоже много.

А вот как приготовить пакет *.tar.gz как у больших дядек — так чтобы все, последовательно и сразу — не могу найти...

Ну и до кучи: как документировать софт: как правильно написать документацию, всякие там doc2man, doc2hrml, ...pdf и вообще всюду куда надо...

 , ,

marxengels
()

Значки папок в файловых менеджерах (а также XDG user directories)

Форум — Desktop

Прочитал про https://wiki.archlinux.org/index.php/Xdg_user_directories.

Стандартные папки отлично подхватываются любым файловым менеджером и их значки отлично следуют за сменой темы icons.

Есть ли возможность:

а) установить кастомные значки для нестандартнх папок так, чтобы они были во всех ФМ?

б) достаточно простым способом заставить значки этих папок следовать за сменой темы?

.

А также просмотрел:

- https://www.linux.org.ru/forum/desktop/8605607

 , , ,

marxengels
()

ArchLinux на Asus Transformer TF300TG (arm)

Галерея — Скриншоты

Попытки тестирования ArchLinux на arm android планшете Asus Transformer TF300TG.

Планшет разлочен, прошита TWRP рекавери, гибридное ядро с дуалбутом. Корневая файловая система развернута на внутренней памяти /media/data/linux, около 700 Мб

http://forum.xda-developers.com/showthread.php?t=1918849

Описание по железу:

-cpuinfo: ARMv7 Processor rev 9 (v7l),

- ОЗУ total 1000752 kB

- ППЗУ /dev/mmсblk0p8 = internal storage; /dev/mmcblk1p1 = microsd slot in the tablet body (double check that, I'm not 100% sure); /dev/sda1 = standard sd slot in the keyboard

? блютус не проверялся

- камера основная и фронтальная не ловятся

- звук через pulseaudio: идеально; выход наушников и микрофон не настроены(?)

- батарея встроенная и батарея докстанции отображаются xfce

- в кардридере читаются карты 64 Gb (community/exfat-utils)

- юсб-хост; юсб-хост на доке; клавиатура док; тачпад док - все работает

- тачскрин очень недурно работает (пока без мультитача, в хроме при установленном плагине тач-прокрутки весьма удобно)

- видеовыход не проверялся

- модем мобильной сети : отлично

- wifi адаптер: иногда следуют отключения =(

- экран: 1280x800, xRandR rotate хорошо

- gps, датчики акселерометры, гирометры, компас - не проверялись.

Две батареи (при подключенном доке) держат более 24 часов!

Спецклавиши клавиатуры по дают весьма интересные коды, можно перемапить в будущем на f1...f12, а также настроить обработку нажатий; уже настроена регулировка яркости (/sys/class/backlight/pwm-backlight/brightness) и громкости (amixer). Качель громкости на теле планшета дает ровно те же коды, что и две клавиши громкости в верхнем ряду клавиатуры.

Есть проблемы с перезагрузкой, выключением (только долгим нажатием на питание) и совсем плохо с suspendoм

По archlinux:

pacman работает, тащит пакеты для armv7h

По скриншоту:

xfce дефолт;

conky вызываются с периодом одну секунду из «generic monitor», плагина xfce-панели, .conkyrc переписан для однократного вывода текста в консоль;

значение текущей раскладки в коньках берется как значение бита светодиода 'scroll lock', зажигание которого по старинке настроено в etc/X11/xorg.conf.d/20-keyboard-layout.conf

.conkyrc:
 ${exec /home/user/getkbdlayout} | \

getkbdlayout: 
#/bin/sh
case "$(xset -q|grep LED| rev | cut -c4)" in
  "0") KBD="en" ;;
  "1") KBD="ru" ;;
    *) KBD="unknown" ;;
esac
echo $KBD

Заключение:

Получился отличный почти-работоспособный нетбук с большим количеством софта, поддерживающий всю ноебходимую периферию и ооооочень большой батарекой! Впереди еще много работы, по acpi, всякие настройки, экранная клавиатура, обработка акселерометров для поворота экрана — есть шанс получить интересный native-linux планшет.

>>> Просмотр (1280x800, 400 Kb)

 , , ,

marxengels
()

Gentoo. Сломал gcc?

Форум — Desktop

Ничего не собирается

Пример:

configure: error: in `/var/tmp/portage/sys-apps/sed-4.2.1-r1/work/sed-4.2.1':
configure: error: C compiler cannot create executables

build.log: http://paste.pocoo.org/show/465733/

config.log: http://paste.pocoo.org/show/465734/

gcc --version gcc (Gentoo 4.5.2 p1.0, pie-0.4.5) 4.5.2

Что делать?

marxengels
()

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