<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=Multiboot</id>
	<title>Multiboot - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://paz00.ru/index.php?action=history&amp;feed=atom&amp;title=Multiboot"/>
	<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=Multiboot&amp;action=history"/>
	<updated>2026-05-02T08:08:31Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.39.10</generator>
	<entry>
		<id>https://paz00.ru/index.php?title=Multiboot&amp;diff=55&amp;oldid=prev</id>
		<title>Unknown user в 08:13, 15 октября 2014</title>
		<link rel="alternate" type="text/html" href="https://paz00.ru/index.php?title=Multiboot&amp;diff=55&amp;oldid=prev"/>
		<updated>2014-10-15T08:13:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;https://wiki.ubuntu.com/Specs/ARMSoftbootLoader&lt;br /&gt;
=== === &lt;br /&gt;
===Что имеем=== &lt;br /&gt;
Сейчас можно без проблем сделать загрузку андроида или линукса по выбору. Для этого надо иметь загрузчик от android 2.1 (2-й и 4-й разделы).&lt;br /&gt;
* В 6-й раздел шьем ядро андроида - т.е. получаем заводское состояние.&lt;br /&gt;
* В 5-й раздел шьем ядро линукса для загрузки с sd карты или usb флешки.&lt;br /&gt;
* При включении жмем кнопку Home и выбираем, что грузить.&lt;br /&gt;
Однако такой вариант не очень удобен, поэтому люди пытаются завести uboot или какой-либо другой вариант мультизагрузки.&lt;br /&gt;
&lt;br /&gt;
===Uboot=== &lt;br /&gt;
{{:uboot}}&lt;br /&gt;
&lt;br /&gt;
===kexec-based=== &lt;br /&gt;
Подробно об установке и настройке написано на [http://ac100.grandou.net/multiboot вики grandou].&lt;br /&gt;
'''Замечение''': на флешке сразу boot партиция не нашлась, пришлось жать S для рескана.&lt;br /&gt;
'''Замечание''': у меня android 2.1 и ядро 3.0 не загрузились. При загрузке андроида никаких изменений, а 3.0 не смогло разобраться с usb устройствами. Рут линухов был на флешке. Для андроида cmdline использовал пустой. Возможно это из-за наличия SMP и THUMBEE - [http://ac100.grandou.net/multiboot#technical_details тут]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;Tequila&amp;gt; Hi all, I just pulled my &amp;quot;ac100-multiboot&amp;quot; project at https://gitorious.org/~tequila/ac100/tequilas-ac100-multiboot&lt;br /&gt;
&amp;lt;Tequila&amp;gt; It is based on kexecboot&lt;br /&gt;
&amp;lt;Tequila&amp;gt; the used kernel is a recent one with little changes to permit kexec syscall&lt;br /&gt;
&amp;lt;Tequila&amp;gt; I heavily changed the kernel so it it build in less than 2Mb&lt;br /&gt;
&amp;lt;Tequila&amp;gt; but the most important things for the kernel to work with kexec is to have SMP and THUMBEE disabled...&lt;br /&gt;
&amp;lt;Tequila&amp;gt; btw I'm not fully sure the ac100 is well shutdown during the kexec reboot so some stuff may not work well on the reboot&lt;br /&gt;
&amp;lt;marvin24&amp;gt; Tequila: nice, which stuff does not work after reboot/restart?&lt;br /&gt;
&amp;lt;marvin24&amp;gt; is there some userinterface, or just a cmdline?&lt;br /&gt;
&amp;lt;Tequila&amp;gt; check the first screenshot at http://kexecboot.org/screenshots&lt;br /&gt;
&amp;lt;Tequila&amp;gt; after reboot I'm not fully sure for now I didn't test every case. For now my old F14 install doesn't see anymore the wifi device but this may be another problem, so I can't confirm for the moment&lt;br /&gt;
&amp;lt;Tequila&amp;gt; and I'm too busy to really test&lt;br /&gt;
&amp;lt;Tequila&amp;gt; I'm just using a 64M SDCARD with a /boot folder including a boot.cfg and zImage &amp;amp; initrd.img&lt;br /&gt;
&amp;lt;Tequila&amp;gt; so no cmdline (unless you customize the firmware of course) but a nice and simple UI&lt;br /&gt;
&amp;lt;Tequila&amp;gt; I'm currently building again the firmware from https://gitorious.org/ac100/tequilas-ac100-multiboot/archive-tarball/master to be sure everything is working&lt;br /&gt;
&amp;lt;Tequila&amp;gt; If any one want to build his own multiboot firmware, just start &amp;quot;./build_all&amp;quot;, the kernel and kexecboot will be build with the built buildroot toolchain... you'll only need abootimg womewhere in the path&lt;br /&gt;
&amp;lt;Tequila&amp;gt; of course it takes few hours...&lt;br /&gt;
&amp;lt;Tequila&amp;gt; I'll provide the firmware if the one I'm building is still okay on my device&lt;br /&gt;
&amp;lt;xranby&amp;gt; Tequila: does it work?&lt;br /&gt;
&amp;lt;Tequila&amp;gt; xranby: yes, it works on my device&lt;br /&gt;
&amp;lt;xranby&amp;gt; Tequila: cool which OS/kernels do you multiboot using it?&lt;br /&gt;
&amp;lt;Tequila&amp;gt; only linux, it uses kexecboot. I didn't test Android but it should work too&lt;br /&gt;
&amp;lt;Tequila&amp;gt; kexec is a linux feature: booting a linux kernel from a running linux kernel&lt;br /&gt;
&amp;lt;Tequila&amp;gt; and I'm still the only one who test it...&lt;br /&gt;
&amp;lt;Tequila&amp;gt; *tested it I mean&lt;br /&gt;
&lt;br /&gt;
'''Замечание''': kexec will load kernel with following cmdline: 'root=&amp;lt;selected device&amp;gt; rootfstype=&amp;lt;FS on selected device&amp;gt; rootwait mtdparts=&amp;lt;mtdparts tag from current kernel cmdline&amp;gt; fbcon=&amp;lt;fbcon tag from current kernel cmdline&amp;gt; &amp;lt;selected item cmdline from boot.cfg if any&amp;gt;' ([http://kexecboot.org/documentation/how_kexecboot_works How kexecboot works])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Мультизагрузка без дополнительных программ'''&lt;br /&gt;
&lt;br /&gt;
После танцев с бубнами по вышеописанным вариантам мультизагрузки, остановился на следующем.&lt;br /&gt;
Всё делается очень просто, ручками ;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Суть:&amp;lt;/u&amp;gt; сохранить в два файла загрузчики андроида и линукса из раздела 6 (LNX), и командой в терминале андроида или линукса записывать тот, который нужно перед перезагрузкой тошибы.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Как сделать:&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. До установки Linux на Toshiba сохранить загрузчик андроида в файл (нужен установленный 'Эмулятор терминала' с поддержкой рута):&lt;br /&gt;
&lt;br /&gt;
Запускаем терминал на андроиде и переходим в режим рута командой su&lt;br /&gt;
: su&lt;br /&gt;
&lt;br /&gt;
Создаём папку для образов загрузки например в /data/local/bootimg командой mkdir&lt;br /&gt;
: mkdir /data/local/bootimg&lt;br /&gt;
&lt;br /&gt;
Сохраняем загрузчик андроида командой dd&lt;br /&gt;
: dd if=/dev/block/mmcblk0p2 of=/data/local/bootimg/p2-boot-android.img&lt;br /&gt;
(6-й раздел с загрузчиком андроид видит как устройство /dev/block/mmcblk0p2)&lt;br /&gt;
(можете скинуть этот файл на usb-флешу, чтобы потом скопировать в линукс, тогда монтирование раздела user-data описанное ниже можно пропустить, а забрать файл с флешки)&lt;br /&gt;
&lt;br /&gt;
2. Теперь можно установить Linux на Toshiba (естественно не на внутреннюю SD-карту, а на внешнюю :).&lt;br /&gt;
&lt;br /&gt;
3. После того, как Linux установлен и работает, нужно сохранить его загрузчик в файл, забрать у андроида ранее сохранённый файл и положить в андроид файл с загрузчиком линукса. После этого создать два простых скриптика на перезапись загрузчика и перезагрузку:&lt;br /&gt;
&lt;br /&gt;
Запускаем терминал в линуксе и переходим в режим рута командой sudo&lt;br /&gt;
: sudo bash&lt;br /&gt;
[sudo] password for user: (введите ваш юзеровский пароль)&lt;br /&gt;
&lt;br /&gt;
Создаём папку для образов загрузки, например в /usr/local/bootimg&lt;br /&gt;
: mkdir /usr/local/bootimg&lt;br /&gt;
&lt;br /&gt;
Сохраняем загрузчик линукса командой dd&lt;br /&gt;
: dd if=/dev/mmcblk0p2 of=/usr/local/bootimg/p2-boot-linux.img&lt;br /&gt;
(6-й раздел с загрузчиком линукс видит как устройство /dev/mmcblk0p2)&lt;br /&gt;
&lt;br /&gt;
Теперь нужно подмонтировать раздел user_data андроида в линукс (зачастую, например Ubuntu, автоматом монтируют разделы внутренней SD-карты в каталоге /media, можете просто там посмотреть), если линукс его не смонтировал&lt;br /&gt;
(если вы ранее скопировали файл с загрузчиком на usb-флешку, то просто заберите с неё)&lt;br /&gt;
: mkdir /mnt/adata (создадим куда монтировать)&lt;br /&gt;
: mount -t ext4 /dev/mmcblk0p6 /mnt/adata (подмонтировали раздел андроида)&lt;br /&gt;
&lt;br /&gt;
копируем загрузчик андроида в линукс, а загрузчик линукса в адндроид&lt;br /&gt;
: cp /mnt/adata/local/bootimg/p2-boot-android.img /usr/local/bootimg&lt;br /&gt;
: cp /usr/local/bootimg/p2-boot-linux.img /mnt/adata/local/bootimg&lt;br /&gt;
&lt;br /&gt;
Теперь осталось только создать два простеньких скрипта для переключения:&lt;br /&gt;
скрипт для переключения на загрузку андроида из линукса создаём в каталоге /usr/local/bin любым редактором или просто командой cat&lt;br /&gt;
: cat &amp;lt;&amp;lt;END &amp;gt; /usr/local/bin/switch2android&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
dd if=/usr/local/bootimg/p2-boot-android.img of=/dev/mmcblk0p2&lt;br /&gt;
reboot&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
делаем этот скрипт исполяемым файлом командой chmod&lt;br /&gt;
: chmod 755 /usr/local/bin/switch2android&lt;br /&gt;
&lt;br /&gt;
Ну и сразу сделаем и скрипт для переключения в линукс из андроида&lt;br /&gt;
: cat &amp;lt;&amp;lt;END &amp;gt; /mnt/adata/local/bin/switch2linux&lt;br /&gt;
#!/system/bin/sh&lt;br /&gt;
dd if=/data/local/bootimg/p2-boot-linux.img of=/dev/block/mmcblk0p2&lt;br /&gt;
reboot&lt;br /&gt;
END&lt;br /&gt;
&lt;br /&gt;
делаем исполняемым&lt;br /&gt;
: chmod 755 /mnt/adata/local/bin/switch2linux&lt;br /&gt;
&lt;br /&gt;
Ну вот, как бы всё.&lt;br /&gt;
&lt;br /&gt;
Теперь, чтобы переключиться на загрузку андроида, просто наберите в терминале линукса команду&lt;br /&gt;
: sudo switch2android&lt;br /&gt;
&lt;br /&gt;
А в андроиде, запустите Эмулятор Терминала, вы полните переход в режим рута командой su, и наберёте команду&lt;br /&gt;
: switch2linux&lt;br /&gt;
&lt;br /&gt;
Надеюсь, приведённый вариант мультизагрузки будет для вас приемлемым (не сто раз в день ведь перегружаетесь :).&lt;br /&gt;
Зато стопроцентно не будет никаких проблем с определением устройств тошибы при загрузке линукса, как могут возникать при использовании дополнительных мультизагрузчиков.&lt;br /&gt;
&lt;br /&gt;
===Дуал бут изменением cmdline===&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Общая концепция:&lt;br /&gt;
Линукс и андроид используют одно ядро, переключение cmdline на загрузку другой ос делается в онлайн на тоше с помощью&lt;br /&gt;
abootimg. По смыслу близко к ''uboot''. Сохраняется таблица партиций андроида, но последняя партиция делиться на 2 части,&lt;br /&gt;
часть под линукс самая большая.&lt;br /&gt;
&lt;br /&gt;
* Для ядра 3.1 подготовлен универсальный конфиг в котором включены одновременно все опиции нужные для линукса и андроида, конфиг тут https://gitorious.org/~zombah/ac100/zombahs-marvin24s-kernel/commit/1c6da37808f19c05658172ab8f0b4c78295c51ab&lt;br /&gt;
** Пробовал бутить с ним андроид, вроде все нормально.&lt;br /&gt;
&lt;br /&gt;
* ''abootimg'' собран под андроид и включен в последние сборки с суидными правами.&lt;br /&gt;
** Потестить что он работает и дает нужный эффект&lt;br /&gt;
&lt;br /&gt;
* Придумать таблицу разделов подходящую для такой схемы.&lt;/div&gt;</summary>
		<author><name>Unknown user</name></author>
	</entry>
</feed>