Proces bootowania windows CE z okolic wersji 2

Cześć.

Taka sprawa: chcę wykorzystać hardware czegoś co działało na Windows CE

2.xx. W środku jest flash + jakis starszy MIPS R3xxx.

Nie obchodzi mnie CE. Chciałbym jednak wykorzystać flasha do swoich spraw. Dokumentacja CPU jest jako tako dostepna, port kernela linuxa i bsd istnieje na ten cpu. Mogę wylutować flasha, więc ostatecznie nawet w ten sposób programować.

Pytanie: czy bootloadery WinCE są ustandaryzowane i mogę spodziewać się że w każdym urzadzeniu podobnego, czy było to strugane ręcznie za każdym razem? Widzę tutaj uboota który by załatwił problem flashowania tej kości, ale za szybko aby mówić czy to możliwe bo jeszcze nie wiem czy da się programowac w systemie.

Dodatkowo: czy dokumentacja Windows CE była utajniona czy tez mogę spodziewać się dokładnego opisu w jaki sposób uruchamiany jest kernel WinCE? Troche szukałem i niewiele znalazlem. Widzialem natomiast dośc dawno temu klocek gruby na ponad 1000 stron ktory opisywał WinCE od strony dev (acz nie wiem czy aż tak głeboko jak bootloader).

Ogolnie chciałbym zapytać czy istnieje gdzies jakieś kompendium wiedzy albo też amatorski projekt gdzie ktoś dłubał w takich detalach jak uruchamianie CE w tak starej wersji i moge poczytać i nałapac słów kluczowych.

Cel: odpalenie kernela Linuxa i/lub bsd. Cel dodatkowy: Twórcza strata czasu.

Reply to
Sebastian Biały
Loading thread data ...

Hmm, jeśli nie chcesz dotykać WinCE, to czemu pytasz o bootloader dla WinCE? Zakładałbym, że procesor zaczyna po prostu wykonywać kod z flasha od pierwszego adresu i to, co tam wrzucisz, uruchomi... jak jest tam WinCE z jakimś swoim bootloaderem, to uruchomi WinCE, a jak będzie jakiś Twój bootloader (lub uboot, lub bezpośrednio obraz kernela), to odpali jego...

Nie wiem czy w ogóle da się tak podzielić WinCE na bootloader i system, i zmusić bootloader do uruchomienia czegoś własnego. Może się da...

Inny sposób to odpalanie obcego kernela z poziomu WinCE, bez ruszania ROM-u. W Jornadzie 720 (ARM) jest karta z ROM-em (MaskROM), która ma WinCE, ale są dostępne (przynajmniej) dwa bootloadery do innych systemów. Jeden z nich (hpcboot) jest częścią NetBSD i umie bootować kernele NetBSD, drugi (jlinexec.exe) jest częścią projektu JLime i umie bootować kernel Linuksa (nowoczesny też, ja mam na Jornadzie kernel 4.7.0). hpcboot jest open-source, do jlinexec nie znalazłem źródeł (może gdzieś są).

Znalazłem coś takiego, nie wiem czy pomocne:

formatting link

Reply to
Adam Wysocki

A ile sztuk tego hardware masz do wykorzystania? Bo to co chcesz robic bedzie kosztowalo sporo wysilku reverse engineering jesli nie masz dokumentacji.

Nie znam CE 2.xx swoje doswiadczenie zaczynalem z CE .Net czyli 4.2 a potem

5.0 i tam byly dostepne źrodla do bootloadera ktory umial obraz systemu zaciagnac z Ethernet lub odczytac obraz w postaci pliku NK.BIN z uproszczonego napedu FAT (np karta pamieci CF) i potem rozpakowac w pamieci ram i stamtad odpalic system. To byl rok 2003-2004 o ile pamietam, jesli masz CE 2.xx to musiala byc jeszcze wieksza staroć... Że Ci się chce - podziwiam! :-)
Reply to
Pszemol

Jedną. To hobby z gatunku kłopotliwych i wstydliwych kiedy ktoś pyta.

Ok, czyli jest jakaś nadzieja że bootloader potrafi czytać kernel poza własnym romem. Widziałes jakąs literaturę na ten temat? Zerkam tu i tam, ale widze głównie książki o user space.

Reply to
Sebastian Biały

Bo tylko taki jest w kosci ROM i chce wiedzieć czy: a) proces ładowania jest mozliwy do zmiany b) można zabootowac coś innego niż CE i jest to przewidziane

