Как известно в нетбуках EeePC 1000 и им подобным используется чипсет i915, максимальное разрешение матрицы такого нетбука 1024x600. По умолчанию GRUB не умеет работать с таким разрешением, но ситуацию можно исправить, для этого существует специальный модуль GRUB915resolution.mod, с ним и будем работать. Чтобы установить разрешение экрана в меню GRUB1024x600 на EeePC 1000 и им подобным, выполняем следующее:

Открываем файл /etc/grub.d/00_header:

sudo mcedit /etc/grub.d/00_header

Находим кусок кода:

    cat << EOF
if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
  set gfxmode=${GRUB_GFXMODE}
  load_video
  insmod gfxterm
EOF

И приводим его к такому виду:

    cat << EOF
if loadfont `make_system_path_relative_to_its_root "${GRUB_FONT_PATH}"` ; then
  # Fix resolution for EeePC: BEGIN
  insmod 915resolution
  915resolution 5c 1024 600
  # Fix resolution for EeePC: END
  set gfxmode=${GRUB_GFXMODE}
  load_video
  insmod gfxterm
EOF

Затем нужно обновить конфигурацию GRUB'a командой:

update-grub

После проделанных манипуляций меню GRUB'а будет иметь разрешение 1024x600.

Если просто загружать модуль 915resolution.mod, то разрешение не будет установлено, так как модуль будет просто загружен, а вот команда GRUB915resolution 5c 1024 600 выполнена не будет, а значит и разрешение не будет установлено, хотя оно станет доступным для ручной установки из командной строки GRUB.

Способ с загрузкой модуля через конфиг НЕ подходит:

GRUB_PRELOAD_MODULES="915resolution"

Бонус!

Теперь самое время установить фоновую картинку в меню. Создаем картинку my_image.png размером 1024x600 и сохраняем ее в домашнем каталоге.

Затем в терминале выполняем команды:

sudo mkdir -p "/usr/share/images/desktop-base/"
sudo cp my_image.png "/usr/share/images/desktop-base/desktop-grub.png"

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

P.S. путь до картинки подсмотрел командой:

cat /etc/grub.d/05_debian_theme | grep '.png' | grep 'usr'
if set_background_image "/usr/share/images/desktop-base/desktop-grub.png"; then

Или можно воспользоваться более человечным способом: Добавляем в файл /etc/default/grub:

# Grub Background
GRUB_BACKGROUND=/путь/до/картинки

P.S. Данный способ подошел и для ноутбука HP Compaq 6710b с разрешением 1280x800 и графическим адаптером GM965/GL960

Про /etc/grub.d/40_custom знаю, но вот беда, как пишут тут [1] у меня не заработало. Скорей всего потому, что все необходимые модули для работы видео в GRUB были загружены прежде (как раз то место, где я добавлял строки в /etc/grub.d/00_head), чем сработал скрипт /etc/grub.d/40_custom, т.к. строки из него добавляются в самом конце grub.cfg. Поэтому мой метод наиболее предпочтителен, но при обновлении скрипта /etc/grub.d/00_head потребуется вновь его отредактировать.


Ссылки по теме:

  1. AspireOne/AO751h

Comments

comments powered by Disqus