LINUX.ORG.RU

Сообщения silart

 

Как создать файл устройства в /dev

Форум — General

Всем привет!

Я пытаюсь запустить второй UART на плате Banana-Pi M5. Первый UART (ttyAML0) используется для подключения к терминалу. А второй UART выведен на гребенку. Плата работает под управлением Armbian.

Вот есть такая статья с описанием точно такой же проблемы: Сюда!

Я сделал все как написано:

1. Скопировал meson-uartA.dts в папку /root/meson-uartA.dts

2. Вызвал: sudo armbian-add-overlay /root/meson-uartA.dts

3. Отредактировал: sudo nano /boot/armbianEnv.txt, добавив

user_overlays=meson-uartA

4. Сам файл meson-uartA.dts взял из статьи:

/dts-v1/;
/plugin/;

/ {
    compatible = "amlogic,meson-gxbb";

    fragment@0 {
        target-path = "/soc/bus@ff600000/bus@34400/pinctrl@40"; /* для данного устройства */

        __overlay__ {
            uart_a_tx_pin: uart-a-tx { /* добавляем настройки пинов */
                mux {
                    groups = "uart_a_tx"; /* для группы пинов "uart_a_tx"
                    function = "uart_a";  /* это как было в оригинальной группе */
                    input-disable;        /* для TX выключаем input - обязательно! */
                    output-enable;        /* для TX включаем output - обязательно! */
                    drive-strength-microamp = <4000>; /* это наверно необязательно */
                };
            };
        };
    };

    fragment@1 {
        target-path = "/soc/bus@ffd00000/serial@24000";  /* <=== меняем адрес (см. выше) */

        __overlay__ {
            status = "okay";                             /* включаем UART */
            pinctrl-0 = <&uart_a_pins &uart_a_tx_pin>;   /* добавляем uart_a_tx_pin из блока выше */
            pinctrl-names = "default";                   /* это возможно необязательно */
        };
    };
};

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

sudo dmesg | grep _uart

    [    0.778000] ff803000.serial: ttyAML0 at MMIO 0xff803000 (irq = 14, base_baud = 1500000) is a meson_uart
    [    0.780072] ffd24000.serial: ttyAML6 at MMIO 0xffd24000 (irq = 15, base_baud = 1500000) is a meson_uart

Казалось, успех близок, но если вызвать sudo ls -l /sys/class/tty* , получим только упоминание об ttyAML0. Про ttyAML6 ничего нет.

lrwxrwxrwx 1 root root 0 янв  1  1970 ttyAML0 -> ../../devices/platform/soc/ff800000.bus/ff803000.serial/tty/ttyAML0

И, закономерно, при попытки открыть /dev/ttyAML6 minicom пишет что нет такого файла.

Я совсем не разбираюсь в этой теме. Подскажите пожалуйста, что нужно сделать еще чтобы появился файл /dev/ttyAML6?

И почему появился ttyAML6, а не ttyAML1? Может я что-то напортачил с оверлеями?

 , , ,

silart
()

Gentoo: Failed to emerge

Форум — Linux-install

Всем привет!

Решил я поэкспериментировать с Gentoo. До этого опыта работы с этим дистрибутивом не имел. Есть ретро комп: Pentium 4, 2Gb RAM. Решил на него установить Gentoo. Делаю все по этой методичке.

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

Добавил в файл /etc/portage/make.conf следующие настройки:

COMMON_FLAGS="-O2 -march=pentium4 -mfpmath=sse -mmmx -msse -msse2"
MAKEOPTS=2
USE="-gtk -gnome qt5 dvd alsa cdr"
VIDEO_CARDS="nouveau"
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"

Переменную USE взял из методички. Вообще-то хочется чтобы был десктоп XFCE, но пока хоть просто чтобы что-то загружалось.

Настроил файл /etc/portage/repos.conf/gentoo.conf:

[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://rsync.gentoo.org/gentoo-portage
auto-sync = yes
sync-rsync-verify-jobs = 1
sync-rsync-verify-metamanifest = yes
sync-rsync-verify-max-age = 24
sync-openpgp-key-path = /usr/share/openpgp-keys/gentoo-release.asc
sync-openpgp-keyserver = hkps://keys.gentoo.org
sync-openpgp-key-refresh-retry-count = 40
sync-openpgp-key-refresh-retry-overall-timeout = 1200
sync-openpgp-key-refresh-retry-delay-exp-base = 2
sync-openpgp-key-refresh-retry-delay-max = 60
sync-openpgp-key-refresh-retry-delay-mult = 4
sync-webrsync-verify-signature = yes
sync-git-verify-commit-signature = yes

Переключил корневую систему с livecd на локальный диск:

arch-chroot /mnt/gentoo

# change root
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) ${PS1}"

Выбрал профайл:

eselect profile list
eselect profile set 5
emerge --ask --verbose --update --deep --newuse @world

Список профайлов:

Available profile symlink targets:
  [1]   default/linux/x86/17.0 (stable)
  [2]   default/linux/x86/17.0/selinux (stable)
  [3]   default/linux/x86/17.0/hardened (stable)
  [4]   default/linux/x86/17.0/hardened/selinux (stable)
  [5]   default/linux/x86/17.0/desktop (stable)
  [6]   default/linux/x86/17.0/desktop/gnome (stable)
  [7]   default/linux/x86/17.0/desktop/gnome/systemd (stable)
  [8]   default/linux/x86/17.0/desktop/gnome/systemd/merged-usr (stable)
  [9]   default/linux/x86/17.0/desktop/plasma (stable)
  [10]  default/linux/x86/17.0/desktop/plasma/systemd (stable)
  [11]  default/linux/x86/17.0/desktop/plasma/systemd/merged-usr (stable)
  [12]  default/linux/x86/17.0/developer (exp)
  [13]  default/linux/x86/17.0/systemd (stable)
  [14]  default/linux/x86/17.0/systemd/merged-usr (stable) *
  [15]  default/linux/x86/23.0/i686 (exp)
  [16]  default/linux/x86/23.0/i686/systemd (exp)
  [17]  default/linux/x86/23.0/i686/hardened (exp)
  [18]  default/linux/x86/23.0/i686/hardened/selinux (exp)
  [19]  default/linux/x86/23.0/i686/desktop (exp)
  [20]  default/linux/x86/23.0/i686/desktop/gnome (exp)
  [21]  default/linux/x86/23.0/i686/desktop/gnome/systemd (exp)
  [22]  default/linux/x86/23.0/i686/desktop/plasma (exp)
  [23]  default/linux/x86/23.0/i686/desktop/plasma/systemd (exp)
  [24]  default/linux/x86/23.0/i686/prefix (exp)
  [25]  default/linux/x86/23.0/i686/prefix/kernel-2.6.32+ (exp)
  [26]  default/linux/x86/23.0/i686/prefix/kernel-2.6.16+ (exp)
  [27]  default/linux/x86/23.0/i686/prefix/kernel-3.2+ (exp)
  [28]  default/linux/x86/23.0/i686/split-usr (exp)
  [29]  default/linux/x86/23.0/i686/split-usr/hardened (exp)
  [30]  default/linux/x86/23.0/i686/split-usr/hardened/selinux (exp)
  [31]  default/linux/x86/23.0/i686/split-usr/desktop (exp)
  [32]  default/linux/x86/23.0/i686/split-usr/desktop/gnome (exp)
  [33]  default/linux/x86/23.0/i686/split-usr/desktop/plasma (exp)
  [34]  default/linux/x86/23.0/i686/split-usr/prefix (exp)
  [35]  default/linux/x86/23.0/i686/split-usr/prefix/kernel-2.6.32+ (exp)
  [36]  default/linux/x86/23.0/i686/split-usr/prefix/kernel-2.6.16+ (exp)
  [37]  default/linux/x86/23.0/i686/split-usr/prefix/kernel-3.2+ (exp)
  [38]  default/linux/x86/23.0/i486 (exp)
  [39]  default/linux/x86/23.0/i486/systemd (exp)
  [40]  default/linux/x86/23.0/i486/hardened (exp)
  [41]  default/linux/x86/23.0/i486/hardened/selinux (exp)
  [42]  default/linux/x86/23.0/i486/split-usr (exp)
  [43]  default/linux/x86/23.0/i486/split-usr/hardened (exp)
  [44]  default/linux/x86/23.0/i486/split-usr/hardened/selinux (exp)
  [45]  default/linux/x86/17.0/musl (dev)
  [46]  default/linux/x86/17.0/musl/selinux (exp)

