1. 下载内核源码linux-2.6.34,解压到工作目录下。
2. 首先在内核中增加一个 SOC ,到 /arch/arm/mach-s3c64xx 下将mach-smdk6410.c 复制成 mach-ok6410.c
修改mach-ok6410.c 将里面的 smdk6410 替换为 ok6410 ,将SMDK6410 替换为 OK6410
:1,$s/smdk6410/ok6410/g
修改该目录下的 Makefile
obj-$(CONFIG_MACH_OK6410) += mach-ok6410.o
修改该目录下的 Kconfig
增加
config MACH_OK6410
bool 'OK6410'
select CPU_S3C6410
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select S3C_DEV_FB
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_FB_24BPP
help
Machine support for the Samsung OK6410
3. 修改/arch/arm/mach-types 文件,增加 ok6410 机器吗信息,要求机器码与 uboot 中的一致 。
ok6410 MACH_OK6410 OK6410 1626
4. 配置内核选择 OK6410 编译,完成初步移植
关键字:LINUX 内核移植 ok6410
引用地址:
LINUX 内核移植
推荐阅读最新更新时间:2024-11-09 17:22
内核移植和文件系统制作(3)Ramdisk简介和常见问题
一,Ramdisk简介: Ramdisk是一种基于内存的虚拟文件系统(并非一个实际的文件系统),它将一部分固定大小(这个大小在编译内核的make menuconfig时配置)的内存当作硬盘一个分区来使用。ramdisk是一种将实际的文件系统装入内存的机制,并且可以作为根文件系统,通常我们会使用ext2或ext3文件系统来格式化它。由于ramdisk是在内存中进行操作的,所以我们可以对里面的文件进行添加,修改,删除等等操作,但是一掉电,就什么也没有了。由于这个特性,我们可以将一些经常被访问而又不会更改的文件(如只读的根文件系统)通过Ramdisk放在内存中,这样可以明显地提高系统的性能。 在Linux的启动阶段,内核和ramdisk
[单片机]
Linux内核源码阅读记录一之分析存储在不同段中的函数调用过程
在写驱动的过程中,对于入口函数与出口函数我们会用一句话来修饰他们:module_init与module_exit,那会什么经过修饰后,内核就能狗调用我们编写的入口函数与出口函数呢?下面就来分析内核调用module_init的过程(这里暂时分析编译进内核的模块,不涉及动态加载的模块),以这个过程为例子来了解内核对于不同段的函数的调用过程。 下面从内核的start_kernel函数开始分析,下面是调用过程: start_kernel rest_init kernel_init do_basic_setup do_initcalls() 直接看到do_initcalls函数,看到第6行的f
[单片机]
arm-linux-gcc和简单的makefile
gcc常用选项 gcc 的使用方法: gcc 文件名 -v:查看gcc编译器的版本,显示gcc执行时的详细过程 -o :指定输出文件名为file,不用与编译文件同名 -E: preprocess only; do not compile, assemble or link(只预处理,不会编译、汇编、链接) -S:Compile only; do not assemble or link(只编译需要有已经预处理完成的输出文件,不会汇编和链接) -c:Compile and assemble, but do not link(预处理 编译和汇编,不会链接) gcc编译文件 gcc hello.c :直接默认生成一个a.out文件 g
[单片机]
只用串口和网络裸机开发ARM程序(OK6410开发板)
最近要学习ARM开发板,想按着单片机的套路,首先开发裸机程序。百度了下,大部分的裸机程序都是用RVDS或者ADS开发,用JLink 或者JTag烧写到Sdram中去执行。由于在ubuntu下使用习惯了,想脱离集成开发环境,所以在Linux下使用arm-linux-gcc 等工具开发。首先遇到的问题就是开发好的二进制文件怎么烧到板子上运行呢? 百度上给出的大部分方法是通过Uboot 来烧写,用Uboot的DNW烧写进去,但是我用的环境是Win7 64bit,DNW的USB驱动死活装不上,而且,也懒得找别人借条OTG线,所以这个途径就不考虑了。继续google,找到了一种方法,通过Uboot的Tftp 功能把二进制文件烧写到开发板
[单片机]
记:关于W806的Linux下基本教程(一)——环境建立与第一次烧写
0x00 前言 本文主要在Linux下实现了对于联盛德的W806芯片的SDK相关的操作,包括但不限于指定烧写、擦除、编译。 0x10 准备工作 首先需要一个Linux系统,这里笔者选择了Debian 11,按照默认的安装方式下,下面就可以在完成换源、准备账号,之后就可以安装一些依赖。这里笔者选择饱和安装,里面应该有一些东西不需要,但是也不怎么重要。 sudo apt install gcc-10-cross-base gcc-10-arm-linux-gnueabihf gcc-10-arm-linux-gnueabi cpp-10-arm-linux-gnueabi cpp-10-arm-linux-gnueabihf
[单片机]
ARM-Linux移植之二
平台:mini2440 交叉工具链:arm-linux-gcc-4.3.2 一、内核移植基本知识 移植内核也叫构建BSP(boardsupprot packet)。BSP的作用有两个:一是为内核运行提供底层支持,二是屏蔽与板相关的细节。 BSP的构建分三个层次 1、体系结构层次 对一些体系结提供linux内核支持,比如说ARM,X86等芯片。这一类工作一般在arc/xxx/下面额除了palt-xxx和mach-xxx目录的其他目录完成。 2、SOC层次 对一些公司提供的SOC微处理器提供linux内核支持,比如说三星公司的 S3C2440。这一类工作一般在arch/xxx/plat-xxxxarch/xxx/ma
[单片机]
s3c2440 移值新内核 linux-4.1.36
arm-linuxgcc version 4.3.2 经过试验,最高可以编译到 linux-4.1.36 ,在高的版本会有错误 ,可能是 GCC 编译器版本较低造成。 解压比较麻烦还要装一个 xz xz -d ,我是用 7z-zip 在电脑上解好,传 tar 上去解包。 修改 makefile ARCH ?= arm CROSS_COMPILE ?= arm-linux- find -name *24*_defconfig 查找出来有的配置项 ./arch/arm/configs/s3c2410_defconfig ./arch/arm/configs/mini2440_defconfig s3c2410_defco
[单片机]
技术文章:嵌入式Linux中如何进行截屏?
在桌面级操作系统中,下载一个截图软件就能实现截屏操作,但在嵌入式Linux系统中,要实现小小的截图功能却没有那么简单。本文为您介绍嵌入式Linux系统中实现截屏功能的方法和步骤。 1 . 原理 由于 Linux 系统的 FrameBuffer 机制,会把屏幕上的每个点映射成一段线性内存空间,程序就可以通过改变这段内存的值来改变屏幕上某一点的颜色。屏幕色彩的原始数据保存在/dev/fb0文件内,因此我们可以直接cat /dev/fb0 fb.raw读取该文件获得数据。 图1 原始截屏数据 显然,这种原始数据无法通过简单的工具直接查看,特别是在精简的嵌入式Linux系统上。因此,我们找到了一个不错的工具——gsn
[嵌入式]