хочется cacko из kexec (kexecboot)

КПК с Linux, установка Linux на iPaq и другие модели, программы
psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

хочется cacko из kexec (kexecboot)

Сообщение psionrevo » Пт мар 13, 2009 19:11

у меня на обоих заврах стоит прошивка cacko.

в свое время пробовал установить на SD Debian yonggun и перезагружаться между ним и cacko через kexec.
Debian успешно встал, kexec грузит ядро cacko,а вот cacko во флеше при установке ядра попортилась.
Шаманил, запустил qpe, но криво.

Сейчас попробовал kexecboot - та же проблема: при прошивке ядра портится cacko во флеше - напр. исчезли папки plugins и lib в /home/QtPalmtop.
Опять чуток пошаманил - запустил, но работать невозможно - qpe тормозит и иногда вылетает.

вопрос: почему так?
может я не тот updater.sh пользую
и при установке ядра angstrom с kexecboot оно наезжает на раздел с директориями cacko?

очень хочется разобраться!
потому что хочется и в cacko работать - привык(очень удобно все настроено), и попробовать наваять на завре GUI к моим программам под X-ми для их портирования на настольный комп.

повторюсь, у меня ядро для cacko грузится kexec либо kexecboot без проблем.
т.е. в консоли все здорово.

как форматнуть флеш и/или восстановить на нем структуру каталогов cacko?
есть tar архив полученный через backup в cacko.

спасибо ;)
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Сб мар 14, 2009 13:27

kexecboot использует штатный загрузчик и придерживается штатной разметки NAND. Так что тут ничего ломаться не должно. При условии, что на NAND действительно штатная разметка (64Mb root и остаток - home), которую вы не изменяли через инсталлятор cacko. В случае измененной разметки проблемы должны быть, насколько я себе это представляю. Восстановить штатную разметку можно при помощи NAND restore, например, из образа NAND-Backup с trisoft.de из раздела Service/Information -> Download.

Отдебажить пока можно только при помощи serial console и с пересборкой kexecboot с вкюченным дебагом и параметром debug у ядра.. Тогда, например, можно будет увидеть кучу сообщений от jffs2 при загрузке kexecboot во время сканирования устройств.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Сб мар 14, 2009 13:38

Проблемы с нештатной разметкой обусловлены тем, что sharp loader умеет передавать параметры ядру только посредством интерфейса, который был удален из ядра 2.6. Поэтому kexecboot при загрузке не может получить разметку NAND от загрузчика. Как следствие, используется вкомпиленная в ядро разметка. Кстати, при использовании u-boot такой проблемы нет. Ядро получает mtdparts от загрузчика, а kexecboot передает этот параметр загружаемому kexec'ом ядру.

У нас в планах есть реализация поддержки чтения информации о разделах из NAND (как это делает загрузчик). Но не в следующем релизе точно. Скорее всего, через один.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Сб мар 14, 2009 17:45

[bold]Jay[/bold]
Спасибо!

Т.е. мне надо:
1) архивнуть всё cacko из \ во флеше напр на CF (кстати, а как это сделать gnu-tar ом, чтобы и /dev тоже в архив загнать?)
2) прошить родной sharp nand flash образ, тем самым восстановив родную разметку в nand
3) установить ядро с kexecboot
4) на CF в /boot/zImage от cacko
5) загружаемся в консоль и восстанавливаем с помощью gnu-tar все добро из архива во флеш (поверх встанет ?)

что-то про пункт 5 сомневаюсь.
хотя может ручками стирать во флеше директории ручками и из архива ручками их восстанавливать?
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Вс мар 15, 2009 20:48

Ну, в целом, все верно с небольшими изменениями:

0) на всякий случай сделать NAND Backup из D+M меню.
1) что-то типа "gnu-tar -zcf /media/card/rootfs.tar.gz /"
5) загружаемся во что-то c CF или SD, трем все, что есть в корне (та самая команда rm -rf /)
6) распаковываем обратно архив: cd / && gnu-tar -zpxf /media/card/rootfs.tar.gz

