LINUX.ORG.RU

Сообщения Datt_

 

syslog, ядро и journald

Форум — General

Здрасти

Программы сыпят логи в stdout, stderr, syslog() и указанные в конфигах файлы. В случае с stdout и stderr понятно, journald перехватывает это. В случае с syslog, journald создаёт сокет файл (/run/systemd/journal/dev-log и символическую ссылку на него - /dev/log). Как я понял, некоторые программисты указывают, чтобы логи сыпались в /dev/log, в следствии чего они попадают journald через сокет. Но в системных вызовах я не разбираюсь, поэтому не могу понять. Предположим, в программе есть вызов syslog(). Ядро получает логи. Как оно понимает, какому процессу их отдать? Или оно тоже направляет в файл /dev/log?

 , ,

Datt_
()

Размер inode и сектора

Форум — General

Объясните, пжлста, если размер логического сектора 512 байт, зачем делать размер inode(ext4) всего 256 байт? Вроде как по-любому останется 256 байт неиспользованного места, почему изначально не 512 байт?

 

Datt_
()

ядро, initramfs и драйвера видеокарты

Форум — General

Объясните, пжлста. Насколько я понимаю, при загрузке системы у ядра нет цели загрузить все все все. Оно грузит только необходимое - управление процессами, памятью и т.п., дальше грузит initramfs, чтобы взять необходимые модули для монтирования корня, монтирует корень, дальше запускается система инициализации, которая запускает udev и тот решает, что делать с оборудованием.

Так вот, если ядру не нужна особо видеокарта, и udev должен решать, что делать с видеокартой, а initramfs нужен только чтоб примонтировать корень, то зачем ядро из initramfs грузит драйвера видеокарты? Потому что grub говорит ядру загрузить plymouth?

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

В общем, вопрос такой - ядро же само по себе не будет грузить видеокарту, это grub говорит ядру загрузить драйвер видеокарты для splash скрина?

 ,

Datt_
()

export PATH

Форум — Admin

Всем привет

Вопрос касается export. Export превращает локальную переменную в переменную окружения. В bashrc есть такая строчка -

PATH=$PATH:/foo:/bar

export PATH

нахрен здесь export? ведь PATH и так переменная окружения. Я раньше думал, что для того, чтобы и значение этой переменной экспортнулось, но сегодня заметил, что и без export дочерняя сессия получает это значение - допустим, если написать

LANG=ru_RU.UTF-8

bash

echo $LANG

то значение будет ru_RU.UTF-8 без всякого экспорта.

То есть, как я понял, export просто превращает локальную переменную в переменную окружения и смысла его запускать для уже существующих переменных окружения нет, то есть бессмысленно писать export PATH, но зачем-то он везде прописан? ладно, предположим, что PATH до этого не задана но ведь сама переменная PATH=$PATH:/foo:/bar намекает, что используй существующую переменную PATH.

 ,

Datt_
()

Когда живёшь один...

Галерея — Рабочие места

… можно смело занять половину квартиры одним столом.

Кто-то спросит, нафига перед окном - другого места просто нет. Но мне не проблема.

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

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

Справа рабочий Thinkpad x1 carbon 4 gen. На нём арч, а также на нём Marshall Major II. Прекрасные наушники, по началу давят на уши, но за год привыкаешь. До этого менял проводные наушники раз в 2-3 месяца, а это чудо уже полтора года прекрасно работает.

Компьютер рядом с ним, как и ноутбук… цель, к которой я шел долгие годы, облизываясь на годные игры с каких-нибудь какашкобуков.

  • Корпус - ASUS TUF Gaming GT501
  • Материнка - ASUS PRIME Z370-A
  • Проц - Intel core i7-8700k
  • Кулер - Noctua NH-D15
  • Оперативка - Corsair Vengeance rgb pro 2x16 GB
  • SSD - Intel m.2 p600 1TB
  • HDD - ноутбучный seagate 1TB
  • Видюха - NVIDIA RTX 2070

На компьютере геймпад Logitech F710

Cлева от компьютера два монитора - 24" Dell и 32" LG 32GK650F, которые держатся на кронштейне huanuo под 3 монитора.

Перед мониторами наушники Genius, потому что с маршалами часами сидеть не получается, уши начинают болеть.

