LINUX.ORG.RU

Проблемы с уровнем яркости на Honor Magicbook 14 GLO-G561

 


9

3

Установил Ubuntu 22.04.3 LTS на указанный ноут. Сразу при запуске все хорошо - яркость регулируется и с кнопок, и из менюшки. Через некоторое время (минут 10) яркость сама по себе доводится до максимума или до минимума, после чего перестает работать одна или обе кнопки настройки яркости, при этом регулировка из менюшки работает. Иногда это событие повторяется. Один раз было, что яркость сама повысилась до максимума и менялась через менюшку, но сразу же восстанавливалась до максимума, будто была зажата кнопка, но прошло само через пару секунд (впоследствии кнопки так и не заработали). Кто знает, подскажите пожалуйста, в чем может быть дело.


Ответ на: комментарий от Dimez

Установлено 6.2.0-26-generic (не устанавливал ничего дополнительно)

  • апдейт: еще через время опять «зажалась» кнопка яркости вниз и отвалился тачпад, пришлось ребутаться через кнопку (при этом клава работала)
krigga
() автор топика
Ответ на: комментарий от Dimez

dmesg сразу после ребута (когда все еще хорошо - тачпад и кнопки яркости работают) https://pastebin.com/trnuULfV Проверил - куча atkbd сообщений появляются после каждого нажатия любой из кнопок яркости (но они пока что работают) Позже выложу еще dmesg когда что-нибудь сломается

Последний ли BIOS? Как это достоверно проверить?

krigga
() автор топика

Только что повысилась яркость на максимум и сломалась кнопка яркости вверх, в dmesg появилось только это

[ 1079.774836] Lockdown: systemd-logind: hibernation is restricted; see man kernel_lockdown.7

Обе кнопки как и раньше выдают atkbd сообщения, но яркость не поднимают

Пока писал это, моргнул индикатор яркости убунтовый, появился еще один такой же dmesg лог, и отвалилась вторая кнопка яркости

krigga
() автор топика

ноутбук 2023 года

попробуй загрузиться в live режиме с этого образа https://cdimage.ubuntu.com/ubuntu/daily-live/current/mantic-desktop-amd64.iso

это альфа-версия, для тех, кто до октября ждать не может или не хочет. То есть ты её просто запустишь и посмотришь dmesg, стало ли сильно лучше в плане поддержки твоего железа

d00fy ★★★
()
Последнее исправление: d00fy (всего исправлений: 1)
Ответ на: комментарий от d00fy

Уже поставил mainline 6.4.11 версию, на ней никаких сообщений в dmesg не появляется, но поломки все так же происходят

Но спасибо за наводку, сейчас попробую

krigga
() автор топика
Ответ на: комментарий от d00fy

BIOS был версии 1.04, через винду обновил до 1.08, которая вроде как последняя, не помогло

Обнаружил, что в системную консоль (не знаю правильного термина, туда можно попасть в убунте через ctrl+alt+f3) спамится ^@ постоянно, когда баг активен

Нашел схожие симптомы тут https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1063658

Но у меня вроде как нет лишних девайсов

На всякий случай xinput --list --long https://pastebin.com/jPhpJgzR

krigga
() автор топика
Ответ на: комментарий от krigga

Как это достоверно проверить?

HONOR GLO-GXXX/GLO-GXXX-PCB, BIOS 1.04 03/17/2023

Установлена версия 1.04 от 17 марта 2023, скорее всего, не последняя. Как проверить - непонятно, у хуавеев всё сложно с этим, я так и не нашёл твоей модели на сайте у хуавея в строке поиска.

Dimez ★★★★★
()

Возможно я обнаружил проблему и предполагаю решение

В cat /proc/bus/input/devices есть

I: Bus=0018 Vendor=27c6 Product=01e0 Version=0100
N: Name="GXTP7863:00 27C6:01E0 UNKNOWN"
P: Phys=i2c-GXTP7863:00
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-GXTP7863:00/0018:27C6:01E0.0001/input/input11
U: Uniq=
H: Handlers=kbd event7 
B: PROP=0
B: EV=100013
B: KEY=100000300000000 0 0 0
B: MSC=10

cat /dev/input/event7 дает постоянный спам данными, даже если я вообще не трогаю ноут

Тут https://unix.stackexchange.com/questions/531866/how-can-i-disable-an-input-device нашел как отключить устройство (пока временно для проверки сделал через evtest)

Как результат - спам ^@ из ctrl+alt+f3 пропал, баг пока больше не повторяется

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

Планирую так же в винде найти это устройство и посмотреть что это такое

krigga
() автор топика

В общем проблема вроде решена

cat /proc/bus/input/devices имеет следующие девайсы (помимо прочих)

I: Bus=0018 Vendor=27c6 Product=01e0 Version=0100
N: Name="GXTP7863:00 27C6:01E0 Touchpad"
P: Phys=i2c-GXTP7863:00
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-GXTP7863:00/0018:27C6:01E0.0001/input/input10
U: Uniq=
H: Handlers=mouse1 event6 
B: PROP=5
B: EV=1b
B: KEY=e520 10000 0 0 0 0
B: ABS=2e0800000000003
B: MSC=20

I: Bus=0018 Vendor=27c6 Product=01e0 Version=0100
N: Name="GXTP7863:00 27C6:01E0 UNKNOWN"
P: Phys=i2c-GXTP7863:00
S: Sysfs=/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-1/i2c-GXTP7863:00/0018:27C6:01E0.0001/input/input11
U: Uniq=
H: Handlers=kbd event7 
B: PROP=0
B: EV=100013
B: KEY=100000300000000 0 0 0
B: MSC=10

Как видно, тут и настоящий тачпад, и что-то еще, что не определяется, но имеет хэндлер kbd

При этом в xinput я этого девайса не видел, хотя и не очень искал

Решил так - через udevadm посмотрел все атрибуты, увидел разницу в ATTRS{properties} - у реального тача он 5, у неизвестного девайса 0, соответственно добавил udev rules

ACTION=="add", ATTRS{id/bustype}=="0018", ATTRS{id/product}=="01e0", ATTRS{id/vendor}=="27c6", ATTRS{id/version}=="0100", ATTRS{properties}=="0", ATTR{../inhibited}="1"

../inhibited потому что это свойство на родительском девайсе относительно непосредственно эвентового, конечного девайса, который видит udev

Через винду быстро не получилось найти что это такое, но мне не так важно, поэтому я забил

krigga
() автор топика
Ответ на: комментарий от krigga

Был бы очень тебе признателен, если бы ты написал что-то типа «туториала» как ты решил проблему, ну т.е. как добавлял udev rules, куда, и т.д. С убунтой не очень дружу, поэтому сказал бы тебе огромное спасибо, задрала уже эта проблема с яркостью :)

callmehamster
()
7 октября 2023 г.

Здравствуйте.

Рассматриваю данную модель ноутбука (HONOR MagicBook 14 2023 GLO-G561) к покупке, но переживаю по поводу того, как на нём приживется Ubuntu. Можете рассказать как сейчас обстоят дела с дистрибутивами linux на данной машине? Остались ли ошибки? И как ноутбук в целом себя показывает при работе?

ssshmr
()
Ответ на: комментарий от ssshmr

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

krigga
() автор топика
25 ноября 2023 г.
Ответ на: комментарий от krigga

Ух, ты! У меня такая же проблема на Honor MagicBook 14. Произвольно падает/растет яркость и перестает реагировать на клавиатуру в Debian12. Помогает наведение мыши на панель настроек и нажатие пробела, после чего можно выставить нормальную яркость до следующего произвольного блока. К сожалению, я обычный пользователь, ничего не понял в отношении метда устранения проблемы. Был бы признателен за помощь-консультацию.

maxlos
()
13 июля 2024 г.
Ответ на: комментарий от krigga

Зарегистрировался на ЛОРе только чтобы сказать спасибо. Абсолютно та же строка rule подходит для ноута

Honor MagicBook X16 Plus (Ryzen 7 8845HS)

  • точно такое же UNKNOWN (и param там тоже 0) устройство с флудом.
student975
()
15 сентября 2024 г.
Ответ на: комментарий от krigga

Огромное спасибо за подсказку про устройство с флудом. Тоже заметил, что проблема яркости проявляется при работе на тачпаде. Мне данный способ не помог (ноутбук honor x14 plus), а полностью заблокировал работу тачпада и клавиатуры. В общем решил проблему почти похожим образом.

На вашей модели ноутбука могут отличаться устройства input и events. В моем случае было:

cat /proc/bus/input/devices

I: Bus=0018 Vendor=27c6 Product=01e0 Version=0100
N: Name="GXTP7863:00 27C6:01E0 UNKNOWN"
P: Phys=i2c-GXTP7863:00
S: Sysfs=/devices/platform/AMDI0010:00/i2c-0/i2c-GXTP7863:00/0018:27C6:01E0.0001/input/input10
U: Uniq=
H: Handlers=kbd event6 
B: PROP=0

Добавляем инпуту inhibited, но не через udev rules (путь можно скопировать из аттрибута Sysfs, добавив префикс /sys/

sudo echo 1 > /sys/devices/platform/AMDI0010:00/i2c-0/i2c-GXTP7863:00/0018:27C6:01E0.0001/input/input10/inhibited

Может быть кому-то поможет.

gojja
()
10 декабря 2024 г.
11 февраля 2025 г.
Ответ на: комментарий от gojja

в общем еще небольшое дополнение: udev-rules работают, но у кого так же как и у меня они блочат работу клавиатуры и тачпада - посмотрите, является ли UNKNOWN девайс дочерним\родительским. Поможет .rules как и у ТС, но установите конкретно этому девайсу ATTR{inhibited}="1" , а не родительскому.

gojja
()
5 апреля 2025 г.
21 июня 2025 г.
Ответ на: комментарий от gojja

Поскольку на моем на ноуте (honor magicbook x16 BRI-721) с archlinux на борту путь к вышеупомянутому кривому устройству меняется при каждой перезагрузке, я набросал на помощи дипсика скрипт, который сам определяет путь и блокирует.

Для новичков типа меня инструкция :)

  1. В домашней папке создаем файл touchscreen-inhibit.sh
  2. и копируем в него этот скрипт:
#!/bin/bash

# Функция для поиска устройства и получения его sysfs пути
find_touch_device() {
    local input_devices_file="/proc/bus/input/devices"
    local device_name="GXTP7863"
    local unknown_marker="UNKNOWN"
    
    # Ищем блок устройства с нужным именем
    while IFS= read -r line; do
        if [[ $line == N:*"$device_name"* && $line == *"$unknown_marker"* ]]; then
            # Нашли устройство, теперь ищем его sysfs path
            local in_device_block=1
            local sysfs_path=""
            
            while IFS= read -r device_line && [[ $in_device_block -eq 1 ]]; do
                if [[ -z $device_line ]]; then
                    # Пустая строка - конец блока устройства
                    in_device_block=0
                elif [[ $device_line == S:* ]]; then
                    # Извлекаем путь из строки S: Sysfs=...
                    sysfs_path=${device_line#S: Sysfs=}
                fi
            done
            
            if [[ -n $sysfs_path ]]; then
                echo "$sysfs_path"
                return 0
            fi
        fi
    done < "$input_devices_file"
    
    return 1
}

# Основной скрипт
echo "Поиск устройства touchscreen..."
sysfs_path=$(find_touch_device)

if [[ -z $sysfs_path ]]; then
    echo "Ошибка: устройство touchscreen не найдено"
    echo "Искал устройство с 'GXTP7863' и 'UNKNOWN' в названии"
    exit 1
fi

# Формируем полный путь к файлу inhibited
inhibit_path="/sys${sysfs_path}/inhibited"
echo "Попытка использовать путь: $inhibit_path"

if [[ ! -f $inhibit_path ]]; then
    echo "Ошибка: файл inhibited не найден по указанному пути"
    echo "Проверяем альтернативные пути..."
    
    # Попробуем заменить часть пути (иногда отличается номер в конце)
    alternative_path=$(echo "$inhibit_path" | sed 's/\.000[0-9]\+/.0001/')
    
    if [[ -f "$alternative_path" ]]; then
        inhibit_path="$alternative_path"
        echo "Найден альтернативный путь: $inhibit_path"
    else
        echo "Ошибка: файл inhibited не найден ни по одному из путей"
        echo "Проверьте вручную правильный путь к устройству"
        exit 1
    fi
fi

echo "Найдено устройство по пути: $inhibit_path"
echo "Записываем 1 в $inhibit_path..."
echo 1 | sudo tee "$inhibit_path" > /dev/null

if [[ $? -eq 0 ]]; then
    echo "Успешно! Touchscreen заблокирован."
else
    echo "Ошибка при записи в файл inhibited"
    exit 1
fi
  1. После перезагрузке (и глюках с яркостью и прочим) запускаем скрипт: ./touchscreen-inhibit.sh

При желании можно запихать запуск в автозагрузку в виде сервиса systemd

  1. Создайте файл сервиса:
sudo nano /etc/systemd/system/touchscreen-inhibit.service
  1. Вставьте следующее содержимое (путь укажите правильный):
[Unit]
Description=Disable touchscreen device
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/touchscreen-inhibit.sh

[Install]
WantedBy=multi-user.target
  1. Переместите ваш скрипт в /usr/local/bin/ и сделайте исполняемым:
sudo mv touchscreen_inhibit.sh /usr/local/bin/touchscreen-inhibit.sh
sudo chmod +x /usr/local/bin/touchscreen-inhibit.sh
smwed
()
Последнее исправление: smwed (всего исправлений: 5)