首先一个比较有用的命令参数就是help,一个人忘记命令参数很常见,何况刚开始熟悉这个工具。下面这个命令行可以查看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提供了一种shell模式,它直接提供了我们当前配置的交叉编译工具链模式,下面的命令能让我们进入ltib的shell环境
$ ./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>

有时候我们想看一下某些程序包的源码,比如kernel、uboot等这些看了有益于身心健康的程序源码,该怎么办呢?  还有一种情况就是这些源码中存放有板子的各种配置文件,比如内存映射分配,也需要看一下源码文件,其命令格式为 $ ./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编译内核和文件系统比较好用的办法,当你比较熟悉了ltib工作流程,完全可以自己配置交叉编译工具链,内核和文件系统,然后编译,可以用下面这个命令行
$ ./ltib --configure

如果想重新产生所有内核和RFS镜像有以下三个办法:
## 办法一: 直接调用配置文件编译,如果配置文件没有更新,且编译过的目标镜像没有变化,会不进行编译。若有任何改动,会执行编译
$ ./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的配置文件不满意,想自己通过配置操作来熟悉ltib的各种配置,或者相关工作做完了,甚至是看它不顺眼,都可以采用此操作,把LTIB完全卸载,
## 首先执行命令:
$ ./ltib -m distclean                ## 此操作将彻底清除所有当前ltib工程文件
                                ## 此命令不要轻易使用,除非比较熟悉ltib编译配置过程
## 然后以root身份执行以下操作(注意:此操作将卸载所有的公共文件)
# rm -rf /opt/freescale/pkgs
# rm -rf /opt/freescale/ltib
# rm <install_path>                ## 执行文件ltib的上级目录
## 另一种更加暴力的办法是root身份运行rm命令来删除所有

下面再写一下外部内核模块的编译,假如我们有一个文件夹test(位于主目录/home/liuby/下),该文件夹包含程序源码文件test.c和Makefile,这两个文件的内容附在此段内容的最后。
## 首先我们得到内核源码,然后再编译,为什么这么做,我也不懂~~~,有些纳闷,以后再解决
$ ./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. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  2. Samtools(CentOS Linux)安装及常用命令详解

    序列比对(将测序reads与已知序列信息的基因或基因组进行比对)是高通量测序数据分析中最重要的一环,无论是转录组还是重测序都是基于比对结果来进行后续各项分析的,比对结果格式比较常见的是sam和bam文 ...

  3. router linux命令,router os 常用命令详解

    router os 常用命令详解 发布时间:2006-04-20 01:17:30来源:红联作者:[Hl.y] 看了很多router os 的资料都是关于如何安装的,却很少见到关于router os的 ...

  4. NodeJs学习笔记002--npm常用命令详解

    npm 常用命令详解 npm是什么 npm install 安装模块 npm uninstall 卸载模块 npm update 更新模块 npm outdated 检查模块是否已经过时 npm ls ...

  5. U-Boot的常用命令详解

    2019独角兽企业重金招聘Python工程师标准>>> U-Boot的常用命令详解 U-Boot 还提供了更加详细的命令帮助,通过 help 命令还可以查看每个命令的参数说明.由于开 ...

  6. Linux常用命令详解(两万字超长文)

    Linux常用命令详解 作为一枚程序员,熟练掌握一些常见的linux命令是很有必要的,掌握这些命令能帮助我们更好地管理Linux系统,提高工作效率,并有效地解决各种问题,为了方便自己后续查阅以及帮助不 ...

  7. Linux常用命令详解文库

     Linux常用命令详解文库.txt精神失常的疯子不可怕,可怕的是精神正常的疯子!Linux常用命令详解 来源: LUPA开源社区 发布时间: 2007-05-27 05:34 版权申明 字体: ...

  8. ceph命令系列(一):ceph-deploy/ceph/rados/rbd 常用命令详解

    ceph-deploy 常用命令详解 命令 描述 ceph-deploy new [mon-node ...] 指定node(s)为monitor,开始部署一个新的ceph集群,并且在当前目录创建ce ...

  9. Git 常用命令详解

    Git 常用命令详解 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信息 1.3 创建版本库 1.4 常用Git命令汇总 2. Git 解决代码冲突 3. Git 分支管理 ...

最新文章

  1. 异构GoldenGate 12c 双向复制配置
  2. python手机版iphone-Python编程神器
  3. 详细的基于opencv svm hog的描述讲解
  4. 接口性能优化技巧,干掉慢代码!
  5. 配置审计(Config)配合开启OSS防盗链功能
  6. pathon和python_Python文件和目录操作详解
  7. 微信支付(APP)集成时碰到的问题(.net提示“无权限”、iOS跳转到微信支付页面中间只有一个“确定”按钮)...
  8. Vue还有这种骚操作?浅析几个新手常常忽略的API
  9. 【Python开发】Python中的class继承
  10. 生产者消费者模型、信号量、线程池以及单例模式的实现
  11. OpenShift 4 之集群是如何通过Cluster Version Operator升级的?
  12. 排序算法--归并排序
  13. utuntu 12.04 安装 配置 JAVA JDK
  14. dnsmasq, ipset和iptables配置
  15. BUUCTF[强网杯 2019]随便注 的三种解法
  16. html添加好友,人人网怎么加好友 人人网怎么通过数字ID加好友
  17. 读书之《别做正常的傻瓜》
  18. BugkuCTF-WEB-flag在index里
  19. 教你这么理解 『假脱机打印机系统』
  20. ibm服务器面板显示,IBM System x服务器前面板指示灯说明(新版)

热门文章

  1. 小程序管理新闻资讯分类-微信小程序视频教程27
  2. HTML+CSS网页设计期末课程大作——体育排球(5页面)
  3. 30个最常见oCPC问题
  4. python中return返回值怎么累加_Python学习笔记函数之返回值和return语句
  5. 阿里云服务器地域暂时无法办理经营性ICP许可证什么意思?
  6. 再谈 iOS App Crash 防护
  7. 需要精读3遍的8个健身知识
  8. python中trun是什么意思_Python 中 'unicodeescape' codec can't decode bytes in position XXX: trun錯誤解決方案...
  9. 手机投影到电脑上做演示
  10. Android传感器之光线传感器介绍