Рядом с наушниками мышка MSI DS100. Брал давно, вроде как одна из лучших за свои деньги. А рядом с ним REDRAGON Kumara, небольшая механическая клавиатура. Специально искал без numpad-а, чтобы легче было руку с мышки на клавиатуру перекидывать.

Ну и слева китайский микрофон BM800. Брал для ютуба, тоже лучший вариант за свои деньги.

Теперь о софте. На компе стоит Arch с многолетне-отлаженным i3wm. А на нём поднята виртуалка с проброшенной видеокартой и оффтопиком для игр.

>>> Просмотр (1152x864, 88 Kb)

 

Datt_
()

Ютуб стримы

Форум — Talks

Ух сколько говна польётся в мой адрес, и всё же. Есть у меня небольшой ютуб канал, заводил в основном для студентов (этот идиот еще и преподаёт?). Ну нравится мне делиться теми скудными знаниями, которые у меня есть. Я не гуру линукса, разговариваю через жопу, но я свободный недочеловек и делаю что хочу. Я знаю, что мне далеко даже до любительского уровня, но я учусь и, в конце концов, в этом и суть получения навыков - делать, стараться, учиться. Сейчас я делаю всё через жопу, но может когда-нибудь я научусь делать что-то годное? Раз уж сказал про свои недостатки, стоит упомянуть, почему же я тогда вообще решил это делать. Лет 6 работаю в айти интеграторе и видел уровень айти в разных компаниях, включая гос, банки и т.п. И нередко картина для меня очень печальная, даже при том, что я среднячок в лучшем случае. Сказывается девальвация и массовый переезд спецов в Европу.

Поэтому зародилась идея сделать видео, как разные сервисы связаны друг с другом. Зачастую люди что-то знают про одно, что-то про другое, но хотя бы базово поднять и связать инфраструктуру испытывают трудности. Я же больше широкопрофильный специалист, с опытом работы у интеграторов в абсолютно разных областях - сервера, схд, сети, безопасность и т.п. Отовсюду понемногу. В основном конечно GNU/Linux.

В общем. Что-то у меня про сетевые сервисы Linux, в очень базовой форме с плохим микрофоном, ляпами и т.п.. Скорее всего буду перезаписывать, но всё же - https://www.youtube.com/playlist?list=PLisqB92_b4TnYT5NeC-CFXO1pk9eEMc5e

Недавно увлёкся Joget (BPM) и решил про него заделать видео, так как штука для меня очень интересная, а контента на русском даже на форумах нет. Уже есть микрофон получше (но всё равно говорю через жопу) - https://www.youtube.com/playlist?list=PLisqB92_b4Tm2zk3x3yiLnW3lXTrVKOfQ

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

P.S. Я знаю, что всё очень фигово сделано, но заинтересован в улучшении качества, поэтому буду рад советам и объективной критике (на лоре? серьезно?). И всё же я считаю, что тут есть хорошие спецы, а больше нигде я их мнения не услышу.

UPD. Я принял к сведению ваши отзывы и постарался немного лучше настроить звук/подготовил видео заранее. Хотя пока что это только фотки со звуком, но изображения делал сам. Хочется услышать новые отзывы, что еще сделать со звуком или что добавить/изменить/убрать?

https://youtu.be/dDb9j9UqK2E

 

Datt_
()

Проброс видеокарты NVIDIA

Форум — Desktop

Здрасти,

Я тут немного извращаюсь, пытаюсь найти решение, но возможно вы ускорите всё это, либо идею какую-то подадите.

Есть ПК, Intel i7-8700k, Nvidia RTX 2070. Собирал в основном для игр, поэтому стоит дуалбут с офтопиком. Для меня работать/отдыхать на линуксе намного удобнее, поэтому основная система линь. Немного надоело перезагружаться чтобы поиграть/перестать играть, поэтому захотелось попробовать держать винду на виртуалке и просто пробросить ей видеокарту.

