sitelogo

By

Установка Linux на VIA VT8500 WM8505 WM8650 Часть 2

Итак, мне все же удалось на днях воткнуть Debian во внутреннюю флеш память, подключенную через USB. Работает вполне нормально, наконец кардридер освободился. Как обещал, теперь расскажу об процессе установки Linux на USB диск, кстати, это пригодится и тем, кто собрался устанавливать на USB и на других платформах, т.к. есть некоторые подводные камни.

Кстати, отвечаю, почему нельзя поставить Ubuntu: несмотря на то, что у них имеется armel порт — он поддерживает только процессоры ARMv7 и выше. WM8505 же относится к ARMv5.

Шаг 1. Работаем из под SD карты

Нужно для начала найти рабочую rootfs, которую мы распакуем на внутренний диск USB. Если мы уже имеем рабочую rootfs, которая загружается с SD диска, то мы можем сделать ее архив и использовать ее. Можно скачать готовый архив, который я подготовил для установки на wm8505 (см. ниже). Для всех действий на rootfs для SD диска должны быть установлены пакеты:

  1. parted
  2. reiserfsprogs
  3. dosfstools
  4. bar (прогресс-бар, не обязательно)
  5. xz, gz, tar, etc…

Далее, загрузившись с SD карты, мы можем иметь доступ ко внутреннему диску нетбука. Разметим диск похожим образом, как и на SD карте, с помощью утилиты parted (допустим, в вашем случае внутренний диск будет sda):

1
:~$ parted /dev/sda

Тип разметки: MS-DOS\IBM PC
Первый раздел 5Мб, начало 512B, конец 5Мб
Второй раздел: начало 5Мб, конец: размер флешки минус 200Мб.
Третий раздел: последние 200Мб диска. (не обязательно)

Форматируем разделы:

1
2
3
:~$ mkfs.vfat /dev/sda1
:~$ mkfs.reiserfs /dev/sda2
:~$ mkswap /dev/sda3

Хотя, можно раздел swap не создавать. Лично я так и делаю. Потому что мне как то легче найти нормальный браузер и открывать там вкладок поменьше, чем протирать дырку на флешке swap’ом. Как мы знаем, Linux очень гибкая система и swap раздел можно будет настроить даже на внешний быстрый USB диск.

Далее нужно распаковать полученную rootfs на раздел sda2:

1
:~$ mount /dev/sda2 /mnt

Мне нравится использовать консольную утилиту bar, чтобы видеть процесс распаковки:

1
2
:~$ cd /mnt
:~$ bar <путь к файлу.tar.xz> | xz -d | tar -x

И наблюдаем за прогрессом. Убеждаемся, что все распаковалось и перейдем к диску с u-boot:

1
2
:~$ umount /dev/sda2
:~$ mount /dev/sda1 /mnt

Копируем в /mnt образ ядра uImage (всего на этом диске лежит один лишь этот файл). Его мы берем с SD диска, откуда работает текущая система.

Шаг 2. Заставляем все это загружаться

Это, наверное, самое сложное. Во-первых, ваш u-boot должен поддерживать загрузку с USB дисков. Если вы до этого не ставили никаких Android’ов, и прочего, что могло неграмотно затереть оригинальный загрузчик, то скорее всего, у вас уже прошита стандартная прошивка u-boot, тогда ничего делать не нужно. Если же прошивка затерта, вам нужно вернуть прошивку с поддержкой USB обратно.

ВНИМАНИЕ! Не прошивайте u-boot от других версий чипсета! Прошивайте только в том случае, если точно знаете, что у вас, например, WM8505, а прошивка которую хотите залить, предназначена именно для WM8505! При невнимательном подходе к этому, вы рискуете превратить «спасательную капсулу» в «инструмент для окирпичивания» вашего нетбука. Это всеравно, что заниматься прошивкой BIOS’а в обычных ПК. Восстановить кирпич потом можно будет только с помощью программатора.

Я приготовил архив, который должен облегчить установку:

Страница загрузки

Он включает в себя все необходимое — от автоматической прошивки u-boot в USB до рабочей rootfs для системы Debian. Если решили воспользоваться моей прошивкой, порядок примерно такой:
1) Если нужно прошить u-boot, то распаковываем на первый раздел SD флешки содержимое архива uboot+usb-reflash-wm8505.tar.xz, загружаемся.
2) После перепрошивки распаковываете на первый раздел SD содержимое debian-squeeze-livesd-uboot-wm8505.tar.xz, на второй — debian-squeeze-livesd-rootfs-wm8505.tar.xz.
3) После загрузки с Live-SD, создаете все разделы, как описано выше, и распаковываете в Linux раздел debian-squeeze-rootfs-lxde-wm8505.tar.xz.

EDIT:

Вот содержимое моего скрипта для LiveSD:

1
2
3
4
5
6
7
8
9
lcdinit
textout -1 -1 "Configuring u-boot default variables to load from USB" ffffff
setenv bootcmd lcdinit\;usbinit\;textout -1 -1 "Loading from USB..." ffffff\;fatload usb 0:1 0 uImage\;bootm 0
setenv bootargs root=/dev/sda2 rootdelay=5
saveenv
textout -1 -1 "Loading Live SD..." ffffff
fatload mmc 0 0 /script/uImage
setenv bootargs root=/dev/mmcblk0p2
bootm 0

Переменные u-boot «bootcmd» и «bootargs» как раз и отвечают за загрузку в случае, когда мы вынимаем SD диск. К параметрам ядра добавлена опция rootdelay=5, чтобы USB разделы успели примонтироваться прежде чем начнется загрузка системы.

Итак, вот что у меня получилось:

screen1

2012-02-05-193726_800x480_scrot

По моим оценкам, получившаяся система вполне неплохо работает, если учесть что она работает из под 300 Мгц процессора и 128 Мб памяти, из которой остается около 90Мб под всякие браузеры и прочее… Рабочий стол минималистичен и прост, гораздо привычнее, чем например, на Android и ни следа от китайских иероглифов. Благодаря переходу на 3.х ядро улучшились некоторые характеристики, с помощью легковесного браузера Midori мне удавалось заходить даже в социальную сеть Вконтакте, с оригинальной прошивкой Windows CE от китайцев нереально было даже по русски печатать…

Увы, для владельцев WM8650 пока нет нормальной поддержки со стороны официального Linux, а значит, пока приходится довольствоваться результатами работы китайцев. WM8505 слишком слаб, данный аппарат можно использовать лишь в качестве роутера для раздачи интернета и сетевой шары, ну и как отличная площадка для играния с архитектурой ARM. При наличии драйвера на звуковой кодек, данное устройство можно приспособить для прослушивания музыки. Поэтому, ждите ;). Разработка для этих устройств сейчас ведется тут (я в этом принимаю свое маленькое участие):

http://groups.google.com/group/vt8500-wm8505-linux-kernel



48 Responses to Установка Linux на VIA VT8500 WM8505 WM8650 Часть 2

Добавить комментарий

Ваш адрес email не будет опубликован.