03OrangePi内核编译

03OrangePi内核编译
等离子炬
配置交叉编译器:
解包gcc-linaro-arm-linux-gnueabihf-4.7-2013.03-20130313_linux.tar.bz2
解包后,得到的⽬录名⽐较长,改下⽬录名为“arm-gcc"
资本主义生产方式vim  /etc/bashrc 增加语句
export  PATH=/disk3/myown/arm-gcc/bin:$PATH
保存退出后,注消系统后环境变量⽣效
重登系统后,在终端输⼊arm按两下tab键:
会出现好多个:  arm-linux-gnueabihf-*
内核编译:
在orangepi_sdk⽬录下:
进⼊source/linux-3.4.112内核源码⽬录.
注意: uboot, linux内核都是可以⽀持多种CPU架构, ⼀个CPU架构下⼜有多种SOC, ⼀个SOC⼜可以做成多种⽅案.所以我们编译前都需要指定编译哪种架构,
linux内核⾥的配置项⾮常多,⼚家⼀般都会提供⼀些默认的配置。配置⽂件在CPU架构⽬录下的configs⽬录.
我们可⽤的配置在arm/configs:
sun8iw7p1smp_android_defconfig        sun8iw7p1smp_linux_defconfig
sun8iw7p1smp_android_karaok_defconfig  sun8iw7p1smp_min_defconfig
sun8iw7p1smp_android_secure_defconfig  sun8iw7p1smp_secure_defconfig
sun8iw7p1smp_defconfig
1). 使⽤⼚商提供的默认配置:
可以把xxx_defconfig 复制成源码根⽬录下的.config
也可以:  make xxx_defconfig
make sun8iw7p1smp_android_defconfig  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
实验设计的严密性//注意,以后只要在linux⾥打"make"都需指定ARCH, CROSS_COMPILE
2). 配置内核:
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
出现界⾯后(按空格键选上或取消选中项):
[*] Enable loadable module support  --->
[*]    Forced module unloading
[ ]  Module versioning support
[ ]  Source checksum for all modules
Device Drivers  --->
<*> Multimedia support  --->
[*]  Video capture adapters  --->
[*]  V4L USB devices  --->
<*>  USB Video Class (UVC)
General setup  --->
[ ] Initial RAM filesystem and RAM disk (initramfs/initrd) support
CPU Power Management  --->
CPU Frequency scaling  --->
[ ] CPU Frequency scaling
3).  编译内核
make -j4 uImage  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
床垫是越硬越好吗编译时出现错误:
drivers/base/firmware_class.c: In function ‘firmware_data_read’:
drivers/base/firmware_class.c: In function ‘firmware_data_read’:
drivers/base/firmware_class.c:631:9: error: implicit declaration of function ‘kobj_to_dev’ [-Werror=implicit-function-declaration]
原因是那源⽂件⾥没有包含"kobj_to_dev"的头⽂件.
在drivers/base/firmware_class.c⾥写上包含头⽂件<linux/genhd.h>
修改好后,接着编译即可.
编译完成后,在arch/arm/boot/uImage就是编译出来的内核镜像
4). 把板上SD卡接上pc,把编译出来的内核镜像放到卡的第⼀个分区(即fat分区),也可以放到第⼆个分区(需注意命令)
5). 把SD卡重放到板上后,即可读出来到内存来启动
fatload mmc 0:10x43000000 /script.bin  //内核⽤的配置⽂件
fatload mmc 0:10x42000000 /uimage      //内核镜像
bootm 0x42000000                        //启动内核
如果出现以下错误:
Error: unrecognized/unsupported machine ID (r1 = 0x00000000).
Available machine support:碱茅
ID (hex)        NAME
00001029        sun8i
Please check your kernel config and/or bootloader.
force10修正⽅法:设置uboot的环境变量"setenv machid 0x1029"保存再重新启动内核即可
//启动后,只要有⼀堆的东西输出即是正常的了
6). 如果想要开发板开机后⾃动引导内核, 可以修改bootcmd环境变量来完成
setenv bootcmd "fatload mmc 0:1 0x43000000 /script.bin; fatload mmc 0:1 0x42000000 /uimage; bootm 0x42000000"
saveenv //保存环境变量

本文发布于:2024-09-22 04:31:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/264701.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:内核   编译   配置   环境变量   得到
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议