Распознавание голоса и речи на C#
UnmanagedCoder 05.05.2025
Интеграция голосового управления в приложения на C# стала намного доступнее благодаря развитию специализированных библиотек и API. При этом многие разработчики до сих пор считают голосовое управление. . .
Реализация своих итераторов в C++
NullReferenced 05.05.2025
Итераторы в C++ — это абстракция, которая связывает весь экосистему Стандартной Библиотеки Шаблонов (STL) в единое целое, позволяя алгоритмам работать с разнородными структурами данных без знания их. . .
Разработка собственного фреймворка для тестирования в C#
UnmanagedCoder 04.05.2025
C# довольно богат готовыми решениями – NUnit, xUnit, MSTest уже давно стали своеобразными динозаврами индустрии. Однако, как и любой динозавр, они не всегда могут протиснуться в узкие коридоры. . .
Распределенная трассировка в Java с помощью OpenTelemetry
Javaican 04.05.2025
Микросервисная архитектура стала краеугольным камнем современной разработки, но вместе с ней пришла и головная боль, знакомая многим — отслеживание прохождения запросов через лабиринт взаимосвязанных. . .
Шаблоны обнаружения сервисов в Kubernetes
Mr. Docker 04.05.2025
Современные Kubernetes-инфраструктуры сталкиваются с серьёзными вызовами. Развертывание в нескольких регионах и облаках одновременно, необходимость обеспечения низкой задержки для глобально. . .
Создаем SPA на C# и Blazor
stackOverflow 04.05.2025
Мир веб-разработки за последние десять лет претерпел коллосальные изменения. Переход от традиционных многостраничных сайтов к одностраничным приложениям (Single Page Applications, SPA) — это. . .
Реализация шаблонов проектирования GoF на C++
NullReferenced 04.05.2025
«Банда четырёх» (Gang of Four или GoF) — Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес — в 1994 году сформировали канон шаблонов, который выдержал проверку временем. И хотя C++ претерпел. . .
C# и сети: Сокеты, gRPC и SignalR
UnmanagedCoder 04.05.2025
Сетевые технологии не стоят на месте, а вместе с ними эволюционируют и инструменты разработки. В . NET появилось множество решений — от низкоуровневых сокетов, позволяющих управлять каждым байтом. . .
Создание микросервисов с Domain-Driven Design
ArchitectMsa 04.05.2025
Архитектура микросервисов за последние годы превратилась в мощный архитектурный подход, который позволяет разрабатывать гибкие, масштабируемые и устойчивые системы. А если добавить сюда ещё и. . .
Многопоточность в C++: Современные техники C++26
bytestream 04.05.2025
C++ долго жил по принципу «один поток — одна задача» — как старательный солдатик, выполняющий команды одну за другой. В то время, когда процессоры уже обзавелись несколькими ядрами, этот подход стал. . .
Содержание
- Как зайти и настроить BIOS ноутбука Toshiba для установки WINDOWS 7 или 8 с флешки или диска.
- Установка Ubuntu 12.04 на Toshiba AC100
- Подготовка к установке Ubuntu на AC100
- Установка Ubuntu на AC100
Как зайти и настроить BIOS ноутбука Toshiba для установки WINDOWS 7 или 8 с флешки или диска.
Для установки Windows 7 или Windows 8, требуется произвести дополнительные настройки в BIOS, а именно выставить на загрузку либо флешку, либо привод.
Рассмотрим, как это делается на примере ноутбука Toshiba Satellite.
Для этого несколько раз нажимаем на клавиатуре стрелку вправо, пока нужная нам вкладка не выделится белым.
Во вкладке Boot у нас отображаются все устройства, с которых можно загрузить Windows.
К примеру, первым пунктом отображается привод, вторым пунктом – жёсткий диск.
Чтобы загрузиться с флешки, нам необходимо выделить её и переместить на первую позицию среди перечисленных устройств.
Для этого нам надо нажимать клавишу F8. Если мы жмём клавишу F7, то выбранная нами позиция опускается вниз.
Для этого либо выделяем CD/DVD и нажимаем на клавиатуре клавишу F7, либо выделяем HDD и нажимаем F8.
Вот, что получилось после перемещения:
После того, как мы произвели необходимые настройки, требуется перейти с выбранной нами вкладки Boot на вкладку Exit.
Для этого выделяем строку Exit Saving Changes и дважды нажимаем на клавиатуре кнопку Enter.
На экране появляется всплывающее окно с требованием подтверждения выхода и сохранения изменений.
7. После проделанных действий компьютер самостоятельно перезагружается.
При перезагрузке, нажимаем на клавиатуре клавишу F2, открывается Boot Menu.
Там перечислен список устройств, которые можно использовать для установки Windows.
Выбрать любое устройство из списка можно с помощью стрелок вверх/вниз на клавиатуре, перемещаясь с одной строки на другую.
Например, мы хотим загрузить Windows с флешки, выбираем первую строку и жмём Enter.
Всю последовательность действий можно увидеть на видео по ссылке ниже
Источник
Установка Ubuntu 12.04 на Toshiba AC100
Смартбук Toshiba AC100 представляет собой достаточно интересную машинку: сочетая в себе начинку от передовой мобильной платформы nVidia Tegra 2 и операционную систему Android, он обладает сверхнизким весом (меньше 1 кг) и энергопотреблением. Устройство может работать 8 часов и более от одного заряда. Да и цена на него просто смешная.
К сожалению, не все так радужно, как хотелось бы. Компания Toshiba посчитала, что устройство не оправдывает вкладываемых в него сил, и отказалась от его поддержки буквально через полгода после выпуска. Хорошо, что нашлись энтузиасты, которые принялись выполнять данную работу за Toshiba. Таким образом, под устройство появились порты третьего и четвертого Андроида, а также многочисленные Linux-дистрибутивы. Надо заметить, что устройство базируется на процессоре архитектуры ARM и использует собственные форматы разбиения жесткого диска и загрузчика, поэтому водрузить на него Linux не так-то просто. Впрочем, сейчас этот процесс стал гораздо легче, чем это было, скажем, год назад.
В данном руководстве я рассмотрю, как установить дистрибутив Ubuntu Linux 12.04 на Toshiba AC100. Не имеет значения, какая у вас модификация устройства: AC100-116, AC100-117 или AC100-118, установка одинакова для всех моделей. Это руководство является вольным переводом официального руководства по установке Ubuntu на AC100.
Важно! После установки Ubuntu на AC100 Андроид со всеми вашими файлами пропадет, и восстановить его можно будет лишь с помощью заливки первоначального образа!
Итак, для установки Ubuntu 12.04 на AC100 нам потребуется следующее:
Подготовка к установке Ubuntu на AC100
Прежде всего, нам нужно скачать файлы, которые потребуются для установки. Это образ предустановленной системы rootfs и загрузочный образ bootimage, а также программу nvflash для записи этого самого bootimage. Качаем по порядку:
Bootimage
Образ Rootfs
Образ Rootfs можно сразу сохранять на флешку, прямо в ее корень, ничего не распаковывая.
Программу nvflash нужно скачать отсюда и установить на нашем компьютере с Ubuntu.
Если все готово, то переходим к следующему шагу.
Сайт дня: Если вам нужны качественные запчасти для машины Volvo с быстрой доставкой, рекомендую обратиться сюда: http://volvo-saab.ru/catalog-volvo/. Компания «Амазон АС» уже не первый год занимается поставкой автозапчастей.
Установка Ubuntu на AC100
Прошивка загрузочного образа bootimage
Установка образа rootfs
После установки нам останется настроить язык. Это можно сделать, если щелкнуть на шестеренку в правом верхнем углу, выбрать System Settings, Language Support и установить русский. Также неплохо скачать последние обновления для устройства через Менеджер обновлений.
Источник
Инструкция по установке GNU/Linux на Toshiba AC100
Статья написана для AC100-117, но вполне применима и для AC100-116 и AC100-118: у других моделей могут быть другие номера разделов внутреннего SSD, в остальном всё делается так же.
1. Введение. Варианты работы GNU/Linux на AC100
Первый, самый простой. Можно установить в загрузочный раздел ноута (их два) специальный загрузчик и запускать любой подходящий дистрибутив GNU/Linux с карточки SD. Недостаток один: флешка работает медленно, внутренний SSD гораздо быстрее. Зато преимущество несомненно: можно иметь несколько дистрибутивов на разных флешках.
Второй, для продвинутых. Можно переписать файловую систему Linux на один из разделов внутреннего SSD устройства, проще всего — на пользовательский раздел (переформатировав его с fat32 в ext2 или ext4), а можно и переразбить SSD, объединив служебные разделы Android и пользовательский раздел FAT32 в один большой раздел и записать rootfs в него.
Сначала реализуем первый вариант (GNU/Linux на карте SD), тем более, что в дальнейшем можно будет скопировать содержимое карточки на один из разделов внутреннего SSD.
2. Подготовка
Утилиты
Для работы с SSD устройства нужна утилита nvflash фирмы Nvidia, а для удобства и скрипт ac100-toolkit. Всё можно взять на http://ac100.163.ru/ (FTP там тоже есть, но /pub в нём недоступен), либо на торрентах. У разработчика ac100-toolkit — Tactilofan — можно взять только сам скрипт, а ссылка на загрузку nvflash в нём битая.
Ошибки в ac100-toolkit-latest.
1. Из-за устаревшей ссылки не работает команда setup-nvflash, не пытайтесь запускать «./ac100-toolkit setup-nvflash»!
2. В тексте USAGE есть ошибки:
--- USAGE.orig 2010-10-19 21:04:06.000000000 +0600 +++ USAGE 2012-03-15 20:52:56.000000000 +0600 @@ -27,7 +27,6 @@ nvf [options] : execute nvflash with the specified options. Ex : Instead of doing - $ sudo LD_LIBRARY_PATH=. ./nvflash -r get-partition-table --go + $ sudo LD_LIBRARY_PATH=. ./nvflash -r --getpartitiontable ac100-partition-table.txt You can do : - $ ./ac100-toolkit nvf -r get-partition-table --go - + $ ./ac100-toolkit nvf -r --getpartitiontable ac100-partition-table.txt
3. В программе скрипта не учтены особенности разных shell’ов, в итоге в синтаксисе формируемых строк для командного процессора могут возникнуть ошибки, из-за которых sudo не выполняет команды. Кусок патча:
def execute_nvflash(params): nvflash_path = "./linux4tegra/nvflash/"; - os.system("sudo LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); + os.system("LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); print "\n" #execute nvflash and return the stdout def return_nvflash_stdout(params): nvflash_path = "./linux4tegra/nvflash/"; - return commands.getoutput("sudo LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); + return commands.getoutput("LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params);
Соответственно, запускать ./ac100-toolkit load-bootloader нужно через sudo (или другим способом с правами суперпользователя). Другие операции нормально выполняются с правами простого пользователя.
Образы загрузчика и GNU/Linux
В Сети уже достаточно много выложено архивов с файловыми системами для AC100. Например, Ubuntu: ubuntu-natty-netbook-2.6.37-1-ac100-rootfs.tgz или несколько rootfs от Marcus, ядра и модули сборки c.bmw.
Проще всего взять архив AC100linux-2-2.zip: в нём два варианта загрузчика Linux: AC100linux-2-2Two/img/kernel.37.2.img (загрузка с SD-флешки без таблицы разделов, в командной строке ядра указан root=/dev/mmcblk1) и AC100linux-2-2Two/img/kernel.37.img (загрузка с SD-флешки, на которой есть MBR с единственным разделом: root=/dev/mmcblk1p1). Если в (другой) образ записаны другие параметры ядра, достаточно в копии файла двоичным редактором (например, hedit) заменить «root=/dev/mmcbk0p12 » на «root=/dev/mmcblk1p1 » (лишние символы нужно заменить на пробелы).
Эти загрузчики запускают ядро 2.6.37-6 и для работы с ними нужна файловая система с модулями ядра той же версии.
Более сложный путь, но при этом получаем более функциональную систему — взять rootfs, например, Ubuntu, а ядро и модули взять самые последние,например, у C.BMW. (В ядре 2.6.38-3 от 9 октября 2011 года нормально работают и звук, и Wi-Fi.)
3. Замена прошивки
Во премя проведения перепрошивки используйте питание ноутбука от розетки: работа от батареи в процессе прошивки не гарантируется.
Подключите разъём miniUSB ноутбука к USB-порту компьютера, нажмите на ноутбуке и держите нажатыми Ctrl-ESC, затем нажмите и отпустите кнопку включения — ноут запустится в режим восстановления (экран не включится, но светодиод «включен» — светится).
Сначала нужно сделать резервные копии всех разделов на случай какого-либо сбоя, затем записать в шестой раздел загрузчик для запуска Linux с SD:
sudo ./ac100-toolkit load-bootloader ./ac100-toolkit backup-all ./ac100-toolkit restore 6 kernel.37.img
(Ядро обычной загрузки находится в шестом разделе в AC100-117 с оригинальной прошивкой, в другой модели и с другими прошивками раздел может отличаться!)
4. Создание рабочей файловой системы GNU/Linux
4.1. Распаковка rootfs
Нужно взять флешку, создать на ней один раздел ext2 и отформатировать в ext2. Использовать файловую систему ext3 можно только если вам не жалко флешку: журнал ext3 «убьёт» флешку очень быстро (при работе ext3 в журнал постоянно идёт запись, а ресурс флешки сильно ограничен). В файловой системе ext4 предусмотрен режим работы без журнала, если Вы понимаете, как отключить журнал, можете использовать ext4.
Затем под Linux (чтобы сохранились права на файлы) смонтируйте флешку и распакуйте на неё скачанный тарбол файловой системы командой
sudo tar --numeric-owner -zxf файл.tgz -C /media/usbdrive
где /media/usbdrive — точка монтирования флешки (посмотрите в выводе команды mount или df).
4.2. Распаковка modules
Затем нужно распаковать туда же модули ядра, если их версия в распакованной файловой системе отличается от версии ядра в загрузчике. Версия модулей ядра в файловой системе указана в имени подкаталога с модулями: lib/modules, например, в архиве ubuntu-natty-netbook-2.6.37-1-ac100-rootfs.tgz есть подкаталог lib/modules/2.6.37-1-ac100 и для работы с ядром версии 2.6.38.3-c.bmw+ нужно распаковать на карточку архив, содержащий lib/modules/2.6.38.3-c.bmw+ (это файл modules.2.6.38.3-c.bmw+.38.tar.gz).
4.3. Редактирование файлов
Если Вы не знаете пароль рута в выбранной rootfs, нужно его изменить.
С правами суперпользователя внесите изменение в файл etc/shadow: на примонтированной флешке выполните команду
sudo nano rootfs/etc/shadow
и в редакторе строку
root:$6$Xc7DG9kh$1ESzJ9js3z047cDUq.Xt4jG89r2Isfy9ykGJBKK8KypEjouaYXWgtxY6A4zkin2sW4oRKny3PoxhLZHHVTbMe.:14715:0:99999:7:::
замените на
root::14715:0:99999:7:::
Т.е. уберите набор символов между вторым и третьим двоеточиями. В результате пароль рута станет пустым.
Другой вариант: если флешка смонтирована в /media/usb0, выполните команду
sudo chroot /media/usb0 passwd
и введите (дважды) новый пароль рута для Ubuntu.
5. Первая загрузка
Вставьте SD-карточку в Toshiba AC100 и включите его. Загрузится ядро и запустится программа настройки Ubuntu. Не нужно отвечать на вопросы, вместо этого нажмите Ctrl-Alt-F1. (Клавиша F1 у AC100 обозначена значком «перемотка влево», расположена справа от клавиши ESC.)
Залогиньтесь пользователем root (пароль был установлен на прошлом этапе) и выполните команды обработки зависимостей модулей ядра и перезагрузки:
depmod -a reboot
6. Настройка и работа
Теперь можно ответить на вопросы программы настройки Ubuntu и работать.
После входа пользователем рекомендую запустить Synaptic и удалить ненужные пакеты, например, пакет Brasero (программа записи CD).
После удаления ненужных пакетов всегда выполняйте (в окне терминала) команду удаления пакетов, автоматически установленных по зависимостям и более не требующихся:
apt-get autoremove
После того, как установлен какой-либо (новый) пакет, для экономии места удалите deb-архивы из кэша apt, для чего в окне терминала выполните команду:
apt-get clean
Также, для экономии ресурса флешки, имеет смысл монтировать файловую систему в режиме без обновления полей времени доступа к файлам. Один из способов: в /etc/init.d/ создайте файл remount-root-noatime:
#! /bin/sh /bin/mount `/usr/sbin/rdev` -o remount,noatime,nodiratime
и создайте в /etc/rcS.d симлинк на этот файл следующей командой:
sudo ln -s ../init.d/remount-root-noatime /etc/rcS.d/S10remount-root-noatime
Для автоматического исправления ошибок файловой системы при загрузке отредактируйте файл /etc/default/rcS (требуются права root). В этом файле измените значение переменной FSCKFIX с «no» на «yes»:
FSCKFIX=yes
7. Обновление ядра
Когда выйдет новое ядро Linux, заменить ядро можно «изнутри» работающей GNU/Linux.
Скачайте ядро и архив с модулями. Предположим, что скачанные файлы называются zImage.2.6.38.3-c.bmw+.sd.img (образ загрузочного раздела) и modules.2.6.38.3-c.bmw+.38.tar.gz (тарбол с модулями ядра).
Убедитесь, что тарбол с модулями ядра содержит иерархию /lib/modules:
$ tar -zf modules.2.6.38.3-c.bmw+.38.tar.gz -t | grep /lib/modules | head -n1 ./lib/modules/
Переименуйте подкаталог с модулями ядра, чтобы не возникло коллизий, добавив в конце «.1»:
mv /lib/modules/`uname -r` /lib/modules/`uname -r`.1
Для надёжности (это необязательно) подсчитайте размер образа ядра в двухкилобайтных блоках (размер сектора у SSD — 2048 байт):
$ echo `ls -l zImage.2.6.38.3-c.bmw+.sd.img | cut -f 5 -d " "` / 2048 | bc 1463
У меня получилось 1463 блока.
Распакуйте тарбол с модулями ядра в корень файловой системы:
sudo tar --numeric-owner -zf modules.2.6.38.3-c.bmw+.38.tar.gz -x -C /
Запишите новое ядро в загрузочный раздел (в AC100-117 с Android 2.1 с оригинальной разбивкой SSD это том /dev/mmcblk0p4, у wapmorgan’а — /dev/mmcblk0p2), в параметра bs укажите размер блока 2048 байт и в параметре count — получившееся число секторов (в моём примере — 1463):
$ sudo dd if=zImage.2.6.38.3-c.bmw+.sd.img of=/dev/mmcblk0p4 bs=2048 count=1463
После загрузки не забудьте выполнить команду обновления списка зависимостей модулей ядра:
$ sudo depmod -a
и перезагрузите ноутбук.
8. Файловая система на внутренней SSD
Чтобы высвободить флешку, можно переписать её содержимое на внутреннюю SSD устройства и заменить ядро.
В AC100-117 удобно использовать раздел «пользовательских данных» Андроида, в Linux он доступен как /dev/mmcblk0p12. Выполните команды с правами суперпользователя:
umount /dev/mmcblk0p12 mkfs.ext2 /dev/mmcblk0p12 mount -t ext2 -o noatime,nodiratime,rw /dev/mmcblk0p12 /mnt cd /mnt dump -f- -0 / | restore -rf- umount /dev/mmcblk0p12
Затем загрузите в загрузочный раздел SSD ядро, в параметрах которого указан root=/dev/mmcblk0p12, у C.BMW это файл с суффиксом «.p12.img»: zImage.2.6.38.3-c.bmw+.p12.img, у образа загрузчика с ядром другого сборщика может понадобиться отредактировать файл в шестнадцатиричном редакторе.
Приложения.
I. Таблица разделов SSD у AC100-117
В linux есть программа «Gnome disk utility» (/usr/bin/palimpsest), которая показывает таблицу разделов SSD, впаянного в AC100, и позволяет переформатировать любой раздел. Изменять таблицу разделов в этой программе не нужно (и бесполезно, и опасно). В таблице — назначение этих разделов у AC100-117 и их соответствие разделам в процедуре repair:
Метка | Раздел в linux | Назначение | Номер раздела для программы nvflash |
---|---|---|---|
BCT | Boot Config Table | 2 | |
PT | mmcblk0p1 | Partitions table | 3 |
EBT | mmcblk0p2 | Emergency boot (содержит загрузчик «Fastboot bootloader») | 4 |
SOS | mmcblk0p3 | sosboot (выбор «1» в emergency boot) | 5 |
LNX | mmcblk0p4 | обычный загрузчик (ядро и initrd) | 6 |
MBR | mmcblk0p5 | MBR | 7 |
APP | mmcblk0p6 | /system в android | 8 |
CAC | mmcblk0p7 | /cache в android | 9 |
MSC | mmcblk0p8 | /misc в android | 10 |
EM1 | mmcblk0p9 | 11 | |
UDA | mmcblk0p10 | /data в android | 12 |
EM2 | mmcblk0p11 | 13 | |
UDB | mmcblk0p12 | /storage в android
этот раздел в андроиде доступен компьютеру, к которому подключаешь AC100 кабелем miniUSB |
14 |
II. Переразбивка SSD
В архиве содержатся альтернативная таблица разделов и bootstrap (BST) для неё, а также все скрипты, необходимые как для перепрошивки, так и для восстановления оригинальной прошивки.
Не забудьте сделать резервную копию всех разделов SSD!
Подробно процедура описана в статье «Переразбивка Внутренней Памяти»
III. Запись загрузчика из Windows
- Установите в Windows пакет tegra_froyo
- Подключите AC100 в режиме восстановления по USB (кабель USB-miniUSB, USB в комп, miniUSB в AC100, нажимаем и держим Ctrl и ESC, нажимаем и отпускаем кнопку питания, когда загорится светодиод включения, отпускаем Ctrl и ESC).
- Для обнаруженного устройства «APX» установите драйвер из каталога «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\usbpcdriver\» (в Windows 64 — «c:\Program Files (x86)\NVIDIA Corporation\tegra_froyo_20101105\usbpcdriver\») — «NVIDIA USB Boot-recovery driver for Mobile devices»
- Для удобства в каталог «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\» перепишите образ ядра, например, zImage.2.6.38.3-c.bmw+.p12.img
- Из каталога «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\» выполните две команды: загрузку бутлодера и запись ядра в загрузочный раздел. Для этого запустите командный процессор CMD.EXE (нажмите сочетание клавиш «Windows» и «R», введите cmd, нажмите «OK») и в его окне выполните три команды:
cd "C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\" nvflash --bl bootloader.bin --go nvflash -r --download 6 "zImage.2.6.38.3-c.bmw+.p12.img --go"
Для ленивых я (grumbler_eburg) подготовил минимальный комплект под Windows, где не нужно ничего устанавливать. Распакуйте архив и действуйте по инструкции.
Ссылки
- Оригинал статьи
- Переразбивка Внутренней Памяти
- sosboot — установка ядра аварийного восстановления
- Коллекция статей про GNU/Linux для AC100
Toshiba AC100 — «smartbook» на процессоре Nvidia Tegra 250 архитектуры ARM. Он мне понравился тем, что весит около килограмма, экран 11 дюймов по диагонали, работает от батареи около 8 часов и стоит мало (самая дешёвая модель AC100-117 всего 5550 рублей в интернет-магазине).
Кроме плюсов есть и минусы, основной — ОС Android, предустановленная на этом ноуте, совсем не рассчитана на работу с клавиатурой, тачпадом и мышью. В результатет мне в ней очень-очень неудобно, например, работать с сервером по сети (SSH, VNC, RDP). Даже «тривиальный» доступ к файлам по сети (SMB, NFS) возможен только посредством копирования файлов между сервером и андроидом.
Несмотря на то, что Nvidia в марте 2010 года сообщила о поддержке процесора Terga дистрибутивом Ubunty GNU/Linux, ни на сайте Toshiba, ни на сайте Nvidia этой версии не было. Более того, утилиты для установки GNU/Linux на платформу Tegra, ссылки на которые есть на сайте Nvidia, недоступны для загрузки.
Зато в интернете есть и готовые решения, инструкции и обсуждения установки и работы разных дистрибутивов GNU/Linux на моём ноутбуке.
К сожалению, нигде нет чёткой инструкции, в каждом тексте тщательно «зарыты грабли» и приходится искать информацию в обсуждениях. Поэтому я пишу этот пост.
1. Введение. Варианты работы GNU/Linux на AC100
Первый, самый простой. Можно установить в загрузочный раздел ноута (их два) специальный загрузчик и запускать любой подходящий дистрибутив GNU/Linux с карточки SD. Недостаток один: флешка работает медленно, внутренний SSD гораздо быстрее. Зато преимущество несомненно: можно иметь несколько дистрибутивов на разных флешках.
Второй, для продвинутых. Можно переписать файловую систему Linux на один из разделов внутреннего SSD устройства, проще всего — на пользовательский раздел (переформатировав его с fat32 в ext2 или ext4)
Я предпочёл первый вариант (GNU/Linux на карте SD), тем более, что в дальнейшем можно будет скопировать содержимое карточки на один из разделов внутреннего SSD, проще всего — на пользовательский раздел (переформатировав его с fat32 в ext2 или ext4), а можно и переразбить SSD, объединив служебные разделы Android и пользовательский раздел FAT32 в один большой раздел и записать rootfs в него.
2. Подготовка
Утилиты
Для работы с SSD устройства нужна утилита
nvflash
фирмы Nvidia, а для удобства и скрипт
ac100-toolkit
. Всё можно взять на http://ac100.163.ru/ (FTP там тоже есть, но /pub в нём недоступен), либо на торрентах. У разработчика ac100-toolkit — Tactilofan — можно взять только сам скрипт, а ссылка на загрузку nvflash в нём битая.
Ошибки в ac100-toolkit-latest.
1. Из-за устаревшей ссылки не работает команда
setup-nvflash
, не пытайтесь запускать «
./ac100-toolkit setup-nvflash
«!
2. В тексте USAGE есть ошибки:
--- USAGE.orig 2010-10-19 21:04:06.000000000 +0600 +++ USAGE 2012-03-15 20:52:56.000000000 +0600 @@ -27,6 +27,6 @@ nvf [options] : execute nvflash with the specified options. Ex : Instead of doing - $ sudo LD_LIBRARY_PATH=. ./nvflash -r get-partition-table --go + $ sudo LD_LIBRARY_PATH=. ./nvflash -r --getpartitiontable ac100-partition-table.txt You can do : - $ ./ac100-toolkit nvf -r get-partition-table --go + $ ./ac100-toolkit nvf -r --getpartitiontable ac100-partition-table.txt
3. В программе скрипта не учтены особенности разных shell’ов, в итоге в синтаксисе формируемых строк для командного процессора возникают ошибки, из-за которых sudo не выполняет команды. Кусок пача:
def execute_nvflash(params): nvflash_path = "./linux4tegra/nvflash/"; - os.system("sudo LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); + os.system("LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); print "\n" #execute nvflash and return the stdout def return_nvflash_stdout(params): nvflash_path = "./linux4tegra/nvflash/"; - return commands.getoutput("sudo LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params); + return commands.getoutput("LD_LIBRARY_PATH="+nvflash_path+" "+nvflash_path+"nvflash "+params);
Соответственно, запускать
./ac100-toolkit load-bootloader
нужно через
sudo
(или другим способом с правами суперпользователя). Другие операции нормально выполняются с правами простого пользователя.
Образы загрузчика и GNU/Linux
В Сети уже достаточно много выложено архивов с файловыми системами для AC100. Например, Ubuntu: ubuntu-natty-netbook-2.6.37-1-ac100-root
Проще всего взять архив AC100linux-2-2.zip: в нём два варианта загрузчика Linux: AC100linux-2-2Two/img/kernel.37.2.img (загрузка с SD-флешки без таблицы разделов, в командной строке ядра указан root=/dev/mmcblk1) и AC100linux-2-2Two/img/kernel.37.img (загрузка с SD-флешки, на которой есть MBR с единственным разделом: root=/dev/mmcblk1p1). Если в (другой) образ записаны другие параметры ядра, достаточно в копии файла двоичным редактором (например, hedit) заменить
«root=/dev/mmcbk0p12 «
на
«root=/dev/mmcblk1p1 «
(лишние символы нужно заменить на пробелы).
Эти загрузчики запускают ядро 2.6.37-6 и для работы с ними нужна файловая система с модулями ядра той же версии.
Более сложный путь, но при этом можно получить более функциональную систему — взять rootfs, например, Ubintu, а ядро и модули взять самые последние,например, у C.BMW. (В ядре 2.6.38-3 от 9 октября 2011 года нормально работают и звук, и wifi.)
3. Замена прошивки
Инструкция по прошивке служебных разделов на SSD есть во многих местах, например, на retracker.org
Во премя проведения перепрошивки используйте питание ноутбука от розетки: работа от батареи в процессе прошивки не гарантируется.
Подключите разъём miniUSB ноутбука к USB-порту компьютера, нажмите на ноутбуке и держите нажатыми Ctrl-ESC, затем нажмите и отпустите кнопку включения — ноут запустится в режим восстановления (экран не включится, но светодиод «включен» — светится).Сначала нужно сделать резервные копии всех разделов на случай какого-либо сбоя, затем записать в шестой раздел загрузчик для запуска Linux с SD:
sudo ./ac100-toolkit load-bootloader ./ac100-toolkit backup-all ./ac100-toolkit restore 6 kernel.37.img
4. Создание рабочей файловой системы GNU/Linux
4.1. Распаковка root-fs
Нужно взять флешку, создать на ней один раздел ext2 и отформатировать в ext2. Использовать ext3 можно только если вам не жалко флешку: журнал ext3 «убьёт» флешку очень быстро (при работе ext3 в журнал постоянно идёт запись, а ресурс флешки сильно ограничен). В файловой системе ext4 предусмотрен режим работы без журнала, и если Вы понимаете, как отключить журнал, можете использовать ext4.
Затем под Linux (чтобы сохранились права на файлы) смонтируйте флешку и распакуйте на неё скачанный тарбол файловой системы командой «sudo tar —numeric-owner -zxf файл.tgz -C /media/usbdrive» где /media/usbdrive — точка монтирования флешки.
4.2. Распаковка modules
Затем нужно распаковать туда же модули ядра, если их версия в распакованной файловой системе отличается от версии ядра в загрузчике. Версия модулей ядра в файловой системе указана в имени подкаталога с модулями:
lib/modules
, например, в архиве ubuntu-natty-netbook-2.6.37-1-ac100-root
lib/modules/2.6.37-1-ac100
и для работы с ядром версии 2.6.38.3-c.bmw+ нужно распаковать на карточку архив, содержащий
lib/modules/2.6.38.3-c.bmw+
(это файл modules.2.6.38.3-c.bmw+.38.tar.gz).
4.3. Редактирование файлов
Если Вы не знаете пароль рута в выбранной rootfs, нужно его изменить.
С правами суперпользователя внесите изменение в файл etc/shadow: на примонтирвоанной флешке выполните команду
sudo nano rootfs/etc/shadow
и в редакторе строку
root:$6$Xc7DG9kh$1ESzJ9js3z047cDUq.Xt4jG
замените на
root::14715:0:99999:7:::
Т.е. уберите набор символов между вторым и третьим двоеточиями. В результате пароль рута станет пустым.
Другой вариант: если флешка смонтирована в /media/usb0, выполните команду
sudo chroot /media/usb0 passwd
и введите (дважды) новый пароль рута для Ubuntu.
5. Первая загрузка
Вставьте SD-карточку в Toshiba AC100 и включите его. Загрузится ядро и запустится программа настройки Ubuntu. Не нужно отвечать на вопросы, вместо этого нажмите Ctrl-Alt-F1. (Клавиша F1 у AC100 обозначена значком «перемотка влево», расположена справа от клавиши ESC.)
Залогиньтесь пользователем root (пароль был установлен на прошлом этапе) и выполните команды обработки зависимостей модулей ядра и перезагрузки:
depmod -a reboot
6. Настройка и работа
Теперь можно ответить на вопросы программы настройки Ubuntu и работать.
После входа пользователем рекомендую запустить Synaptic и удалить ненужные пакеты, например, пакет Brasero (программа записи CD).
Также, для экономии ресурса флешки, имеет смысл монтировать файловую систему в режиме без обновления полей времени доступа к файлам. Один из способов: в /etc/init.d создайте файл remount-root-noatime:
#! /bin/sh /bin/mount `/usr/sbin/rdev` -o remount,noatime,nodiratime
и создайте в /etc/rcS.d симлинк на этот файл следующей командой:
sudo ln -s /etc/rcS.d/S10remount-root-noatime ../init.d/remount-root-noatime
Для автоматического исправления ошибок файловой системы при загрузке отредактируйте файл
/etc/default/rcS
(требуются права root), измените значение переменной
FSCKFIX
с «no» на «yes»:
FSCKFIX=yes
.
7. Обновление ядра
Когда выйдет новое ядро Linux, заменить ядро можно «изнутри» работающей GNU/Linux.
Скачайте ядро и архив с модулями. Предположим, что скачанные файлы называются zImage.2.6.38.3-c.bmw+.sd.img (образ загрузочного раздела) и modules.2.6.38.3-c.bmw+.38.tar.gz (тарбол я модулями ядра).
Убедитесь, что тарбол с модулями ядра содержит иерархию /lib/modules:
$ tar -zf modules.2.6.38.3-c.bmw+.38.tar.gz -t | grep /lib/modules | head -n1 ./lib/modules/
Переименуйте подкаталог с модулями ядра, чтобы не возникло коллизий, добавив в конце «.1»:
mv /lib/modules/`uname -r` /lib/modules/`uname -r`.1
Распакуйте тарбол с модулями ядра в корень файловой системы:
sudo tar --numeric-owner -zf modules.2.6.38.3-c.bmw+.38.tar.gz -x -C /
Подсчитайте размер образа ядра в двухкилобайтных секторах (именно такие используются на SSD):
$ echo `ls -l zImage.2.6.38.3-c.bmw+.sd.img | cut -f 5 -d " "` / 2048 | bc 1463
Запишите новое ядро в загрузочный раздел, указав в параметре count получившееся число секторов:
$ sudo dd bs=2048 of=/dev/mmcblk0p4 count=1463 if=zImage.2.6.38.3-c.bmw+.sd.img 1463+0 records in 1463+0 records out 2996224 bytes (3,0 MB) copies, 1,33531 s, 2,2 MB/s
После загрузки не забудьте выполнить команду
sudo depmod -a
и перезагрузите ноутбук.
8. Файловая система на внутренней SSD
Чтобы высвободить флешку, можно переписать её содержимое на внутреннюю SSD устройства и заменить ядро.
В AC100-117 удобно использовать раздел «пользовательских данных» андроида, в Linux он доступен как /dev/mmcblk0p12. Выполните команды с правами суперпользователя:
umount /dev/mmcblk0p12 mkfs.ext2 /dev/mmcblk0p12 mount -t ext2 -o noatime,nodiratime,rw /dev/mmcblk0p12 /mnt cd /mnt dump -f- -0 / | restore -rf- umount /dev/mmcblk0p12
Затем загрузите в загрузочный раздел SSD ядро, в параметрах которого указан root=/dev/mmcblk0p12, у C.BMW это файл с суффиксом «.p12.img»: zImage.2.6.38.3-c.bmw+.p12.img, у образа загрузчика с ядром другого сборщика может понадобиться отредактировать файл в шестнадчатиричном редакторе.
Приложения.
I. Таблица разделов SSD AC100-117
В linux есть программа «Gnome disk utility» (/usr/bin/palimpsest), которая позволяет редактировать таблицу разделов SSD, впаянного в AC100. В таблице — назначение этих разделов и их соответствие разделам в процедуре repair:
Метка | Раздел в linux | Назначение | Номер раздела для программы nvflash |
---|---|---|---|
BCT | Bootstrap | 2 | |
PT | mmcblk0p1 | Partition table? | 3 |
EBT | mmcblk0p2 | Emergency boot | 4 |
SOS | mmcblk0p3 | SOS boot (выбор «1» после загрузки с «домиком») | 5 |
LNX | mmcblk0p4 | обычный загрузчик | 6 |
MBR | mmcblk0p5 | MBR | 7 |
APP | mmcblk0p6 | /system в android | 8 |
CAC | mmcblk0p7 | /cache в android | 9 |
MSC | mmcblk0p8 | /misc в android | 10 |
EM1 | mmcblk0p9 | 11 | |
UDA | mmcblk0p10 | /data в android | 12 |
EM2 | mmcblk0p11 | 13 | |
UDB | mmcblk0p12 | /storage в android, этот раздел в андроиде доступен компьютеру, к которому подключаешь AC100 кабелем miniUSB | 14 |
II. Переразбивка SSD
В архиве содержатся альтернативная таблица разделов и bootstrap (BST) для неё, а также все скрипты, необходимые как для перепрошивки, так и для восстановления оригинальной прошивки.
Не забудьте сделать резервную копию всех разделов SSD!
III. Запись загрузчика из Windows
- Установите в Windows пакет tegra_froyo
- Подключите AC100 в режиме восстановления по USB (кабель USB-miniUSB, USB в комп, miniUSB в AC100, нажимаем и держим Ctrl и ESC, нажимаем и отпускаем кнопку питания, когда загорится светодиод включения, отпускаем Ctrl и ESC).
- Для обнаруженного устройства «APX» установите драйвер из каталога «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\usbpcdr
iver\» (в Windows 64 — «c:\Program Files (x86)\NVIDIA Corporation\tegra_froyo_20101105\usbpcdr iver\») — «NVIDIA USB Boot-recovery driver for Mobile devices» - Для удобства, в каталог «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\» перепишите образ ядра, например, zImage.2.6.38.3-c.bmw+.p12.img
- Из каталога «C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\» выполните две команды: загрузку бутлодера и запись ядра в загрузочный раздел. Для этого запустите командный процессор CMD.EXE (нажмите сочетание клавиш «Windows» и «R», введите cmd, нажмите «OK») и в нём выполните три команды:
cd "C:\Program Files\NVIDIA Corporation\tegra_froyo_20101105\" nvflash --bl bootloader.bin --go nvflash -r --download 6 zImage.2.6.38.3-c.bmw+.p12.img --go
Для ленивых я подготовил минимальный комплект под Windows, где не нужно ничего устанавливать. Распакуйте архив и действуйте по инструкции.
Этот текст также опубликован в русской AC100-Wiki
-
#1
recently acquired an android, will i be able to put windows 7 or 8 onto it, as it did not come with it ,if so how would i go about it ?
mqudsi
Mostly Harmless
Staff member
-
#2
That is most definitely not possible.
JustinW
Super Moderator
Staff member
-
#3
…and whats wrong with Android that you need to install Windows? I’m sure theres an app for that.