Linux-3.3.5内核初步移植到OK6410开发板
来源:互联网 发布:mac给手机充电不停闪 编辑:程序博客网 时间:2024/04/30 20:10
注意:文中大部分内容依旧参考了网上各位大牛的经验,并根据自己实际开发环境进行了修改和验证,现将详细过程记录如下:
1 建立自己的开发板
1.1 下载并解压linux系统内核源码
tar jxvf linux-3.3.5.tar.bz2
cd linux-3.3.5
1.2 修改BSP对应的Kconfig文件
gedit arch/arm/mach-s3c64xx/Kconfig
仿照MACH_SMDK6410添加一个菜单项:
config MACH_OK6410
bool "OK6410"
select CPU_S3C6410
select SAMSUNG_DEV_ADC
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_I2C1
select SAMSUNG_DEV_IDE
select S3C_DEV_FB
select S3C_DEV_RTC
select SAMSUNG_DEV_TS
select S3C_DEV_USB_HOST
select S3C_DEV_USB_HSOTG
select S3C_DEV_WDT
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_KEYPAD
select SAMSUNG_DEV_PWM
select HAVE_S3C2410_WATCHDOG if WATCHDOG
select S3C64XX_SETUP_SDHCI
select S3C64XX_SETUP_I2C1
select S3C64XX_SETUP_IDE
select S3C64XX_SETUP_FB_24BPP
select S3C64XX_SETUP_KEYPAD
help
Machine support forthe Pillar OK6410
1.3 修改内核的机器码
gedit arch/arm/tools/mach-types
参照第283行:
smdk6410 MACH_SMDK6410 SMDK6410 1626
在下面插入一行:
smdk6410 MACH_OK6410 OK6410 1626
注意:其中1626这个机器码必须和UBOOT里面的机器ID一致。
1.4 建立自己的BSP文件
cp arch/arm/mach-s3c64xx/mach-smdk6410.carch/arm/mach-s3c64xx/mach-OK6410.c
gedit arch/arm/mach-s3c64xx/mach-OK6410.c
将其中所有smdk6410替换为OK6410,但注意不要替换大写的SMDK6410
1.5 自定义开发板信息
修改MACHINE_START(OK6410, "Linux-3.3.5 OnOK6410 Board"),需要注意OK6410必须和Kconfig中的MACH-OK6410相匹配。
1.6 修改arch/arm/mach-s3c64xx下的Makfile文件
gedit arch/arm/mach-s3c64xx/Makefile
在末尾题添加一行:
obj-$(CONFIG_MACH_OK6410) += mach-OK6410.o
1.7 修改顶层Makefile
gedit Makefile
指定CPU架构和交叉编译器类型
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
1.8 复制配置文件模板
cp arch/arm/configs/s3c6400_defconfig .config
1.9 设置编译完成后镜像文件的存放位置
gedit arch/arm/boot/Makefile
在下列位置添加如下代码:
$(obj)/zImage: $(obj)/compressed/vmlinuxFORCE
$(callif_changed,objcopy)
cp -f arch/arm/boot/zImage /opt/OK6410/TFTP/zImage.bin
@echo' Kernel: $@ is ready'
endif
1.10 小插曲-安装ncurses-devel库
apt install libncurses5-dev
1.11 裁剪、配置内核
make menuconfig
配置修改如下:
General setup --->
(/opt/OK6410/arm-linux-gcc/4.3.3/bin/arm-linux-gcc)Cross-compiler
注:此次根据arm-linux-gcc安装目录填写
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL)
System Type --->
[*]OK6410
注:此处取消对其他类型开发板的支持,包括SMDK6410
Kernel hacking --->
Kernellow-level debugging port (Use S3C UART 0 for low-level debug)
1.12 编译并烧写内核
make
或
make zImage
烧录zImage到开发板后,可以看到如下信息:
注:首次编译会看到“Can'tuse 'defined(@array)' (Maybe you should just omit the defined()?) atkernel/timeconst.pl line 373.”错误,按提示修改该文件位置的内容为if (!(@val)) {后重新编译即可。
- Linux-3.3.5内核初步移植到OK6410开发板
- OK6410开发板linux内核移植
- Linux 3.3.5 内核移植 for ok6410
- OK6410 linux内核移植
- qt移植到OK6410开发板linux系统过程
- 移植Mplayer到OK6410开发板
- uboot2011.12移植到ok6410开发板
- linux3.2.9移植到OK6410开发板
- 移植Mplayer到OK6410开发板
- pppoe客户端移植到ok6410开发板
- 移植Mplayer到OK6410开发板
- 移植sqlite到OK6410开发板上
- linux内核移植到开发板步骤
- 嵌入式linux截图工具gsnap移植到OK6410 TX2416开发板
- OK6410开发板Linux-3.3.5驱动移植之DM900网卡驱动移植+NFS文件系统挂载
- Qt-4.7.3 到OK6410开发板的移植
- 成功移植Mplayer到OK6410开发板上了
- 制作yaffs2文件系统并移植到ok6410开发板上
- OpenGL高级特性之利用Image内存模型&计算着色器&原子操作实现(直方图模型)通用计算
- ProGuard代码混淆技术详解
- 阿里规约插件在eclipse下不能安装
- OpenStack-M版(Mitaka)搭建基于(Centos7.2)+++五、Openstack计算服务(nova)下
- Golang从零开始(一) 编译环境搭建(Ubuntu17)
- Linux-3.3.5内核初步移植到OK6410开发板
- 小麦子-WPF学习系列3:一个完整的界面案例
- 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。
- 【Codevs1001】舒适的路线 并查集 枚举 比值 (7/1000)
- (转)Deep Learning(深度学习)学习笔记整理系列之(一)
- 如何设计一个秒杀系统
- 修改 已经创建好的 web 项目的 webapp版本
- 图像增强去雾之直方图均衡化/同态滤波/Retinex算法
- JS基础知识