Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-05-01 12:39:59

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

[solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

Hej,

Przeczytałem masę artykułów. Wiem, że teoretycznie się nie da. Że trzeba chrootować. Komp dla którego chce zrobić kernel, jest strasznie wolny. Kompilacja trwa cały dzień. Wydaje mi się, że mimo wszystko można zrobić paczki i potem je tylko zainstalować. Za pierwszym razem mi się udało i komp wstał, ale późniejsze próby kończyły się klęską (panika kernela). Może opiszę co i jak robiłem.

Najpierw generuje config na 32 poleceniem:

Kod:

make defconfig

później na 64 dodaje ten config to tych samych źródeł i:

Kod:

make ARCH=i386 menuconfig

Zaznaczam co mi potrzeba i:

Kod:

make-kpkg --cross-compile - --arch i386 kernel_image kernel_headers

No i wszystko gra. Problem w tym, że wynikowe paczki są dla amd64 (tego nie rozumiem dlaczego skoro podałem arch w poleceniu) (tu pytanie: Jak zrobić paczki dla i386?). No nic. Forsuje:

Kod:

dpkg --force-architecture -i linux-image*amd64.deb

Podkreślę, że mimo forsowania raz czy dwa razy udało mi się postawić kernel tylko nie pamiętam co takiego zrobiłem, że działał...

Miałem też próby zmieniania Makefile'a. Zmieniałem linijkę:

Kod:

CC              = $(CROSS_COMPILE)gcc

na

Kod:

CC              = $(CROSS_COMPILE)gcc -m32

ale też lipa. Być może problem jest configu: http://wklej.dug.net.pl/4144
Odznaczam w nim tylko żeby nie robił initrd. ext3 i ata jest na sztywno (tu pytanie: Czy trzeba mieć na sztywno ext2 mimo że się z niego nie korzysta przy kernelu bez init'a?)

Z góry dziękuję za pomoc.
Pozdrawiam

Ostatnio edytowany przez P@blo (2012-06-07 23:05:26)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#2  2012-05-01 16:00:25

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

Ten opis wygląda nieźle: http://sparlampe.wordpress.com/2011/01/07/cross-com … ng-make-kpkg/.

EDIT: A tutaj z make deb-pkg, wygląda jeszcze łatwiej: http://michael-prokop.at/blog/2011/07/12/creating-3 … environments/.

P@blo napisał(-a):

Najpierw generuje config na 32 poleceniem:

Kod:

make defconfig

Jesteś pewien, że to generuje konifig? Czasem nie kopiuje po prostu odpowiedniego dla danej architektury (w tym przypadku arch/x86/configs/i386_defconfig) jako .config? Nie żeby to miało jakieś większe znaczenie, ale jeśli tylko kopiuje to nie trzeba się bawić w przenoszenie z jednego kompa na drugi.

P@blo napisał(-a):

Czy trzeba mieć na sztywno ext2 mimo że się z niego nie korzysta przy kernelu bez init'a?

Ja nie mam i działa, zatem pewnie nie.

Offline

 

#3  2012-05-02 10:38:33

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

ArnVaker napisał(-a):

Jesteś pewien, że to generuje konifig? Czasem nie kopiuje po prostu odpowiedniego dla danej architektury (w tym przypadku arch/x86/configs/i386_defconfig) jako .config? Nie żeby to miało jakieś większe znaczenie, ale jeśli tylko kopiuje to nie trzeba się bawić w przenoszenie z jednego kompa na drugi.

Może i masz racje, ale popatrzyłem na różnice i są (niewielkie ale jednak). Więc może ścieżka którą podałeś jest bazą, ale jeszcze dopieszcza co nieco... ;)

Na razie już nie mam dostępu do kompa (na jakiś dłuższy czas) więc wątek niech zahibernuje. Dzięki za linki.


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#4  2012-05-03 19:58:48

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

Miałem jeszcze przez chwile ten komp więc się pobawiłem. make deb-pkg jest świetne. Robi to co chce (czyli paczki dla 32) tak więc gorąco polecam.

Mój problem jendak nie rozwiązał się do końca bo jest problem z konfigiem. Z initem działa, bez nie. Nie wiem czy w 32 jest tak samo jak w 64, stąd zwracam się do was o pomoc w znalezieniu błędu. Załączam ten sam konfig 'z' i 'bez' initrd.

Config z initem → działa
Config bez inita → nie działa

Oczywiście sterwonik ATA i ext3 jest na sztywno... Czy coś jeszcze powinno być o czym nie wiem?

Ostatnio edytowany przez P@blo (2012-06-07 15:47:06)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#5  2012-06-07 16:01:24

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

UUID-y wykluczyłeś? Tego posta jeszcze zobacz: http://forum.dug.net.pl/viewtopic.php?pid=192167#p192167.

Offline

 

#6  2012-06-07 16:17:22

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

Ale mówiąc o UUID-ach mówisz o fstab?


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#7  2012-06-07 16:18:09

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

O wpisie w konfigu GRUB-a. Jeśli tam są UUID-y, to bez initrd będzie panikował.

Offline

 

#8  2012-06-07 16:21:02

  P@blo - Nadworny matematyk

P@blo
Nadworny matematyk
Skąd: Wrocław v Jasło
Zarejestrowany: 2010-11-11

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

A widzisz... Zaraz sprawdzę...

EDIT:
Rzeczywiście to były UUID-y w grubie (w fstabie też zmieniłem). Działa wszystko jak należy :)

Dzięki bardzo.

Ostatnio edytowany przez P@blo (2012-06-07 23:04:59)


ThinkPadX220i
| Procesor: Intel(R) Core(TM) i3-2310M CPU @ 2.10GHz |
|  Debian: sid   |   Arch: amd64   |   Sound: alsa   |
| No DE | WM: DWM  |  DM: .bash_profile  |  BIOS+MBR |

Offline

 

#9  2012-06-08 11:11:49

  ArnVaker - Kapelusznik

ArnVaker
Kapelusznik
Skąd: Midgard
Zarejestrowany: 2009-05-06

Re: [solved]Kompilacja kernela dla 32 (i386) na 64 (amd64) - paczka deb

W fstabie mogą zostać jeśli tak Ci bardziej pasuje. Chodzi tylko o konfig bootloadera.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)