Tak wiem o tym, ale nie wiem czy dam radę zainstalować tam uboota. Chcę zapytać najpierw o oryginalny bootloader. Może jest ustandaryzowany i jego zachowanie jest na tyle sprytne że bootuje z innych mediów.

Da się z poziomu winCE odpalić kernel linuxa, ale ja chce wczesniej. Żeby CE w ogole nie wstało, lub wstało tylko na momencik. Tak sobie mysle czy bootloadery do CE nie mają jakiegoś ficzera bootowania z PCMCIA czy USB.

Dla ARMa kiedyś widziałem funkcje wstawania z karty CF, ale to MIPS...

Tak wiem, uzywalem tego swego czasu na telefonach MDA.

Wszystko się nada. Ostatecznie wylutuje flasha i zdekompiluje recznie ;)

Dzięki.

Reply to
Sebastian Biały

:-))) no to twardy zawodnik z Ciebie

Do tych wersji ktorymi się bawiłem (4.2-5.0) były dostepne źrodla bootloadera, pisałem o tym wyżej. Nawet byla wersja bootloadera do skompilowania i uruchomienia na peceta pod x86... W MSDN publikowano kiedyś sporo na ten temat. Czy w wersjach 2.xx Microsoft nie był bardziej tajemniczy i skryty? Nie wiem... Dziś wersja 5.0 jest już od dawna niewspierana, nie mowiac juz o tym starociu 2.xx co Ty tam masz. Z tego co teraz zerkam do MSDN to cos tam jeszcze dokumentacji zostawili do 5.0 :-) Powodzenia!

Reply to
Pszemol

Mam wrażenie, ze nie czytasz uważnie tego na co odpisujesz... pisalem juz, ze bootloader do 4.2 czytał obraz systemu NK.BIN z karty pamięci CF a ty sie zastanawiasz....

Ciekawe masz hobby, z pogranicza masochizmu.. :-)

Reply to
Pszemol

Ale tu mowa o 2.0 :)

Takie retro. Przebudowuje tez Atari 8-bit. Jak widzisz rozmawiasz z wariatem.

Reply to
Sebastian Biały

Pytanie jaką przewagę będzie miał ten bootloader, przystosowany do WinCE, nad innym, generycznym bootloaderem... inicjalizacja sprzętu? Kernel i tak wszystko inicjalizuje po swojemu...

Ok, teraz jasne. Chociaż bardzo bym się zdziwił gdyby umiał bootować np. z karty CF. Tam nie ma dużo miejsca żeby dorzucać funkcje, które nie będą wykorzystane :)

Wiem że goście od portów na Jornadę (JLime, hpcarm, na Jornadę 680 też hpcsh) zgłębiali temat, ja też przy reanimacji tego zabytku trochę go zgłębiłem i nie kojarzę nic, co wykorzystywałoby oryginalny bootloader, ani na platformie ARM ani na SH3 (J680). WinCE jest w tym projekcie traktowane jako monolityczna całość.

Jest na Jornadzie duży problem ze sleepem właśnie ze względu na to, że procesor po wybudzeniu zaczyna uruchamiać kod z konkretnego adresu, który jest w ROM-ie, więc gdyby dało się przechytrzyć ten bootloader, pewnie byłyby takie próby...

Z drugiej strony nikt nawet nie próbował flashować pamięci Jornady, bo to maskrom. Były próby z własną (customową) kartą flash+RAM (to jedna karta) i tam był jakiś bootloader. Mam zapisanego linka do tematu na forum JLime, ale wygląda na to, że jest martwe, a nie mogę nigdzie znaleźć kopii...

formatting link

Też bym chciał :) Ułatwiłoby mi to chociażby reboot Jornady (teraz zdalny jest niemożliwy, bo trzeba kliknąć w WinCE), czy deep sleep na niej.

WinCE 2.0 to zabytek, jest na tym urządzeniu USB?

W sumie z PCMCIA miałoby to sens. Znalazłem w notatkach (znów - Jornada) mapę pamięci używaną przez SA1100 - wynotowałem sobie to z jakiegoś rysunku, może nie być w 100% poprawne.

a31:27 min max size meaning

