• 第一步,先安装对应的 PDK 包,并编译出相对应的kernel module。

  • 我是在 PDK 3.0 上面进行开发的,所以要先把相对应的 PDK包。

    下载地址:
http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/03_03_00_04/index_FDS.html
  • 安装完了有如下目录:

    sbc_7109_454_pdk3@aplex:~/ti_sdk$ tree -L 1
.
├── bin
├── board-support
├── docs
├── example-applications
├── filesystem
├── linux-devkit
├── Makefile
├── Rules.make
├── setup.sh
  • 环境变量要注意:

    export PATH=$PATH:/home/sbc_7109_454_pdk3/aplex/linux-devkit/compiler/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
  • 进入SGX 驱动目录, 并编辑一个 Makefile

    cd  ti_sdk/board-support/extra-drivers/ti-sgx-ddk-km-1.14.3699939
    sbc_7109_454_pdk3@aplex:~/ti_sdk/board-support/extra-drivers/ti-sgx-ddk-km-1.14.3699939$ cat Makefile 

    export LINUXKERNEL_INSTALL_DIR=/home/sbc_7109_454_pdk3/aplex/board-support/linux-kernel-source-code/kernel_4.4.12
export SDK_PATH_TARGET=/home/sbc_7109_454_pdk3/ti_sdk/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi
#export DESTDIR=/home/sbc_7109_454_pdk3/test/qt5_rootfs
export DESTDIR=/home/sbc_7109_454_pdk3/test/root_test all:
make -C ./eurasia_km/eurasiacon/build/linux2/omap_linux \
ARCH=arm TARGET_PRODUCT=ti335x KERNELDIR=$(LINUXKERNEL_INSTALL_DIR) clean:
make -C ./eurasia_km/eurasiacon/build/linux2/omap_linux \
ARCH=arm TARGET_PRODUCT=ti335x KERNELDIR=$(LINUXKERNEL_INSTALL_DIR) clean install:
cd ./eurasia_km/eurasiacon/binary2_omap_linux_release/target/kbuild; \
make -C $(LINUXKERNEL_INSTALL_DIR) SUBDIRS=`pwd` INSTALL_MOD_PATH=$(DESTDIR) PREFIX=$(SDK_PATH_TARGET) INSTALL_MOD_STRIP=1 modules_install
    //   上面这个 Makefile 主要是指定了特定的环境变量,这些环境变量可以在 ./eurasia_km/eurasiacon/build/linux2/omap_linux 查到。
// 他目标生成在 /home/sbc_7109_454_pdk3/test/root_test, 主要就是两个 .ko 文件。
// 去目标文件系统看一下
cd ~/test/root_test/
sbc_7109_454_pdk3@aplex:~/test/root_test$ ls
bin etc lib usr
sbc_7109_454_pdk3@aplex:~/test/root_test$ tree
.
├── bin
├── etc
│   └── init.d
├── lib
│   └── modules
│   └── 4.4.12-gfc3bcb0-dirty
│   ├── extra
│   │   ├── bc_example.ko
│   │   └── pvrsrvkm.ko
│   ├── modules.alias
│   ├── modules.alias.bin
│   ├── modules.ccwmap
│   ├── modules.dep
│   ├── modules.dep.bin
│   ├── modules.devname
│   ├── modules.ieee1394map
│   ├── modules.inputmap
│   ├── modules.isapnpmap
│   ├── modules.ofmap
│   ├── modules.pcimap
│   ├── modules.seriomap
│   ├── modules.softdep
│   ├── modules.symbols
│   ├── modules.symbols.bin
│   └── modules.usbmap
└── usr
├── bin
├── lib
└── sbin 11 directories, 18 files // 这里,我们将 lib/modules 复制到你的文件系统里面, 这样,第一步就完成了。
  • 第二步,进行相关工具的移植。

    //  大体上,很多的工具都可以在  ti  PDK 的filesystem 里面找到,如果找不到就在 ti_sdk/linux-devkit/sysroots/armv7ahf-neon-linux-gnueabi 里面
// 先复制两个东西到你的文件系统里面:
cd ~/ti_sdk/filesystem/my_rootfs/
// 上面这个文件夹是我加压的 TI 提供的那个超大的文件系统。 sudo cp etc/init.d/rc.pvr ~/test/rootfs_chen_last/etc/init.d/ -rf
sudo cp usr/bin/pvrsrvctl ~/test/rootfs_chen_last/usr/bin/ -rf
// 复制这两个到自己的文件系统内 // 然后将自己的文件系统放在 板子 里面去运行
/etc/init.d/rc.pvr start
// 这时候会提示很多东西,最多的是缺少什么什么动态库 // 这时候回到 TI 那个很大的文件系统内
cd usr/lib
sudo cp libwayland-* libattr.* libGLES* gbm/ libpvr* libdrm* libgbm.* libudev.* libsrv_* libEGL.* libIMGegl* libdbm* libglslcompiler* libpthread* libusc.so* ~/test/qt5_rootfs/usr/lib -rf
cd ../..
sudo cp lib/libudev.* ~/test/rootfs_chen_last/lib -rf
sudo cp usr/bin/modetest usr/bin/kms* ~/test/qt5_rootfs/usr/bin/ -rf
sudo cp lib/libattr.* ~/test/qt5_rootfs/lib -rf
    //  大致将所有的库都复制过去,然后再  /etc/init.d/rc.pvr   start