И так, желание примерно следующее. Компьютер включается с линуксом, который использует nvidia (так как это бывает нужно, что-нибудь порендерить/поиграть нативное и т.п.). Когда мне хочется поиграть, я просто запускаю виртуалку и nvidia передаётся виртуалке, а потом останавливаю виртуалку и возвращаюсь к линуксу. При этом, у меня два монитора, на одном я всегда хочу видеть линукс, а второй монитор будет переключаться между линуксом и виртуалкой. При этом хочу иметь возможность юзать обе системы/монитора. То бишь, просто провести мышку на первый монитор и там «полинуксить», а потом переключить опять на второй и продолжить играть.

Что имеется:

  1. Две видеокарты - intel и nvidia и два монитора. На UEFI врубил режим multi-gpu - один монитор подключен к материнке, второй к видеокарте. Линукс стартует на первом мониторе с интелом, а потом прогружается nvidia и оба монитора/видеокарты работают.

  2. Видеокарту я пробросил через qemu/kvm и всё работает. Для совместной работы в двух системах тестово использовал barrier, работает. Не тестил производительность, но если что, можно будет что-нибудь придумать (квм свитч или как-нибудь приделать проброс клавиатуры).

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

Решения по типу «вайн» не принимаются, так как не всё гладко.


Чуть позже напишу полный гайд, а пока вкратце.

По железу: MB - Asus Prime z370-a

CPU - Intel i7-8700k (6 core 12 threads)

RAM - Corsair Vengeance RGB (2x16GB)

GPU - NVIDIA RTX 2070 (ASUS)

iGPU - Intel UHD Graphics 630

SSD - Intel 660p (1Tb)

HDD - Seagate (1Tb)

Monitor 1 - Dell 24" 1080p

Monitor 2 - LG 32" 1440p

SoundCard - NoName usb sound card

В UEFI врублен vt-d (для проброса видеокарты виртуалке) и iGPU Multi-Monitor (чтобы можно было использовать интегрированную карту). От материнки идут 2 видеовыхода на каждый из мониторов; от видеокарты идёт 1 видеовыход на LG монитор.

По софту:

OS - Arch

DM - SDDM

WM - i3-gaps

bumblebee, mesa, libvirt, virt-manager, qemu-kvm, barrier

Для видеокарты нужно установить bumblebee. Куча гайдов про то, как настроить vfio и т.п., но на деле это ничего не нужно (кроме intel_iommu=on) , если установлен bumblee. Как я понимаю, он при включении не даёт видеокарте загрузиться и в целом держит её подальше от ядра, благодаря чему видеокарту можно свободно использовать как в виртуалке, так и в свободное время просто запустив приложение через optirun.

Для ядра в граб добавляется -

GRUB_CMDLINE_LINUX="intel_iommu=on isolcpus=4-7 nohz_full=4-7 rcu_nocbs=4-7"

В virt-manager куча нюансов относительно процессора, как для обмана видеокарты (для установки драйвера, иначе ругается), так и для оптимизации производительности, звука.

