For в project I am working on I need to have this commit in my kernel:
It's basically only в few lines of code. In the past I have always been provided with в suitable environment to использовал for projects, except this украдите this is в critical вирус in our project that needs this patch, and since it's in the kernel I have не разрабатывает on how to handle this.
Should I составил в new kernel with this patch in it? Хан I just повторно нравится those lines of code somewhere in the Linux kernel, or isn't there just в patcher that adds just those lines of code?
I haven't tried doing anything myself because I fear I will break the current kernel. Could anyone suggest the best course of action? I have been told on the Ubuntu IRC channel that I should post it on launchpad.net схвати в вирус доклад. The problem is is that if this takes longer than в week, some deadlines have to be altered and this is not wanted.
I am currently running the latest build of Вайли Вереуолф.
Патч является файлом различия между двумя версиями кода ядра. Зеленые строки, в которых + символы, существуют та, которая будет добавлена и красные строки с - символы являются тем, который будет удален.
можно поместить их в .patch файл и использовать команду патча для соединения каналом ее. Это должно помочь Вам использующий команду патча: http://www.thegeekstuff.com/2014/12/patch-command-examples/
необходимо добавить его в источник ядра и затем перекомпилировать ядро: http://www.cyberciti.biz/tips/compiling-linux-kernel-26.html
, Если Вы боитесь повреждения ядра, берет резервное копирование initrd и vmlinuz файлов. Когда это повреждается, можно использовать личинку для начальной загрузки в ту версию ядра. Если Вы, как предполагается, не выполняете ядро на сборке ПК, и это предназначено для целевого ПК, то Вы не должны делать, 'делают установку'.
В большинстве случаев и вероятно в Вашем случае необходимо будет создать пользовательское ядро. Некоторые модули могут быть созданы отдельно, но я боюсь не в этом случае.
Но создание ядра не настолько трудно. Справка Сообщества Ubuntu и Wiki, у каждого есть полезная статья, которая касается всех кроме приложения патча:
Можно сделать это этот путь и обратиться к вышеупомянутым ресурсам, если Вы застреваете где-нибудь (они имеют тенденцию быть более подробными):
Установите требуемые пакеты:
sudo apt-get install git build-essential fakeroot kernel-package libncurses5-dev libssl-dev
sudo apt-get build-dep linux-image-$(uname -r)
Вам, возможно, понадобятся некоторые другие пакеты. Я не помню полный список.
Клонируйте репозиторий исходного кода ядра Ubuntu:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-wily.git
Замена wily
с Вашей Ubuntu выпускают имя.
Перейдите в терминале к исходному каталогу.
cd ubuntu-wily
Найдите файл, необходимо изменить и сделать некоторый выпуск или применить патч.
Если патчи доступны как серия фиксаций Мерзавца как в этом случае, можно "избирательно подойти к выбору" их их идентификаторами (после выборки исходного репозитория):
git fetch git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git
git cherry-pick a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4
Иначе загрузите файл исправления и скажите Мерзавцу применять его (можно загрузить веб-браузером вместо wget
если Вы предпочитаете):
wget -O bluetooth-unpairing-fix.patch 'https://git.kernel.org/cgit/linux/kernel/git/bluetooth/bluetooth-next.git/patch/?id=a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4'
git am bluetooth-unpairing-fix.patch
Если файл исправления не находится в формате "почтового ящика" (т.е. он не был отправлен (правильно) списку рассылки Ядра), использование
git apply bluetooth-unpairing-fix.patch
вместо git am
.
Если патч не может быть применен из-за конфликтующих изменений, патч является несовместимым с текущей версией ядра. Можно попытаться "объединить" незначительные конфликты с инструментами Мерзавца, но обычно необходимо попытаться найти версию патча, который, как предполагается, работает с версией ядра.
Выполненный fakeroot debian/rules clean
Править debian/changelog
файл. Можно просто добавить к версии что-то для наблюдения различия с официальными ядрами.
Пример:
linux (4.2.0-17.21) wily; urgency=low
изменение в:
linux (4.2.0-17.21btpatch) wily; urgency=low
Вы будете видеть этот номер версии в debs и в Личинке также.
Создайте ядро
fakeroot debian/rules DEB_BUILD_OPTIONS=parallel=5 binary-headers binary-generic
parellel=5
для 4 ядер процессора или 4 CPU потока. Ваше число может отличаться. Это - количество ядер или потоков + 1.
Создание ядра может занять много времени – где угодно от 15 минут до нескольких часов в зависимости от производительности системы!
Вы получите deb-пакеты своего ядра, которое может быть установлено. Можно удалить его, если Вам не нравится что-то.