Skocz do zawartości
Przemek Jagielski

Budowanie paczki z kernelem

Rekomendowane odpowiedzi

Cześć. 

 

Od ostatnich kilku wersji kernela, spotykam się z problemem w trakcie budowania paczki. Cały proces przejdzie bez problemu, nie występują po drodze żadne errory. W momencie, kiedy tworzona jest już paczka bezpośrednio, całość się wykrzacza z takimi błędami:

Undefined subroutine &main::debarch_to_cpuattrs called at /usr/bin/dpkg-architecture line 248.
dpkg-buildpackage: error: dpkg-architecture subprocess returned exit status 255

Ktoś się z tym ostatnio spotkał i wie o co może chodzić? 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Używasz make-kpkg czy make deb-pkg? Którego branch'a dotyczy problem?

Pogrzebałem w tym perlowym dpkg-buildpackage i widzę jedno:
 

# Proceed to compute the target variables if needed.

$v{DEB_TARGET_ARCH} = $req_target_arch || $req_host_arch || get_raw_host_arch()
    if (action_needs(DEB_TARGET));
($abi, $v{DEB_TARGET_ARCH_OS}, $v{DEB_TARGET_ARCH_CPU}) = debarch_to_debtriplet($v{DEB_TARGET_ARCH})
    if (action_needs(DEB_TARGET | DEB_ARCH_INFO));
($v{DEB_TARGET_ARCH_BITS}, $v{DEB_TARGET_ARCH_ENDIAN}) = debarch_to_cpuattrs($v{DEB_TARGET_ARCH})
    if (action_needs(DEB_TARGET | DEB_ARCH_ATTR));

zatem musisz pokazać w jaki sposób kompilujesz jajko i jakich argumentów przy make używasz no i na jakim konkretnie distro o jakiej architekturze to kompilujesz (bo rozumiem że to nie cross-compile ;) ).

Edytowane przez Spoofy

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Problem solved - nie używamy make-kpkg bo jest to deprecated i to mocno - nie przeczytałeś dokumentacji ;)
 

Użyj make deb-pkg. Wycinek z mojego skryptu, przedstawiający różnice składni oraz notatki do zmiennych ;) :

# make-kpkg - make deb-pkg
# fakeroot - KBUILD_PKG_ROOTCMD
# CONCURRENCY_LEVEL=10 - make -j10
# KPKG_MAINTAINER - DEBFULLNAME
# KPKG_EMAIL - DEBEMAIL
# --append-to-version - EXTRAVERSION
# --revision - KDEB_PKGVERSION
# --initrd - .config > CONFIG_BLK_DEV_INITRD=y
#+ .config, CONFIG_DEBUG_INFO=n - INSTALL_MOD_STRIP=0

	make-kpkg clean && \
	time fakeroot make-kpkg --initrd kernel-image kernel-headers --append-to-version=-main --revision=$current_date

	make clean && \
	time make -j${CONCURRENCY_LEVEL} LOCALVERSION=-main KDEB_PKGVERSION=$current_date KBUILD_PKG_ROOTCMD=fakeroot deb-pkg

 

  • Lubię 1
  • Super! 2

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dobra, wracam do tematu bo znalazła się chwila wolna. Serwer ten sam, sposób kompilacji zasugerowany wyżej, skutkuje tym samym, tj: 

make deb-pkg -j 8
make clean
/bin/sh ./scripts/package/mkdebian
  TAR     linux-4.20.0-2.3.2.tar.gz
origversion=$(dpkg-parsechangelog -SVersion |sed 's/-[^-]*$//');\
	mv linux-4.20.0-2.3.2.tar.gz ../linux-4.20.0-2.3.2_${origversion}.orig.tar.gz
dpkg-buildpackage -r"fakeroot -u" -a$(cat debian/arch) -i.git -us -uc
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: info: source package linux-4.20.0-2.3.2
dpkg-buildpackage: info: source version 4.20.0-2.3.2-1
dpkg-buildpackage: info: source distribution stretch
dpkg-buildpackage: info: source changed by root <root@node1-pl.jagielski.ovh>
Undefined subroutine &main::debarch_to_cpuattrs called at /usr/bin/dpkg-architecture line 248.
dpkg-buildpackage: error: dpkg-architecture subprocess returned exit status 255
scripts/package/Makefile:71: recipe for target 'deb-pkg' failed
make[1]: *** [deb-pkg] Error 255
Makefile:1397: recipe for target 'deb-pkg' failed
make: *** [deb-pkg] Error 2

Na innym serwerze, też z Debianem, powyższy sposób przechodzi bez zająknięcia. W czym może być jeszcze rzecz? 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

a na pewno masz wszystkie potrzebne paczki?

Edytowane przez Spoofy

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

 

Undefined subroutine &main::debarch_to_cpuattrs called at /usr/bin/dpkg-architecture line 248.

To występuje po wpisaniu. Paczki wszystkie na bank zainstalowane. 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Nic nie dało. Ciągle ten sam błąd. Problem pojawia się tylko na tym konkretnym serwerze. Na każdym innym, gdzie patrzyłem (różnice jedynie w sprzęcie), problem nie występuje. 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dokładnie ta sama wersja OS'a, paczek pomiędzy tymi maszynami? O jakiej różnicy w sprzęcie mówisz?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Procesor, ilość/producent ramu, płyta główna, dyski. Architektura ta sama (x64). Ta sama wersja OSa, te same paczki poinstalowane. 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×

Powiadomienie o plikach cookie

Korzystając z forum, wyrażasz zgodę na: Warunki użytkowania, Regulamin, Polityka prywatności.