00000 0000 0000 07ff ffff 128M rom bank 0 00001 0800 0000 0fff ffff 128M rom bank 1 00010 1000 0000 17ff ffff 128M rom bank 2 00011 1800 0000 1fff ffff 128M rom bank 3 0010x 2000 0000 2fff ffff 256M pcmcia socket 1 0011x 3000 0000 3fff ffff 256M pcmcia socket 0 01xxx 4000 0000 7fff ffff 1G reserved 1000x 8000 0000 8fff ffff 256M peripheral regs 1001x 9000 0000 9fff ffff 256M system control regs 1010x a000 0000 afff ffff 256M memory and expansion regs 1011x b000 0000 bfff ffff 256M lcd and dma regs 11000 c000 0000 c7ff ffff 128M dram bank 0 11001 c800 0000 cfff ffff 128M dram bank 1 11010 d000 0000 d7ff ffff 128M dram bank 2 11011 d800 0000 dfff ffff 128M dram bank 3 11100 e000 0000 e7ff ffff 128M zeros bank 11101 e800 0000 efff ffff 128M reserved 1111x f000 0000 ffff ffff 256M reserved

Procesor zaczyna wykonywanie od adresu 0, może gdyby wrzucić tam coś, co zainicjalizuje socket PCMCIA i skoczy pod właściwy adres, udałoby się bootować z PCMCIA...

Nie jestem pewien, ale w Jornadzie chyba jeden socket PCMCIA to fizyczna PCMCIA, a drugi to karta CF.

Gdzie dokładnie? Masz jakieś bliższe info?

I znów napiszę o Jornadzie :) W niej ROM adresuje się nietypowo dla ROMów, bo sygnałami RAS i CAS, tak jak DRAM. To 3 kości MX23l6430YC-15. Szukałem kości flash, która umiałaby to obsłużyć, ale niewiele takich jest, ktoś zasugerował JS28F128P30T85 lub JS28F256P30T95.

Pytanie jak jest u Ciebie.

Reply to
Adam Wysocki

bootlader ma umozliwić wybór kernela do bootowania. Cos jak lilo/grub. Dodatkowo powinien ten kernel czytać z filesystemu, więc musi miec wsparcie. uboot ma odpowiednie zabawki do tego, ale wiem też ze nie ma sterownika *tego* framebuffera i wymaga to po mojej stronie rzeźby.

Niektóre zabawki tego typu, jesli się przytrzymało jakiś przycisk przy właczeniu, starały sie na wczesnym etapie startu odpalić .exe z CF. Inne podczas pracy CE robiły to po wciśnieciu czegoś magicznego. Miałem nadzieję że to ustandaryzowane jest, ale pewnie nie ;)

Tak też pewno sie zakończy zabawa w moim przypadku. Na razie podchodze do tematu szacując czy warto. Strasznie lubię retro i strasznie mnie ciągnie do MIPSa (jestem rasowy programista asm MC680x0 a MIPSy są troche podobne).

U mnie to jest inna zabawka, izzi pro (i jest na to port bsd). Zakładam że z powodu wielkości mam tam w srodku nieco przestrzeni i ostatecznie może by nawet dało rade wymieniąc ROM na flash i przerzucić kod wykonywalny na pierwszy sektor odczytany z CF jak w BIOSie. Procesor ponad 100MHz więc emulować ROMa nie mam czym.

Jest. Aczkolwiek urzadzenia nie mam *jeszcze* w rękach wiec na razie myślę teoretycznie ;)

Żebym to pamiętał, to jakiś komputer przemysłowy embedded był. Nie miał w ROMie nic poza bootloaderem uruchamiającym resztę z karty CF. I nitypową kartę z WinCE która miała zabezpieczenie przed zapisem na stałe.

Dojdzie paczka to się zobaczy :D Istnieje też plan B: wyrwać wnetrzności, wsadzić orange-pi zero, zrobić sterownik lcd popedzany z SPI (oryginalny chyba się nie nada, SPI ledwo wyrobi) i porzucić projekt w połowie z braku motywacji.

Reply to
Sebastian Biały

Użytkownik "Sebastian Biały" napisał w wiadomości grup dyskusyjnych:oed550$m95$ snipped-for-privacy@node1.news.atman.pl...

formatting link
support sie skonczyl, ale archiwum mozna sciagnac. Znajac MS ... 1000 stron, a i tak informacji potrzebnej nie ma :-(

moze 5.0 pomoze

formatting link
J.

Reply to
J.F.

We're sorry, this download is no longer available.

????????????????????????

Reply to
invalid unparseable

Jornada ma różne myki po wciśnięciu klawiszy przy bootowaniu (np. S odpala self-test), ale bootowania z CF nie kojarzę - gdyby było, na pewno ktoś z JLime by to wykorzystał :)

MIPSów nigdy nie programowałem, tylko używałem :)

Mi pod hasłem izzi pro znajduje tylko laptopa i jakiś zestaw soczewek dla smartfonów. Chodzi o tego laptopa?

Hmm, to może było coś skrojone pod to zastosowanie...

Jak z prądu to OK. Jak z baterii to będzie problem, bo raspi się nie wyłącza (chyba że orange-pi to coś innego niż otwarta wersja raspberry i ma kontroler zasilania?)... BeagleBone się wyłącza, ale nie kojarzę czy jest wersja taka jak pizero.

Reply to
Adam Wysocki

Tak, ale laptop do gruba przesada. To taki WinCE z klawiaturą i pasjansem (pasjans był w każdym biznesowym telefonie opartym na CE, to chyba killer app). Jest mniejszy niz eeepc i ma dotykowy obrotowy ekran. Jest to na tyle interesujące mnie urzadzenie (bsd, wiec mogę zrobic komputerek pomiarowy) że zamierzam się nim pobawić i może coś się urodzi na poziomie grzebania w ROMie i usunięcia balastu CE (choć przyznaje że odpala się zaledwie w 4 sekundy).

Nie obchodzi mnie to, chciałem napierw zgrywarkę do zdjęć z kart SD na dysk zrobić (taką turystyczną, zasilanie z power banku). Potem pomyslałem że skoro ma klawiaturę, ekran i usb to jako prosty system pomiarowy zadziała. To bardzo dziwne urządzenie. Nie potrafie pojąć kto i dlaczego chciałby go używac do pracy ;) Ekran oświeza się przez około

1sek więc powoduje że szlag trafia tak teraz jak i kiedyś.

Kombinuje tez nad wykorzystaniem Noki N900 jako komputerka pomiarowego, ale tam już wykonano całą pracę za mnie :/.

Reply to
Sebastian Biały

Dnia Mon, 8 May 2017 18:24:40 +0200, Sebastian Biały napisał(a):

A warto się bawić? Taką funkcję (i masę innych) zaoferuje Ci dowolny tablet, najlepiej z Windows na pokładzie :) W ubiegłym roku z czegoś takiego korzystałem, z tym że zgrywałem z kart na karty - szkoda mi było brać HDD, zamiast tego wziąłem zestaw kart SDHC 6*16GB :)

Reply to
badworm

Dlatego zainwestowałem w nokię N900 licząc na instalację linuxa (z czego nic zapewne nie wyjdzie).

Najciekawsze natomiast co się dowiedziałem o Androidzie:

a) praktycznie nie ma telefonow z OTG ktory potrafi jednoczesnie ładować

*telefon* i byc hostem. A jak sa to jakieś legendarne i nie do dostania, lub wymagające magicznych sztuczek typu dedykowane huby (na ali niektore firmy robia firmware w hubie pod konkretny model telefonu (!)).

b) podpięcie dwoch pamięci masowych jest niemożliwe bo skrypty montujące przewiduja jeden i jest na to pierdyliard aplikacji (które to niby poprawiają, nie działają i wymagają roota). Przecierałem oczy ze zdumienia. Nie, nie da się podpiąc dwóch pamięci masowych. Najzwyczajniej. Sudent by wyleciał z zajęć a w google nie poprawili od kilku releases.

Co za żenada.

Czyli abo męczę się kopiowaniem do i z tabletu albo kupuje wiadro SD zamiast tańszego dysku, albo kombinuje z linuxem na N900 albo...

Co za czasy nastały gdzie dziadostwo programistów i hardwareowcow jest niemożliwe do przeskoczenia bez hackowania.

PS. Telefony na windowsie nie mają OTG jakoś specjalnie powszechnie więc sie nie nadadzą.

Tym razem chyba biorę eeepc. Po prostu się poddaje nad pustactwem projektantow telefonów.

Reply to
Sebastian Biały

Dnia Mon, 8 May 2017 21:46:55 +0200, Sebastian Biały napisał(a):

Ciekawe w jakim stopniu dotyczy to też tabletów. Ten jeden z Androidem, którego miałem, miał osobne złącze do ładowania więc jeden problem mniej

Czy jako pamięć masowa liczy się też karta pamięci w dedykowanym gnieździe w telefonie?

