LINUX.ORG.RU

Сообщения basarga

 

Список классов устройств.

Форум — General

lspci позволяет фильтровать вывод по классам устройств, например, сетевухи(200):

# lspci -d ::200
02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 02)

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

В документации чья-то тудушка:

A device class describes a type of device, like an audio or network device. The following device classes have been identified:

<Insert List of Device Classes Here>

https://www.kernel.org/doc/html/v5.4/driver-api/driver-model/class.html

Пока у меня только то, что смог скриптом собрать:

101 - IDE interface
106 - SATA controller
200 - Ethernet controller
300 - VGA compatible controller
403 - Audio device
600 - Host bridge
601 - ISA bridge
604 - PCI bridge

Скрипт, на всякий:

#!/bin/bash
for i in {1..1000}; do
    [[ -n $(lspci -d ::$i) ]] && echo "$i - $(lspci -d ::$i | sed '1!d;s|.*[0-9] \(.*\): .*|\1|')"
done

 , , , ,

basarga
()

e-marker usb-кабеля

Форум — Linux-hardware

Существуют в природе утилиты для чтения e-marker’a кабелей через обычный usb-порт или тандерболт? Видел на али тестеры с такой функцией. Можно ли на компе так сделать, или там всё на уровне контроллеров и через ось эти данные не проходят?

 , , ,

basarga
()

Оптимизация списка зеркал (Arch).

Форум — General

До этого дня просто копировал российские зеркала в начало списка, но в последнее время скорость установки пакетов упала до неприличия и я решил список оптимизировать и воткнуть суточный таймер в systemd. Поковырял reflector, но он какой-то медленный, формирует список 20 минут. Набашил себе деревянный велосипед, который пингует по списку и сортирует по среднему значению скорости. В сетях вообще не разбираюсь, мой уровень - роутер настроить. Поэтому вопрос: правильно ли ориентироваться именно на этот параметр? Или есть что-то более подходящее, что позволит за минут пять получить более оптимальный список?

Скрипт:

#!/bin/bash
 
#cкачиваем списoк зеркал и убираем лишние строки
 curl -s "https://archlinux.org/mirrorlist/?country=all&protocol=https" | grep Server >> mirrorlist_all
 
#считаем количество строк для вывода
 NUMBER_OF_LINES=$(wc -l mirrorlist_all)
 
#разделитель меняем на символ перевода строки, чтоб цикл читал всю строку
 IFS="
 "
#построчно обрабатываем список
 for LINE in $(cat mirrorlist_all); do
    #счётчик строк
    COUNT=$((${COUNT} + 1))
    #вытаскиваем адрес из строки
    URL=$(echo ${LINE} | sed 's|^.*:\/\/||; s|\/.*$||')
    #пингуем ссылку и вытаскиваем из результата среднее значение
    PING="$(ping -q -w 1 -i 0.2 "${URL}" | sed "1,4d; s|.*\/\(.*\)\/.*\/.*$|\1|")"
    #для наглядности выводим порядковый номер, результат пинга и адрес сервера
    echo "${COUNT}/${NUMBER_OF_LINES%% *} ${PING} ${URL}"
    #вставляем результат пинга в начало строки в списке
    sed "${COUNT}!d; s|^\(.*\)$|${PING} \1|" mirrorlist_all >> ping_list
done
 
#сортируем по скорости, убираем молчащие сервера и формируем итоговый список
sort -n ping_list | sed "/^ /d; s|^.*Server = |Server = |" > mirrorlist_all
 
#копируем список в систему
#cp mirrorlist_all /etc/pacman.d/mirrorlist

#убираем за собой
#rm -rf mirrorlist_all ping_list

 , ,

basarga
()

Как распознать мобильное устройство?

Форум — General

По каким признакам можно выявить (в Arch, в частности), на чём стоит ОС, на ПК или ноуте/планшете/смарте? Какие есть признаки батарейки в системе? Желательно без установки доп.пакетов.

 

basarga
()

Подскажите программы для создания проекта дома, квартиры.

Форум — General

От простейшего 2d чертежа до 3d. Желательно бесплатно.

 ,

basarga
()

Как распознать тип блочного устройства?

Форум — General

Слепил для bash-скрипта такое:

udevadm info -q property /dev/${Device} | sed '/DEVTYPE/!d;s/DEVTYPE=//'
Как сделать проще штатными средствами?

UPD:Всем спасибо, нашёл такое:

lsblk -nd -o TYPE "/dev/sda1"

 ,

basarga
()

Как сосчитать нажатие функциональной клавиши?

Форум — General

Костылю через printf, но как-то через жопу выходит. ЧЯДНТ?

while read -s -n1; do
    case $REPLY in
        $(printf "\\e[11~"))
            echo '<<<<F1>>>>';;
        $(printf "\n"))
            echo '<<<<enter>>>>';;
        q)  
            break;;
        *)  
            echo "<<<<$REPLY>>>>";;
    esac
done```
                                                                                                                                                                                

 , ,

basarga
()

В скрипте в printf не работает переменная в фигурных скобках.

Форум — General
#!/bin/bash
i=10
printf "%.s\n" {1..$i}

В терминале всё прекрасно, а скрипт только раз срабатывает и всё:( ЧЯДНТ?

РЕШЕНИЕ:

#!/bin/bash
i=10
eval printf "%.s\\\n" {1..$i}

 , ,

basarga
()

Права для каталогов.

Форум — General

Почему я не могу удалить d-wx-wx-wx?

$ mkdir dir1 && chmod 333 dir1
$ mkdir dir2 && touch dir2/file && chmod 333 dir2 
$ rm -rf dir1
$ rm -rf dir2
rm: невозможно удалить 'dir2': Отказано в доступе

r - право на просмотр (ls dir). x - право на вход (cd dir). wx (а не w, как утверждают многие) - право на запись.

Так почему, когда у директории d-wx-wx-wx и внутри лежит файл, я не могу её удалить?

 ,

basarga
()

Максимум ОЗУ в ThinkPad T400.

Форум — Linux-hardware

Нашёл два мануала по T400.

В первом (3-е издание, 2008) указан лимит на ОЗУ 4ГБ (maximum of 4.0 GB). И из поддерживаемого оборудования указаны самое большее плашки на 2ГБ.

Во втором (6-е издание 2011) лимит не указан, но к поддерживаемому железу добавились плашки по 4ГБ (стр.236). И судя по упоминаниям владельцев, 8ГБ ОЗУ на T400 - норма.

У меня два вопроса:

1. Взлетит ли конфигурация 2х8ГБ?

2. Есть ли под линуксом утилиты, тестирующие на предмет максимально поддерживаемой ОЗУ?

На руках сейчас залитый T400. Жду материнку для него. Сам проверить не могу, может кто из владельцев подскажет?

 , , , ,

basarga
()

Обновление пропатченого ядра в Арче.

Форум — General

Не могу понять, если в Арче пропатчить ядро, а потом обновиться до его (ядра) новой версии, патчи слетят? Гуглю, но прямого ответа нет. И времени на опыты тоже пока нет.

 , ,

basarga
()

Чтo хранится в ID_PART_ENTRY_SIZE?

Форум — General

Судя по названию, отображает размер раздела, но для флешек на 16Гб и 32Гб в выводе udevadm info /dev/sdd1 показывает 30029824 и 61470912 соответственно. Я не понимаю, в чём измеряются эти значения?

UPD: Это количество секторов.

Вывод udevadm info /dev/sdd1 для 16Гб

$ udevadm info /dev/sdd1
P: /devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd/sdd1
N: sdd1
L: 0
S: disk/by-path/pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0-part1
S: disk/by-partuuid/fd577a64-01
S: disk/by-id/usb-SanDisk_Ultra_USB_3.0_4C530001070226102585-0:0-part1
S: disk/by-uuid/0913-D614
E: DEVPATH=/devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd/sdd1
E: DEVNAME=/dev/sdd1
E: DEVTYPE=partition
E: PARTN=1
E: MAJOR=8
E: MINOR=49
E: SUBSYSTEM=block
E: USEC_INITIALIZED=61477559625
E: ID_VENDOR=SanDisk
E: ID_VENDOR_ENC=SanDisk\x20
E: ID_VENDOR_ID=0781
E: ID_MODEL=Ultra_USB_3.0
E: ID_MODEL_ENC=Ultra\x20USB\x203.0\x20\x20\x20
E: ID_MODEL_ID=5591
E: ID_REVISION=1.00
E: ID_SERIAL=SanDisk_Ultra_USB_3.0_4C530001070226102585-0:0
E: ID_SERIAL_SHORT=4C530001070226102585
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usb-storage
E: ID_PATH=pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_12_2-usb-0_3_1_0-scsi-0_0_0_0
E: ID_PART_TABLE_UUID=fd577a64
E: ID_PART_TABLE_TYPE=dos
E: ID_FS_UUID=0913-D614
E: ID_FS_UUID_ENC=0913-D614
E: ID_FS_VERSION=FAT32
E: ID_FS_TYPE=vfat
E: ID_FS_USAGE=filesystem
E: ID_PART_ENTRY_SCHEME=dos
E: ID_PART_ENTRY_UUID=fd577a64-01
E: ID_PART_ENTRY_TYPE=0x83
E: ID_PART_ENTRY_NUMBER=1
E: ID_PART_ENTRY_OFFSET=2048
E: ID_PART_ENTRY_SIZE=30029824
E: ID_PART_ENTRY_DISK=8:48
E: DEVLINKS=/dev/disk/by-path/pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0-part1 /dev/disk/by-partuuid/fd577a64-01 /dev/disk/by-id/usb-SanDisk_Ultra_USB_3.0_4C530001070226102585-0:0-part1 /dev/disk/by-uuid/0913-D614
E: TAGS=systemd
E: CURRENT_TAGS=systemd

вывод udevadm info /dev/sdd1 для 32Гб

$ udevadm info /dev/sdd1
P: /devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd/sdd1
N: sdd1
L: 0
S: disk/by-partuuid/d0cb8f9b-01
S: disk/by-uuid/11F9-3CDB
S: disk/by-path/pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0-part1
S: disk/by-id/usb-AS_Mass_Storage-0:0-part1
E: DEVPATH=/devices/pci0000:00/0000:00:12.2/usb1/1-3/1-3:1.0/host7/target7:0:0/7:0:0:0/block/sdd/sdd1
E: DEVNAME=/dev/sdd1
E: DEVTYPE=partition
E: PARTN=1
E: MAJOR=8
E: MINOR=49
E: SUBSYSTEM=block
E: USEC_INITIALIZED=61370864670
E: ID_VENDOR=AS
E: ID_VENDOR_ENC=AS\x20\x20\x20\x20\x20\x20
E: ID_VENDOR_ID=0781
E: ID_MODEL=Mass_Storage
E: ID_MODEL_ENC=Mass\x20Storage\x20\x20\x20\x20
E: ID_MODEL_ID=5567
E: ID_REVISION=0100
E: ID_SERIAL=AS_Mass_Storage-0:0
E: ID_TYPE=disk
E: ID_INSTANCE=0:0
E: ID_BUS=usb
E: ID_USB_INTERFACES=:080650:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usb-storage
E: ID_PATH=pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0
E: ID_PATH_TAG=pci-0000_00_12_2-usb-0_3_1_0-scsi-0_0_0_0
E: ID_PART_TABLE_UUID=d0cb8f9b
E: ID_PART_TABLE_TYPE=dos
E: ID_FS_UUID=11F9-3CDB
E: ID_FS_UUID_ENC=11F9-3CDB
E: ID_FS_VERSION=FAT32
E: ID_FS_TYPE=vfat
E: ID_FS_USAGE=filesystem
E: ID_PART_ENTRY_SCHEME=dos
E: ID_PART_ENTRY_UUID=d0cb8f9b-01
E: ID_PART_ENTRY_TYPE=0x83
E: ID_PART_ENTRY_NUMBER=1
E: ID_PART_ENTRY_OFFSET=2048
E: ID_PART_ENTRY_SIZE=61470912
E: ID_PART_ENTRY_DISK=8:48
E: DEVLINKS=/dev/disk/by-partuuid/d0cb8f9b-01 /dev/disk/by-uuid/11F9-3CDB /dev/disk/by-path/pci-0000:00:12.2-usb-0:3:1.0-scsi-0:0:0:0-part1 /dev/disk/by-id/usb-AS_Mass_Storage-0:0-part1
E: TAGS=systemd
E: CURRENT_TAGS=systemd

 , ,

basarga
()

как в bash в цикле экранировать имена файлов в списке?

Форум — General

Как заставить for читать имена файлов полностью, не прерываясь на пробелах?

basarga@wst ~/test/ebobo $ ls -Q1
"12 12"
"23 23"
"34 34"
" 45 45"
"56 56"
"666"
basarga@wst ~/test/ebobo $ for file in $(ls -Q1) ; do echo $file; done
"12
12"
"23
23"
"34
34"
"
45
45"
"56
56"
"666"

 ,

basarga
()

автозамена(?) в sed

Форум — General

Пытаюсь удалить всё, кроме $var, по счёту, строки:

dumbuser@pleasehelpme$ var=4; echo -e "s1\ns2\ns3\ns4\ns5\ns6\ns7" | sed "${var}!d"
var=4; echo -e "1\n2\n3\n4\n5\n6\n7" | sed "${var}du -h"
sed: -e выражение #1, символ 3: лишние символы после команды
Экранировать '${var}!d' не могу - не будет читать переменную.

В zsh ненастроенном тоже не пашет:

dumbuser@pleasehelpme$ var=4; echo -e "s1\ns2\ns3\ns4\ns5\ns6\ns7" | sed "${var}!d"
zsh: event not found: d

ЧЯДНТ?

Дополнено: Хм. в sh всё работает:

sh-5.0$ var=4; echo -e "s1\ns2\ns3\ns4\ns5\ns6\ns7" | sed "${var}!d"
s4

 , , ,

basarga
()

Как в vim добавить в строку символ без захода в режим редактирования?

Форум — General

Допустим, есть строка «acd». Можно ли вставить символ «b» между «a» и «cd» в два, в крайнем случае, в три нажатия, чтобы не тянутся до ESC?

Вроде бы не критично, но иногда очень не хватает при правках.

Добавлено: Возможно ли выходит из режима редактирования не ESC'ом?

 

basarga
()

как в bash вытащить символ из строки?

Форум — General

Добрвремсуток, джентльмены.

Прелюдия: Захотел погоду наблюдать при открытии терминала и добавил в .bashrc следующее:

$ curl -s ru.wttr.in/grytviken | sed '2,7!d'

Проблема: В выборке используются символы (диагональные стрелки, указывающие направления ветра), которые моим шрифтом (terminus) не поддерживаются.

Хотел записать в .bashrc условие, которое заменит символы на слова (северо-западный, южный и т.д.), но не смог выделить символ из строки. Визуально он постоянно находится на одной и той же позиции, но так как текст местами цветной, то из-за спецсимволов его фактическое положение в строке плавает, поэтому cut не подходит (а может, я просто не умею им пользоваться).

Попытался вырезать всё ненужное:

curl -s ru.wttr.in/uaa | sed '5!d' | tr -d [:space:][:punct:][:alnum:][:cntrl:]
Но вместе с символом остаётся ещё какая-то шняга.

Подскажите, 1. Как можно выделить символ из строки в данной ситуации? 2. Можно ли как-то иначе решить задачу с отображением символов?

Замена шрифта не подходит.

Решение: Добавил в .bashrc cледующее:

#погода
E=$(echo -e "\u2190")
S=$(echo -e "\u2191")
W=$(echo -e "\u2192")
N=$(echo -e "\u2193")
SE=$(echo -e "\u2196")
SW=$(echo -e "\u2197")
NW=$(echo -e "\u2198")
NE=$(echo -e "\u2199")
curl -s ru.wttr.in/grytviken?0 | tail -6 | sed "s/$N/ветер северный/; s/$NE/ветер северо-восточный/; s/$E/ветер восточный/; s/$SE/ветер юго-восточный/; s/$S/ветер южный/; s/$SW/ветер юго-западный/; s/$W/ветер западный/; s/$NW/ветер северо-западный/"
echo

 , ,

basarga
()

Нужно содержимое /etc/debian_chroot

Форум — General

Выложите, пожалуйста. В моём текущем дистре этого нет.

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

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

«The file /etc/debian_chroot is when you have a chrooted debian system inside another debian system (ubuntu is based on debian). So this is for a better overview. To distinguish whether you are in the chroot or not.»

https://askubuntu.com/questions/372849/what-does-debian-chrootdebian-chroot-d...

 ,

basarga
()

проблема с запуском баш-скрипта

Форум — Development

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

$ curl https://mawbah.github.io/ru | sh

cкрипт должен скачать себя вместе с конфигами, позадавать вопросы и запустить другой скрипт (в текущей версии - просто вывести значение переменной). Проблема в том, что запросы в текущий терминал не идут. Если вывод cюрла в файл перенаправить, поменять права и запустить вручную, то работает. Как исправить или какой командой вызывать? И что конкретно читать для понимания работы процессов?

скрипт:

#!/bin/sh
RED='\033[0;31m'
NC='\033[0m'

## скачивание с github'а (ветка master) zip-архива со скриптами и настройками и его распаковка в домашнюю директорию
wget https://github.com/mawbah/mawbah.github.io/archive/master.zip
pacman -Sy --noconfirm unzip
unzip master.zip -d ~/

## локализация конфигурационного файла. 
echo '
LOCALE1="en_EN"
LOCALE2="ru_RU"
LOCALE3="reserve"
SYSTEM_LOCALE="LANG=ru_RU.UTF-8"
CONSOLE_KEYMAP="ruwin_ct_sh-UTF-8"
X11_KEYMAP_LAYOUT="us,ru"
X11_KEYMAP_MODEL="pc104"
X11_KEYMAP_VARIANT="-"
X11_KEYMAP_OPTIONS="grp:ctrl_shift_toggle,terminate:ctrl_alt_bksp,grp_led:scroll"
DEFAULT_FONT="UniCyr_8x16"
TIME_ZONE="Asia\/Vladivostok"
' >> ~/mawbah.github.io-master/mawbah/mawbah.conf

## подключение конфигурационного файла
source ~/mawbah.github.io-master/mawbah/mawbah.conf

## локализация текущего терминала
loadkeys $CONSOLE_KEYMAP
setfont $DEFAULT_FONT

## запрос пароля рута и имени и пароля пользователя
echo -e "${RED}пароль суперпользователя: ${NC}"
read -s -t 25
sed -i "s/^RP=.*/RP=\"$REPLY\"/" ~/mawbah.github.io-master/mawbah/mawbah.conf

echo -e "${RED}имя пользователя: ${NC}"
read -t 25
sed -i "s/^UN=.*/UN=\"$REPLY\"/" ~/mawbah.github.io-master/mawbah/mawbah.conf

echo -e "${RED}пароль пользователя: ${NC}"
read -s -t 25
sed -i "s/^UP=.*/UP=\"$REPLY\"/" ~/mawbah.github.io-master/mawbah/mawbah.conf
 
## подготовка экрана
clear; lsblk; echo

## выбор конфигурации дисков
PS3=$(echo -e "${RED}шаблон разметки дисков: ${NC}")
select SLICING_TEMPLATE in $(ls ~/mawbah.github.io-master/mawbah/templates/); 
do
   echo "SLICING_TEMPLATE $SLICING_TEMPLATE"   
   break
done

лежит тут: https://github.com/mawbah/mawbah.github.io/blob/master/ru

 

basarga
()

[РЕШЕНО]Не устанавливается MariaDB 10.2 на CentOS7

Форум — Linux-install

Подскажите, пожалуйста...

На CentOS7 ставлю MariaDB по мануалу с оф.сайта: https://downloads.mariadb.org/mariadb/repositories/#mirror=mephi&distro=C...

создаю файл MariaDB.repo в /etc/yum.repos.d/

# MariaDB 10.2 CentOS repository list - created 2018-02-09 13:47 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

и начинаю инсталляцию

[admin@localhost yum.repos.d]$ sudo yum install MariaDB-server MariaDB-client
Загружены модули: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.vilkam.ru
 * extras: mirror.vilkam.ru
 * updates: mirror.vilkam.ru
Пакета с названием MariaDB-server не найдено.
  * Возможно, вы имели в виду: mariadb-server
Пакета с названием MariaDB-client не найдено.
Ошибка: Выполнять нечего

В чём проблема и как исправить?

Если вбиваю в нижем регистре (sudo yum install mariadb*), то берёт старую версию (5.5) из базового репозитория.

( читать дальше... )

РЕШЕНИЕ: sudo yum clean all

 , ,

basarga
()

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