OS 5SE осень 2017 — различия между версиями

Материал из SEWiki
Перейти к: навигация, поиск
(Пофикшены запятые и расширения)
Строка 53: Строка 53:
 
     set auto-load safe-path /  
 
     set auto-load safe-path /  
  
И так и так работает.
+
И так, и так работает.
  
 
----
 
----
  
Если у вас проблемы с дублированием букв внутри <code>QEMU</code>, не паникуйте и просто проверьте команды <code>help</code> и <code>kerninfo</code> - скорее всего удваивание букв будет проигнорировано и команды выполнятся.
+
Если у вас проблемы с дублированием букв внутри <code>QEMU</code>, не паникуйте - просто проверьте команды <code>help</code> и <code>kerninfo</code> - скорее всего удваивание букв будет проигнорировано, и команды выполнятся.
  
Для выхода их <code>QEMU</code> используюйте сочетание клавиш <code>ctrl-a x</code>.
+
Для выхода из <code>QEMU</code> используюйте сочетание клавиш <code>ctrl-a x</code>.
  
 
----
 
----
Строка 86: Строка 86:
  
 
     cd solutions/${вставь_свою_фамилию}/lab1
 
     cd solutions/${вставь_свою_фамилию}/lab1
     patch < your_patch.txt
+
     patch < your_patch_file
  
Скорее всего программа не поймет, где именно лежат ваши измененные файлы, и попросит указать пути к ним. Но это всяко лучше чем руками копировать все это.
+
Скорее всего, программа не поймет, где именно лежат ваши измененные файлы, и попросит указать пути к ним. Но это всяко лучше, чем руками копировать все это.
 
</div>
 
</div>
 
</div>
 
</div>

Версия 01:50, 6 октября 2017

Преподаватель: Кринкин Кирилл Владимирович

Контакты: os-au@osll.ru




Как запустить vagrant, qemu, и запатчить решение

   sudo vagrant up --provider=docker
   sudo vagrant ssh default

Содержимое conf/env.mk

   QEMU=/usr/bin/qemu-system-i386
   QEMUEXTRA=-curses

Параметр QEMUEXTRA можно не ставить (и так даже лучше); вместо этого нужно запускать QEMU с помощью make qemu-nox - тогда QEMU запустится прямо в вашей консоли и вы не будете страдать.


Если вам не хочется потом каждый раз удалять переменную QEMUEXTRA из гит-диффа, можете создать линку на исполняемый файл под именем qemu:

   sudo ln /usr/bin/qemu-system-i386 /usr/bin/qemu

После этого все будет находиться.


При проблемах с gdb (типа warning: File "/home/vagrant/lab/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load:/vagrant/lab/.gdbinit".) действовать так, как он укажет: добавить в файл /home/vargant/.gdbinit одну из двух строк:

   add-auto-load-safe-path /home/vagrant/lab/.gdbinit  
   set auto-load safe-path / 

И так, и так работает.


Если у вас проблемы с дублированием букв внутри QEMU, не паникуйте - просто проверьте команды help и kerninfo - скорее всего удваивание букв будет проигнорировано, и команды выполнятся.

Для выхода из QEMU используюйте сочетание клавиш ctrl-a x.


Для создания файла с патчем работает следующая схема:

   sudo touch patch
   sudo chmod a+rw patch
   git diff > patch

Совы не то, чем кажутся или The desc field contains the line number and the value contains the code address for the start of that source line: http://www.sourceware.org/gdb/onlinedocs/stabs.html#Line-Numbers


При отправке патчей проверять сначала на своих репозиториях и следить за тем, чтобы концы строк были не ос-специфичными (типа \r\n на винде). С такими различиями патчи не применяются и падают с ошибкой

Можно избежать проблемы с концами строк, если трансферить патч следующим образом:

   vagrant ssh -c  "cat /home/vagrant/lab/patch" | dos2unix > patch

Если вам лень вручную переносить изменения из виртуальной машины в файлы в вашем форкнутом репозитории, можете воспользоваться утилитой patch:

   cd solutions/${вставь_свою_фамилию}/lab1
   patch < your_patch_file

Скорее всего, программа не поймет, где именно лежат ваши измененные файлы, и попросит указать пути к ним. Но это всяко лучше, чем руками копировать все это.