Bez przesady z tym wiadrem ;) Mi zestaw 6*16GB wystarczył na dwutygodniowy urlop, w trakcie którego zrobiłem naprawdę sporo zdjęć lustrzanką. Jedyny problem był taki, że trafiłem na felerny czytnik firmy Hama, który po skopiowaniu kilku GB się przegrzewał i trzeba było robić przerwę na ostygnięcie.

Mi aktualnie chodzi po głowie pomysł, by do kopiowania danych z jednej karty (micro SD w dedykowanym gnieździe) na drugą (SD w czytniku podłączonym do USB) wykorzystać jakiegoś smartfona z Androidem. W założeniu zyskam na wymiarach i wadze "kopiarki", a co z tego wyjdzie to się okaże :P

Reply to
badworm

Żeby się pochwalić "mamy gry" :)

Ale wygląda jak laptop.

Miałoby to sens.

Ja od jakiegoś czasu szukam jakiegoś rozwiązania przenośnego minikomputera z Linuksem. Testuję różne rozwiązania. Jornada jest spoko, ale nie śpi, nie ma porządnego wifi (ma tylko slot PCMCIA 16-bit, więc zrobienie WPA2 jest wyzwaniem, bo ciężko znaleźć takie karty), nie ma USB (karty z hostem USB są tylko 32-bitowe...), klawiatura też jakaś taka mało wygodna... na studiach trochę jej używałem, ale to były inne czasy.

Raspberry w ładnej obudowie - ten sam problem, nie śpi. Nie ma ekranu (można dokupić), nie ma klawiatury, więc łączę się z komórki z QWERTY po drugim wifi. Wygodne to nie jest.

Laptop z kolei za duży, w kieszeni się nie zmieści.

Myślałem o jakimś EEE PC...

Hm, a obudowa dysku nie ma OTG?

Pytanie jeszcze co mierzysz :)

Wtedy takie były ekrany, jeśli były kolorowe :) Jornada też nie ma responsywnego ekranu. Ericsson MC16 (SH3, ekran mono) miał ekran dużo bardziej responsywny, ale przy pomiarach sygnałów (chciałem rozpoznać, gdzie idą które linie do LCD, żeby wsadzić tam coś współczesnego) spaliłem LCD i na tym skończyła się zabawa.

A planowałem wrzucić tam właśnie jakieś raspi czy coś innego z Linuksem.

Apropo... szkoda że dziś już nie ma telefonów z rozsuwanym QWERTY. Bardzo kurczowo trzymam się swojej starej Motoroli Droid 4, wymieniając w niej już chyba wszystko, co się dało. Żeby był tak wygodny, ale nowy, Android, to wziąłbym bez wahania...

Reply to
Adam Wysocki

Czemu nie wyjdzie? Przymierzałeś się i utknąłeś na czymś, czy brak czasu / motywacji / ochoty?

Hmm, a ładowanie telefonu przez Qi? Nawet niekoniecznie bezprzewodowo, moja Motorola ma 4 piny do Qi, jak podpinam do dwóch z nich 5V to ładuje. Ale nie ma hosta, to nie sprawdzę, czy może być hostem :)

A jakbyś podpiął mając roota i nawet ręcznie (z shella) zamontował? vold (to, co montuje storage na Androidzie) ogólnie jest kiepsko przemyślany.

Nie wiem czy wtedy managery plików sobie poradzą, ale zawsze pozostaje ręczne skopiowanie...

Jest i będzie tylko gorzej... mam na to dobry przykład w pracy. Przechodzimy teraz na nowe, wypasione urządzenia (jeszcze niedostępne dla klientów, ale już piszę na to soft). Hardware jest OK, dużo mocniejsze niż poprzednie (czy tak samo odporne - czas pokaże), ale OS to porażka, właśnie z błędami, za które studenta wykopałbym do szkoły specjalnej.

Reply to
Adam Wysocki

On 05/09/17 08:14, Adam Wysocki wrote: [...]

Od biedy do większej kieszeni się zmieści:

formatting link
:) Albo może jakiś tablet. Jak poszukasz to znajdziesz z oddzielnymi gniazdkami hosta i ładowania. Ja używam takiego jako dedykowany komputer do obsługi urządzenia z oprogramowaniem tylko dla Windowsów, i sprawdza się całkiem nieźle:
formatting link
jest normalny pecet, więc Linuksa chyba da się zainstalować.

Jacek.

Reply to
Jacek Radzikowski

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.