Не мог следовать за “Kernel/BuildYourOwnKernel”

Я в конечном счете пытаюсь заменить xhci_hcd с ehci_hcd так как я думаю, что это может вызывать проблему запуска. Чтобы сделать так, я должен смочь перекомпилировать ядро, по-видимому. Таким образом, я пытался смотреть на Wiki для выяснения, что сделать.

После выполнения sudo apt-get build-dep linux-image-$(uname -r), Я пытался выполнить "Изменение конфигурации" инструкции editconfigs команда, здесь был вывод:

linux-signed-4.15.0

➜  linux-signed-4.15.0 sudo fakeroot debian/rules editconfigs
dh editconfigs
dh: Unknown sequence editconfigs (choose from: binary binary-arch binary-indep build build-arch build-indep clean install install-arch install-indep)
debian/rules:35: recipe for target 'editconfigs' failed
make: *** [editconfigs] Error 2

Все другие команды, казалось, работали. Наконец, я попробовал совет здесь, который предложил делать

apt-get source linux-source

который, как OP говорит, дает "нежелательное" linux-meta папка. И конечно же это перестало работать на edit-configs:

linux-meta-4.15.0.36.38

    ➜  linux-meta-4.15.0.36.38 sudo fakeroot debian/rules editconfigs
    make: *** No rule to make target 'editconfigs'.  Stop.

OP предполагает вместо этого, что эта команда поместила его "на правильном пути":

sudo apt install linux-source

предоставление исходного файла linux-source-4.15.0 в /usr/src/. Однако это перестало работать на clean и editconfig команды оба:

clean

➜  linux-source-4.15.0 sudo fakeroot debian/rules clean 
sed: can't read Makefile: No such file or directory
sed: can't read Makefile: No such file or directory
sed: can't read Makefile: No such file or directory
for i in debian.master/control.stub.in; do                                      \
  new=`echo $i | sed 's/\.in$//'`;                                      \
  cat $i | sed -e 's/PKGVER/4.15.0/g'                              \
        -e 's/ABINUM/36/g'                                       \
        -e 's/SRCPKGNAME/linux/g'                             \
        -e 's/=HUMAN=/64 bit x86/g'                                    \
  > $new;                                                               \
done
flavours="debian.master/control.d/vars.generic debian.master/control.d/vars.generic-lpae debian.master/control.d/vars.lowlatency debian.master/control.d/vars.snapdragon";\
for i in $flavours; do                                                  \
  /bin/bash -e debian/scripts/control-create $i "true" |        \
        sed -e 's/PKGVER/4.15.0/g'                                  \
        -e 's/ABINUM/36/g'                                       \
        -e 's/SRCPKGNAME/linux/g'                             \
        -e 's/=HUMAN=/64 bit x86/g'                                    \
        >> debian.master/control.stub;                                          \
done
echo "# placebo control.stub for kernel-wedge flow change" >debian/control.stub
cp debian.master/control.stub debian/control
export KW_DEFCONFIG_DIR=debian.master/d-i && \
export KW_CONFIG_DIR=debian.master/d-i && \
LANG=C kernel-wedge gen-control 4.15.0-36 | \
        perl -f debian/scripts/misc/kernel-wedge-arch.pl amd64 \
        >>/usr/src/linux-source-4.15.0/debian/control
dh_testdir
dh_testroot
dh_clean
# d-i stuff
rm -rf debian.master/d-i-amd64
# Generated on the fly.
rm -f debian.master/d-i/firmware/amd64/kernel-image
# normal build junk
rm -rf debian.master/abi/4.15.0-36.39
rm -rf /usr/src/linux-source-4.15.0/debian/build
rm -f /usr/src/linux-source-4.15.0/debian/stamps/stamp-*
rm -rf debian.master/linux-*
# This gets rid of the d-i packages in control
cp -f debian.master/control.stub debian/control
cp debian.master/changelog debian/changelog
# Install the copyright information.
cp debian.master/copyright debian/copyright
# Install the retpoline extractor.
cp debian/scripts/retpoline-extract-one scripts/ubuntu-retpoline-extract-one
cp: cannot create regular file 'scripts/ubuntu-retpoline-extract-one': No such file or directory
debian/rules:110: recipe for target 'clean' failed
make: *** [clean] Error 1

editconfigs

➜  linux-source-4.15.0 sudo fakeroot debian/rules editconfigs
sed: can't read Makefile: No such file or directory
sed: can't read Makefile: No such file or directory
sed: can't read Makefile: No such file or directory
dh_testdir;
/bin/bash -e debian/scripts/misc/kernelconfig editconfigs
This does not appear to be the kernel source directory.
debian/rules.d/1-maintainer.mk:43: recipe for target 'editconfigs' failed
make: *** [editconfigs] Error 1

Вот моя версия Ubuntu:

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

Дальнейшие идеи?

4
задан 20 October 2018 в 03:45

2 ответа

Я использую 18.10 и встретился с подобными проблемами, запускающимися с sudo fakeroot debian/rules чистый (ubuntu-retpoline-extract-one': Никакой такой файл или каталог).

Что я должен был сделать для получения его работа:

  • После выполнения склонного - получают исходное изображение Linux - $ (uname-r):

    cd /usr/src/linux-source
    bunzip2 linux-source-4.18.0.tar.bz2
    tar xf linux-source-4.18.0.tar 
    mv linux-source-4.18.0/* . # if you don't do this you will get the "ubuntu-retpoline-extract-one no such file" error
    mkdir debian/stamps # otherwise build failure because touch command fails
    
  • Прежде, чем создать (fakeroot debian/rules двоичные заголовки...):

    apt install bison flex libelf-dev fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev libudev-dev pciutils-dev # some of these may have already been installed, and some may not even be needed.
    

После этого я мог успешно работать:

    sudo fakeroot debian/rules clean
    sudo fakeroot debian/rules binary-headers binary-generic binary-perarch
3
ответ дан 1 December 2019 в 09:59

К сведению, по состоянию на 20.10 список пакетов, которые необходимо установить перед сборкой, изменился. Обратите внимание, что pciutils-dev был заменен на libpci-dev. Также для установки требуется libiberty-dev.

Значит нужно сделать так:

sudo apt install bison flex libelf-dev fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge libncurses5 libncurses5-dev libelf-dev asciidoc binutils-dev libudev-dev libpci-dev libiberty-dev 
2
ответ дан 17 September 2020 в 14:45

Другие вопросы по тегам:

Похожие вопросы: