LTIB常用命令1
下面再写一点ltib的常用命令参数吧,虽然觉得对其编译内核和文件系统流程有了一定了解,但是对其命令参数用过的还不是很多,可以说是不甚了解,下面介绍一些,希望有用:
$
./ltib --help ## 这个等同于 ./ltib -h
:
$
./ltib -m listpkgs ## 此命令是根据ltib的配置来显示
查看配置中已选编译的程序包,如内核版本包,系统工具包:
$
./ltib -m listpkgs | grep ' y '
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final --batch
2>&1 | tee ltib_log.txt
##
保存编译过程产生的信息及错误信息全部保存到ltib_log.txt文件中
$
./ltib -m shell ## 完成后会给出提示,进入shell模式的提示符 'LTIB>'
##
输入exit可退出shell模式
##
下面的命令可以看一下这个有什么用,我直接给出命令,它下面就是这个命令的结果,不再解释
LTIB>
gcc --version
powerpc-linux-uclibc-gcc
(GCC) 3.4.3
Copyright
(C) 2004 Free Software Foundation, Inc.
This
is free software; see the source for copying conditions. There is NO
warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LTIB>
还有一种情况就是这些源码中存放有板子的各种配置文件,比如内存映射分配,也需要看一下源码文件,其命令格式为 $ ./ltib -m prep -p
<program_package_name>
##
下面这部分我是在large文件夹下操作,所写路径也是相对于/usr/local/mpc8349/large/来写的,而不是mytest文件夹下
##
例如我们要查看MPC8349ITX开发板上vsc7385的内存分配,或查找VSC7385的驱动模块部分,需要看uboot、内核源码,以下命令得到内核源码
$
./ltib -m prep -p kernel
##
解压后的内核源码位于rpm/BUILD/linux-2.6.13/
##
其中vsc7485的驱动是rpm/BUILD/linux-2.6.13/drivers/net/gianfar_phy.c
##
下面操作必须在原来的large文件夹下操作,为什么这么做?自己思考吧。以下命令可以得到uboot源码
$
./ltib -m prep -p u-boot
##
解压后得到的uboot源码位于rpm/BUILD/u-boot-1.1.3
##
其中有关MPC8349MITX板子配置信息的重要文件为/include/configs/MPC8349ITX.h
##
在上面的这个文件中可用看到VSC7385的内存分配基地址信息(#define CFG_VSC7385_BASE 0xF8000000)
##
不用uboot命令的话,可参看一下源码帮助理解。
##
注:上面这段命令操作我之所以选择在/usr/local/mpc8349/large文件夹下,是因为要得到某些程序源码,首先它得编译过。
$
./ltib --configure
##
办法一: 直接调用配置文件编译,如果配置文件没有更新,且编译过的目标镜像没有变化,会不进行编译。若有任何改动,会执行编译
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final
--batch
##
办法二: 如办法一一样,但强制重新编译
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final --batch
-f
##
办法三: 清除所有编译的程序包,然后重新配置编译镜像
$
./ltib -m distclean ## 清除ltib工程文件
$
./ltib --configure ## 重新配置编译
##
首先执行命令:
$
./ltib -m distclean ## 此操作将彻底清除所有当前ltib工程文件
##
此命令不要轻易使用,除非比较熟悉ltib编译配置过程
##
然后以root身份执行以下操作(注意:此操作将卸载所有的公共文件)
#
rm -rf /opt/freescale/pkgs
#
rm -rf /opt/freescale/ltib
#
rm <install_path> ## 执行文件ltib的上级目录
##
另一种更加暴力的办法是root身份运行rm命令来删除所有
##
首先我们得到内核源码,然后再编译,为什么这么做,我也不懂~~~,有些纳闷,以后再解决
$
./ltib -m prep -p kernel
$
./ltib -m scbuild -p kernel ##
编译的镜像为rpm/BUILD/linux/arch/ppc/boot/images/uImage
##
将test文件夹copy到内核的driver文件夹下
$
cp -a ~/test rpm/BUILD/linux/drivers/
##
vi修改driver文件夹下的Makefile
$
vi rpm/BUILD/linux/drivers/Makefile
##
可以仿照Makefile里的内容在最后添加如下一行
ojb-m
+= test/ ## 然后保存退出
##
修改test文件夹下的test.c和Makefile确保其正确无误。
##
下面的命令是进入ltib的shell环境,然后进入到test目录,然后编译
$
./ltib -m shell
LTIB>
cd rpm/BUILD/linux/drivers/test/
LTIB>
make V=1 ARCH=ppc
##
rpm/BUILD/linux/drivers/test/test.ko就是我们想要的module,下载到板子上用insmod
test.ko来执行模块(rmmod test.ko是卸载模块)
++++++++++++++++下面为test.c程序内容++++++++++++++++++
#include
<linux/init.h>
#include
<linux/module.h>
#include
<asm/mpc83xx.h>
MODULE_LICENSE("Dual
BSD/GPL");
static
int hello_init(void)
{
printk(KERN_ALERT
"Hello, world\n");
printk(KERN_ALERT
"IMMR virtual address: %X\n", VIRT_IMMRBAR);
printk(KERN_ALERT
"IMMRBAR: %08lX\n", *(unsigned long*)(VIRT_IMMRBAR + 0x00000));
printk(KERN_ALERT
"SPRIDR : %08lX\n", *(unsigned long*)(VIRT_IMMRBAR + 0x00108));
return
0;
}
static
void hello_exit(void)
{
printk(KERN_ALERT
"Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
++++++++++++++++上面为test.c程序内容++++++++++++++++++
+++++++++++++++下面为Makefile程序内容+++++++++++++++++
ifneq
($(KERNELRELEASE),)
obj-m
:= test.o
else
KDIR
:= ../..
PWD
:= $(shell pwd)
default:
$(MAKE)
-C $(KDIR) M=$(PWD)
endif
+++++++++++++++上面为Makefile程序内容+++++++++++++++++
##
类似地我们可以编译vlan配置模块
LTIB常用命令1的更多相关文章
- LTIB常用命令2
LTIB 编译配置选项 根据说明文档,ltib 可以通过以下的命令配置: * <verbatim># ./ltib</verbatim> 安装后第一次运行,采 ...
- LTIB常用命令3
http://blog.csdn.net/junht/article/details/7656540 LTIB 中的包 4.3.1 查看哪些包是使能的,并且可以安装 在配置ltib之前,您可以在一个 ...
- Linux 常用命令(持续补充)
常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...
- LVM基本介绍与常用命令
一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...
- Linux学习笔记(一):常用命令
经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- 【原】npm 常用命令详解
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...
- npm常用命令
npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...
- Git 常用命令
一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...
随机推荐
- 线程池原理及创建(C++实现)
http://www.cnblogs.com/lidabo/p/3328402.html 本文给出了一个通用的线程池框架,该框架将与线程执行相关的任务进行了高层次的抽象,使之与具体的执行任务无关.另外 ...
- Uva 1347,旅行
题目链接:https://uva.onlinejudge.org/external/13/1347.pdf 这个题和uva 1658题目很像,只是加了一点,就是每个点都要走,刚开始,我以为可以直接拆点 ...
- Datagrid扩展方法InitEditGrid{支持单元格编辑}
//-----------------------------------------------------------------/******************************** ...
- IIC,RS485,RS232各种协议手册更新中
RS485使用手册与指南.pdf RS232协议标准详解.pdf IIC通信协议.pdf 链接:http://pan.baidu.com/s/1ccBtmA 密码:mwj6 IIC,RS485,R ...
- UVA10339 Watching Watches
题目大意:有两个表,每天都会慢一点时间,给出每天慢得秒数,问下一次重合的时刻. 解题思路:时刻重合也就是说整整差了一周,一周是12小时,用12小时的秒数除以两个表的相差那就是需要多少天的时间后重合,知 ...
- 自动布局(Masonry)设置tabbar
//自定义标签工具栏 - (void) initTabBarView{ // self.bottomView = [[UIView alloc]initWithFrame:CGRectMake(, k ...
- U盘安装CentOS7的最终解决方案
转载自http://www.augsky.com/599.html 终于将CentOS7装上笔记本了,过程无比艰辛,因为我发现网上大家提到的所有U盘安装CentOS7时碰到的问题几乎都被我碰到了,像什 ...
- java properties读取与设值
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream; ...
- 真正意义上下一代 Windows Embedded:有关 Windows 10 "Athens" 的事
早在去年 BUILD 大会上,Joe Belfiore 就在一台巨大的 "脚踩钢琴" 上简短展示过 "Windows on Device"(又名 Windows ...
- C#占位符与格式化字符串
原文地址:http://www.cnblogs.com/fumj/articles/2380290.html 在c#中有两种方式可以输出多个字符 其中的一种: static void Main() ...