tag:blogger.com,1999:blog-68273632805925329572024-02-08T08:24:51.703+02:00cat **/* | grep яAkshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-6827363280592532957.post-23963477900823888672009-03-22T15:22:00.002+02:002009-03-22T15:48:40.596+02:00CeBootLin - автозагрузка Linux/Android из WinCE на Loox 5XX (560/550)Написал "bootloader" для загрузки Linux/Android из WinCE автоматически при включении КПК. Это не настоящий bootloader, так как он не имеет ничего общего с загрузочными секторами, это просто WinCE приложение, которое начинает свою работу как можно раньше, чтобы загрузить Linux. Я сделал это именно так, а не иначе, из-за того, что не хотел убить свою КПК изменением бут секторов или иметь сложный механизм перепрошивок, обновлений и т.д. Автозагрузка из WinCE мне показалась досточно неплохим решением, имеющим разве что 3-4 секундный проиграш, если сравнивать с нормальным bootloader'ом, который еще помучиться реализовать надо. Также, такая рализация позволяет достаточно легко пропустить загрузку Linux и продолжить загрузку WM5 или WM6.. Код основан на утилите Haret (спасибо им), но я удалил ненужные мне части. Так как загрузчик использует аппаратные регистры для работы с клавиатурой и подсветкой (GPIO/CPLD) Fujitsu Siemens Loox N560/C550, то без изменений кода данный загрузчик не заработает на другой модели КПК...<br />Когда КПК включается и начинается загрузка WinCE, то ядро WinCE читает список приложений из HKEY_LOCAL_MACHINE\init и запускает их. Таким способом загружается CeBootLin. CeBootLin начинает мигать подсветкой клавиатуры и ждет одну секунду. В то время, пока клавиатура подмигивает, пользователь может нажать и отпустить какую-нибудь кнопку КПК - это сигнал для CeBootLin не продолжать загрузку Linux. Если никакие кнопки нажаты не были, то CeBootLin попытается открыть \CeBootLin\default.txt и будет использовать его в качестве скрипта Haret для загрузки Linux'а.<br /><br />Итого, чтобы поставить и настроить CeBootLin, надо проделать такие шаги:<br />1. <a href="http://downloads.akshaal.info/linux-n560-c550/CeBootLin-1.zip?attredirects=0">Скачать</a> CeBootLin.<ad2></ad2><br />2. Распаковать содержимое архива в корень основной памяти КПК. CeBootLin.exe должен быть доступен по пути \CeBootLin\CeBootLin.exe.<br />3. Поместить default.txt в каталог \CeBootLin. Файл default txt может например выглядеть так (для загрузки Andorid'а, например):<pre><br />set MTYPE 1454<br />set KERNEL "\CeBootLin\zImage"<br />set CMDLINE "root=179:3 mem=62M rootdelay=3 boot_delay=0 init=/init console=tty0 fbcon=rotate:0 androidboot.console=tty0 android.checkjni=1"<br />set RAMADDR 0xA0200000<br />bootlinux<br /></pre><br />4. Поместить zImage в каталог \CeBootLin\.<br /><a href="http://picasaweb.google.com/lh/photo/11wJSVlZKWbWAN3DhaJXSw?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibMt1fqjMm9uy6EMLPY4mwHyfLCOW185T9ijHbvRoLy8Tie-w2iGxszcs56nBWhFItjaSQrtHOE3QU12YELZ74f5LkatyqTaZAScb2U-scZwwV-38A8-2hp8p93up16fgbuqGxGlvoesYb/s400/CeBootEdit-1.png" /></a><br />5. Добавить в HKEY_LOCAL_MACHINE\init значение для Launch82 ="CeBootLin.exe" и Depend82 = 14 00.<br /><a href="http://picasaweb.google.com/lh/photo/00DSupXz9qiOXs43h5f5cA?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgA9oV7TAoWKEU_GCw6OXVRJ1BK9hnUP69xa-WuhYHXtKmWV9GY2JCefQgcwiKWIu47XplDAwIOoXSaL9e-R2LxHO7QtgdDxeHcrp0hKaYMT-l436PcYqDbS8anEKXGXnqUqC2gLfGdgFq_/s400/CeBootEdit-3.png" /></a><br /><a href="http://picasaweb.google.com/lh/photo/0Rc2C1G2xiQKk5R0RmvaZg?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKsra4QotvdaOFNtqhXwTExBB-6IzxtGbNG8k_5wEhLbub444YRB3SwXYALep1YHUJIKiHW0QP0JQhOGh46UAY-QDl3DEREPLrKaVHqYCSZawYbzzMOF8364TZ8tK2e9Ng10CO4jEqgmYj/s400/CeBootEdit-4.png" /></a><br />6. Добавить в HKEY_LOCAL_MACHINE\Loader\SystemPath путь \CeBootLin\<br /><a href="http://picasaweb.google.com/lh/photo/hbLfmcNrlr6RpUPvLX_-5A?authkey=Gv1sRgCMTt-MKs5cTh6wE&feat=embedwebsite"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhecsc4aDa4i188OdbQynB4cMKKWsC0NBX7w_e2xk_xhGfYBNFqDdAd1U09x7brqDSKQxtPdW-v1-H6HrzWhSZJ6mmcdSaVaCdmDU-icOJBm9vu99JhQ6iDiNAkFEyaLR6c7qnXgrHTHq_K/s400/CeBootEdit-2.png" /></a><br />7. Подождать 5 минут или типа того (WinCE нужно время, прежде чем она сохранит обновление в registry).<br />8. Перезагрузить КПК<br /><br />Если возникнут какие-то проблемы, то первым делом стоит проверить, а грузит ли CeBootLin.exe вообще ядро... для этого достаточно просто его запустить.<br /><br />В дальнейшем при желании можно сделать нормальный cab с setup'ом внутри, который, например, будет ставить андройд..<br /><br /><a href="http://downloads.akshaal.info/linux-n560-c550/CeBootLin-1.tar.gz?attredirects=0">Здесь</a> находятся исходные коды CeBootLinux. CeBootLinux лицензирован под GNU GPL.<ad></ad>Akshaalhttp://www.blogger.com/profile/05677582369584740657noreply@blogger.com3