一步步学习基于Linux4.4的TINY4412开发--kernel、device tree和rootfs

开发板:tiny4412-1506 储存4G、内存1G

系统:ubuntu16.04 虚拟机

busybox:busybox 1.25

kernel:linux-4.4.1

compiled tool: arm-none-linux-gnueabi-gcc (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29))

相关下载链接:

http://p9hmezxvc.bkt.clouddn.com/arm-linux-gcc-4.8.3.tar.gz

http://p9hmezxvc.bkt.clouddn.com/busybox-1.25.1.tar.bz2

http://p9hmezxvc.bkt.clouddn.com/linux-4.4.1.tar.bz2


参考:

1、https://www.cnblogs.com/pengdonglin137/p/5143516.html

2、https://blog.csdn.net/mybelief321/article/details/9995199  (很系统)


第一步根据链接1,对exynos4412-tiny4412.dts进行修改。需要注意的是bootargs中的115200需要改为115200n8,不然earlyprink关闭后,串口参数不正确会输出乱码。

第二步制作根文件系统,大体可以参考链接2进行制作。过程中我主要遇到的问题是rootfs需要的lib在哪里?针对我们使用的交叉编译链,lib位于/opt/toolschain/arm-2014.05/arm-none-linux-gnueabi/libc/lib。

第三步制作ramdisk,可以直接使用链接1中提到的脚本,如果制作过程中提示空间不足可以修改脚本中的count=8192,将8192改为更大的值,该值必须是1024的整数倍,例如12288。

第四步配置内核,1、make exynos_defconfig。2、根据彭的博文进行设置。但如果在第三步遇到空间不足,修改了count,则Device Driver-->Block devices-->(8192)Default RAM disk size(kbytes),也需要根据情况对应修改,例如改成12288。如果先修改RAM disk size再make exynos_defconfig,则修改的参数会被覆盖。

遇到第一步的问题时,折腾了下bootargvs,有个十分不解的地方,如果增加ramdisk=8192 initrd=0x41000000,则内核初始化到一半就停止的现象,这个还需要研究下。如果有大虾知道,希望可以告知我,谢谢!!!

猜你喜欢

转载自blog.csdn.net/colouring/article/details/80654334