1. 编译并烧写linux内核

  1)先准备好内核源码包urbetter-linux2.6.28-v1.0.tgz,输入命令:tar -zxvf urbetter-linux2.6.28-v1.0.tgz 解压

  2)进入内核源码包目录,修改Makefile,将CROSS_COMPILE改为自己的交叉编译工具。

  3)执行命令:make

  之后会在arch/arm/boot目录下生成zImage文件

  将zImage烧写进Nandflash的0x200000地址

2. 准备文件系统

  在6410目录下创建一个名为rootfs的目录,将文件系统压缩包urbetter-rootfs-qt-2.2.0.tgz放置6410目录下,输入:sudo tar xzvf  urbetter-rootfs-qt-2.2.0.tgz -c rootfs

  输入命令:vi /etc/exports

  最后一行加入:/home/linux/zkf/6410/rootfs *(rw,sync,no_root_squash,no_subtree_check)    注意括号内没有空格,否则重启nfs服务时会报错

  之后输入命令:sudo service nfs-kernel-server restart 重启nfs服务

  使用命令:showmount -e 可以看见当前可以用nfs挂载的目录:

  

3. 修改U-boot启动命令和参数

  启动U-boot后输入以下命令:

  setenv ipaddr 192.168.1.100
  setenv serverip 192.168.1.200
  setenv gatewayip 192.168.1.1
  setenv bootargs "root=nfs nfsroot=192.168.1.200:/source/rootfs init=/linuxrc console=ttySAC0,115200 ip=192.168.1.100"

  setenv bootcmd "nand read 50008000 200000 300000;bootm 50008000"

  saveenv

  重启开发板,让U-boot引导内核启动,内核启动后能看到LCD上显示企鹅。

4. 修改linux开机logo

  准备好一张480*272的png格式的图片linux_logo.png,按顺序输入以下命令:

  pngtopnm linux_logo.png > linux_logo.pnm

  pnmquant 224 linux_logo.pnm > linux_logo_clut224.pnm

  pnmtoplainpnm linux_logo_clut224.pnm > logo_linux_clut224.ppm

  如果提示没有软件则使用:sudo apt-get install netpbm 获取。

  接下来将logo_linux_clut224.ppm复制到linux内核drivers/video/logo目录下,替换掉原来的文件,同时删除掉logo_linux_clut224.c和logo_linux_clut224.o,重新编译下载内核。内核启动后显示的logo就是刚刚替换掉的图片了。

5. 去掉屏幕打印信息

  第4步完成后虽然开机logo修改成功了,但是启动后屏幕上会显示一些打印信息,如下:

  

  我一直以为这部分代码在内核里,于是在内核里搜了半天没搜到,然后以为在U-boot里,搜了半天也没搜到,最后发现是在文件系统里。。。

  将开发板文件系统根目录下etc/init.d/rcS中这几句echo全部注释掉再复位开发板,屏幕上那几句打印信息就没了。

6. 去掉开机logo上的光标

  第5步去掉了屏幕上的打印信息,但是左上角还有一个光标,接下来我们要把它去掉。

  将内核代码drivers/video/console/fbcon.c文件中第395行左右的fb_flashcursor函数和第1359行左右的中的fbcon_cursor函数内容全部注释掉,重新编译下载内核,重启开发板光标便去除了。

  

