一步步学习基于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。同时在要注意/etc/profile文件中的PS1的设置,下面这条比较接近我们平常的使用习惯:export PS1="[$USER@$HOSTNAME \w]\# "。更多的可以自行百度,rootfs里面要处理的还有很多,日后会单独整理一篇博文。

第三步制作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,则内核初始化到一半就停止的现象,这个还需要研究下。如果有大虾知道,希望可以告知我,谢谢!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值