real210移植记录-u-boot2013.10引导linux3.10.30进入控制台
http://blog.csdn.net/wang_shuai_ww/article/details/19678989这篇文章已经介绍了正常引导linux的方法,但只是能够引导,并不能进入控制台,本篇将会介绍怎么进入控制台。
首先要明确要进入控制台要做什么事。在上篇基础上,再增加DM9000的支持和NFS的支持即可进入梦寐以求的控制台了。
下面先从增加DM9000的支持介绍。
由于3.10.30版本内核已经有对DM9000支持,所以稍作修改即可完成移植。
修改结构体smdkv210_dm9000_resources 和函数 smdkv210_dm9000_init(),修改成如下所示即可。
static struct resource smdkv210_dm9000_resources[] = { [0] = { .start = 0x88000000,.end = 0x88000000 + 3,.flags = IORESOURCE_MEM,}, [1] = { .start = 0x88000000 + 4,.end = 0x88000000 + 4 + 3,.flags = IORESOURCE_MEM,}, [2] = { .start = IRQ_EINT(9),.end = IRQ_EINT(9),.flags = IORESOURCE_IRQ|IORESOURCE_IRQ_HIGHLEVEL,}
};
这里使用中断线9,可在原理图查得。
static void __init smdkv210_dm9000_init(void)
{unsigned long* srom_bw = ioremap(0xE8000000, 4); unsigned long* srom_bc1 = ioremap(0xE8000004, 4); *srom_bc1 = ((0<<28)|(0<<24)|(5<<16)|(0<<12)|(0<<8)|(0<<4)|(0<<0));*srom_bw &= ~(0xf << 4); *srom_bw |= (1<<4)|(1<<5);gpio_request(S5PV210_MP01(1), "nCS1");s3c_gpio_cfgpin(S5PV210_MP01(1), S3C_GPIO_SFN(2));gpio_free(S5PV210_MP01(1));iounmap(srom_bw);iounmap(srom_bc1);
}
然后编译内核即可。
内核完成后还需要对u-boot进行设置才行,也就是对linux内核传递参数的设置。
setenv bootargs noinitrd root=/dev/nfs console=ttySAC2,115200 init=/linuxrc nfsroot=192.168.1.22:/nfsboot/my_system/rootfs/ rw ip=192.168.1.21:192.168.1.22:192.168.1.1:255.255.255.0::eth0:on
如果内核也使用挂载方式,那么还可以设置内核以tftp方式加载到内存。
setenv bootcmd "tftp 30008000 /210_old/uImage;bootm 30008000"
设置完上面的环境变量后saveenv保存环境变量即可。
内核和u-boot都完成后下面就是制作根文件系统了。这个网上有很多,这里我再在后面说说自己的一些见解。
首先要创建目录,使用下面的脚本即可:
#!/bin/sh
echo "------Create rootfs directons start...--------"
mkdir rootfs
cd rootfs
echo "--------Create root,dev....----------"
mkdir root dev etc boot tmp var sys proc lib mnt home usr
mkdir etc/init.d etc/rc.d etc/sysconfig
mkdir usr/sbin usr/bin usr/lib usr/modules
echo "make node in dev/console dev/null"
sudo mknod -m 600 dev/console c 5 1
sudo mknod -m 600 dev/null c 1 3
mkdir mnt/etc mnt/jffs2 mnt/yaffs mnt/data mnt/temp
mkdir var/lib var/lock var/run var/tmp
chmod 1777 tmp
chmod 1777 var/tmp
echo "-------make direction done---------"
目录建立完后可以编译busybox了,我使用的版本是busybox-1.22.0,可以去官网下载。
然后解压,进入busybox-1.22.0目录,打开makefile修改CROSS_COMPILE和ARCH,如下:
CROSS_COMPILE ?= arm-linux-
ARCH ?= arm
使用make xconfig或者make menuconfig进行配置
红圈部分可选可不选。
红圈部分还是选上吧,防止覆盖宿主机的这个目录。
下图中的红色部分修改成前面使用脚本生成rootfs的绝对路径即可。
其他默认,编译即可。
使用的编译命令为make install,执行完成后会在rootfs目下有个linuxrc文件。
这时文件系统还是不可用的,还需要添加一些文件。
在etc目录下创建Inittab文件,内容如下
::sysinit:/etc/init.d/rcS
console::askfirst:-/bin/sh
::restart:/sbin/init
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/sbin/swapoff -a
在etc/init.d/目录下创建rcS文件,内容如下
echo "----------mount all.........."
mount -a
echo "----------Starting mdev......"
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
为inittab和rcS文件添加可执行权限
chmod a+x inittab
chmod a+x rcS
在etc目录下创建fstab文件,内容如下
#evice mount-point type option dump fsck order
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
在etc目录下创建profile文件,内容如下
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
#set hostname
HOSTNAME='/bin/hostname'
export HOSTNAME
# Set PS1
PS1='[\u@\h \W]\$'
export PS1
在etc/sysconfig目录下创建HOSTNAME文件,在文件中写入主机名,我这里写的是real210。
另外还需要一些库文件,这里可以使用arm-linux-编译器的库。为了方便,也正对我的开发板,我直接把开发板配套的库文件拷贝到了刚才建立的文件系统中,主要是lib目录和usr/lib目录下的库文件。
到这里就完成了,启动系统看看运行界面吧:
网上有人把linux内核也安装了,我这里没有安装,也是可以运行的,安装linux后打包的话会非常大,所以我没有安装linux内核,以后需要再说吧。
如果大神了解这个情况的留下言哈,再次谢过了。
real210移植记录-u-boot2013.10引导linux3.10.30进入控制台相关推荐
- u-boot2013.10引导linux3.10.30记录
首先确定real210.h头文件的配置是否正确,我的完整配置如下: /** (C) Copyright 2009 Samsung Electronics* Minkyu Kang <mk7.ka ...
- real210移植记录-支持eMMC,增加菜单操作
本次记录的移植是使该u-boot支持eMMC,开发板为real210最新版的开发板,标配eMMC 8GB flash,之前的移植都是在之前的210硬件上进行的核心板版本为v2,flash为nand 5 ...
- u-boot移植到mini2440,u-boot版本2008.10
这篇文章写于2008.12.28日,主要记录了我移植u-boot-2008.10的过程,并附上了移植好的patch文件.移植好的u-boot-2008.10适用友善公司的mini2440和阳初公司的y ...
- android touch screen keyboard input移植记录
android touch screen keyboard input移植记录 仅仅是作为记录: Andorid 的 touchscreen 事件必须要有 BTN_TOUCH 才可以. 所以初始化 ...
- 安卓平台下的GPS架构介绍及驱动移植记录
一.前言 我的工作是关于汽车车机BSP部分. 汽车车机,其实基本和人们日常所用的手机一样,也是安卓平台的.所谓安卓,就是一层安卓服务包裹着Linux内核所形成的操作系统. BSP组,主要工作内容就是负 ...
- 基于Android8.1的博通bcm89342蓝牙驱动的驱动移植记录
基于Android8.1的博通蓝牙BCM89342的驱动移植记录 说明 一 .软硬件平台 二.蓝牙移植流程 2.1 kernel 对蓝牙的驱动支持配置 2.2 kernel层编写蓝牙电源管理(bt r ...
- ls2k1000在linux3.10内核下的中断分析
目录 1 基本知识 1.1 ls2k1000的中断组成 1.2 GS264中断相关的寄存器 2 ls2K1000 在 linux3.10 内核下的中断初始化过程 2.1 大致过程 2.2 函数具体分析 ...
- 电子实验记录和纸质实验记录——怎么选,可以提高10倍效率
上海鹰谷自2017年推出了电子试验记录本-InELN, 因其兼具管理和使用便利等优点和本土化的服务,得到用户的好评. 一款优秀产品的研发是没有终点的,鹰谷积极关注和持续倾听用户的意见,不断提升产品体验 ...
- mjpg-streamer移植记录
一.基于ubuntu18.04系统的mjpg-streamer移植记录 1.移植之前使用ubuntu的软件测试USB摄像头是否正常工作 (1).插上摄像头之后,ubuntu右下角有摄像头图标 (2). ...
最新文章
- 史上最萌的统计学入门书,快来看看长啥样
- python之拆包与装包
- python多个线程join_python-使用`thread.join()`时多线程冻结
- listview条目用状态选择器没反应
- 学习笔记(一)——图像的灰度级和动态范围
- 工作260:js判断一个数组是否包含一个指定的值
- 陌屿授权系统V2.0全解
- Linux平台提取DSDT,手动提取DSDT和SSDT教程
- Linux学习笔记:GDB常用命令
- 微波工程(3)——网络
- 计算机系统 基础知识点汇总,超全!!!
- 手把手教你破解无线路由器密码
- 0-50A集成式霍尔电流传感器应用案例分享
- nodejs轻量型个人文档管理系统
- 面试官的技术面试技巧与步骤
- nacos怎么修改服务分组_【Java】nacos服务注册如何配置分组?
- [记录]手机数据恢复
- 悲观锁和乐观锁的理解以及实现方式-学习笔记
- TT语音不灵了,母公司趣丸半年巨亏近10亿,押注电竞能否助推IPO?
- c语言100以内分解质因数,用C语言实现,将100以内的自然数分解质因数
热门文章
- echarts词云图形状_用Python 3.8绘制词云图就这么20行代码
- android流程化步骤样式,Android RecyclerView 解析之绘制流程篇
- html 复制文本按钮,js实现点击按钮复制文本功能
- oracle查找异常中断的sqlid方法,Oracle查找锁定对象以及强制解除锁定的方法
- 均方误差越大越好_超详细 | 如何写好计量经济学实证分析论文?
- linux ftp dns,Ubuntu下FTP与DNS服务器搭建教程PDF
- yota3墨水屏设置_【YotaPhoneYOTA3评测】外观:没有全面屏但有墨水屏_YotaPhone YOTA 3_手机评测-中关村在线...
- mysql 实时备份_MySQL实现实时备份[转]
- sudo: apt-get:找不到命令_Linux重复执行历史命令方法详解
- 使用sed修改最后一行数据