Нечто из пункта 5 - это любой дистрибутив, который умеет работать с SD/CF-карты и имеет в себе tar (например, Andromeda, Angstrom, Zubuntu). Проверить работу этого комплекта лучше до снесения всего из NAND.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Пт апр 24, 2009 20:17

так, что сделал:
прошил японский nand,
поставил ядро с kexecboot,
angstrom грузится и работает с SD,
с CF загрузил ядро cacko,
перемонтировал \ с ro в rw и удалил что получилось.

теперь засада: не найду как подмонтировать в ангстроме internal flash, чтобы на него залить rootfs от cacko.
т.е. сижу в консоли в ангстроме, смотрю mount и не вижу внутреннего флеша завра.
более того, подмонтированную CF тоже в media\cf не вижу, [jnz mount пишет что подмонтирована %)

может мне для кучи на sd younggun debian залить и в нем увидится internal flash?
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Пт апр 24, 2009 23:02

Cмонтируйте /dev/mtdblock2 - это корень в NAND. /dev/mtdblock3 - это /home.
А вообще, выводу mount в linux верить нельзя. Смотрите в /proc/mount текущее состояние. Оно может отличаться от того, что выводит mount. Меня это всегда бесило :)
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Сб апр 25, 2009 20:40

освоился, подмонтировал внутренний флеш, залил \ с cacko.
ядро cacko грузится и ругается
unknoun JFFS2 compression type 0x07

я так понял, в cacko старый драйвер для jffs2
т.е. когда из под angstrom копируешь на jffs2 сохраняются файлы с новой compression type

мне нужно искать утилиту для рекомпрессии данных на jffs2?

интересно, а можно ли все каталоги из / внутреннего флеша сделать по symlink на cf напр? или /proc и /dev нельзя?
попробовал перенести все на cf и оставить на jffs2 только линки - ругается invalid cross-device link

у меня пока больше нет идей кроме как надеяться на zImage с kexecboot собранный под cacko разметку nand :(
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Вс апр 26, 2009 11:18

еще придумал:
1)шью исходный japan nand
2)ставлю zImage с kexecboot
3)гружусь с cacko zImage на cf (не вхожу в qpe)

задача: как на загруженной системе в консоли поменять все каталоги (bin sbin home ...) на каталоги из cacko?
где бы почитать где и какие там lock и на системных файлах?
или проще попробовать? :)))
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Вс апр 26, 2009 16:20

Есть другая идея - просто поставить cacko штатным инсталлятором, но без изменения размеров разделов. Потом закинуть в /boot цацкино ядро, прошить kexecboot и проверить.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Пн апр 27, 2009 05:06

JAY

большое спасибо!
так и получилось.
свое добро потом просто поверх развернул gnu-tar ом.
сразу же сохранил nand образ :)))
желаю успехов!
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

AndyKK
Нобелевский лауреат (7 lvl)
Сообщения: 8876
Зарегистрирован: Ср сен 14, 2005 17:28

Сообщение AndyKK » Пн апр 27, 2009 11:29

psionrevo, разобрался - молодец, а черкнуть кратенькую инструкцию, может кто еще захочет повторить ....

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Пт май 01, 2009 23:11

AndyKK

отвечаю в pda шной версии форума - извините за стиль.

у меня c1000, поэтому про него.
Наверняка наделал мелких ошибок-правьте.

По шагам:
*Сделали flash backup
*сархивировали /home , /root и т.п.
*залили sharp flash
*поставили cacko без изменения разбивки флеша
*скопировали в /boot zImage от cacko
*поставили kexecboot
*разархивировали /home , /root и т.п.
Получили на флеше cacko, а загрузчик – kexecboot.

внимание!
у меня текущая версия kexecboot на внутреннем флеше не находит /boot/zImage, так что если есть и sd и cf карта, то на обеих на время установки и обкатки делаем каталог /boot и кладем в него zImage для cacko.
и еще для установки желательно иметь cf либо sd-mmc (менее 1G), чтобы она и sharp rom ом читалась и все на ней за раз поместилось - у меня такая MMC 512M.
cf я вытащил,т.к. поиск начинается всегда с нее, а у меня все на mmc

1.вытаскиваем аккумулятор, зажимаем D+M, возвращаем аккумулятор на место, делаем full nand backup (на всякий случай, если чего не понравиться - сделаем restore и вернется все как было) и сохраняем его на ББ
2.загружаемся в cacko
3.берем карту, форматируем ее в fat (mkfs.vfat)
4. на карте делаем каталог /boot и кладем в него файл zImage (для cacko) для своего аппарата (я пользую http://www.katastrophos.net/zaurus/kernels/v55/ - в них нет глюка с 0-вой яркостью и есть аудио микшер. у меня nwfpe-uncashedfb; также копируем архив с модулями sharprom-modules.tar.gz, чтобы в конце процедуры обновить модули cacko)
5. теперь архивируем на карту каталоги cacko, чтобы потом их восстановить.
по идее, достаточно сархивировать home.
Даже, наверное, можно использовать backup из cacko, только некогда было разбираться как.
Я архивировал (на всяк случай) все:
bin boot dev home lib opt root sbin.
все симлинки просто копировал (etc mnt tmp var и тд).
usr не архивировал, т.к. мы же cacko поставим опять, а в нем он есть (вроде даже он из cramfs образа – точно не знаю).
Архивировал так:
gnu-tar –zvcpf /mnt/card/cacko_backup/bin.tar.gz /bin
gnu-tar –zvcpf /mnt/card/cacko_backup/boot.tar.gz /boot
.....
6. копируем на карту установочные файлы cacko 1.23
7. копируем на карту образ full flash с sharp овской разметкой
8. копируем на карту gnu-tar (и, возможно, обновленный драйвер для SD/MMC и midnight commander в ipk).
9.вытаскиваем аккумулятор, зажимаем D+M, возвращаем аккумулятор на место, делаем full nand restore с карты с sharp full flash
10.вытаскиваем аккумулятор, вставляем, держим ok и включаем завра клавишей power,подключаем сетевое питание, выбираем пункт 4, карту, yes – устанавливаем cacko.
11.при установке cacko не меняем (!) разметку флеша
12.грузимся в cacko, копируем в /boot zImage от cacko.
13.копируем kexecboot на карту (zImage и updater.sh).
14. вытаскиваем аккумулятор, вставляем, держим ok и включаем завра клавишей power,подключаем сетевое питание, выбираем пункт 4, карту, yes – шьем ядро kexecboot.
15.теперь переходим в / и распаковываем каталоги cacko.
gnu-tar –zxpvf /mnt/card/cacko_backup/bin.tar.gz
gnu-tar –zxpvf /mnt/card/cacko_backup/boot.tar.gz
...

у меня при распаковке были какие-то мелкие ошибки, но они не повлияли на работоспособность.
так что гружусь либо в cacko, либо в angstrom ;)
если что не получится - всегда можно просто восстановить флеш из резервной копии , сделанной в п.1 :)
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Jay
Профессор (5 lvl)
Сообщения: 614
Зарегистрирован: Вт апр 26, 2005 11:15

Сообщение Jay » Сб май 02, 2009 02:11

В целом, инструкция отличная, надо бы ее в список полезных тем подвесить.

За техническую сторону копирования/восстановления cacko не скажу - давно это было.
у меня текущая версия kexecboot на внутреннем флеше не находит /bin/zImage, так что если есть и sd и cf карта, то на обеих на время установки и обкатки делаем каталог /boot и кладем в него zImage для cacko.
Надеюсь, там опечатка в пути (/bin/zImage)? :)
11.при установке cacko не меняем (!) разметку флеша
Это временно. Я надеюсь в довольно ближайшем будущем все-таки научить kexecboot читать данные о разметке из соответствующих блоков NAND.
Sharp Zaurus SL-C1000/SL-6000L/SL-5500 (Angstrom/kexecboot)

psionrevo
Доктор (4 lvl)
Сообщения: 283
Зарегистрирован: Чт окт 05, 2006 22:48

Сообщение psionrevo » Сб май 02, 2009 10:28

JAY

спасибо :)
очепятка - исправил /boot/zImage
Zaurus C1000 cacko + Nokia 6230/Htc touch pro + LG gx200 + ONYX Magellan

Закрыто

Вернуться в «КПК и смартфоны на Linux: Zaurus, планшеты Nokia, прочее»