LINUX.ORG.RU

Linux на kindle 3

 , , , ,


0

2

В общем на днях мне отдали дохлый kindle 3 после неудачной перепрошивки. И сказали мол если починишь твой =) Вот же блин бывает в жизни халява =) У устройства был мёртвый загрузчик (uboot) я определил это подключениям устройства через usb-ttl адаптер (rs232) к компьютеру После часа поиска в интернете я нашел образы разделов и залил их обратно в устройство и оно заработало ! но у меня уже есть электронная книга так что вторая мне не к чему. И я решил сделать из неё чтото вроде КПК-на linux А что ? характеристики вроде неплохие:

CPU Freescale i.MX35 532 MHz, ARM11
RAM 256mb
Storage 4gb
Display 600x800
Также есть звук и микрофон
И что самое интересное есть слот расширения mini pci-e в котором стоит 3g модем И в который можно установить что нибудь другое =)
Также присутствует клавиатура и rs232 что тоже немаловажно

На борту и так уже стоит linux ну какой то уж слишком урезанный в нем есть только лишь самое необходимое для работы операционной системы. ЭЭЭ НЕ так не пойдёт ! Мне нужен более полноценный дистрибутив! скажем debian ... хотя впрочем любой сойдет главное чтоб был соурс-код для кросс-компиляции и были пакеты которые мне нужны. Впрочем на худой конец можно и красного черта перекомпилить там с пакетами и соурс кодом проблем быть не должно. Вопрос лишь в том как скомпилировать дистрибутив на ARM архитектуру ? Мне раньше никогда не приходилось иметь дело с межплатформенной кросс-компиляцыяй =( Понятное дело что нужен toolchain но как им пользоватся я не знаю и нигде не могу найти более или мение понятную инструкцию. kernel conf я уже извлек из ядра устройства осталось только модернизировать его под свои нужды и скомпелить дистрибутив. Опять же вопрос как скомпилировать ядро используя toolchain под ARM архитектуру ?

man buildroot, man Ångström, man Ångström derivatives

Когда поймешь, что компилить дистрибутив тебе не нужно, просто скачай сборку любимого дистра под arm/armel/armhf и стартани со своим ядром.

Ядро собери готовым кросстулчейном по любой хауте, они даже в репозиториях готовые нынче валяются. Вопрос скорее в том, где взять исходники с патчами под Kindle Keyboard.

t184256 ★★★★★
()
Ответ на: комментарий от t184256

Вопрос скорее в том, где взять исходники с патчами под Kindle Keyboard

На сайте амазона есть полный source code стоковой прошивки! Но он состоит из кучи архивов что малось затрудняет его сборку особенно если не знаешь как правильно собрать всё в кучу =)

Когда поймешь, что компилить дистрибутив тебе не нужно, просто скачай сборку любимого дистра под arm/armel/armhf и стартани со своим ядром.

На счет этого я уже понял когда пробовал запустить dump fs с киндла на raspberry pi (я использовал готовое ядро raspbian (знаю что это неправильно !) но тем не менее система начала грузится ) что уже говорит о совместимости этих 2 процессоров! А для raspberry pi существует 2 отличных поддерживаемых дистрибутивов. А именно archlinux и дурацкий клон дебиана raspbian. Я буду пробовать запускать на читалке arch так как я его и на базовом компе использую и он с коробки чистый без всякого говна

Ядро собери готовым кросстулчейном по любой хауте, они даже в репозиториях готовые нынче валяются.

Готовый toolchain у меня есть а как правильно им то пользоватся ? Негде немогу найти внятной инструкции =.\

Architector120
() автор топика
Ответ на: комментарий от Architector120

make ARCH=... CROSS_COMPILE=...?

Не мучайся, арч и специализированные дистры — для ССЗБ. Сделай человеческий debootstrap «чистый без всякого говна» под нужную архитектуру и забудь про кривые поделки для одной железки.

t184256 ★★★★★
()

Кое как собрал ядро, залил внутрь девайса но оно не стартануло =( u-boot его видит но не хочет его грузить =.(

Загрузка родного ядра проходит примерно так:

U-Boot 1.3.0-rc3-lab126 (Sep 15 2010 - 19:24:53)

CPU:   Freescale i.MX35 at 532 MHz
Board: MX35 Luigi [ POR]
WDOG_WCR = 0xff31
WDOG_WMCR = 0x0
Board Id: SP1B000000000000
S/N: 0000000000000000
DRAM:  256 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
No ethernet found.
i.MX35 CPU board version 2.0
Net:   No ethernet found.
Hit any key to stop autoboot:  0
## Booting image at 87f40400 ...
   Image Name:   Linux-2.6.26-rt-lab126
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2151348 Bytes =  2.1 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Uncompressing Linux......................................................................................................................... done, booting the kernel.
boot: I def:bcut:15 second battery cut Encountered:
2.6.26-rt-lab126 #5 Mon Dec 27 17:42:43 PST 2010 armv6l
INFO:Using default keypad setting. (not passing "kb_rev" to module)
INFO:Loaded module /lib/modules/mxc_keyb.ko  (22508 bytes)
Press [ENTER] for recovery menu...       0 /INFO:Partition table verified for /d                                                                                                                                                             ev/mmcblk0
INFO:Checking for updates... (auto-pilot mode)
/dev/mmcblk0p4:
CHS=4/16/100167 size=3282272256 bytes
flag type      first       last  lba first   lba size
Partition p1:
0x00 0x0b         16 <large>            16    6410672
    CHS: 0/1/1 - <large>
Partition p2:
Partition p3:
Partition p4:
INFO:Setup loop device /dev/loop0 for /dev/mmcblk0p4 + 8192

и так далее ....

А вот моё.....

U-Boot 1.3.0-rc3-lab126 (Sep 15 2010 - 19:24:53)

CPU:   Freescale i.MX35 at 532 MHz
Board: MX35 Luigi [ WDT]
WDOG_WCR = 0xff31
WDOG_WMCR = 0x0
Board Id: SP1B000000000000
S/N: 0
DRAM:  256 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
No ethernet found.
i.MX35 CPU board version 2.0
Net:   No ethernet found.
Hit any key to stop autoboot:  0
## Booting image at 87f40400 ...
   Image Name:   Linux-3.16.3-lab126
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2323312 Bytes =  2.2 MB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK

Starting kernel ...

Девайс весит в таком состоянии примерно секунд 15 после чего уходит в ребут и цикл повторяется.....
.config я достал родного ядра с помощью extract-ikconfig добавив в него поддержку ext4 и собрав следующий командой
make -j6 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage LOADADDR=0x80008000
Бла... Бла... Бла.. идет компиляция... Сижу, пью чай...
  AS      arch/arm/boot/compressed/piggy.gzip.o
  LD      arch/arm/boot/compressed/vmlinux
  OBJCOPY arch/arm/boot/zImage
  Kernel: arch/arm/boot/zImage is ready
  UIMAGE  arch/arm/boot/uImage
Image Name:   Linux-3.16.3-lab126
Created:      Sun Sep 21 18:18:02 2014
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    2323312 Bytes = 2268.86 kB = 2.22 MB
Load Address: 80008000
Entry Point:  80008000
  Image arch/arm/boot/uImage is ready
4 минуты спустя пишет что Готово. Ну я лезу в папку arch/arm/boot/ забираю файл (предварительно посмотрев первые строки в HEX редакторе (они похожи на %75 с родным ядром)) После чего заливаю через специальный утиль в устройство (на адрес 0x00041000) а результат вы видете =(

Есть у кого какие идеи ?

Architector120
() автор топика
30 сентября 2015 г.
Ответ на: комментарий от Architector120

Собирай ядро из родных исходников и с родным конфигом.
Или не собирай пока, а юзай родное, дособрав модули. Изменений между 2.6.26 и 3.16 столько, что, вероятно, даже при наличии полной поддержки оборудования в новом со старого конфига не запустится.

mittorn ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.