linux移植(6)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
usbmon: debugfs is not available
116x: driver isp116xhcd,
05 Aug 2005
s3c2410ohci
s3c2410ohci:
S3C24XX OHCI
s3c2410ohci
s3c2410ohci:
new USB bus registered, assigned bus number 1
s3c2410ohci
s3c2410ohci:
irq 42, io mem 0x49000000
usb usb1: Product: S3C24XX OHCI
usb usb1: Manufacturer: Linux 2.6.14.1 ohci_hcd
usb usb1: SerialNumber: s3c24xx
hub 10:
1.0: USB hub found
hub 10:
1.0: 2 ports detected
sl811: driver sl811hcd,
19 May 2005
usbcore: registered new driver cdc_acm
drivers/usb/class/cdcacm.
c: v0.23:USB Abstract Control Model driver for USB modems and ISDN
adaptesdrivers/usb/class/bluetty.c: USB Bluetooth support registered
usbcore: registered new driver bluetty
drivers/usb/class/bluetty.c: USB Bluetooth tty driver v0.13
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usbstorage
USB Mass Storage support registered.
mice: PS/2 mouse device common for all mice
NET: Registered protocol family 2
IP route cache hash table entries: 256 (order: 2,
1024 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Reading data from NAND FLASH without ECC is not recommended
VFS: Mounted root (cramfs filesystem) readonly.
Mounted devfs on /dev
Freeing init memory: 104K
Reading data from NAND FLASH without ECC is not recommended
mount /etc as ramfs
recreate
the /etc/mtab entries
mount
/dev/shm as tmpfs
mount
/proc as proc
mount
/sys as sysfs
init started: BusyBox v1.1.3 (2006.07.0303:
43+0000) multicall
binary
Starting pid 28, console /dev/tts/0: '/etc/init.d/rcS'
in /etc/init.d/rcS
/
sbin/ifconfig eth0 192.168.1.5
Please press Enter to activate this console.
#
1.5 Linux 下cs8900a的移植说明
1.5.1 为cs8900a建立编译菜单
1. 拷贝到文件
把cs8900a的压缩包拷贝到arm用户下的dev_home/localapps/
[arm@localhost localapps]$ tar xzvf
cs8900a.tar.gz
[arm@localhost localapps]$cd cs8900a
[arm@localhost cs8900a]$cp cs8900a.c $KERNEL/linux2.6.14.1/
drivers/net/
[arm@localhost cs8900a]$cp cs8900.h $KERNEL/linux2.6.14.1/
drivers/net/
2. 修改Kconfig文件
[arm@localhost cs8900a]$vi $KERNEL/linux2.6.14.1/
drivers/net/Kconfig
#加入如下内容
config CS8900a
tristate "CS8900a support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
helpSupport
for CS8900A chipset based Ethernet cards. If you have a network (Ether
net) card of this type, say Y and read the EthernetHOWTO,
available from as
well as.
To compile this driver as a module, choose M here and read.
The module will be called cs8900.o.
3. 修改Makefile文件
[arm@localhost cs8900a]$vi $KERNEL/linux2.6.14.1/
drivers/net/Makefile
#加入如下内容
obj$(
CONFIG_CS8900a) += cs8900a.o
1.5.2 修改S3C2410相关信息
1. 加入CS8900A在内存中的起始位置
[arm@localhost cs8900a]$cp regcs8900.
h $KERNEL/linux2.6.14.1/
include/asmarm/
archs3c2410/
cs8900.h的内容如下:
#ifndef _INCLUDE_CS8900A_H_
#define _INCLUDE_CS8900A_H_
#include <linux/config.h>
#define pSMDK2410_ETH_IO 0x19000000 /* S3C2410_CS3 0x18000000 */
#define vSMDK2410_ETH_IO 0xE0000000
#define SMDK2410_ETH_IRQ IRQ_EINT9
#endif
2. 加入cs8900A的物理地址到虚拟地址的映射
[arm@localhost cs8900a]$vi $KERNEL/linux2.6.14.1/
arch/arm/machs3c2410/
machsmdk2410.
c
/* 加入如下内容 */
static struct map_desc smdk2410_iodesc[] __initdata = {
{vSMDK2410_ETH_IO, 0x19000000, SZ_1M, MT_DEVICE} /* Add this line */
};
2 创建uImage
2.1 相关技术背景介绍
前面已经介绍了内核编译后,生成zImage的内核镜像文件。该镜像文件可以通过UBOOT
提供的go命令,
跳转执行,引导内核。同时在uboot1.1.4
的tools目录下,提供了生成uImage的工具mkimage命令,在生成
uboot
的二进制镜像文件的同时,mkimage命令会同时编译生成,无需另外编译。通过mkimage命令,在
zImage中加入头文件(镜像头长0x40,真正的内核入口向后偏移了0x40大小),生成uImage镜像文件,该文
件就是执行bootm所需的内核镜像文件。
2.2 在内核中创建uImage的方法
2.2.1 获取mkimage工具
2.6内核树的Makefile提供了创建uImage的方法,但需要我们提供相应的mkimage命令。
所以首先拷贝uboot
中tools目录下编译后生成的mkimage到/usr/bin/下,然后便可以在内核根目录下通过
make uImage
来创建uImage文件。该文件生成在arch/arm/boot/下。
2.2.2 修改内核的Makefile文件
[arm@localhost linux2.6.14.1]$
vi arch/arm/boot/Makefile
#MKIMAGE变量记录mkimage命令的路径mkuboot.sh脚本文件可以scripts目录中找到
MKIMAGE := $(srctree)/scripts/mkuboot.sh
#zreladdry
与params_physy
可以在arch/arm/machs3c2410/
Makefile.boot当中找到
ZRELADDR := $(zreladdry)
PARAMS_PHYS := $(params_physy)
INITRD_PHYS := $(initrd_physy)
#生成uImage的mkImage命令行,其中需要关注的就是a
与 e
参数。
#参数a:
指明uImage加载的SDRAM地址,内核默认指定加载地址为0x30008000。
# uboot
引导时,bootm命令跳到与上相同位置执行,检查完镜像头后,它会跳到内核真正的入口点开
始执行。
#参数e:
指明uImage中刨去镜像头后真正的内核入口地址。
# 镜像头为0x40长,故此处指定为0x30008040。
# uboot
引导时,go命令可以直接指定此位置。go命令不检查镜像头。
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) A
arm O
linux T
kernel \
C
none a
$(ZRELADDR) e
0x30008040 \
n
'Linux$(
KERNELRELEASE)' d
$< $@
3追加实验记录
以同样方式移植其他2.6主线内核,出现问题如下:
3.1移植linux-2.6.15.7
编译通过,启动时显示:
VFS: Cannot open root device "mtdblock2" or unknownblock(
31,2)
Please append a correct "root=" boot option
Kernel panic not
syncing: VFS: Unable to mount root fs on unknownblock(
31,2)
3.2移植linux-2.6.16.21
编译通过,启动时显示:
VFS: Cannot open root device "mtdblock2" or unknownblock(
31,2)
Please append a correct "root=" boot option
Kernel panic not
syncing: VFS: Unable to mount root fs on unknownblock(
31,2)
3.3 移植linux-2.6.17
编译失败
4 参考资料
1. Porting kernel 2.6.11.7 to S3C2410
http://superlp.blogchina.com/1391393.html
非常感谢此篇文档的作者
2. devfs介绍
http://www128.
ibm.com/developerworks/cn/linux/filesystem/lfs4/
index.html#resources
3. <<BUILDING EMBEDDED LINUX SYSTEMS>>
中文名:<<构建嵌入式Linux系统>>
Linux系统移植(完整版) 关于系统移植 阅读详情