<domain xmlns:qemu="http://libvirt.org/schemas/domain/qemu/1.0" type="kvm">
  <name>win10</name>
  <uuid>23795b4a-69db-428e-88eb-0532383d6f0c</uuid>
  <metadata>
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">
      <libosinfo:os id="http://microsoft.com/win/10"/>
    </libosinfo:libosinfo>
  </metadata>
  <memory unit="KiB">16777216</memory>
  <currentMemory unit="KiB">16777216</currentMemory>
  <vcpu placement="static">8</vcpu>
  <iothreads>1</iothreads>
  <cputune>
    <vcpupin vcpu="0" cpuset="2"/>
    <vcpupin vcpu="1" cpuset="8"/>
    <vcpupin vcpu="2" cpuset="3"/>
    <vcpupin vcpu="3" cpuset="9"/>
    <vcpupin vcpu="4" cpuset="4"/>
    <vcpupin vcpu="5" cpuset="10"/>
    <vcpupin vcpu="6" cpuset="5"/>
    <vcpupin vcpu="7" cpuset="11"/>
    <emulatorpin cpuset="0,6"/>
    <iothreadpin iothread="1" cpuset="0,6"/>
  </cputune>
  <os>
    <type arch="x86_64" machine="pc-q35-4.2">hvm</type>
    <loader readonly="yes" type="pflash">/usr/share/ovmf/x64/OVMF_CODE.fd</loader>
    <nvram>/usr/share/ovmf/x64/OVMF_VARS.fd</nvram>
    <boot dev="hd"/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state="on"/>
      <vapic state="on"/>
      <spinlocks state="on" retries="8191"/>
      <vendor_id state="on" value="1234567890ab"/>
    </hyperv>
    <kvm>
      <hidden state="on"/>
    </kvm>
    <vmport state="off"/>
    <ioapic driver="kvm"/>
  </features>
  <cpu mode="host-passthrough" check="partial">
    <topology sockets="1" cores="4" threads="2"/>
  </cpu>
  <clock offset="localtime">
    <timer name="rtc" tickpolicy="catchup"/>
    <timer name="pit" tickpolicy="delay"/>
    <timer name="hpet" present="no"/>
    <timer name="hypervclock" present="yes"/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>destroy</on_crash>
  <pm>
    <suspend-to-mem enabled="no"/>
    <suspend-to-disk enabled="no"/>
  </pm>
  <devices>
    <emulator>/usr/bin/qemu-system-x86_64</emulator>
    <disk type="file" device="disk">
      <driver name="qemu" type="qcow2"/>
      <source file="/home/doctor/vms/win10.qcow2"/>
      <target dev="sda" bus="sata"/>
      <address type="drive" controller="0" bus="0" target="0" unit="0"/>
    </disk>
    <disk type="block" device="disk">
      <driver name="qemu" type="raw" cache="none" io="native"/>
      <source dev="/dev/nvme0n1p3"/>
      <target dev="sdb" bus="sata"/>
      <address type="drive" controller="0" bus="0" target="0" unit="1"/>
    </disk>
    <controller type="usb" index="0" model="qemu-xhci" ports="15">
      <address type="pci" domain="0x0000" bus="0x02" slot="0x00" function="0x0"/>
    </controller>
    <controller type="sata" index="0">
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1f" function="0x2"/>
    </controller>
    <controller type="pci" index="0" model="pcie-root"/>
    <controller type="pci" index="1" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="1" port="0x10"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="2" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="2" port="0x11"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x1"/>
    </controller>
    <controller type="pci" index="3" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="3" port="0x12"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x2"/>
    </controller>
    <controller type="pci" index="4" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="4" port="0x13"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x3"/>
    </controller>
    <controller type="pci" index="5" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="5" port="0x14"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x4"/>
    </controller>
    <controller type="pci" index="6" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="6" port="0x15"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x5"/>
    </controller>
    <controller type="pci" index="7" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="7" port="0x16"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x6"/>
    </controller>
    <controller type="pci" index="8" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="8" port="0x17"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x02" function="0x7"/>
    </controller>
    <controller type="pci" index="9" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="9" port="0x18"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x0" multifunction="on"/>
    </controller>
    <controller type="pci" index="10" model="pcie-to-pci-bridge">
      <model name="pcie-pci-bridge"/>
      <address type="pci" domain="0x0000" bus="0x09" slot="0x00" function="0x0"/>
    </controller>
    <controller type="pci" index="11" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="11" port="0x19"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x1"/>
    </controller>
    <controller type="pci" index="12" model="pcie-root-port">
      <model name="pcie-root-port"/>
      <target chassis="12" port="0x1a"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x03" function="0x2"/>
    </controller>
    <controller type="virtio-serial" index="0">
      <address type="pci" domain="0x0000" bus="0x03" slot="0x00" function="0x0"/>
    </controller>
    <controller type="scsi" index="0" model="virtio-scsi">
      <address type="pci" domain="0x0000" bus="0x0b" slot="0x00" function="0x0"/>
    </controller>
    <interface type="bridge">
      <mac address="52:54:00:1b:af:60"/>
      <source bridge="virbr0"/>
      <model type="virtio"/>
      <address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
    </interface>
    <input type="mouse" bus="ps2"/>
    <input type="keyboard" bus="ps2"/>
    <sound model="ich9">
      <codec type="micro"/>
      <address type="pci" domain="0x0000" bus="0x00" slot="0x1b" function="0x0"/>
    </sound>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x05" slot="0x00" function="0x0"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x01" slot="0x00" function="0x1"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x01" slot="0x00" function="0x2"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x07" slot="0x00" function="0x0"/>
    </hostdev>
    <hostdev mode="subsystem" type="pci" managed="yes">
      <source>
        <address domain="0x0000" bus="0x01" slot="0x00" function="0x3"/>
      </source>
      <address type="pci" domain="0x0000" bus="0x08" slot="0x00" function="0x0"/>
    </hostdev>
    <memballoon model="virtio">
      <address type="pci" domain="0x0000" bus="0x04" slot="0x00" function="0x0"/>
    </memballoon>
  </devices>
  <qemu:commandline>
    <qemu:arg value="-audiodev"/>
    <qemu:arg value="pa,id=pa1,server=/run/user/1000/pulse/native,in.latency=20000,out.latency=20000"/>
  </qemu:commandline>
</domain>

В i3 также два хоткея - Win PgUP, Win PgDwn

bindsym $mod+Prior exec sudo /home/doctor/bin/win10-on				### LAUNCH VM
bindsym $mod+Next exec sudo /home/doctor/bin/win10-off				### POWEROFF VM

а в самих скриптах пока что простенько, win10-on

#!/bin/sh

# Turn to 1 screen
bash /home/doctor/.screenlayout/singlescreen.sh

# Run cpu governer
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor;
do	echo "performance" > $file 
done

# Run vm
virsh start win10

и win10-off

#!/bin/sh

# Shutdown vm
virsh shutdown win10

# Stop gpu governer
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
do echo "powersave" > $file
done

# Turn to 2 screens
bash /home/doctor/.screenlayout/dualscreen.sh

Чтобы можно было свободно двигать мышкой/клавиатурой между виртуалкой и хостом и иметь общий буфер стоит barrier.

 , ,

Datt_
()

Эволюция i3

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

Несколько лет уже пользуюсь i3, иногда появляется желание чуть больше кастомизировать под себя. По сути это старый конфиг, но всё больше и больше мелочей настроенных под себя. Все основные приложения на хоткеях, в выделенных окнах. Особо радует i3blocks, куда я привязал всякие фишки. Скажем, если нажать ЛКМ на айпи адрес, появится уведомление с отображением внешнего адреса, а если ПКМ - отобразится скорость сети (Download/Upload). И куча всяких мелочей. Плюс сам конфиг i3 сделал более удобным, прописав переменные. Надоедают цвета - достаточно прописать два цвета и вуаля, меняется стилизация. Надо будет поиграться со стилизацией под неоновый киберпанк, но от него глазам бывает неудобно.

https://ibb.co/8B7dRvJ https://ibb.co/PZG30VD

>>> Просмотр (1920x1080, 50 Kb)

 ,

Datt_
()

Сайт для обучения линуксам

Форум — Talks

Привет, ЛОР

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

Вот ссылка на сайт

Можете просмотреть как Гость, либо зарегистрироваться. Пока что написал только одну главу, но ,скорее всего, буду её дорабатывать, добавлять что-то.

P.S. Я знаю, что «ненужно», и всё же, хотелось бы слышать адекватную критику.

 

Datt_
()

Forticlient Debian 10

Форум — Admin

Добрый день,

Есть такой анальный зонд софт-клиент - Forticlient, который работает на Дебиан 9 у коллеги. А у меня на 10 Дебиане не пашет. Ну как не пашет, в трее висит, вроде чот делает, ток гуй не открывается. Попытка вручную запустить гуй выдаёт.. кгхм, Seg fault. Погуглил, на форуме говорится, что примерно та же проблема на Fedora 29. Отписался производителям, но решил и тут спросить, может чего годного узнаю. В целях решения набрёл на утилитку strace. Применил, узнал для себя чот новое. Но вот как решать пока не понятно. Вывод большой, поэтому ссылка на pastebin

 

Datt_
()

ath10k btcoex_enable

Форум — Linux-hardware

Добрый день.

Гуглил проблему, о ней есть информация, но не нашел решения. В кратце: есть ноутбук Lenovo V330-14ikb с сетевым адаптером Qualcomm Atheros QCA9377 802.11ac. Стоит драйвер ath10k. Приобрёл я значит блютуз-наушники. Подключаются нормально, есть проблема с работой микрофона на линуксе, но эт отдельная тема.

