Переразбивка Внутренней Памяти: различия между версиями
Stuw (обсуждение | вклад) Нет описания правки |
Evglit (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
[http://gitorious.org/ac100/ggrandou-kernel/blobs/ | [https://web.archive.org/web/20130306142648/http://gitorious.org/ac100/ggrandou-kernel/blobs/HEAD/fs/partitions/nvtegra.c почитать] комменты к коду, описывается таблица разделов и nvtegra | ||
[https://gitorious.org/cbootimage/cbootimage/blobs/master/nvboot_bct.h почитать], описывается BCT | [https://gitorious.org/cbootimage/cbootimage/blobs/master/nvboot_bct.h почитать], описывается BCT | ||
Версия от 07:40, 11 июля 2015
почитать комменты к коду, описывается таблица разделов и nvtegra почитать, описывается BCT
Предисловие
Прежде чем выполнять команды, (1) трижды перечитайте статью, (2) убедитесь, что оно вам действительно надо, и (3) сделайте бэкап. Всё выполняется на свой страх и риск и бла-бла-бла.
Перед переразбивкой убедитесь, что используете правильно работающую версию nvflash. Подробнее тут.
Суть изменений
<range type="comment" id="637358">В общем</range id="637358">, вся суть переразбивки заключается в вытягивании таблицы разделов, ее редактировании и засовывании обратно в тошку. Зачем это все нужно?
Во-первых, получить больше места. Ибо на большинстве наших Тошек внутренней памяти (emmc) всего-навсего 8 гб, и все эти жалкие 8 гб разбиты на 14 разделов. Даже с учетом предустановленного Андроида это является бредом.
Во-вторых, дабы во всяких там ваших Убунтах после загрузки не появлялось over 9000 примонтированных дисков (да, это можно поправить, используя NVTEGRA_HIDE_PARTS, но, как тут принято говорить, не кошерно просто их прятать, поэтому мы будем сливать все 14 разделов в 7).
Ну и в-третьих, если уж вы решитесь на переразбивку, то это как минимум доставит вам некое красноглазое удовольствие.
До выполнения этой инструкции на флешке Toshiba AC100 будет: (взято отсюда)
part # | name | size | description | remarks |
2 | BCT | 3 145 728 (3 MB) | boot config table | |
3 | PT | 524 288 (512 kB) | partition table | |
4 | EBT | 2 097 152 (2 MB) | bootloader | |
5 | SOS | 5 242 880 (5 MB) | recovery partition | |
6 | LNX | 8 388 608 (8 MB) | linux kernel and initrd | kernel starts at 0x800
initrd starts at 0x20E800 |
7 | MBR | 1 048 576 (1 MB) | master boot record | |
8 | APP | 314 572 800 (300 MB) | applications (/system) | |
9 | CAC | 419 430 400 (400 MB) | cache (/cache) | |
10 | MSC | 2 097 152 (2 MB) | misc (/misc) | |
11 | EM1 | 524 288 (512 kB) | ||
12 | UBA | 1 294 991 360 (1235 MB) | user data (/data) | |
13 | EM2 | 524 288 (512 kB) | ||
14 | UDB | 5 950 144 512 (5674.5 MB) | user data (/storage) |
После выполнения этой инструкции будет 8 разделов (слева - нумерация с точки зрения Тошибы):
2: BCT 3: PT 4: EBT 5: SOS 6: LNX (8 Мб) 7: MBR 8: CAC (1200 Мб) 9: APP (всё остальное, около 6,3 Гб.)
Альтернативный вариант: Файл Файл:Part.cfg(отличается от выложенного ниже), будет 7 разделов, должно работать на Тошибе с любым размером флешки:
2: BCT 3: PT 4: EBT 5: SOS 6: LNX (8 Мб) 7: MBR 8: APP (всё остальное, на 8 Гб флешке - около 7,5 Гб.)
Фишка: в последней секции файла part.cfg в поле size вместо конкретного числового значения можно подставить максимально возможное, тогда оно отформатируется с максимально возможным размером:
''[partition]'' ''name=APP'' ''id=8'' ''type=data'' ''allocation_policy=sequential'' ''filesystem_type=basic'' '''''size=0xFFFFFFFFFFFFFFFF''' #исходно было 7353139200, вроде'' ''file_system_attribute=0'' ''partition_attribute=0'' ''allocation_attribute=8'' ''percent_reserved=0''
Вся соль сводится к запуску вот такого вот скрипта:
#!/bin/bash sudo ./nvflash --bct org.bct --setbct --bl ../prebuilt/fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go
Ну а дальше подробнее, что, зачем и как. Он есть только под линух, но можно и отредактировать какой-нибудь похожий .bat для винды.
Приступим к извращениям
1 Заливка бутлоадера
Замечание: что из себя представляет nvflash подробнее расписано тут Linux:
sudo ./nvflash --bl ../prebuilt/fastboot.stock.bin --go
Windows:
nvflash --bl bootloader.bin --go
2. Конфиг партиций
Далее нам понадобится config. (Хм..а в винде он выглядит иначе, из-за Unix-символов перевода на новую строку) Файл состоит из перечня разделов, их типов, и собственно размеров.
3. BCT
Следующий ингредиент это [org.bct org.bct], кусок бутлоадера, который вроде как (после тщательнейшего 5-минутного изучения логов за год с чем-то) для всех моделей одинаков (даже для 32-гиговых), так что можно не волноваться.
4. Обновляем BCT
Итак, благодаря bmw, и, может, еще кому-то, мы получаем нужный скрипт для заливки всего этого в тошку:
#!/bin/bash sudo ./nvflash --bct org.bct --setbct --bl ../prebuilt/fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go
Для Windows: (можно использовать готовый комплект для прошивки андроида и подредактировать один из батников) Создаем part.cmd:
nvflash\nvflash.exe --bct org.bct --setbct --bl nvflash\fastboot.stock.bin --configfile part.cfg --create --verifypart -1 --go
Грабли: На винде после переразбивки для последующих шагов требуется подать загрузчику org.bct. Возможно это косяк при использовании bat файлов.
nvflash\nvflash.exe --bct org.bct --setbct --bl nvflash\fastboot.stock.bin --go ... далее команды
5. Возвращаем EBT
Выключаем тошку, снова переводим в режим прошивки и заливаем EBT из бэкапа:
sudo ./nvflash -r --rawdevicewrite 1792 1024 tac100-part-4.img --go
6. Шьем новое ядро
После этого заливаем нужное нам ядро в 6 раздел, но с указанием поиска rootfs на 7-ом, т.к на нем будет вся наша система. Сейчас самый удобный и актуальный путь сделать это - зайти на Сайт bmw и скачать ядро с пометкой p7, вся заливка делается так:
sudo ./nvflash --bl ../prebuilt/fastboot.stock.bin --download 6 /путь/к/img/образу
P.S. Вывод команды прошивки, если все хорошо:
Nvflash started rcm version 0X20001 System Information: chip name: t20 chip id: 0x20 major: 1 minor: 2 chip sku: 0x8 chip uid: 0x161c10c74420f0d7 macrovision: disabled hdcp: enabled sbk burned: false dk burned: false boot device: emmc operating mode: 3 device config strap: 1 device config fuse: 0 sdram config strap: 1 sending file: org.bct - 4080/4080 bytes sent org.bct sent successfully downloading bootloader -- load address: 0x108000 entry point: 0x108000 sending file: ../prebuilt/fastboot.stock.bin | 936016/936016 bytes sent ../prebuilt/fastboot.stock.bin sent successfully waiting for bootloader to initialize bootloader downloaded successfully setting device: 2 3 creating partition: BCT creating partition: PT creating partition: EBT creating partition: SOS creating partition: LNX creating partition: MBR creating partition: APP Formatting partition 4 EBT please wait.. done! Formatting partition 5 SOS please wait.. done! Formatting partition 6 LNX please wait.. done! Formatting partition 7 MBR please wait.. done! Formatting partition 8 APP please wait.. done! done! Enabling verification for partition ID = 4... sending file: fastboot.bin | 936016/936016 bytes sent fastboot.bin sent successfully Verifying partition ID = 4...Please wait!! Verification successful!! VERIFICATION COMPLETE....
P.P.S В тексте забыто, что в конфиге в разделе ebt упоминается файл fastboot.bin Этот файл должен лежать в текущей директории. Можно скопировать или сделать ссылку с файла fastboot.stock.bin
ln -s ../prebuilt/fastboot.stock.bin fastboot.bin
Вот тогда прошивка пройдет нормально.