相关推荐

IMX6ULL官方linux移植

1.开发环境 gcc: 100ask_imx6ull-sdk\ToolChain\gcc-linaro-6.2.1-2016.11-x86_64_arm-linux- gnueabihf linux: linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 主机系统: ubuntu18.04 gcc可以在百问网提供的bsp包找到,uboot使用的是nxp官方的uboot, 点击下载Linux。 2.编译下载NXP官方Linux 2.1 编译官方Linux nxp官方提供

zhoujun73092的博客 3497

LinuxUSB虚拟串口驱动(CDC-ACM驱动)源码

Linux下的CDC-ACM驱动源码,USB虚拟串口驱动程序,欢迎下载学习!

imx6ull移植Linux系统第一篇——U-Boot的移植

imx6ull移植Linux系统第一篇——U-Boot的移植 花了大概两周的时间,把Linux移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot、系统镜像、设备树以及根文件系统的制作,并最终下载到开发板上运行。这里想对这两周的学习内容进行一个总结,因为后期会有其他的学习安排,系统移植是一些经验和方法的掌握,如果长时间不去用,时间久了肯定会忘,希望这里写的总结会对后期的移植工作给出一些方法上的参考。 提示:本系列文档共分四篇:U-Boot的移植Linux内核的

qq_40380893的博客 3498

linux系统移植

linux系统移植

嵌入式分享 4547

linux系统移植篇(一)—— linux系统组成

linux系列目录: linux基础篇(一)——GCC和Makefile编译过程 linux基础篇(二)——静态和动态链接 ARM裸机篇(一)——i.MX6ULL启动过程 ARM裸机篇(二)——i.MX6ULL第一个裸机程序 ARM裸机篇(三)——重定位和地址无关码 ARM裸机篇(四)——异常和中断 linux系统移植篇(一)—— linux启动过程 文章目录 ......

sinat_31039061的博客 7977

linux 软件移植(移植与源码移植编译)

linux 软件移植

学习记录 1375

imx6ull移植Linux系统第二篇——Linux内核的移植

