OSDev http://osdev.su/ |
|
Ubuntu Linux http://osdev.su/viewtopic.php?f=12&t=1460 |
Страница 2 из 2 |
Автор: | Himik [ 16 июн 2018, 16:24 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
* В 64-х битной версии Ubuntu 18.4 обнаружился установочный пакет Binutils для сборки 32-битных программ: Код: sudo apt install binutils-i686-linux-gnu Появился также и GCC Код: sudo apt install gcc-i686-linux-gnu sudo apt install g++-i686-linux-gnu Я попробовал компилировать свои программы с помощью этого g++-i686-linux-gnu, возникают ошибки. Пришлось его удалять и самому собирать GCC из исходников - ошибки пропали. * Открыть файловый менеджер с правами администратора - sudo nautilus |
Автор: | Himik [ 22 июн 2018, 23:10 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
Теперь у меня на жёстком диске разделы GPT, Windows и Ubuntu в режиме EFI. Чтобы иногда запускать системы с MBR разделов без EFI, понадобилось установить второй жёсткий диск, и загружаться конкретно с него, выбирая в BIOS-е этот диск горячей клавишей F12. Установить GRUB на второй диск с помощью Ubuntu оказалось нетрудно. - Загружаем в Ubuntu установочные файлы GRUB для режима i386 BIOS Код: sudo apt install grub-pc-bin Файлы загружаются в директорию /usr/lib/grub/i386-pcПотом готовим диск для установки. - Создаём новый раздел с атрибутом "Активный", значит загрузочный. - Примонтируем созданный раздел. - Создаём в нём пустую директорию boot, потом запускаем Код: sudo grub-install -v --target=i386-pc --boot-directory=/media/himik/EOS/boot /dev/sdb Параметр -v не обязателен, просто выводит на экран множество служебной информации./media/himik/EOS - это путь примонтированного раздела, а /dev/sdb - дисковое устройство. - Копируем файл настроек grub.cfg в папку boot\grub Важно, чтобы в имени дискового устройства небыло цифры на конце, типа sda1 или sdb2. Цифру из имени просто сотрите. В некоторых случаях, особенно при установке на внешние носители, флешки, установщику не нравится раздел диска и останавливается с ошибкой, тогда в строку добавляем параметр --force |
Автор: | Himik [ 23 июл 2018, 21:11 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
Переключение языка клавиатуры: Левый + Правый Shift, или Alt + Shift. Это не отображено в настройках клавиатуры, там программируется дополнительная клавиша переключения, а эти работают "железно". ... в версии 19.04 уже не работают. |
Автор: | SII [ 23 июл 2018, 23:57 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
Himik писал(а): Переключение языка клавиатуры: Левый + Правый Shift, или Alt + Shift. Это не отображено в настройках клавиатуры, там программируется дополнительная клавиша переключения, а эти работают "железно". Двумя шифтами -- ранняя официально русская DOS (в 4.хх точно был этот способ). Альт-Шифт -- по умолчанию в Винде. А Контрол-Шифт не позволяет (альтернативная в Винде; я, например, её использую -- удобней). |
Автор: | poly [ 24 июл 2018, 16:05 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
В современной Винде Альт-Шифт переключает между языками, а Контрол-Шифт между раскладками для одного языка. Например, между машинописью и ЯВЕРТЫ для русского, или между QWERTY и Двораком для английского. Виндовс(Супер)-Пробел - сквозной проход по всему списку раскладок и языков. |
Автор: | SII [ 24 июл 2018, 17:01 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
В современной Винде это настраивается. |
Автор: | Himik [ 22 окт 2018, 23:18 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
Есть способ, как запустив систему в VirtualBox, увидеть содержимое регистров процессора в любой точке программы. * В нужной точке программы делаем зацикливание, типа for(;;){} или asm hlt чтобы процессор здесь остановился. * Запускаем систему в VirtualBox, ждём пока программа дойдёт до точки останова. * Выключаем виртуальную машину. * На имени этой машины нажимаем правой кнопкой мыши, в контекстном меню открываем "Показать журнал". * Пролистываем журнал до раздела ****************** Guest state at power off for VCpu 0 ****************** |
Автор: | Himik [ 15 май 2020, 20:33 ] |
Заголовок сообщения: | Re: Ubuntu Linux |
Как компилировать 32-битный код в 64-битном Ubuntu и получить чистый код. В прошлый раз у меня не получалось собирать 32-битные модули с помощью штатного пакета, мешали разного рода ошибки компиляции и бинарный код с кучей лишнего мусора. Теперь для сборки всего проекта я могу использовать только готовые пакеты Ubuntu как говорится "из коробки", свои собирать не надо. Для языка C устанавливаем компилятор Код: sudo apt install gcc-i686-linux-gnu Для языка C++ устанавливаем компилятор Код: sudo apt install g++-i686-linux-gnu В параметрах компилятора нужно использовать набор дополнительных ключей. В дополнение к "общеизвестным" параметрам, добавляем Код: -fno-PIC (эти параметры полезны и для 64-битного кода)-fno-stack-clash-protection -fcf-protection=none В линковщике вместо ключа -Ttext=0x12345678 для указания адреса модуля, теперь указываем -Ttext-segment=0x12345678 Ключ --omagic минимизирует шаг выравнивания процедур и данных. |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |