Sebastian BiaĹy
Guest
Sun Nov 11, 2012 11:55 pm
Noszę się z napisaniem bootloadera zgodnie z pomysłem podsunietym na
grupie: wykorzystując jądro linuxa do załadowania innego jądra.
Ponieważ mój bootolader chciałbym możliwe napisać samodzielnie od
kompletnego 0 to potrzebuje sandbox w którym mogę go testować.
Chciałbym sobie zrobić sandbox używając QEMU i emulując ARM.
Mój hardware nie obsługuje Thumb2 a jedynie Thumb lub normalny ARM.
Teraz pytanie: Jakie jądro (do jakiego urządzenia) powinienem wybrać aby:
a) odpalało się pod QEmu
b) nie uzywało Thumb2
c) miało support przynajmniej dla urządzeń blokowych i sieci w QEmu.
Przypuszczam że jakieś łatwo dostepny na rynku mały zestaw embedded
będzie miał stosowane patche na jądro w celu emulacji. Czy ktoś móglby
mi wskazać palcem czym się zainteresować? Ewentualnie: może waniljowe
jądro obsługuje jakiś hardware ktory da się zaemulować QEmu?
ZeNek
Guest
Mon Nov 12, 2012 12:24 am
W dniu 2012-11-11 23:55, Sebastian Biały pisze:
Quote:
Noszę się z napisaniem bootloadera zgodnie z pomysłem podsunietym na
grupie: wykorzystując jądro linuxa do załadowania innego jądra.
Ponieważ mój bootolader chciałbym możliwe napisać samodzielnie od
kompletnego 0 to potrzebuje sandbox w którym mogę go testować.
Chciałbym sobie zrobić sandbox używając QEMU i emulując ARM.
Mój hardware nie obsługuje Thumb2 a jedynie Thumb lub normalny ARM.
Teraz pytanie: Jakie jądro (do jakiego urządzenia) powinienem wybrać aby:
a) odpalało się pod QEmu
b) nie uzywało Thumb2
c) miało support przynajmniej dla urządzeń blokowych i sieci w QEmu.
Przypuszczam że jakieś łatwo dostepny na rynku mały zestaw embedded
będzie miał stosowane patche na jądro w celu emulacji. Czy ktoś móglby
mi wskazać palcem czym się zainteresować? Ewentualnie: może waniljowe
jądro obsługuje jakiś hardware ktory da się zaemulować QEmu?
A ty dalej rzezbisz w gownie. Uboot Uboot i jeszcze raz uboot ma
wszystko czego potrzebujesz.
Tomasz M.
Guest
Mon Nov 12, 2012 12:35 am
Sebastian Biały napisal 2012-11-11 23:55:
Quote:
Noszę się z napisaniem bootloadera zgodnie z pomysłem podsunietym na
grupie: wykorzystując jądro linuxa do załadowania innego jądra.
Ponieważ mój bootolader chciałbym możliwe napisać samodzielnie od
kompletnego 0 to potrzebuje sandbox w którym mogę go testować.
Chciałbym sobie zrobić sandbox używając QEMU i emulując ARM.
Trochę poteoretyzuję, bo nigdy tego nie robiłem. Prawdziwa platforma
sprzętowa jakoś wydawała się być wygodniejszą.
Quote:
Mój hardware nie obsługuje Thumb2 a jedynie Thumb lub normalny ARM.
Opcja THUMB2_KERNEL jest jako "experimental" i domyślnie wyłączona -
zgaduję, że nie powinno być z tym punktem problemu.
Quote:
Teraz pytanie: Jakie jądro (do jakiego urządzenia) powinienem wybrać aby:
a) odpalało się pod QEmu
Kilka różnych platform tu wymieniają:
http://wiki.embeddednirvana.org/ARM_Emulation_Using_QEMU
Wygląda na to, że standardowy kernel powinien obsługiwać takie Versatile
PB. Po uruchomieniu na kernelu 3.4.16 "make ARCH=arm menuconfig" w
System Type widać, że jest dostępna ta platforma.
Quote:
b) nie uzywało Thumb2
to chyba nie problem
Quote:
c) miało support przynajmniej dla urządzeń blokowych i sieci w QEmu.
Wspomniane wyżej Versatile PB ma dostępny ethernet, grafikę i kontroler
SCSI.
Quote:
Przypuszczam że jakieś łatwo dostepny na rynku mały zestaw embedded
będzie miał stosowane patche na jądro w celu emulacji. Czy ktoś móglby
mi wskazać palcem czym się zainteresować? Ewentualnie: może waniljowe
jądro obsługuje jakiś hardware ktory da się zaemulować QEmu?
Może waniliowe wystarczy.
--
TM
AK
Guest
Mon Nov 12, 2012 9:07 pm
W dniu 2012-11-11 23:55, Sebastian Biały pisze:
Quote:
Noszę się z napisaniem bootloadera zgodnie z pomysłem podsunietym na
grupie: wykorzystując jądro linuxa do załadowania innego jądra.
A może to:
http://barebox.org/ się nada do Twoich potrzeb ?
Pozdr
AK
Sebastian BiaĹy
Guest
Mon Nov 12, 2012 9:35 pm
On 2012-11-12 21:07, AK wrote:
Quote:
Problemem wszystkich booloaderow nie opartych o jądro linuxa jest
nietypowość mojego hardware. Dostepny w chinach, dokumentacja po
chińsku, strony na kóre trzeba się logowac po chińsku żeby poczytać
chińskie opisy itd. Jedyne jądro jakie mam z działajacym (a i tak nie do
końca) hardware to jakieś wczesne 2.6. U-boot zaś jest, ale nie ma
driverów do czegokolwiek poza NAND. Efektem czego wydaje mi się że
najłatwiej będzie jednak zmusić jądro do pracy jako bootloader. Własnie
kompiluje qemu i zobaczymy ...
A co do dopisania tego kodu do u-boota to jedno spojrzenie na kod uboota
aby mieć pewność że jest wystarczająco obleśny aby mi się odechciało.
ZeNek
Guest
Mon Nov 12, 2012 9:54 pm
W dniu 2012-11-12 21:35, Sebastian Biały pisze:
Quote:
On 2012-11-12 21:07, AK wrote:
A może to:
http://barebox.org/ się nada do Twoich potrzeb ?
Problemem wszystkich booloaderow nie opartych o jądro linuxa jest
nietypowość mojego hardware. Dostepny w chinach, dokumentacja po
chińsku, strony na kóre trzeba się logowac po chińsku żeby poczytać
chińskie opisy itd. Jedyne jądro jakie mam z działajacym (a i tak nie do
końca) hardware to jakieś wczesne 2.6. U-boot zaś jest, ale nie ma
driverów do czegokolwiek poza NAND. Efektem czego wydaje mi się że
najłatwiej będzie jednak zmusić jądro do pracy jako bootloader. Własnie
kompiluje qemu i zobaczymy ...
A co do dopisania tego kodu do u-boota to jedno spojrzenie na kod uboota
aby mieć pewność że jest wystarczająco obleśny aby mi się odechciało.
Bo uboot jest tylko po to zeby uruchomic kernel jakie ty chcesz drivery
do czego? Uboot ma zobaczyc tylko cos na czym jest kernel i tu sie jego
rola konczy.
Sebastian BiaĹy
Guest
Tue Nov 20, 2012 6:32 pm
On 2012-11-11 23:55, Sebastian Biały wrote:
Quote:
wykorzystując jądro linuxa do załadowania innego jądra.
Melduje że zadanie wykonane, jądro linuxa laduje inne jądro linuxa w
posób całkowicie kontrolowany z poziomu basha (w qemu i na prawdziwym
cpu). Jeśli by komus przyszedł do głowy równie głupi pomysł to służę pomocą.
AK
Guest
Tue Nov 20, 2012 6:39 pm
W dniu 2012-11-20 18:32, Sebastian Biały pisze:
Quote:
Melduje że zadanie wykonane, jądro linuxa laduje inne jądro linuxa w
posób całkowicie kontrolowany z poziomu basha (w qemu i na prawdziwym
cpu). Jeśli by komus przyszedł do głowy równie głupi pomysł to służę
pomocą.
A co laduje to pierwsze jadro ?
Pozdr
AK
Sebastian BiaĹy
Guest
Tue Nov 20, 2012 6:40 pm
On 2012-11-20 18:39, AK wrote:
Quote:
A co laduje to pierwsze jadro ?
uboot, a jadro 1 we flashu.
Bool
Guest
Tue Nov 20, 2012 6:51 pm
W dniu 2012-11-20 18:32, Sebastian Biały pisze:
Quote:
jądro linuxa laduje inne jądro linuxa
Nasuwa się fundamentalne pytanie. Po co dwa razy ładować jądro Linuxa? Dlaczego U-boot nie może
ładować od razu tego drugiego?
Sebastian BiaĹy
Guest
Tue Nov 20, 2012 7:05 pm
On 2012-11-20 18:51, Bool wrote:
Quote:
jądro linuxa laduje inne jądro linuxa
Nasuwa się fundamentalne pytanie. Po co dwa razy ładować jądro Linuxa?
Dlaczego U-boot nie może ładować od razu tego drugiego?
Ponieważ:
a) jądro ladowane jest z dowolnego urzadzenia z nastepujących:
1) dowolne mass storage wsadzone w usb
2) karta sd
3) sieć (przez tftp i konfigurację dhcp)
4) sieć (po smb)
b) jadro pierwsze sprawdza podpis cyfrowy jądra 2. Jeśli się nie zgadza,
nie ładuje go.
c) mogę dostarczyć jądro 2 na dowolnym filesystemie, w tym vfat.
d) mogę dostarczyć filesystem w trybie read-only albo dowolnie inaczej
zmodyfikowanym (np filesystem jako plik na fat32 albo zaszyty w jądrze,
pełna swoboda)
e) nie istnieje uboot mający dowolny z punktów a,b,c,d do mojego hardware.
f) kod uboota to kupa (odpada pomysł z dopisaniem)
Bool
Guest
Wed Nov 21, 2012 7:06 pm
W dniu 2012-11-20 19:05, Sebastian Biały pisze:
Quote:
On 2012-11-20 18:51, Bool wrote:
jądro linuxa laduje inne jądro linuxa
Nasuwa się fundamentalne pytanie. Po co dwa razy ładować jądro Linuxa?
Dlaczego U-boot nie może ładować od razu tego drugiego?
Ponieważ:
a) jądro ladowane jest z dowolnego urzadzenia z nastepujących:
1) dowolne mass storage wsadzone w usb
2) karta sd
3) sieć (przez tftp i konfigurację dhcp)
4) sieć (po smb)
b) jadro pierwsze sprawdza podpis cyfrowy jądra 2. Jeśli się nie zgadza, nie ładuje go.
c) mogę dostarczyć jądro 2 na dowolnym filesystemie, w tym vfat.
d) mogę dostarczyć filesystem w trybie read-only albo dowolnie inaczej zmodyfikowanym (np filesystem
jako plik na fat32 albo zaszyty w jądrze, pełna swoboda)
e) nie istnieje uboot mający dowolny z punktów a,b,c,d do mojego hardware.
f) kod uboota to kupa (odpada pomysł z dopisaniem)
OK. Wszystko jasne. To narzędzie odpalane na pierwszym Linuxie pisałeś od zera?
Sebastian BiaĹy
Guest
Thu Nov 22, 2012 7:27 pm
On 2012-11-21 19:06, Bool wrote:
Quote:
OK. Wszystko jasne. To narzędzie odpalane na pierwszym Linuxie pisałeś
od zera?
To skrypt basha

Napisany w 2h z potknięciem o buga w kexec.