imx6ull移植Linux系统第二篇——Linux内核的移植 花了大概两周的时间,把Linux移植认真学了一遍,期间踩了不少坑,花费了不少时间去解决各种奇奇怪怪的问题,最终完成了uboot、系统镜像、设备树以及根文件系统的制作,并最终下载到开发板上运行。这里想对这两周的学习内容进行一个总结,因为后期会有其他的学习安排,系统移植是一些经验和方法的掌握,如果长时间不去用,时间久了肯定会忘,希望这里写的总结会对后期的移植工作给出一些方法上的参考。 提示:本系列文档共分四篇:U-Boot的移植Linux内核

qq_40380893的博客 2220

移植awtk至i.mx6 linux系统

开发环境:Ubuntu 16.04 i.mx6 linux版本:4.9.11 tslib版本:1.4 awtk版本:awtk-v1.3+rc.1@aworks.2 一、首先安装i.mx6交叉编译环境: 1、yocto:bitbake meta-toolchain获取交叉编译工具fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-t...

zhengyuan828的博客 2836

在ARM开发板上移植Linux2.6

正文在ARM开发板上移植Linux2.6声明:本文内容大多节选自一些网上的文章。ARM开发板简介PXA255处理器介绍: Intel: "For advanced devices that run the most impactful mobile applications, the Intel? PXA255 Processor is the answer. A pin-for-pin comp

Tunix126的专栏 8188

嵌入式Linux-基于I.MX6ULL移植cpython

本文详细介绍了在嵌入式Linux环境下移植cpython解释器的完整流程。首先指导了三个前置库(zlib、libffi、ncurses)的交叉编译过程,针对libffi的特殊构建问题提供了解决方案。最后详细说明了cpython本身的交叉编译配置技巧和注意事项。

Dessera的博客 863

vc6.0移植工程到linux

  刚 刚将一个工程从vc6.0移植linux 下的kdevelop,发现了一些问题:许多文本内容发生了变化。不可想象,按照这变化了的文本去进行调试会遇到多少不可想象的问题。        其实根本原因是dos格式到unix的转换问题。因此,在进行程序移植时一定要对程序文件进行转换,避免因内容改变而带来的一些不必要的烦恼。        #find . -type f -and -not

lenev的专栏 1313

Linux2.6内核移植笔记(一)

Linux2.6内核移植笔记(一)    

嵌入我的梦想 3927

嵌入式Linux-基于I.MX6ULL移植触摸屏

本文介绍了基于IMX6ULL开发板的触摸屏移植过程。作者使用正点原子800x480分辨率触摸屏,显示芯片为GT1158,通过I2C接口连接。文章详细阐述了设备树配置步骤,包括添加电源管理节点、配置中断和复位引脚,并解决与SD卡模块的引脚冲突问题。

Dessera的博客 1539

imx6ull-系统移植篇20——Linux 内核移植(上)

本文介绍了将NXP官方Linux内核移植到正点原子I.MX6U-ALPHA开发板的过程。

m0_62228566的博客 1313

从零适配IMX6ULL开发板Linux系统——uboot移植

串口驱动搜 CP210 下载 目的:当拿到一块儿完全没有系统的开发板,厂家并没有提供给我们对应的Linux系统,从芯片厂家提供的原厂资料中,修改并适配自己的开发板。 我们需要做的步骤如下: 获取资料 分析配套的SOC启动流程 对比与芯片原厂公板硬件的区别 尝试烧写公板系统并启动 自行编译出镜像并烧写启动 开发板:百问网IMX6ULL 一、前期能找到越多的资料越好 由于我使用的NXP公司的IMX6ULL,所以需要先去NXP官网注册一个账号,尽可能多的找IMX6ULL的相关资料。 去NXP官

Hanrui的博客 2954

Linux2.6.24内核移植

linux2.6.24内核移植到utu2440开发板

Zechin的专栏 1499

linux 内核 网卡驱动 移植,linux-2.6.35内核移植—网卡驱动的移植

linux-2.6.35内核移植网卡驱动的移植一、移植环境:1、 Ubuntu 10.10发行版2、 u-boot.bin http://download.csdn.net/detail/baby_afu/44128263、 目标机:FS_S5PC100平台4、 交叉编译器 arm-cortex_a8-linux-gnueabi-gcc-------------------------------...

weixin_36105232的博客 410

基于S3C2440的Linux-3.6.6移植——ADC的移植

linux-3.6.6中,系统已经有了关于s3c2440的ADC通用驱动程序文件——arch/arm/plat-samsung/adc.c,但还没有应用层文件,如果要想使ADC工作,并利用系统已有的驱动文件,那么就必须自己动手写一个应用层文件。   本文先介绍adc.c,然后给出一个通用的ADC应用层文件,并移植到开发板上。   先看adc.c文件中的初始化函数adc_init: st

赵春江的专栏 4247
上一篇: linux移植(5)
下一篇: linux移植(7)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值