`
马晨辉
  • 浏览: 52037 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

qt210 内核移植,学习笔记

阅读更多
config 种选中powver manager 里面的内容
修改 一个config
vi arch/arm/plat-samsung/Makefile
注释 #obj-$(CONFIG_SAMSUNG_DEV_ADC)  += dev-adc.o

增加 MACHINE_START 里面增加一段
fixup 的代码。主要是初始化变量。pm_debug_scratchpad = ram_console_start + ram_console_size;

smdkv210.c 增加了 两个 include 文件,和一个函数

#include <mach/gpio.h>
#include <mach/gpio-herring.h>
s3c_setup_uart_cfg_gpio(unsigned char port)
-------------------------------------------------------
至此能编译成功,并有打印信息。
以上基于samsung android 2.6.35 的内核,只是编译成功,但是开发板上运行是异常的。
















另外发现了一处 samsung 的内核,在 www.kernel.org 官方网站上找到的。
git 地址:git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
使用的分支 是 v3.5-next/cleanup-plat-s5p
这是一个3.4的内核,编译的配置使用s5pv210_defconfig.
make ARCH=arm s5pv210_defconfig
make -j2 uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
能够正常的编译通过,只是修改了 配置文件种串口的端口就可以了,但是启动之后,不能挂载 root ,总是报错,目前不清楚是什么错。但是比以前进步了许多的。

终于差清楚了问题,问题出在了 arch/arm/mach-s5pv210/Makefile.boot 的文件,这个文件种写了两个地址,一个是内核启动地址,一个是uboot参数的写入地址,uboot将参数写如了 30000100 的地址,而默认的地址是20000100,所以读取不到启动参数,只要修改了这个,就可以了,内核的加载地址也放在了30008000的地址,就可以正常读取uboot的参数了,可以正常启动文件系统了。

总结:
不抛弃不放弃,慢慢做,一定能成功的。









在挂载Android ramdisk 时要挂载很多驱动,否则启动不正常。
手下是按照出厂所代的哪个CONFIG ,配置了网络支持,network support ,结果就不再报错Address Family not support 的支持了。
但是出现了MTD 信息不能挂载的错误。主要是Nand 上的文件没有读取出来。现在追查是drivers mtd nand 的配置有错误,都配置了,但是发现少了一些选项,追查文件,是没有添加PCI 的支持,也就是在arch/arm/Kconfig 种的文件 没其作用,这个文件种配置了 CONFIG PCI ,但是到了drivers/mtd/nand/Kconfig 却没有解析到PCI 这个东西,导致一些配置不其作用。明天继续追查如何让CONFIG PCI 起作用。


经过验证,和CONFIG_PCI 没有什么关系,不用关心它







添加Nand驱动的支持,不是个简单的事情。
移植Nand 的驱动,首先要移植 drivers/mtd/nand/下面的文件,也就是platform-driver ,其次还要添加platform_device ,也就是生命结构体,而且结构提声明种的name 应该完全一样,否则不能启动。
具体的可以参照:http://blog.csdn.net/f22jay/article/details/7856598
写的很详细,而且是针对S5PV210的,用途很大。
现在遇到的问题是nand 的时钟不对。

解决了Clock的问题了。
虽然不清楚原理,但是其实质就是在arch/arm/mach-s5pv210/clock.c 的init_clock_off 的数组里面添加Nand的相关选项。注意不要加.dev的相关选项,编译不能通过,只有道行高了,再去结构化他把。
注意:s3c_nand.c 里面clk_get(xxx,"nand"),要和clock.c 文件里面定义的 name 一致,也就是nand
这样,Nand 就能正常启动了,但是yaffs2 解压完成之后。又有了新的BUG
BUG: sleeping function called from invalid context at include/linux/freezer.h
不清楚什么原因,睡觉了






和上次相比,没有太大的进展,只是把 Nand 的驱动,移植到了 3.0.8 上面,能够正常启动,也能运行系统,但是 系统一启动就要输入密码,不清楚什么情况。
明天移植LCD 的驱动,不能启动Android ,也可以启动个别的系统玩




LCD 驱动没有移植成功,主要原因是一开是没有弄明白 framebuffer 和LCD 驱动之间的关系,framebuffer 是一个中间层,介于软件和硬件之间。
LCD 的驱动就是GPU 的驱动,它在 drivers/gpu/pvr 目录下,这个是qt210 所用的GPU 驱动,直接复制了过来,没有太大的移植难度。主要是参数配置有问题,导致了fb_size 太小,系统就不能启动了,中断了,估计把这个移植完成,就可以正常启动系统了。



参数调整之后,缓存分配不了,系统不能启动,DMA 的大小为14M ,但是framebuffer 就用掉了10M 左右,而且系统启动不起来,移植的内存分配错误




LCD 驱动移植,无限吐血中。。。。。。强烈怀疑Linux 这帮人怎么整的架构。
分享到:
评论

相关推荐

    C、C++、Qt、Linux、ARM、数据结构等学习笔记.zip

    这些学习笔记涵盖了一系列重要的计算机科学和技术领域,包括基础编程语言C和C++,GUI开发库Qt,操作系统Linux,以及嵌入式系统中的ARM架构,还有核心的计算机科学概念——数据结构。下面,我将深入解释这些主题的...

    支持QT的文件系统

    开发者可以通过阅读这些资料来学习如何配置内核、构建QT库以及创建和烧录文件系统映像。 总之,构建一个支持QT的嵌入式Linux文件系统是一个复杂的过程,涉及多个技术环节,包括内核裁剪、QT移植、驱动开发、文件...

    c++ qt arm2440触摸屏+tslib1.4移植 p87lpc767 doc文档

    7. **安装与配置过程**:提供的文件列表中有多个文档详细介绍了从QT的安装到移植的全过程,包括对不同阶段的步骤、问题和解决方案的记录,这对于学习和实践QT在ARM2440上的应用非常有价值。 总结来说,这个压缩包中...

    嵌入式开发学习笔记

    "嵌入式开发学习笔记"可能涵盖了一系列的主题,旨在帮助初学者或有经验的开发者深入理解这个领域。在这个笔记中,重点可能会放在嵌入式Linux系统上,因为这是当前广泛应用的平台。 嵌入式Linux系统是指在嵌入式设备...

    嵌入式Linux(开发环境搭建+应用程序开发+系统移植开发).zip

    本压缩包包含的资源主要涉及三个方面:开发环境搭建、QT应用程序开发以及系统移植开发。 一、开发环境搭建 开发环境搭建是嵌入式Linux开发的第一步,它包括选择合适的主机操作系统(通常是Ubuntu或CentOS)、安装...

    嵌入式学习笔记1.1.pdf

    嵌入式学习是针对嵌入式系统的专业学习领域,涉及硬件和软件...以上内容是对“嵌入式学习笔记1.1.pdf”文件中提取的知识点的详细说明,涉及了嵌入式系统开发的多个方面,为学习和掌握嵌入式系统开发提供了丰富的资料。

    尚观教育嵌入式4个月培训课堂笔记

    笔记中可能涵盖了Linux内核的构建、裁剪与移植,以及Linux设备驱动程序的编写。学习如何在ARM平台上搭建和管理Linux环境是嵌入式开发人员的基本技能。 【QT框架】 QT是一个跨平台的应用程序开发框架,特别适合于...

    浏览器笔记

    **mini2440**是一款基于ARM920T内核的开发板,常用于嵌入式系统的学习与开发。在该平台上移植浏览器,意味着能够在这一小型、低功耗的设备上实现网络浏览功能,对于物联网(IoT)、智能设备等领域具有重要意义。移植...

    嵌入式笔记开发入门、入门经典

    - 学习Qt的基本组件和布局管理。 - **Qt/Embedded和Qtopia**: - Qt/Embedded是Qt的一个版本,专为嵌入式系统设计。 - Qtopia是基于Qt/Embedded的应用框架。 - 安装和配置Qt/Embedded和Qtopia环境。 以上是对...

    嵌入式linux笔记.rar

    常见的Bootloader有U-Boot和 LILO,它们的配置与移植也是嵌入式Linux开发的重要环节。 五、设备树(Device Tree) 设备树是Linux内核处理硬件配置的一种方式,它描述了硬件的具体结构。通过设备树,开发者可以轻松...

    嵌入式新手学arm的步骤

    最后,进行Linux内核移植和编写驱动程序。 学习Linux设备驱动编写,参考《Linux设备驱动程序》一书,这是连接硬件和软件的关键。 复习C++并学习QT进行图形界面编程。《QT编程宝典》是很好的资源,同时要学会查看QT...

    嵌入式入门笔记(阿南)

    ### 嵌入式Linux入门知识点详解 ...通过以上内容可以看出,《嵌入式入门笔记(阿南)》不仅是一份详细的嵌入式Linux学习资料,也是一本实践性强的参考手册,适合初学者和有一定经验的开发者参考学习。

Global site tag (gtag.js) - Google Analytics