О проблеме: при подключении наушников по блютуз и проигрывании чего-то онлайн, случается вот такое:

doctor@tardis:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=214 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=4010 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=120 time=3537 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=120 time=2541 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=120 time=1517 ms

Гугл говорит, что такое случается, так как блютуз и вай-фай используют 2,4Ghz и на линуксах проблема решается ключом parm: btcoex_enable. НО, этот параметр доступен только на ath9k, а ath10k идёт без данного параметра, из-за проприетарщины, как я понял. Я попробовал использовать ath9k в качестве драйвера - добавил ath10k в блэклисты, добавил ath9k в modules, при включении загружается именно ath9k, блютуз работает. Только теперь не грузится wifi. Почему-то сетевой адаптер всё равно хочет видеть ath10k_pci, хотя он и не загружен:

lspci -knn | grep Net -A3 
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Lenovo QCA9377 802.11ac Wireless Network Adapter [17aa:0901]
	Kernel modules: ath10k_pci

И вот я хз. Можно ли как-то поменять настройки адаптера, чтоб он обращался к ath9k? Либо, если ath9k не работает с моим адаптером, то возможно ли использовать ath10k для вай-фая и ath9k для блютуза одновременно? Или есть ли другие способы решения проблемы?

 

Datt_
()

На чём работает пространство и время

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

Для тех, кто считает, что раньше было лучше.
Изменения:

  • Испортился ряд на клавиатуре x230t, в попытках исправить... теперь у меня lenovo v330-14ikb. В целом нормальная рабочая машинка, понравилась защелка на камере (для любителей заклеивать камеру нет ничего идеальнее). Да и графоний получше, конечно. Разве что вместо display port-а какой-то hdmi =(
  • Довольно долго игрался с i3blocks, кое-какие дефолтные скрипты переделал под себя, что-то объединил. Яркость и звук регулируются скроллом.
  • Поменял цвета и обоину, теперь два основных цвета это #c0c0c0 и #404040
  • Поставил xcompmgr, теперь albert выглядит поприятнее.

>>> Просмотр (1920x1080, 176 Kb)

 ,

Datt_
()

SSD как swap в enterprise

Форум — General

Добрый день. Вчера в одной компании увидел, как на все виртуалки как свап цепляют All flash СХД. Подход интересный, впервые такое вижу. Стало интересно, насколько это оправданно? С одной стороны, конечно, скорость. С другой - долговечность ссдшек. Учитывая, что ссдшки всё таки enterprise класса, но это ж swap. Как думаете?

 ,

Datt_
()

Выполнение команды на нескольких серверах

Форум — General

Добрый день.
Запилил скриптик для запуска команды на нескольких серверах. Всё это давно реализовано и есть куча готовых инструментов, но у меня ситуация была обусловлена тем, что у клиента стоят аиксы и доступ по ssh имеется только к одному, через который можно подключаться к другим. Есть dsh, но чтобы он работал нормально, нужно сидеть и копировать ssh ключи на сервера, а делать это у клиента не хочется, да и время займёт. Да, конечно, иметь одинаковые пароли на серверах не очень хорошо, но ситуации бывают разные, к примеру, использование скрипта непривилегированным пользователем для мониторинга состояния и т.п. Для работы скрипта понадобится установить программу expect, благо в репозиториях она лежит, а на аиксах предустановлена.
Скрипт состоит из 3 файлов:

  • cycle - запускает цикл и запрашивает некоторые данные: имя пользователя, пароль, команда и файл со списком ip-адресов
  • script - собственно «бэкэнд», куда передаются данные и выполняется команда.
  • ip_addr - название файла со списком айпи адресов


Оставил возможность вручную указывать файл с ip адресами, чтобы можно было создать несколько файлов с разными адресами (для разных учётных данных, разных организаций и т.п.).
Содержимое скриптов:

  • cycle:
    #!/bin/bash
    IFS=$'\n' # make newlines the only separator (to use command with spaces)
    read -p "$(echo -e 'Username: ')" username
    read -sp "$(echo -e 'Password: ')" password
    read -p "$(echo -e '\nCommand: ')" command
    read -p "$(echo -e 'IP address list: ')" ip_addr
    while read ip;
    do expect -f script $username $password $command $ip
    done < ip_addr 
  • script:
    #!/usr/bin/expect
    set timeout -1
    set username [lindex $argv 0]
    set password [lindex $argv 1]
    set command [lindex $argv 2]
    set ip [lindex $argv 3]
    spawn ssh -oStrictHostKeyChecking=no $username@$ip $command
    expect { "assword:" { send "$password\r"; } }
    eof $spawn_id
    


Записал видео, чтобы было представление, как это всё работает. В видео указан два раза локалхост для примера.

https://youtu.be/xKV7B3dBKkY


P.S. Протестировал я значит скрипт на аиксах и нифига! На линуксах работает, а на аиксах пришлось подправлять. Интересно. Вот рабочий конфиг для аиксов:

  • cycle:
    #!/usr/bin/bash
    IFS=$'\n' # make newlines the only separator (to use command with spaces)
    read -p "$(echo -e 'Username: ')" username
    read -sp "$(echo -e 'Password: ')" password
    read -p "$(echo -e '\nCommand: ')" command
    read -p "$(echo -e 'IP address list: ')" ip_addr
    for ip in $(cat < $ip_addr) ;
    do expect -f script $username $password $command $ip;
    done  
    
  • script:
    #!/usr/bin/expect -f 
    set timeout -1
    set username [lindex $argv 0]
    set password [lindex $argv 1]
    set command [lindex $argv 2]
    set ip [lindex $argv 3]
    spawn ssh -oStrictHostKeyChecking=no $username@$ip $command 
    expect "password:"
    send "$password\r"
    interact
    

 ,

Datt_
()

Вырвиглазный i3-gaps для жизни

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

Этот пост проспонсирован обществом окулистов.

Использую свой ноут Thinkpad X230T для работы и игр. До прошлой недели стоял дуалбут с семёркой для игр, но Габен предвещал вендекапец и добавил Steam Proton, шо позволило мне снести венду и засунуть две ссдшки(msata+sata) в один lvm vg. Д - дол..жно работать.
На коллаже 4 рабочих стола:

  • Просто chromium для сёрфинга
  • Firefox-ESR для одминства
  • lxterminal «развидеть»
  • шинда ха ты бы хоть разные обои поставил


Если с сёрфингом понятно, то с браузером для работы всё обстоит сложнее. Так как часто приходится работать с вендорным оборудованием, нужно иметь систему, которая поддерживает какашечный софт безвендарей. И с админством всё обстоит неоднозначно - с одной стороны большинство всё таки додумались запилить вебку для управления, что позволяет не шаманить с установкой софта (алё гугл висфер клиент через вайн), с другой стороны почти каждый программист вендора считает святым долгом написать вебку на джаве, который нифига не поддерживается современными браузерами, да и флеш пытаются везде присунуть. Потому ящетаю, что нужен отдельный браузер для одминов. Частично для этого подходит firefox-esr 52, который хоть как-то поддерживает джаву.
Но есть особо упоротые вендоры, например Samsung или HP со своим iLO, который хоть и говорит о поддержке джавы, но нифига, ток ActiveX через IExplorer. Вот для таких извращений и приходится иметь винду на виртуалке. Ну и на неё стоит такой скриптик на i3:
Alt+PgUp -

 bindsym $mod+Prior exec bash  /home/doctor/.config/i3/vm 

который запускает скрипт
 VBoxHeadless -e "TCP/Address=127.0.0.1" -s "Win10" & sleep 10; VBoxManage controlvm "Win10" setvideomodehint 1366 768 32 & rdesktop-vrdp -5 -K -r clipboard:PRIMARYCLIPBOARD localhost 

и Alt+PgDn, который выключает виртуалку:
 bindsym $mod+Next exec VBoxManage controlvm "Win10" acpipowerbutton 

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

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

Шрифты - terminus. Да, мне действительно нравится/удобно читать красный текст на прозрачном фоне. Для самых внимательных - когда-то стояли видюшки (1,2,3 ) вместо обоев, но они жрали проц, так что пришлось отказаться от них :c
P.S. Не поленился, написал на форум виртуалбокса своё предложение.

>>> Просмотр (4000x2242, 4740 Kb)

 ,

Datt_
()

LXDE Openbox 4KIDS

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

Настраиваю Openbox для детей, что-нибудь простое, красивое и яркое. Хочу услышать ваши советы, что и как.
#B592BA и #FDF6AE

https://cloud.pcs4kids.org/index.php/s/M5qk8qGqaoszbYf

>>> Просмотр (1366x744, 219 Kb)

 ,

Datt_
()

PCs4KIDS

Форум — Games

Добрый день!

Есть у нас одна организация, PCs4KIDS. Всю информацию можете найти на сайте https://www.pcs4kids.org/
Вкратце, организация начинала с раздачи компов с линукс дистрибутивом и предустановленным контентом в детские дома, школы и т.п. Дальше мы создали свою сборку на Дебиане, нашли больше свободного контента и даже написали простой интерфейс для детей. Это все можно найти и скачать с сайта. Плюс пилим веб с контентом - http://dev.pcs4kids.org/, но это пока на стадии разработки.
Так вот, сейчас работаем над созданием своего браузера и контента. Все естественно свободно, бесплатно и доступно для всех.

Зачем еще один браузер?

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

Такое уже есть.

Есть схожие проекты, но у каждого есть свои нюансы. Что-то не свободно, что-то не бесплатно, что-то не доступно для детей.
На все вопросы отвечу в комментариях.

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

Ссылка на игру Round the world: http://dev.pcs4kids.org/games/round_the_world/
Отзывы можете оставить тут: https://www.surveymonkey.co.uk/r/VJ7K3PX
А также послать на почту: feedback@pcs4kids.org
Ссылка на гитхаб: https://github.com/pcs4kids
По соцсетям можно также найти: https://www.facebook.com/PCs4KIDS/
Спасибо!

 , , , , pcs4kids

Datt_
()

RHCSA вопросы

Форум — General

Добрый день.

Насколько мне известно, после выполнения всех заданий на экзамене RHCSA, запускается скрипт, который проверяет правильность выполнения. И, как я понимаю, он проверяет лишь результаты, а не промежуточные шаги, так как выполнять экзамен можно как с командной строки, так и гуишными утилитами. Да и важен результат, а не процесс выполнения.

Если не ошибаюсь, на экзамене могут встречаться вопросы «с промежуточным результатом». К примеру, нужно создать раздел, а потом увеличить его объем.

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

 

Datt_
()

CVS

Форум — Development

Добрый день,

Есть необходимость создать легковесный клиент, который пользователи смогут скачать с сайта, и он даст возможность скачивать/обновлять контент (видео и прочее) у пользователей. Возможно есть что-то готовое? Что-то наиболее простое, ибо не программист. Где просто возможно поменять ссылку на сервер, добавить свои «картиночки», и все. Ну или что-то в этом роде.. Можете что-то посоветовать? .

 

Datt_
()

Проблема с nginx https

Форум — Admin

Добрый день

Есть сайт с картами, нужно подключить https. На данный момент такой конфиг

server { listen 80; server_name example.com;

#rewrite ^ https://$http_host$request_uri? permanent; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 8m; access_log /var/log/nginx/example.access.log;

location / { proxy_pass http://localhost:port; } } server { listen 443 ssl; server_name example.com; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; client_max_body_size 64m; access_log /var/log/nginx/example.access.log; ssl on; ssl_certificate /etc/ssl/private/cert1.crt; ssl_certificate_key /etc/ssl/private/key.key; location / { proxy_pass http://localhost:port; }

.

Проблема в том, что если писать https://example.com , то автоматом перенаправляется на http (чего не должно быть). Если как-то заставить зайти в https, пишет bad gateway. Но если перенаправлять http на https с помощью rewrite ^ https://$http_host$request_uri? permanent; сайт открывает нормально, а вот некоторые карты(к примеру гугловые) не отображаются. Плюс выходят уведомления, мол сайт пытается запустить скрипты.

1) Почему не работает https без вынужденного перенаправления с http? Где-то стоит перенаправление с https на http? Или? 2) почему не работают карты? Я так понимаю, что-то связанное с https? Добавил fastcgi_param HTTPS on; fastcgi_param HTTP_SCHEME https; не помогло.

Спасибо

 ,

Datt_
()

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