Обратил внимание, что нету XFCE. Ладно, выбрал default/linux/x86/17.0/desktop (stable).

При попытке сделать: emerge --ask app-portage/cpuid2cpuflags

 * IMPORTANT: config file '/etc/portage/package.use/zz-autounmask' needs updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 2.83 s (backtrack: 0/20).

[ebuild  N     ] app-portage/cpuid2cpuflags-12 

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) app-portage/cpuid2cpuflags-12::gentoo
 * cpuid2cpuflags-12.tar.bz2 BLAKE2B SHA512 size ;-) ...                                                                                                     [ ok ]
>>> Unpacking source...
>>> Unpacking cpuid2cpuflags-12.tar.bz2 to /var/tmp/portage/app-portage/cpuid2cpuflags-12/work
>>> Source unpacked in /var/tmp/portage/app-portage/cpuid2cpuflags-12/work
>>> Preparing source in /var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12 ...
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12 ...
./configure --prefix=/usr --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --datarootdir=/usr/share --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/cpuid2cpuflags-12 --htmldir=/usr/share/doc/cpuid2cpuflags-12/html --libdir=/usr/lib
checking for a BSD-compatible install... /usr/lib/portage/python3.11/ebuild-helpers/xattr/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for i686-pc-linux-gnu-gcc... i686-pc-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether i686-pc-linux-gnu-gcc accepts -g... yes
checking for i686-pc-linux-gnu-gcc option to enable C11 features... none needed
checking whether i686-pc-linux-gnu-gcc understands -c and -o together... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of i686-pc-linux-gnu-gcc... none
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking for uint32_t... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
>>> Source configured.
>>> Compiling source in /var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12 ...
make 2 
make: *** No rule to make target '2'.  Stop.
 * ERROR: app-portage/cpuid2cpuflags-12::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=app-portage/cpuid2cpuflags-12::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=app-portage/cpuid2cpuflags-12::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/app-portage/cpuid2cpuflags-12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-portage/cpuid2cpuflags-12/temp/environment'.
 * Working directory: '/var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12'
 * S: '/var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12'

>>> Failed to emerge app-portage/cpuid2cpuflags-12, Log file:

>>>  '/var/tmp/portage/app-portage/cpuid2cpuflags-12/temp/build.log'

 * Messages for package app-portage/cpuid2cpuflags-12:

 * ERROR: app-portage/cpuid2cpuflags-12::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=app-portage/cpuid2cpuflags-12::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=app-portage/cpuid2cpuflags-12::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/app-portage/cpuid2cpuflags-12/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/app-portage/cpuid2cpuflags-12/temp/environment'.
 * Working directory: '/var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12'
 * S: '/var/tmp/portage/app-portage/cpuid2cpuflags-12/work/cpuid2cpuflags-12'

При попытке сделать emerge --ask sys-kernel/linux-firmware:


 * IMPORTANT: config file '/etc/portage/package.use/zz-autounmask' needs updating.
 * See the CONFIGURATION FILES and CONFIGURATION FILES UPDATE TOOLS
 * sections of the emerge man page to learn how to update config files.

These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 2.87 s (backtrack: 0/20).

[ebuild  N     ] sys-kernel/linux-firmware-20240115  USE="redistributable -compress-xz -compress-zstd -deduplicate -initramfs -savedconfig (-unknown-license)" 

Would you like to merge these packages? [Yes/No] y

>>> Verifying ebuild manifests

>>> Running pre-merge checks for sys-kernel/linux-firmware-20240115

>>> Emerging (1 of 1) sys-kernel/linux-firmware-20240115::gentoo
 * linux-firmware-20240115.tar.xz BLAKE2B SHA512 size ;-) ...                                                                                                [ ok ]
>>> Unpacking source...
>>> Unpacking linux-firmware-20240115.tar.xz to /var/tmp/portage/sys-kernel/linux-firmware-20240115/work
>>> Source unpacked in /var/tmp/portage/sys-kernel/linux-firmware-20240115/work
>>> Preparing source in /var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115 ...
 * Removing files with unknown license ...
removed 'korg/k1212.dsp'
removed 'ess/maestro3_assp_kernel.fw'
removed 'ess/maestro3_assp_minisrc.fw'
removed 'yamaha/ds1_ctrl.fw'
removed 'yamaha/ds1_dsp.fw'
removed 'yamaha/ds1e_ctrl.fw'
removed 'ttusb-budget/dspbootcode.bin'
removed 'emi62/bitstream.fw'
removed 'emi62/loader.fw'
removed 'emi62/midi.fw'
removed 'emi62/spdif.fw'
removed 'ti_3410.fw'
removed 'ti_5052.fw'
removed 'mts_mt9234mu.fw'
removed 'mts_mt9234zba.fw'
removed 'whiteheat.fw'
removed 'whiteheat_loader.fw'
removed 'cpia2/stv0672_vp4.bin'
removed 'vicam/firmware.fw'
removed 'edgeport/boot.fw'
removed 'edgeport/boot2.fw'
removed 'edgeport/down.fw'
removed 'edgeport/down2.fw'
removed 'edgeport/down3.bin'
removed 'sb16/mulaw_main.csp'
removed 'sb16/alaw_main.csp'
removed 'sb16/ima_adpcm_init.csp'
removed 'sb16/ima_adpcm_playback.csp'
removed 'sb16/ima_adpcm_capture.csp'
removed 'sun/cassini.bin'
removed 'acenic/tg1.bin'
removed 'acenic/tg2.bin'
removed 'adaptec/starfire_rx.bin'
removed 'adaptec/starfire_tx.bin'
removed 'yam/1200.bin'
removed 'yam/9600.bin'
removed 'ositech/Xilinx7OD.bin'
removed 'qlogic/isp1000.bin'
removed 'myricom/lanai.bin'
removed 'yamaha/yss225_registers.bin'
removed 'lgs8g75.fw'
>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115 ...
>>> Source configured.
>>> Compiling source in /var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115 ...
make 2 
make: *** No rule to make target '2'.  Stop.
 * ERROR: sys-kernel/linux-firmware-20240115::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sys-kernel/linux-firmware-20240115::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-kernel/linux-firmware-20240115::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-kernel/linux-firmware-20240115/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/linux-firmware-20240115/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115'
 * S: '/var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115'

>>> Failed to emerge sys-kernel/linux-firmware-20240115, Log file:

>>>  '/var/tmp/portage/sys-kernel/linux-firmware-20240115/temp/build.log'

 * Messages for package sys-kernel/linux-firmware-20240115:

 * ERROR: sys-kernel/linux-firmware-20240115::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=sys-kernel/linux-firmware-20240115::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=sys-kernel/linux-firmware-20240115::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/sys-kernel/linux-firmware-20240115/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/sys-kernel/linux-firmware-20240115/temp/environment'.
 * Working directory: '/var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115'
 * S: '/var/tmp/portage/sys-kernel/linux-firmware-20240115/work/linux-firmware-20240115'

Подскажите пожалуйста, где я не правильно настроил Portage?

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

 

silart
()

Проблема авторизации webdav-клиента rclone

Форум — Admin

Добрый день!

Никак не могу настроить доступ к webdav-серверу с помощью rclone. Без авторизации все коннектится и работает. Почему-то не получается настроить авторизацию. Сервер webdav работает в докере:

version: '3'
services:
  webdav:
    image: bytemark/webdav
    restart: always
    ports:
      - "80:80"
    environment:
      LOCATION: /
      AUTH_TYPE: Digest
      USERNAME: user
      PASSWORD: password
      ANONYMOUS_METHODS: GET,OPTIONS,PROPFIND
    volumes:
      - /home/silart/.local/webdav:/var/lib/dav

Задал переменную ANONYMOUS_METHODS чтобы неавторизованные пользователи могли только читать файлы.

Клиент rclone имеет следующий конфиг:

[mediabox]
type = webdav
url = http://aaa.bbb.ccc.ddd:port/
vendor = other
user = user
pass = Wum6D9kdpLAo6mjSe1BA7weTQkAetf8

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

Запускаю клиент так:

rclone mount mediabox: /home/silart/mediabox

Лог:

rclone -vv mount mediabox: /home/silart/mediabox
2024/01/29 16:07:19 DEBUG : rclone: Version "v1.65.2" starting with parameters ["rclone" "-vv" "mount" "mediabox:" "/home/silart/mediabox"]
2024/01/29 16:07:19 DEBUG : Creating backend with remote "mediabox:"
2024/01/29 16:07:19 DEBUG : Using config file from "/home/silart/.config/rclone/rclone.conf"
2024/01/29 16:07:19 DEBUG : found headers: 
2024/01/29 16:07:19 INFO  : webdav root '': poll-interval is not supported by this remote
2024/01/29 16:07:19 NOTICE: webdav root '': --vfs-cache-mode writes or full is recommended for this remote as it can't stream
2024/01/29 16:07:19 DEBUG : webdav root '': Mounting on "/home/silart/mediabox"
2024/01/29 16:07:19 DEBUG : : Root: 
2024/01/29 16:07:19 DEBUG : : >Root: node=/, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Lookup: name=".Trash"
2024/01/29 16:07:19 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: Lookup: name=".xdg-volume-info"
2024/01/29 16:07:19 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2024/01/29 16:07:19 DEBUG : /: Lookup: name="autorun.inf"
2024/01/29 16:07:19 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Lookup: name=".Trash-1000"
2024/01/29 16:07:19 DEBUG : /: >Lookup: node=.Trash-1000/, err=<nil>
2024/01/29 16:07:19 DEBUG : .Trash-1000/: Attr: 
2024/01/29 16:07:19 DEBUG : .Trash-1000/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : .Trash-1000/: Lookup: name="files"
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : .Trash-1000/: >Lookup: node=.Trash-1000/files/, err=<nil>
2024/01/29 16:07:19 DEBUG : .Trash-1000/files/: Attr: 
2024/01/29 16:07:19 DEBUG : .Trash-1000/files/: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : .Trash-1000/files/: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : /: ReadDirAll: 
2024/01/29 16:07:19 DEBUG : /: >ReadDirAll: item=10, err=<nil>
2024/01/29 16:07:19 DEBUG : /: Lookup: name="autorun.inf"
2024/01/29 16:07:19 DEBUG : /: >Lookup: node=<nil>, err=no such file or directory
2024/01/29 16:07:19 DEBUG : /: Attr: 
2024/01/29 16:07:19 DEBUG : /: >Attr: attr=valid=1s ino=0 size=0 mode=drwxrwxr-x, err=<nil>
2024/01/29 16:07:19 DEBUG : .Trash-1000/files/: >ReadDirAll: item=2, err=<nil>
^C2024/01/29 16:07:22 INFO  : Signal received: interrupt
2024/01/29 16:07:22 ERROR : /home/silart/mediabox: Unmounted rclone mount
2024/01/29 16:07:22 INFO  : Exiting...

При попытке что-то скопировать, получаю:

2024/01/29 16:08:19 ERROR : data/links.xodp: Failed to copy: 401 Unauthorized
2024/01/29 16:08:19 ERROR : data/links.xodp: WriteFileHandle.New Rcat failed: 401 Unauthorized
2024/01/29 16:08:19 DEBUG : data/links.xodp: Remove: 
2024/01/29 16:08:19 DEBUG : data: Added virtual directory entry vDel: "links.xodp"
2024/01/29 16:08:19 DEBUG : data/links.xodp: >Remove: err=<nil>
2024/01/29 16:08:19 ERROR : data/links.xodp: WriteFileHandle.Flush error: 401 Unauthorized
2024/01/29 16:08:19 ERROR : IO error: 401 Unauthorized

Проблема: IO error: 401 Unauthorized

У кого-нибудь есть опыт настройки rclone?

 ,

silart
()

Увеличивается количество ошибок /dev/nvme0 при каждой загрузке

Форум — General

Привет!

Есть такая проблема.

На SSD, который вставлен в M2, стоит Linux Mint 21. Утилиты smartctl и nvme выдают ошибки. Причем количество этих ошибок увеличивается с каждой загрузкой системы. Предыдущая система стояла где-то полгода после чего начали появляться ошибки в момент выключения компьютера и компьютер перестал сам отключаться. До этого момента я не запускал утилиты и не смотрел логи, так что скорее всего счетчик ошибок увеличивался и тогда

Ошибки вида:

.................
error_count	: 1
sqid		: 0
cmdid		: 0x1e
status_field	: 0x101(QID_INVALID: The creation of the I/O Completion Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller)
phase_tag	: 0
parm_err_loc	: 0
lba		: 0
nsid		: 0
vs		: 0
trtype		: The transport type is not indicated or the error is not transport related.
cs		: 0
trtype_spec_info: 0

Мой диск: sudo nvme list

Node           SN            Model                Namespace Usage                      Format           FW Rev  
-------------- ------------- -------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1   30044294321   SPCC M.2 PCIe SSD    1           2,05  TB /   2,05  TB    512   B +  0 B   B00u7M10

smartctl: sudo smartctl -a -t long /dev/nvme0

smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.0-52-generic] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Number:                       SPCC M.2 PCIe SSD
Serial Number:                      30044294321
Firmware Version:                   B00u7M10
PCI Vendor/Subsystem ID:            0x1e4b
IEEE OUI Identifier:                0x000000
Total NVM Capacity:                 2 048 408 248 320 [2,04 TB]
Unallocated NVM Capacity:           0
Controller ID:                      0
NVMe Version:                       1.3
Number of Namespaces:               1
Namespace 1 Size/Capacity:          2 048 408 248 320 [2,04 TB]
Namespace 1 Formatted LBA Size:     512
Namespace 1 IEEE EUI-64:            202020 2020202020
Local Time is:                      Wed Oct 26 21:57:09 2022 +07
Firmware Updates (0x12):            1 Slot, no Reset required
Optional Admin Commands (0x0006):   Format Frmw_DL
Optional NVM Commands (0x000f):     Comp Wr_Unc DS_Mngmt Wr_Zero
Log Page Attributes (0x03):         S/H_per_NS Cmd_Eff_Lg
Maximum Data Transfer Size:         256 Pages
Warning  Comp. Temp. Threshold:     120 Celsius
Critical Comp. Temp. Threshold:     130 Celsius

Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     6.50W       -        -    0  0  0  0        0       0
 1 +     5.80W       -        -    1  1  1  1        0       0
 2 +     3.60W       -        -    2  2  2  2        0       0
 3 -   0.0800W       -        -    3  3  3  3     5000   10000
 4 -   0.0055W       -        -    4  4  4  4     5000   45000

Supported LBA Sizes (NSID 0x1)
Id Fmt  Data  Metadt  Rel_Perf
 0 +     512       0         0

=== START OF SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

SMART/Health Information (NVMe Log 0x02)
Critical Warning:                   0x00
Temperature:                        41 Celsius
Available Spare:                    100%
Available Spare Threshold:          1%
Percentage Used:                    0%
Data Units Read:                    24 148 770 [12,3 TB]
Data Units Written:                 26 423 442 [13,5 TB]
Host Read Commands:                 565 420 062
Host Write Commands:                48 759 754
Controller Busy Time:               903
Power Cycles:                       204
Power On Hours:                     499
Unsafe Shutdowns:                   48
Media and Data Integrity Errors:    2
Error Information Log Entries:      52
Warning  Comp. Temperature Time:    0
Critical Comp. Temperature Time:    0
Temperature Sensor 1:               41 Celsius
Temperature Sensor 2:               41 Celsius
Temperature Sensor 3:               41 Celsius
Temperature Sensor 4:               41 Celsius
Temperature Sensor 5:               41 Celsius
Temperature Sensor 6:               41 Celsius
Temperature Sensor 7:               41 Celsius
Temperature Sensor 8:               41 Celsius

Error Information (NVMe Log 0x01, 16 of 64 entries)
Num   ErrCount  SQId   CmdId  Status  PELoc          LBA  NSID    VS
  0          1     0  0x1004  0x0004  0x000            0     0     -
  1          2     0  0x0027  0x0202  0x000            0     0     -
  2          3     0  0x0028  0x0202  0x000            0     0     -
  3          4     0  0x601a  0x0004  0x000            0     0     -
  4          5     0  0x001e  0x0202  0x000            0     0     -
  5          6     0  0x0027  0x0202  0x000            0     0     -
  6          7     0  0x0028  0x0202  0x000            0     0     -
  7          8     0  0x600a  0x0004  0x000            0     0     -
  8          9     0  0x1002  0x0004  0x000            0     0     -
  9         10     0  0x1000  0x0004  0x000            0     0     -
 10         11     0  0x001e  0x0202  0x000            0     0     -
 11         12     0  0x0027  0x0202  0x000            0     0     -
 12         13     0  0x0028  0x0202  0x000            0     0     -
 13       3406     2  0x03a2  0x0281  0x000   2687963448     0     -
 14       3407     2  0x03a2  0x0281  0x000   2687963448     0     -
 15       3408     2  0x03a2  0x0281  0x000   2687963448     0     -
... (48 entries not read)

sudo nvme error-log /dev/nvme0 :

Error Log Entries for device:nvme0 entries:64
.................
 Entry[ 0]   
.................
error_count	: 1
sqid		: 0
cmdid		: 0x1004
status_field	: 0x2(INVALID_FIELD: A reserved coded value or an unsupported value in a defined field)
phase_tag	: 0
parm_err_loc	: 0
lba		: 0
nsid		: 0
vs		: 0
trtype		: The transport type is not indicated or the error is not transport related.
cs		: 0
trtype_spec_info: 0
.................
 Entry[ 1]   
.................
error_count	: 2
sqid		: 0
cmdid		: 0x27
status_field	: 0x101(QID_INVALID: The creation of the I/O Completion Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller)
phase_tag	: 0
parm_err_loc	: 0
lba		: 0
nsid		: 0
vs		: 0
trtype		: The transport type is not indicated or the error is not transport related.
cs		: 0
trtype_spec_info: 0
.................
 Entry[ 2]   
.................
error_count	: 3
sqid		: 0
cmdid		: 0x28
status_field	: 0x101(QID_INVALID: The creation of the I/O Completion Queue failed due to an invalid queue identifier specified as part of the command. An invalid queue identifier is one that is currently in use or one that is outside the range supported by the controller)
phase_tag	: 0
parm_err_loc	: 0
lba		: 0
nsid		: 0
vs		: 0
trtype		: The transport type is not indicated or the error is not transport related.
cs		: 0
trtype_spec_info: 0
.................
 Entry[ 3]   
.................
error_count	: 4
sqid		: 0
cmdid		: 0x601a
status_field	: 0x2(INVALID_FIELD: A reserved coded value or an unsupported value in a defined field)
phase_tag	: 0
parm_err_loc	: 0
lba		: 0
nsid		: 0
vs		: 0
trtype		: The transport type is not indicated or the error is not transport related.
cs		: 0
trtype_spec_info: 0
.................
 Entry[ 4]   
...

cat /var/log/syslog | grep -i smart | grep -i nvm :

Oct 22 19:53:15 silart-desk smartd[3829]: Device: /dev/nvme0, opened
Oct 22 19:53:15 silart-desk smartd[3829]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 22 19:53:15 silart-desk smartd[3829]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 22 19:53:15 silart-desk smartd[3829]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 22 19:53:15 silart-desk smartd[3829]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 22 21:53:15 silart-desk smartd[3829]: Device: /dev/nvme0, number of Error Log entries increased from 5 to 6
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, opened
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 14:21:09 silart-desk smartd[930]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, number of Error Log entries increased from 6 to 7
Oct 23 14:21:09 silart-desk smartd[930]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, opened
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 14:36:00 silart-desk smartd[958]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, number of Error Log entries increased from 7 to 8
Oct 23 14:36:00 silart-desk smartd[958]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, opened
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 14:38:02 silart-desk smartd[964]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, number of Error Log entries increased from 8 to 9
Oct 23 14:38:02 silart-desk smartd[964]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, opened
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 15:09:11 silart-desk smartd[962]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, number of Error Log entries increased from 9 to 10
Oct 23 15:09:11 silart-desk smartd[962]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, opened
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 15:20:51 silart-desk smartd[923]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, number of Error Log entries increased from 10 to 11
Oct 23 15:20:51 silart-desk smartd[923]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, opened
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 19:31:29 silart-desk smartd[925]: Monitoring 0 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, number of Error Log entries increased from 11 to 12
Oct 23 19:31:29 silart-desk smartd[925]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, opened
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 19:54:10 silart-desk smartd[1101]: Monitoring 3 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, number of Error Log entries increased from 12 to 13
Oct 23 19:54:10 silart-desk smartd[1101]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, opened
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 21:05:39 silart-desk smartd[1094]: Monitoring 3 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, number of Error Log entries increased from 13 to 14
Oct 23 21:05:39 silart-desk smartd[1094]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, opened
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 23 23:26:00 silart-desk smartd[1147]: Monitoring 3 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, number of Error Log entries increased from 14 to 15
Oct 23 23:26:00 silart-desk smartd[1147]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, opened
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 21:25:02 silart-desk smartd[1100]: Monitoring 3 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, number of Error Log entries increased from 15 to 16
Oct 24 21:25:02 silart-desk smartd[1100]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, opened
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:33:03 silart-desk smartd[1043]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, number of Error Log entries increased from 16 to 17
Oct 24 23:33:03 silart-desk smartd[1043]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, opened
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:38:02 silart-desk smartd[1042]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, number of Error Log entries increased from 17 to 18
Oct 24 23:38:02 silart-desk smartd[1042]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, opened
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 24 23:52:49 silart-desk smartd[1044]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, number of Error Log entries increased from 18 to 19
Oct 24 23:52:49 silart-desk smartd[1044]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, opened
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 00:07:43 silart-desk smartd[1028]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, number of Error Log entries increased from 19 to 20
Oct 25 00:07:43 silart-desk smartd[1028]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, opened
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 18:58:39 silart-desk smartd[1044]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, number of Error Log entries increased from 20 to 21
Oct 25 18:58:39 silart-desk smartd[1044]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, opened
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 23:41:36 silart-desk smartd[1014]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, number of Error Log entries increased from 21 to 34
Oct 25 23:41:36 silart-desk smartd[1014]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, opened
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 26 00:16:30 silart-desk smartd[1034]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, number of Error Log entries increased from 34 to 41
Oct 26 00:16:30 silart-desk smartd[1034]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, opened
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 21:59:10 silart-desk smartd[1043]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, number of Error Log entries increased from 41 to 45
Oct 25 21:59:10 silart-desk smartd[1043]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, opened
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 22:33:55 silart-desk smartd[1039]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, number of Error Log entries increased from 45 to 49
Oct 25 22:33:55 silart-desk smartd[1039]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, opened
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 25 22:44:34 silart-desk smartd[1019]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, number of Error Log entries increased from 49 to 51
Oct 25 22:44:34 silart-desk smartd[1019]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, opened
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, SPCC M.2 PCIe SSD, S/N:30044294321, FW:B00u7M10, 2.04 TB
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, is SMART capable. Adding to "monitor" list.
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, state read from /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state
Oct 26 21:22:46 silart-desk smartd[1017]: Monitoring 1 ATA/SATA, 0 SCSI/SAS and 1 NVMe devices
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, number of Error Log entries increased from 51 to 52
Oct 26 21:22:46 silart-desk smartd[1017]: Device: /dev/nvme0, state written to /var/lib/smartmontools/smartd.SPCC_M_2_PCIe_SSD-30044294321.nvme.state

Можно видеть такую запись:

smartd[1017]: Device: /dev/nvme0, number of Error Log entries increased from 51 to 52

Количество постоянно увеличивается.

Вопрос: С чем это может быть связано?

Получается что со временем система деградирует.

Сдавал SSD в ДНС где местные специалисты тестировали диск и ничего не нашли. Думал что там работают халтурщики. Написал скрипт на Python'е, который сначала пишет блоки данных прямо в блочное устройство /dev/nvme0, заполняя весь диск, а потом читает записанные блоки, считает md5 и сравнивает с первоначальным. Оказалось что все данные были прочитаны верно.

Пробовал перепрошить диск. Установил винду, оказалось что прошивка самая свежая. Обновил прошивку материнской платы - тоже не помогло.

Have any ideas?

 , , ,

silart
()

nginx в докере

Форум — Admin

Добрый день!

Я хочу разобраться как деплоить свое web-приложение. Решил установить MongoDB и Mongo Express в докере. Так работает. Я хочу чтобы Mongo Express работала через proxy сервер, для этого я запустил nginx тоже в докере, прописал три сервиса в docker-compose.yml. Но заставить работать nginx пока не получается. Нашел несколько статей, например: эту и эту.