// 如果上面这个能正常运行,然后再运行
kmscube // 然后有可能会发现还有一个动态库加载不了,但是你明明已经拷贝了这个动态库
// 进入 ti 的很大的文件系统里面
arm-linux-gnueabihf-objdump usr/lib/libglslcompiler.so -p
// 查看 NEED 需要什么库,将这些库也复制进去
    //  移植成功的标志就是  kmscube 能运行并打开一个立方体。

am335x SGX 移植的更多相关文章

  1. AM335x(TQ335x)学习笔记——u-boot-2014.10移植

    根据最近移植u-boot-2014.10至TQ335x,基于这样的假设am335x evm移植.不是很多地方需要改变. 因为TI的am335x evm开发了使用eeprom船上保存配置信息.它使用不同 ...

  2. AM335x(TQ335x)学习笔记——USB驱动移植

    对于AM335x来讲,TI维护的USB驱动已经非常完善了,本文称之为移植,实际上仅仅是配置内核选项使能USB HOST/OTG功能.废话少说,直接动手开启AM335x的USB驱动配置项. Step1. ...

  3. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完成声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  4. AM335x(TQ335x)学习笔记——WM8960声卡驱动移植

    经过一段时间的调试,终于调好了TQ335x的声卡驱动.TQ335x采用的Codec是WM8960,本文来总结下WM8960驱动在AM335x平台上的移植方法.Linux声卡驱动架构有OSS和ALSA两 ...

  5. AM335x(TQ335x)学习笔记——Nand&&网卡驱动移植

    移植完毕声卡驱动之后本想再接再励,移植网卡驱动,但没想到的是TI维护的内核太健壮,移植网卡驱动跟之前移植按键驱动一样简单,Nand驱动也是如此,于是,本人将Nand和网卡放在同一篇文章中介绍.介绍之前 ...

  6. 为AM335x移植Linux内核主线代码

    /********************************************************************** * 为AM335x移植Linux内核主线代码 * 说明: ...

  7. AM335x(TQ335x)学习笔记——LCD驱动移植

    TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由 ...

  8. AM335x移植linux内核_转

    AM335x移植linux内核 该博客中详细介绍了移植linux内核到AM335x上相关,设备驱动采用设备树(DT)方式加载,包含设备启动.uboot.kernel.driver.rootfs及简单上 ...

  9. (原创)AP6212移植到AM335X自主开发板上

    转载请指明出处. 参考<关于AM335X移植SDIO WIFI的简易教程> http://www.deyisupport.com/question_answer/dsp_arm/sitar ...

随机推荐

  1. WinForm如何调用Web Service

    参考地址 今天看了李天平关于WinForm调用Web Service的代码,我自己模仿做一个代码基本都是复制粘贴的,结果不好使.郁闷的是,又碰到那个该死的GET调用Web Service,我想肯定又是 ...

  2. C#编写的 8种初级+高级排序方法(转)

    摘自:http://blog.csdn.net/mevin/article/details/6714520 程序代码: view plaincopy to clipboard using System ...

  3. HDUOJ----Good Numbers

    Good Numbers Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  4. web实现QQ第三方登录 开放平台-web实现QQ第三方登录

    应用场景     web应用通过QQ登录授权实现第三方登录.   操作步骤     1  注册成为QQ互联平台开发者,http://connect.qq.com/     2  准备一个可访问的域名, ...

  5. asp.net 在线解压缩文件类

    using System; using System.Collections.Generic; using System.Text; using System.IO; using Microsoft. ...

  6. Unix环境高级编程(九)信号

    信号时软中断,很多比较重要的应用程序都需要处理信号,信号提供了一种处理异步事件的方法.每个信号都一个名字,以SIG开头,在<signal.h>头文件中定义信号类型,都是正整数(信号编号). ...

  7. Linux下C结构体初始化

    1.前言 今天在公司看一同事写的代码,代码中用到了struct,初始化一个struct用的是乱序格式,如下代码所示: typedef struct _data_t { int a; int b; }d ...

  8. Scanner类nextInt方法的使用注意点

    一.先看一段正常的代码 1. 一段用Scanner捕获键盘输入的代码: Scanner sc = new Scanner(System.in); // 先读取键盘输入的字符串 System.out.p ...

  9. mysql-5.7 收缩系统表空间详解

    innodb 系统表空间是一个逻辑上的概念,它的物理表现就是innodb系统表空间文件:在讲扩展系统表空间时我们说到 可以用增加文件,增加autoextend标记 这两种方式来解决:但是问题到了收缩表 ...

  10. WCF使用net.tcp绑定时的注意事项

    IIS Express没有net.tcp绑定功能,本地测试的话只能使用本机的IIS进行承载,并且需要相应的配置(参见上一篇文章). 算了,直接举一个配置例子吧,懒得写了... <system.s ...