LINUX.ORG.RU

портирование Linux на новую архитектуру от А до Я


0

0

интересует сабж, т.е. имеется архитектура, на которую не существует порта Linux. волнует документация/описание процесса портирования. желательно на русском, желательно с примерами, желательно полная, желательно написанная понятным языком (в порядке уменьшения важности).

еще раз: интересует не то, какие опции в ядре прикрутить, а то, какой код туда дописать.

Ответ на: комментарий от hexmint

>А что за архитектура то?

samsung x100 (проц - arm) =)

да, у меня есть дампы прошивок и их sym-карты.

+ я просто хочу получить ядровый опыт

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

Какая маркировка процессора? Какой именно arm? Arm7 или arm9 или arm11? Какая там память?

krum
()
Ответ на: комментарий от marsijanin

Смотря для каких. Есть у самунга процы с arm7, без mmu, туда только ucLinux встаёт. Потом, каким образом загружать само ядро? Какой там загрузчик, как настроено sdram и сколько её вообще.

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

Да - если "семёрка", то "микро". Вобще автору треда рекомендуется глянуть на linuxdevices.com

marsijanin ★★
()

в общем случае меня интересует ядровый опыт. мой метод получения опыта состоит в решении конкретной прикладной задачи, решение которой может быть еще неизвестно.

к делу: у меня есть мобильник samsung x100. в нем 14 метров Flash под прошивку, 2 метра под EEPROM (там находится телефонная книга и настройки), 16 метров Flash под файлы (звуки, картинки, смс, игры).

из отфильтрованного мусора было выясненно, что мобильник поддерживает функцию бутлоадера, т.е. если выключенный мобильник подключить к кабелю, то ему в оперативу (ее размер не известен мне) можно забросить прогу-прошивальщик, которая (в тех прогах, которые у меня есть) меняет прошивку, но (я думаю) ее можно приспособить и для других целей.

у меня есть дампы прошивок и их символьные карты - реверс инжиниринг возможен.

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

generatorglukoff ★★
() автор топика

На русском не знаю

Documentation/arm/{README,Porting,Booting}

Загрузка arm начинается с arch/arm/kernel/head.S, конкретный камень распознаётся там же

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

Какой конкретно там процессор стоит? А вообще сначала советую купить какую-нибудь dev-плату на базе arm9, на ней понять, как всё работает, как загружается и запускается образ ядра, какие функции у загрузчика, как настраивается sdram и тд и тп. Вопросов огромное количество, пока у тебя не будет абсолютно ясной картины, ты вряд ли сможешь хоть что-то сделать. Платы например такие http://www.terraelectronica.ru/catalog.php?ID=967&ClearParam=1

Сам я купил на базе avr32 архитектура NGW100. Разбираюсь с ней как всё работает:)

Естественно, без хороших знаний схемотехники и умения великолепно паять у тебя вряд ли что-то получится.

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

>Естественно, без хороших знаний схемотехники и умения великолепно паять у тебя вряд ли что-то получится.

схемотехника, паять.... я ж ведь только хотел поменять прошивку в мобильнике... вроде до меня все спаяно

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

А каким образом ты собрался отлаживать код? Если бы всё было так легко, как ты думаешь, то линукс туда бы давно портировали. Скажем так, если ты это осилишь, то без вопросов можешь утраиваться работать в Samsung на очень хорошие деньги:) А вообще, если интересна тема embedded, то нужно начинать с основ: транзисторы, ттл - кмоп -эсл логика, мультиплексоры, регистры, выходы с трёмя состояниями, организация, схемы стробирования sdram памяти.Это так, для начала:) Уже потом вскрывается телефон, находится процессор, читается его маркировка, по маркировке ищется datasheet с описаниями ног, находится rs232, подрубается напрямую либо через переходник, если выходы ttl, к com-порту компа, включается minicom, скрещиваются пальцы, чтобы хоть что-то вывело:)

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

>Уже потом вскрывается телефон, находится процессор, читается его маркировка, по маркировке ищется datasheet с описаниями ног, находится rs232, подрубается напрямую либо через переходник, если выходы ttl, к com-порту компа, включается minicom, скрещиваются пальцы, чтобы хоть что-то вывело:)

гм, вообще-то это уже сделано. дата-кабель к мобильнику это все может, ибо они rs232 уже вывели на корпус мобильника, а оттуда - на usb компьютера. и мало того, дата-кабель поддерживается ядром (правда иногда, ибо experimental - из-за ошибок система полностью виснет). и самый веселый факт - прога-прошивальщик, запущенная в вайне, соединяется с мобильником и шьет его (просто нужно в конфиге вайна сделать сумлинк на /dev/ttyUSB0). так что, имхо, ничего паять не нужно =)

хотя всем этим я надеюсь заняться (хотя бы посмотреть) на каникулах после сессии.

>Если бы всё было так легко, как ты думаешь, то линукс туда бы давно портировали.

имхо, все потому, что телефон просто дешевый (три года назад купил за 650грн = 130$) и портировать линукс туда было влом (не говоря уже о его просто дерьмовых характеристиках).

собственно, все-таки, могу я увидеть обширную/нормальных размеров документацию? как мне обеспечить поддержку хотя бы примитивного комплекта харда: экран/клаву/красне-сине-оранжевый индикатор сервиса?

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

Разбирайте телефон, смотрите маркировку и ищете в нете:) Для светодиодов нужна разводка ПП телефона, чтобы узнать к какой ноге он подключён.

krum
()

Как уже сказали - на arm7 пойдёт ucLinux (обычный линукс не пойдёт).

Наличия шнурка к компу недостаточно - ищи даташит на проц и читай до посинения. Скачивай ucLinux, подбирай наиболее близкий порт и затачивай его под своё хардваре.

ps: в Samsung X120 32 мегабайта флеша и 8 мегабайт ОЗУ. Это больше, чем в моём первом компе. Дохрена ресурсов, а такую отстойную прошивку в него закатали.... ;(

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

>Есть у самунга процы с arm7, без mmu


Всегда интересовала, а как работать без MMU?
Получается 4Gb "плоского" адресного простарнства?
И все апликухи в одном адресном пространстве так? 
И тогда каждая апликуха может "влесть" в чужое адресное пространство?
Что то типа аля real-mode x86?

I3rain
()
Ответ на: комментарий от anonymous

А в чём проблемы? Виртуальная память с линейной адресацией, конечно, хорошо, но и со страничной и без защиты тоже жить можно. И жили.

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

>А в чём проблемы? Виртуальная память с линейной адресацией, конечно, хорошо, но и со страничной и без защиты тоже жить можно. И жили.

Просто хочу знать, значит в таком случае нет защиты процессов друг от друга? Куда хочу туда и лезу? Я конечно понимаю что там где нет MMU особой защиты то и не нужно. Но всетаки как то не красиво :).

И апликухи компилировать с опцией -fpic?

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

Без mmu даже mmap файла в память сделать нельзя, а ты говоришь о защите процессов друг от друга:)

krum
()

Гемор это страшный.Тебе программатор нужен будет,что если что перепрошивать можно было чип.Еще нужна паяльная станция.arm 7 ваще слабый проц.

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