Tiny4412移植linux-kernel
查看官方手册,支持对应的linux-3.5版本
#使用tar命令进行解压
tar -xvf #+文件路径

编译成功,进入文件夹查看
chris@sys_geek:linux-3.5$ ls #官方提供了内核裁剪的配置环境,并且还提供了安卓,ubuntu,linux,QT的开发环境,这里直接选择linux
arch ipc samples
block Kbuild scripts
COPYING Kconfig security
CREDITS kernel sound
crypto lib tiny4412_android_defconfig
Documentation MAINTAINERS tiny4412_core-qt_defconfig
drivers Makefile tiny4412_linux_defconfig
firmware mm tiny4412_ubuntu_defconfig
fs net tools
include README usr
init REPORTING-BUGS virt
chris@sys_geek:linux-3.5$ cp tiny4412_linux_defconfig .config #直接复制官方提供的config来生成menuconfig需要的配置信息
在使用make menuconfig时会读取.config和内核各个目录下的Kconfig文件。Kconfig文件用于决定配置界面会有哪些配置选项
而.config文件用于决定每个配置项的值(Y、M、N)
make menuconfig依赖于ncurses这个软件库和内核目录下script/kconfig下的一些软件,在使用make menuconfig命令时会编译如下几个软件。

如果没有安装ncurses这个库,可以敲以下命令
sudo apt-get install ncurses-dev
再次编译:
chris@sys_geek:linux-3.5$ make menuconfig
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/lxdialog/checklist.o
HOSTCC scripts/kconfig/lxdialog/inputbox.o
HOSTCC scripts/kconfig/lxdialog/menubox.o
HOSTCC scripts/kconfig/lxdialog/textbox.o
HOSTCC scripts/kconfig/lxdialog/util.o
HOSTCC scripts/kconfig/lxdialog/yesno.o
HOSTCC scripts/kconfig/mconf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/mconf
scripts/kconfig/mconf Kconfig
Your display is too small to run Menuconfig!
It must be at least 19 lines by 80 columns.
/home/chris/src_pack/linux-3.5/scripts/kconfig/Makefile:21: recipe for target 'menuconfig' failed
make[1]: *** [menuconfig] Error 1
Makefile:490: recipe for target 'menuconfig' failed
make: *** [menuconfig] Error 2
ncurses这个库下载成功之后没有报错但是这里提示“display is too small”,意思就是留给图形化界面menu太小了,可以全屏,或者" ctrl " + " - "来解决,界面需要大于19 lines * 80 rows才能完整打开

三星的这个exynos虽然说是三星自己做的,但是依然使用了高通的一些方案,而这个方案里面有高通的trust-zone支持,裁剪内核的时候关闭掉,否则会影响到后续的驱动编写
ARM的trust-zone技术:
trustZone在概念上将SoC的硬件和软件资源划分为安全(Secure World)和非安全(Normal World)两个世界,所有需要保密的操作在安全世界执行(如指纹识别、密码处理、数据加解密、安全认证等),其余操作在非安全世界执行(如用户操作系统、各种应用程序等),安全世界和非安全世界通过一个名为Monitor Mode的模式进行转换
处理器架构上,TrustZone将每个物理核虚拟为两个核,一个非安全核(Non-secure Core, NS Core),运行非安全世界的代码;和另一个安全核(Secure Core),运行安全世界的代码。
两个虚拟的核以基于时间片的方式运行,根据需要实时占用物理核,并通过Monitor Mode在安全世界和非安全世界之间切换,类似同一CPU下的多应用程序环境,不同的是多应用程序环境下操作系统实现的是进程间切换,而Trustzone下的Monitor Mode实现了同一CPU上两个操作系统间的切换

chris@sys_geek:linux-3.5$ make menuconfig
scripts/kconfig/mconf Kconfig
#
# configuration written to .config
#
*** End of the configuration.
*** Execute 'make' to start the build or try 'make help'.
chris@sys_geek:linux-3.5$ make -j4
再次编译报错

都编译到这个时候了总不能从头来一边吧,编译显示,kernel/timeconst.pl这个文件报错,😭
上网查了一下错误,发现是perl旧版问题:https://www.cnblogs.com/tid-think/p/10929435.html
直接把379行的defined给去掉,再次编译
chris@sys_geek:linux-3.5$ vim ./kernel/timeconst.pl +373
chris@sys_geek:linux-3.5$ make -j4
编译完成!
chris@sys_geek:linux-3.5$ vim ./kernel/timeconst.pl +373
chris@sys_geek:linux-3.5$ make -j4
编译完成!

4053

被折叠的 条评论
为什么被折叠?



