Анекдот о том, как я GRUB2.0 в BURG превращал или Самогон можно гнать даже из табурета

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

    Введение какое-то, что ли

    Какое-то время назад я долго заглядывался на BURG. В меню загрузки у меня стоял православный «консольный» GRUB 1.99 с рсх-ным (если не вру) самолетиком на фоне. Но как только я увидел гладкое, многопиксельное графическое меню BURG, я сразу его захотел. На том все и кончилось: для того конкретного дистрибутива Linux, которым я тогда пользовался, сборки не было, а попытка собрать из исходников несколько раз упала из-за все новых и новых неразрешенных зависимостей. Мне стало грустно и лень.

    Но вот совсем скоро вышел GRUB 2.0. Радости были полные штаны, ведь там тоже уже было красивое меню «скартинками», без всяких насадок в виде BURG. Как горный козел, я поскакал ставить обновку и «вышивать в ней перед зеркалом», предав идеи брутальных консольных мачо, смотрящих фильмы прямо из нее родимой (рисуя оверлей через fbdev). Но тут внезапно меня ждало огорчение. Почему-то я с самого начала прикипел душой к горизонтальным меню. Как на тех пошлых картинках из интернетов, где в рядок стояли какие-то убунты, макось и виндось. А новый блестящий граб предлагал только вертикальные, хоть и всех цветов и оттенков.

    На носу была какая-то там по счету сессия, времени особо не было. Тогда я стал пытаться городить костыли. Делал и так и этак, пытаясь обойтись только извращенством с настройками. Но не тут-то было, и в какой-то момент все-таки я скачал исходники grub2.0. Откровенного желания вот так с места бросаться вникать и модить только что выпущенный граб, исходники которого для меня на тот момент представляли лес средней дремучести, у меня не было.

    Собственно процесс

    Что может сделать гигант студенческой мысли в условиях ограниченного времени и неприкрытой лени? Я модифицировал один символ в исходниках grub2.0 и добавил немножко этой вашей смекалочки, что привело к желаемому результату.

    1. Изначально гигант студенческой мысли соорудил несколько картинок вот такого вида:
    Скрытый текст
    image
    image
    image
    image


    2. Пытаясь расположить их в вертикальном меню, без сопровождения текстом. Но меню имело ограничение: минимум три иконки показываются одновременно, остальные можно «прокрутить».

    3. Тогда он пошел в /home/Downloads/grub-2.00/grub-core/gfxmenu и открыл там файл gui_list.c. В оном файле была функция list_get_minimal_size, в каковой на девятой строке содержалась переменная int num_items = 3;
    Ну, и...
    В которой цифра 3 была заменена на 1.


    4. Profit!

    image

    PS Будет время — хочу все-таки полазить поподробнее… :)
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 7

      0
      Переключалось ведь только вверх-вниз, а не влево-вправо?
        0
        Да, осталось как раньше, но я скоро перестал обращать на это внимание.
        Думал со временем отредактировать как следует, чтобы изменить управление, в оригинальном грабе реакция на нажатие стрелки вправо — загрузка текущего пункта меню. Да и неплохо было бы, чтобы прогрессбар рисовался горизонтальный.
        0
        А анекдот где?
          0
          Лопата.
          Думаю, анекдот — то, что для «превращения GRUB 2.0 в BURG» (на деле — просто имитация эффекта) нужно поменять всего один символ в исходниках.
            0
            :) за серьезный опыт работы с исходниками граб это вряд ли можно было выдать, верно? Поэтому я назвал это анекдотом.
            Удивительно, что вы догадались, что это «просто имитация эффекта». Вроде я нигде об этом не писал!
            0
            Почитал Ваш пост про то, как Вас заказчик обидел — улыбнулся. Вот где действительно анекдот. :)
            0
            — А анекдот где?
            — Лопата.

            В изначальном значении слово «анекдот» — забавная или просто интересная история. За приколами это вам на башорг. :)

            Only users with full accounts can post comments. Log in, please.