У меня простая задача: пробросить веб-сервер Mongo Express через nginx.

Вот мой docker-compose.yml:

version: '3'

services:
  mongo:
    image: mongo
    container_name: mongo
    environment:
      MONGO_INITDB_ROOT_USERNAME: mongouser
      MONGO_INITDB_ROOT_PASSWORD: mongopass
    ports:
      - "27017:27017"
    volumes:
      - /home/silart/mongodb:/data/db

  mongoexpress:
    image: mongo-express
    container_name: mongoexpress
    ports:
      - 8081:8081
    environment:
      ME_CONFIG_BASICAUTH_USERNAME: user
      ME_CONFIG_BASICAUTH_PASSWORD: pass
      ME_CONFIG_MONGODB_PORT: 27017
      ME_CONFIG_MONGODB_ADMINUSERNAME: mongouser
      ME_CONFIG_MONGODB_ADMINPASSWORD: mongopass

  nginx:
    image: nginx:latest
    container_name: nginx
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - mongoexpress
    links:
      - mongoexpress

Файл nginx.conf:

worker_processes 1;

events { worker_connections 1024; }

http {

    sendfile on;

    upstream docker-nginx {
        server mongoexpress:8081;
    }

    server {
        listen 8080;

        location / {
            proxy_pass         http://docker-nginx;
            proxy_redirect     off;
            proxy_set_header   Host $host;
            proxy_set_header   X-Real-IP $remote_addr;
            proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header   X-Forwarded-Host $server_name;
        }
    }

}

Если я обращаюсь к серверу так: http://localhost:8081, это работает, но запросы идут напрямую к mongoexpress (я пробрасываю порты: 8081:8081)

А если обращаться так: http://localhost:8080, то не работает.

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

 

silart
()

Проблемы со скроллингом в Mint 19.1 xfce

Форум — Desktop

Добрый день!

Возникла странная проблема с вертикальной прокруткой колесом мыши в некоторых приложениях (Google Chrome, VsCode). А именно: если двигать мышь во время прокрутки - скроллинг не работает.

Сталкивался с подобной проблемой у редактора текста xed. Проблема решилась добавлением переменной окружения:

GDK_CORE_DEVICE_EVENTS=1

здесь

Проблемы проявляются только в виртуалке VirtualBox. Пробовал на железе - все работает.

Есть какие-нибудь идеи?

Подскажите как можно покрутить низкоуровневые настройки xfce и gtk3.

 , , , ,

silart
()

ACPI Error

Форум — Desktop

Добрый день! Купил новый компьютер, установил Linux Mint 18.2. Во время загрузки в логе выдается следующее:

[    0.457414] ACPI Error: Needed [Integer/String/Buffer], found [Region] ffff9131be0f21b0 (20160930/exresop-425)
[    0.457483] ACPI Exception: AE_AML_OPERAND_TYPE, Could not execute arguments for [IOB2] (Region) (20160930/nsinit-412)

Пробовал задавать в параметрах ядра «noapic» и «acpi=off», как написано здесь.

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

Посоветуйте, что можно сделать? В чем причина?

Ядро:

~ $ uname -r
4.10.0-27-generic

Материнская плата: Asus Prime x370-Pro

Видеокарта старая: GeForce 9800 GT

 

silart
()

Qt5.7 и GTK

Форум — Development

Добрый день!

Хочу разобраться с проблемой отображения приложений Qt в Linux с Xfce. В Qt 5.7 разработчики перенесли плагин gtk2 из основной кодовой базы в отдельный репозиторий.

Я собрал Qt, собрал qtstyleplugins. Но для того чтобы его задействовать нужно создать переменную среды:

export QT_QPA_PLATFORMTHEME=gtk2

Так все работает. Предлагается также устанавливать qt5ct, чтобы можно было настраивать тему в специальном диалоге. Но для этого нужно тоже создавать переменную среды QT_QPA_PLATFORMTHEME со значением qt5ct.

В Qt версии 5.6 плагин входил в поставку Qt и можно было по клику запускать собранное приложение и оно отображалось корректно. В версии 5.7 после установки этого плагина при запуске по клику приложение отображается коряво. Да я знаю, можно эту переменную среды прописать в ~/.profile, но хочется чтобы само все работало.

Пробовал настраивать qt.conf, но вменяемой информации по его синтаксису не нашел. Может как-то можно в нем задать стиль отображения?

В версии 5.6 ведь все работало само. Что нужно сделать чтобы в 5.7 тоже все красиво выглядело при запуске по клику?

 ,

silart
()

SSH: авторизация по ключу

Форум — Admin

Добрый день!