八、启动linux内核并修改开机logo的更多相关文章

  1. uboot学习之五-----uboot如何启动Linux内核

    uboot和内核到底是什么?uboot实质就是一个复杂的裸机程序:uboot可以被配置也可以做移植: 操作系统内核本身就是一个裸机程序,和我们学的uboot和其他裸机程序没有本质的区别:区别就是我们操 ...

  2. Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

    Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文<Qemu搭建ARM vexpress开发环 ...

  3. uefi是如何启动linux内核的?

    答:uefi启动linux内核有两条路径: 1. uefi直接进入uefi shell来启动linux内核 2. uefi直接进入uefi shell启动grub启动器,然后进入grub shell启 ...

  4. 高通平台msm8916修改开机logo【原创】

    经过两天的奋战终于把开机logo给搞定了啊. 首先修改开机logo要从哪里入手呢?先分析一下源码看看. ---> void display_image_on_screen() { struct ...

  5. 小白自制Linux开发板 九. 修改开机Logo

    许久不见啊,今天我们继续来修改我们的系统. 通过前面的几篇文章我们已经能轻松驾驭我们的开发板了,但是现在都是追求个性化的时代,我们在开发板上打上了自己的Logo,那我们是否可以改变开机启动的Logo呢 ...

  6. 安卓修改开机logo和开机动画的方法

    第一种和第二种方法亲测可用,安卓版本是4.2和安卓5.1均可.第二种方法待验证 以下三种方法 Android 开机其实总共会出现3个画面: 1.第一个就是 linux 系统启动,出现Linux小企鹅画 ...

  7. 安卓修改开机logo

    这里我们是在ubuntu下进行操作我是用root用户登陆的,首先安装netpbm库 执行:apt-get install netpbm 对于Android系统最开始表现logo是在内核当中,所以首先我 ...

  8. 通过Bochs分析Lilo启动Linux内核的过程

    1. Bochs调试 参考:http://www.cnblogs.com/long123king/p/3414884.html http://bochs.sourceforge.net/cgi-bin ...

  9. 基于TFTP方式加载启动Linux内核

            一.软硬件平台 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.UBOOT版本:U-Boot-2016.05,采用FDT和DM. 3.交换芯片MARVELL的88E63 ...

随机推荐

  1. Calendar Game HDU - 1079

    Adam and Eve enter this year’s ACM International Collegiate Programming Contest. Last night, they pl ...

  2. First Bad Version leetcode java

    问题描述: You are a product manager and currently leading a team to develop a new product. Unfortunately ...

  3. IDEA中部署tomcat,运行JSP文件,编译后的JSP文件存放地点总结

    首先保证你正常部署了Tomcat,并且正常在浏览器中运行了JSP文件. 那么Tomcat编译后的JSP文件(_jsp.class 和 _jsp.java)的存放地点: (一)一般存放在你安装的Tomc ...

  4. Spring Boot项目打包部署到外部Tomcat

    1.生成war包 1)修改POM文件,将打包类型改为war:<packaging>war</packaging> <packaging>war</packag ...

  5. hdu-4738-tarjin/割边

    http://acm.hdu.edu.cn/showproblem.php?pid=4738 求得是边权最小的割边,和求割点类似用tarjin,但要注意的是不能走从父亲过来的那一条边,在割点里那样理解 ...

  6. 数据结构与算法之PHP实现队列、栈

    一.队列 1)队列(Queue)是一种先进先出(FIFO)的线性表,它只允许在表的前端进行删除操作,在表的后端进行插入操作,进行插入操作的端称为队尾,进行删除操作的端称为队头.即入队只能从队尾入,出队 ...

  7. spring boot 之如何在两个页面之间传递值(转)

    原文地址:spring boot 之如何在两个页面之间传递值 问题:页面之间的跳转,通常带有值的传输,但是,在现在比较流行的SPRING MVC WEB 开发模型中,设计机制导致页面之间的直接接跳转和 ...

  8. 搭建GitLab服务器

    前言 每一个开发工作者无非身处2中开发环境:1.开源环境  2.闭源开发环境,若你身处闭源环境或对自己代码安全性要求较高,搭建和使用自己GitLab服务器是必不可少的环节. 可以通过各种方式搭建自己的 ...

  9. ActiveMQ 中的链表

    ActiveMQ 中的消息在内存中时,以链表形式保存,以 PendingList 表示,每一个消息是 PendingNode. PendingList 主要有2种实现:OrderedPendingLi ...

  10. Qt Widgets——抽象滑块及其继承类

    三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处. 理解QAbstractSlider时 可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlide ...