跑u系统源码
A. 大家好,小弟一直不明白对linux或uboot源码包打补丁的原因。在网上查了资料也没有详细的介绍。
1、配置源码需要重新编译,而重新编译系统会花费大量的时间,而且Linux系统并不是修改源码就能编译通过,还涉及到很多的Makefile,那么要你单独一个个的修改工作量也会比较大。但是源码补丁可以自动识别和替换需要的,方便了一些并不是太熟悉Linux的人,而且减轻了用户的工作量。
2、既然是补丁,肯定都是针对某一些特殊情况开发的,并不是所有人都会遇到这些情况,也并不是所有人都需要这些补丁。Linux发布的源码都是一些Linux比较大的升级时候发布一次的,而源码是提供给所有人的,那么也不是每个人都需要这个补丁的源码呀,一般都只是下载和自己所从事专业有关的。
补丁的话随便你自己,因为不是所有人都需要那个补丁,就算你不装,也没什么问题的
B. 关于ARM开发板(RK3399)Android系统的emmc进行Tuning的次数在源代码中应该在什么地方看
U-boot 支持 2 种方式烧写 emmc 设备:
Fastboot 命令:通过 usb 接口烧写。
步骤:
1. 编写 u-boot 支持从 sd 卡启动,里面涉及到文件的修改,下面讲解。
2. 按照上述方法,把 u-boot 烧录到 sd 上,使开发板从 sd 卡启动。
3. 进入开发板命令终端 # :
4. 首先格式 emmc ,目的是分配 4 个分区。分别为 vfat 分区 , system 分区 , userdata 分区 , Cache 分区 .
# : Fdisk -c 0
-c : 表示格式当前设备
0 : 表示初始化的 emmc 设备节点, mmc/sd 设备加载顺序,分配的节点从 0 开始到 3 结束。不管你从哪个通道指定起始设备,多从 0 开始分配。如: emmc 占用通道 0 口,
分配的节点是 0 , sd 卡占用通道 2 口,分配的节点是 1.
如果不初始化emmc,只使用sd卡模式,在sd卡占用通道2口时,分配的节点是 0.这点请
了解源代码,后续会修改。
所以,如果想给板子上 SD 分区的话,使用如下命令 ( 在 emmc 也初始化成功的情况下 )
#: fdisk -c 1
C. 的linux源码和uboot源码是开源的么
Linux 不光核心系统是开源的,正规的 GNU/Linux 的要求是整个系统也都是开源的。
不过这不是绝对的,SUSE 企业版,Mandriva PowerPack ,以及一些系统,里面会有不开源的的东西存在,但大部分都开源。
你可以认为,所有的 GNU/Linux 都是完全开源的。
他们的源代码都可以在官方网站下载,或者借助他们的软件包管理器在软件源中下载。
开源的系统不光 Linux ,常见的还有 BSD ,BSD 的更加开放,因为他的源代码允许商业化修改后闭源再发布,这比 GNU GPL 对于商业友好不知多少倍。当然也有不少无耻的公司,拿来直接闭源再发布骗钱的。
之后还有 MAC OS X ,他的底层系统 darwin 是开源的,不过协议不同于一般的开源。但他的界面是不开源的,所以就有了 GNU/darwin ,底层 darwin ,上层 GNU 软件。
还有 openSolaris ,开源的 UNIX 。
剩下的还有一些,就不如上面的广泛了。
D. 操作系统源代码指什么是不是有了这个以后就可以复制这个操作系统(完全不懂,求教)
主要指系统内核的源代码。可以把系统内核程序编译出来
开机的时候使用 bootloader 来加载内核程序,这样系统就跑起来了
E. 如何将Minix系统源码跑起来就是怎么编译Minix源码,然后运行跑起来
#cd /usr/src/kernel
#make clean
#make
#cd /usr/src
#make install
F. 在uboot源码中 CONFIG_NAND_U_BOOT = y是什么意思
uboot的编译控制,具体要看代码才行,字面上面的意思是Nand命令有关。
G. qemu怎么把针对powerpc板的u-boot跑起来
使用Qemu模拟Cortex-A9运行U-boot和Linux 作者来源于网络
我的开发环境: Ubuntu-12.04 所有软件包为最新
1. 安装GNU工具链
sudo apt-get insatll gcc-arm-linux-gnueabi
sudo apt-get insatll g++-arm-linux-gnueabi
安装完成后会在 /usr/arm-linux-gnueabi/ 目录下生成库文件、头文件等。 我安装的GCC版本为:
arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
2. 安装Qemu模拟器
sudo apt-get install qemu qemu-system qemu-utils
这时应该已经可以运行qemu-system-arm命令了, 其版本为:
qemu-system-arm --version
QEMU emulator version 1.0.50 (Debian 1.0.50-2012.03-0ubuntu2), Copyright (c) 2003-2008 Fabrice Bellard
3. 编译和运行U-boot:
到 ftp://ftp.denx.de/pub/u-boot/ 下载最新版本的U-Boot源代码, 我用的目前最新版本 u-boot-2012.04.tar.bz2
解压后进入源代码目录,在Makefile里面增加两行:
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
其实就是告诉它使用ARM编译器来编译。
make ca9x4_ct_vxp_config
make
这里配置目标板为 Cortex-A9x4 vexpress. 之所以选这个配置可以从 boards.cfg文件里看到, vexpress是ARM公司使用Cortext-A9的一个开发板,相关的代码在 board/armltd/vexpress/ 目录,配置文件为include/configs/ca9x4_ct_vxp.h。 而且关键的是Qemu里面已经支持这个板卡。
编译完成后会生成u-boot文件
运行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
或者
qemu-system-arm -M vexpress-a9 -m 256M -serial stdio -kernel u-boot
发现,如果没有指定-nographics, 则必须要加-serial stdio才会有打印。
参数-m 256M为指定内存大小。-M 指定板卡的名称, 支持的板卡可以用-M ?查看, 如下:
#qemu-system-arm -M ?
Supported machines are:
beagle Beagle board (OMAP3530)
beaglexm Beagle board XM (OMAP3630)
............
versatilepb ARM Versatile/PB (ARM926EJ-S)
versatileab ARM Versatile/AB (ARM926EJ-S)
vexpress-a9 ARM Versatile Express for Cortex-A9
vexpress-a15 ARM Versatile Express for Cortex-A15
正常运行的结果:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
U-Boot 2012.04 (Jul 08 2012 - 00:14:08)
DRAM: 256 MiB
WARNING: Caches not enabled
Flash: ## Unknown flash on Bank 1 - Size = 0x00000000 = 0 MB
## Unknown flash on Bank 2 - Size = 0x00000000 = 0 MB
*** failed ***
MMC: MMC: 0
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: smc911x-0
Hit any key to stop autoboot: 0
VExpress#
VExpress# printenv
baudrate=38400
bootcmd=run bootflash;
bootdelay=2
bootflash=run flashargs; cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; bootm ${kernel_addr} ${ramdisk_addr_r}
console=ttyAMA0,38400n8
。。。。。
注意:如果在检测Flash failed后停止运行,是因为在 arch/arm/lib/board.c里面 board_init_r()函数里检测Flash失败后调用了hang(), 暂时先把hang()去掉就可以运行下去了。
4. 编译和运行Linux内核:
到http://www.kernel.org/下载最新的Linux内核源码,我下载的是linux-3.4.4.tar.bz2. 解压后修改Makefile, ARCH = arm, CROSS_COMPILE=arm-linux-gnueabi-
make vexpress_defconfig
(可以到 arch/arm/configs/ 目录看到所有自带的配置文件, 我们使用vexpress板卡默认的配置文件)
然后 make menuconfig --> System Type 把 Enable the L2x0 outer cache controller 取消, 否则Qemu会起不来, 暂时还不知道为什么。
然后就可以make了。 最后会生成 arch/arm/boot/zImage 文件, 这就是我们需要的内核映像。
5. 制作根文件系统:
这部分网上有非常多的介绍,就不细说了。 大概流程是:先创建标准的Linux目录结构, 到http://www.busybox.net/上下载最新的Busybox源代码编译安装到刚才创建的目录,
拷贝ARM的库文件到相应目录,在etc/目录创建若干必须的启动脚本和配置文件。 下面说一下怎么生成一个ext3格式的文件系统映像:
dd if=/dev/zero of=a9rootfs.ext3 bs=1M count=32 //创建一个32M的空文件
mkfs.ext3 a9rootfs.ext3 //格式化为EXT3
sudo mount -t ext3 a9rootfs.ext3 a9rootdir/ -o loop //挂载到a9rootdir目录
cp path/to/your/rootfs/* a9rootdir/ -Rf //拷贝文件到该目录,相对于放到a9rootfs.ext3里面
sudo umount a9rootdir/
至此a9rootfs.ex3 就包含了我们创建的根文件系统内容, 并且是ext3格式。
6. 使用Qemu运行Linux:
qemu-system-arm -kernel zImage -serial stdio -M vexpress-a9 -append "root=/dev/mmcblk0 console=ttyAMA0 console=tty0" -sd a9rootfs.ext3
Qemu可以模拟SD卡, 我们把a9rootfs.ext3作为一个SD设备,对应的设备文件即为 /dev/mmcblk0, 以它作为根文件系统启动。 ttyAMA0: Serial console; tty0: Framebuffer Console. 最后放一张启动后的图片:
阅读(2682) | 评论(0) | 转发(0) |
0
上一篇:kernel 启动过程之五, initcall 的来由, console 的初始化
下一篇:linux下jlink安装
相关热门文章
A sample .exrc file for vi e...
游标的特征
IBM System p5 服务器 HACMP ...
busybox的httpd使用CGI脚本(Bu...
Solaris PowerTOP 1.0 发布
linux dhcp pei roc
关于Unix文件的软链接
求教这个命令什么意思,我是新...
sed -e "/grep/d" 是什么意思...
谁能够帮我解决LINUX 2.6 10...
H. u-boot源代码下载
http://www.denx.de/wiki/U-Boot 可以找到各种版本的uboot。要注意自己编译器的版本噶,否则会出现烦人的兼容性问题
I. 开发跑腿系统源码多少钱
一款app价格根据功能来定的,每个公司也是不一样的价格,简单到复杂,一两万的到十来万的都不等,,小编推荐好急跑腿免费系统,这样可以帮助使用者省时省力,
那么小编跟你具体说一下开发跑腿APP时容易犯的几个思维误区:
1.以为做个软件简单,所以计划需求的时候很随心和模糊不清。
2.急着要报价,在对需求不确定的时候就要价格。然后就按这个价格开始做。
3.不知道功能是什么,想做个商城缺说要做自己要的是淘宝。想要做的是淘宝缺说的是商城。
4.网站和手机App、跑腿APP区别搞不清楚。要做手机App、跑腿APP却说自己要做网站。
5.以为所有软件都有模板,而且模板都很便宜。
6.缺乏耐心,不明白也从未想过自己要做的东西有多复杂。
7.自己不知道要做的东西的具体功能,要靠软件开发商来猜。而且还这时候就要报价。
J. 用服务写USB的拔插程序。求详细源代码,能用能跑的啊
这种情况也可能有,但是还有一个情况,还有一款USB设备也是自己做的,但是用了CYPRESS提供的一个USB类对下位机进行访问,这款USB设备的拔插是可以访问的。而我前面所说的不能识别拔插的USB设备是用IOCONTROL对下位机访问的,所以我怀疑可以在PC软件上下手解决这个问题。又因为那个USB类无法在我前面提到的设备上应用,所以只能自己想办法解决。中网互赢 手机客户端