Объясните пожалуйста, что я делаю не так. Мне Нужно настроить доступ с компа (Linux Mint) на мою плату (Embedded Linux, собранный Buildroot'ом. Работает OpenSSH) с помощью ключа и без пароля. В интернете есть много мануалов как это сделать, например как этот. Все делаю как написано, но все равно система запрашивает пароль. Пробовал отключать парольную авторизацию на сервере (настройка PasswordAuthentication), но система выдает Permission denied (publickey,keyboard-interactive).

Важный момент: на плате есть только один пользователь - root. Может это как-то влияет?

 , ,

silart
()

Сборка Embedded Linux для конкретной платы

Форум — Development

Добрый день!

Есть у меня такая плата: CPU686E

И есть задача запустить на ней Embedded Linux. Я до этого ни разу такое не делал, поэтому прошу совета профессионалов в сборке образов Embedded Linux.

Использую я Buildroot. Я почитал кое-какие мануалы по нему (в частности сайта http://free-electrons.com) и понял общий принцип сборки, но возникли некоторые вопросы. Я собрал ядро, rootfs, загрузчик (пробовал grub, grub2). Сделал образ и залил его на CompactFlash. Но при загрузке на плате, после того как загрузчик начал загружать ядро, было выдано сообщение «out of memory». Плата имеет памяти 32М (это старая плата 2001 года). Очевидно, нужно как-то кастомизировать ядро. Этого я не понимаю как делать: в ядре куча настроек и не знаешь что можно выключить. Вообще, реально запустить linux на устройстве с таким объемом памяти? Тренировался на QEmu, там вроде загружается, но как-то через раз, главное что ядро выдает свои логи. Но если там поставить 16М памяти, то тоже будет сообщение о нехватке памяти.

Вопросы:

  • Нужно ли использовать initramfs для Embedded Linux? Там есть возможность даже встроить ее в образ ядра. Объясните, можно ли без него обойтись? Просто у меня добавляются некоторые файлы в rootfs (filesystem overlay), и когда я включаю initramfs, эти файлы добавляются и в него. А по идее, он должен быть минимальным.
  • Как можно включить поддержку виртуальной памяти? Можно ли это сделать средствами buildroot? На флэшке можно создать swap раздел. Поможет ли это в данном случае с ограниченным количеством RAM?
  • Где можно почитать про кастомизацию ядра? Именно про то, что необходимо оставить для минимальной системы.

Товарищи с опытом сборки Embedded Linux, пожалуйста подскажите что изучать еще.

 ,

silart
()

Внешний вид Qt5

Форум — Desktop

Добрый день!

Обновил я virtualbox до версии 5.1 (он сделан на Qt 5.6.1), при этом его внешний вид стал страшным:

здесь

Пробовал устанавливать Qt5ct: здесь. Выглядит он так: здесь

Но это не помогло.

У меня Linux Mint 17.3 с XFCE. Знает кто-нибудь как сделать «родной» внешний вид у virtualbox?

 ,

silart
()

Git, субмодули, bitbucket

Форум — Development

Добрый день!

В своих проектах я использую субмодули git. Каждый проект логически состоит из частей. Эти части хранятся в своих репозиториях и обычно входят в другие проекты. Проекты хранятся в своих репозиториях. Все репозитории хранятся на bitbucket. Таким образом, если зайти на bitbucket и ткнуть sources, можно посмотреть весь проект вместе с субмодулями. Когда кликаешь на субмодуль, автоматически переходишь в его репозиторий. Проект выглядит связано. Очень красиво.

Знатоки Git, посоветуйте пожалуйста как лучше сделать.

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

Допустим другой разработчик делает форк проекта и отдельные форки субмодулей. Когда он заходит в свой репозиторий и кликает на субмодули, он видит что они ссылаются на мои репозитории. (Это все потому что в .gitmodules url указаны на репозитории в моем аккаунте. Файл .gitmodules индексируется)

Разработчик делает git clone ..., затем git submodules update --init. Потом он может поменять .gitmodules, задав свои url, и тогда bitbucket будет красиво показывать проект в его аккаунте.

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

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

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

Тогда как можно решить описанные проблемы: добиться связности проекта и субмодулей в разных аккаунтах bitbucket и организовать пулл реквесты из нескольких репозиториев. Может есть другой, более правильный подход при работе с bitbucket?

А может это особенность bitbucket и стоит перейти на другой подобный сервис?

 ,

silart
()

Особенность build, host, target при кросскомпиляции

Форум — Development

Добрый день!

Собираю binutils в MSYS2. Установлен тулчейн i686-w64-mingw32. Заметил такую особенность: если в configure передать --build, --host и --target одинаковыми (и равными i686-w64-mingw32 в моем случае) то в собранном виде все утилиты будут без таргета: ar, as, ld, nm, objcopy, и т д. Если взять другой тулчейн (с сайта http://mingw.org) с таргетом mingw32 и передать в configure при сборке --build=mingw32, --host=mingw32, --target=i686-w64-mingw32, то утилиты получатся с правильным таргетом: i686-w64-mingw32-ar, i686-w64-mingw32-as, i686-w64-mingw32-ld, i686-w64-mingw32-nm, i686-w64-mingw32-objcopy, и т д. Если задать --target=arm-none-eabi, а --build и --host задать i686-w64-mingw32, то утилиты получатся с правильным таргетом arm-none-eabi.

Как-нибудь можно принудительно задать таргет для собранных утилит?

Пробовал указывать один --target, а --build и --host опускал, также пробовал их группировать между собой, не удалось заставить формировать правильный таргет.

 , ,

silart
()

Кросскомпиляция и automake

Форум — General

Добрый день!

Разъясните пожалуйста смысл опций build, host и target.

В мануале сказано:

build:

The system on which the package is built.

host:

The system where built programs and libraries will run.

target:

When building compiler tools: the system for which the tools will create output.

И еще:

Mixing --build and --target, we can actually cross-compile a cross-compiler

Если задать target при сборке тулчейна, то все его инструменты будут иметь заданный префикс: i686-pc-linux-gnu-gcc, i686-pc-linux-gnu-g++, и т д.

Если задать build, то программа будет собираться заданным тулчейном, а не просто gcc.

Вопрос: Для чего нужен host? На что это влияет?

 ,

silart
()

Странное поведение asio::async_read и asio::async_read_until

Форум — Development

Столкнулся с такой особенностью.

Есть сокет и стиримбуфер:

asio::ip::tcp::socket m_socket;
asio::streambuf m_readbuf;

Сначала я читаю заголовок функцией async_read_until():

asio::async_read_until(m_socket, m_readbuf, delim,
	[this](const asio::error_code& e, std::size_t bytes)
	{
	//...
	});
Все корректно читается и мы попадаем в хэндлер, количество прочитанных байт соответствует длине заголовка. Далее, запускаем на чтение async_read() в надежде считать заданное количество байт nBytes:
asio::async_read(m_socket, m_readbuf, asio::transfer_exactly(nBytes),
	[this](const asio::error_code& e, std::size_t bytes)
	{
	//...
	});
Однако когда попадаем в хэндлер, узнаем, что e == asio::error::eof и bytes == 0. Было выяснено, что часть пакета, следующая после заголовка, уже находится в буфере. Судя по всему она была прочитана ранее.

Если последовательно запустить async_read_until(), то получим прочитанные данные корректно, то есть хэндлеры будут вызваны и значения bytes будут правильными. Пробовал запускать async_read() первой, в этом случае поведение ожидаемое: вызов хэндлера с запрошенным количеством прочитанных байт.

Для реализации ожидаемого поведения, то есть возвращения запрошенного количества байт в хэндлере, сделал я свою функцию read() следующим образом:

void Connection::read(unsigned int nBytes, std::function<OnReadCompleted> handler)
{
asio::async_read(m_socket, m_readbuf, asio::transfer_exactly(nBytes),
	[nBytes, handler, this](const asio::error_code& e, std::size_t bytes)
	{
		std::vector<char> data;
		if (e == asio::error::eof)
		{
			std::size_t size = (nBytes <= m_readbuf.size() ) ? nBytes : m_readbuf.size();
			if (size > 0)
			{
				std::istream in(&m_readbuf);
				data.resize(size, 0);
				if (in.read( (char*)&data[0], size) )
				{
					asio::error_code ec;
					handler(ec, data);
				}
				else
				{
					handler(asio::error::fault, data);
				}
			}
			else
			{
				handler(asio::error::eof, data);
			}
		}
		else
		{
			if (bytes > 0)
			{
				std::istream in(&m_readbuf);
				data.resize(bytes, 0);
				if ( !in.read( (char*)&data[0], bytes) )
				{
					data.clear();
				}
			}

			handler(e, data);
		}
	});
}
Интересно, баг это или фича? Использую asio 1.11.0 под Windows.

 

silart
()

C++ Asio под Windows

Форум — Development

Пытаюсь сделать простой tcp клиент с использованием этой библиотеки. Задействовал таймер asio::steady_timer, использую его асинхронно. Проблема в том, что в момент вызова его конструктора (в который передается asio::io_service&) бросается исключение с кодом 10045 WSAEOPNOTSUPP. Пробовал при сборке передать дефайн ASIO_DISABLE_IOCP. Падать перестал, но работает как-то странно. Вызывается колбэк с ошибкой: 995 ERROR_OPERATION_ABORTED.

Использую MinGW 4.9.3. Передаю дефайны: _WIN32 _WIN32_WINNT=0x0601 ASIO_STANDALONE ASIO_DISABLE_IOCP.

asio::steady_timer m_deadline;

void AsyncTcpClient::setTimer()
{
using namespace std::placeholders;

	m_deadline.expires_from_now(std::chrono::milliseconds(m_timeout) );
	m_deadline.async_wait([this](const asio::error_code& e){ timeout_callback(e); });
}

void AsyncTcpClient::timeout_callback(const asio::error_code& e)
{
	std::string m = e.message();
	if (!e)
	{
		m_socket.cancel();
	}
	else
	{
		failed("Timer failed");
	}
}

В чем может быть проблема?

 , ,

silart
()

Qt5 некорректное отображение

Форум — Development

Добрый день! Собрал Qt 5.7.0 под Linux Mint 17.3, XFCE. Проблема в том, что приложения некорректно отображаются: шрифт вообще не видно, меню смещено. Вот скриншот ассистанта: здесь

Пробовал устанавливать qt5ct: ссылка. Не помогло. В чем может быть дело?

 ,

silart
()

Синтаксический анализ на конечных автоматах

Форум — Development

Добрый день!

Помогите пожалуйста разобраться с конечными автоматами. Нужно сделать разбор текста формата json. Да, знаю, есть инструменты flex и bison, которые могут делать парсеры по описанию грамматики, но мне нужно разобраться как реализовать конечный автомат на C++ без применения этих инструментов. Я нарисовал следующую диаграмму состояний: здесь. Такой автомат не может работать с вложенными конструкциями: объектами и массивами, только с последовательностью пар «name»:value.

Вопросы в следующем:

1. Допустим такой автомат будет переключаться из состояния в состояние по мере чтения символов, но как на практике можно это использовать? Была идея при переходе в нужные состояния генерировать события: например перешли в состояние ожидания кавычки, сработал обработчик и записал положение начала строки, считали другую кавычку - другой обработчик, записали конец строки. Все бы хорошо, но значения могут быть строками (в кавычках), числами и литералами (без кавычек), и не получается единообразно получать начала и концы строк. Или может нужно как-то по-другому перерисовать диаграмму? Вообще как применяются конечные автоматы на практике в плане архитектуры?

2. Я читал, что для обработки вложенных конструкций применяются Магазинные автоматы. Как можно нарисовать диаграмму такого автомата? Что должно храниться в стеке? Как реализовать в плане архитектуры такой автомат? Когда считывается фигурная скобка, по идее, нужно сохранить в стек текущее состояние. Какой состояние будет при этом у нового автомата? Init? Хорошо, а когда будет закрывающая скобка, нужно вернуть из стека прежнее состояние. А какое оно должно быть? Мы сохраняли состояние ожидания фигурной скобки. Куда дальше переходить из этого состояния? Ведь на этом уровне автомат не должен знать что там внутри скобок.

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

 ,

silart
()

Вопрос по initializer_list

Форум — Development

Добрый день!

Есть класс:

class Value
{
public:
	Value();
	Value(const std::string& value);
	Value(std::string&& value);
	Value(int value);
	Value(double value);
	Value(bool value);
	Value(const Array& value);
	Value(Array&& value);
	Value(const Value& rhs);
	~Value();
};

И есть другой класс:

class Array
{
public:
	Array(const std::initializer_list<Value>& values);
};

Если записать вот так:

Array a1({"one", "two", "three"});
Array a2({1, 2, 3, 4, 5, 6, 7, 8, 9, 10});
Array a3({1.1, 1.2, 1.3, 1.4});
Array a4({true, false, true, false});
то все будет нормально компилироваться. А если добавить еще это:
Value v1({"one", "two", "three"});
Value v2({1, 2, 3, 4, 5, 6, 7, 8, 9, 10});
Value v3({1.1, 1.2, 1.3, 1.4});
Value v4({true, false, true, false});
то v2, v3, v4 не скомпилируются. Компилятор ругается, что is ambiguous и перечисляет следующие конструкторы: Value::Value(Array&&), Value::Value(const Array&), Value::Value(std::string&&), Value::Value(const std::string&). Причем здесь вообще std::string, ведь там int, double и bool?

Изменил класс Value так:

class Value
{
public:
	Value();
	explicit Value(const std::string& value);
	explicit Value(std::string&& value);
	explicit Value(int value);
	explicit Value(double value);
	explicit Value(bool value);
	explicit Value(const Array& value);
	explicit Value(Array&& value);
	explicit Value(const Value& rhs);
	~Value();
};

Это привело к тому, что все перестало компилироваться: выдается сообщение: error: no matching function for call to ‘Array::Array(<brace-enclosed initializer list>)’.

В чем может быть проблема?

 

silart
()

Variadic function странно ведет себя с double

Форум — Development

День добрый! У меня была такая функция для форматированного вывода в строку:

std::string strprintf(const char* format, ...)
{
va_list argptr;
std::vector<char> buffer;

	va_start(argptr, format);

	std::size_t length = vsnprintf(NULL, 0, format, argptr)+1;
	buffer.resize(length, 0);

	vsnprintf(&buffer[0], buffer.size(), format, argptr);
	va_end(argptr);

return std::string(buffer.begin(), buffer.end() );
}
Все работало до тех пор пока не попробовал вывести переменную с плавающей точкой:
double pi = 3.14;
std::string pi_f = strprintf("f:pi=%f\n", pi);
Ны выходе получается нули, совсем не то, что ожидалось. Народ говорит что проблема связана с тем, что при передачи в "..." float преобразуется к double. Я сделал другую функцию:
template <typename... Args>
std::string strprintf(const char* format, Args&&... args)
{
std::vector<char> buffer;

	std::size_t length = snprintf(NULL, 0, format, std::forward<Args>(args)...)+1;
	buffer.resize(length, 0);
	snprintf(&buffer[0], buffer.size(), format, std::forward<Args>(args)...);

return std::string(buffer.begin(), buffer.end() );
}
Она хорошо работает. Но хочется еще понять как исправить первый вариант, чтобы float и double корректно выводились.

 

silart
()

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