当前位置: 首页 > news >正文

网站备案背景墙必应搜索引擎入口

网站备案背景墙,必应搜索引擎入口,网站建设收获与体会,做纯净系统的网站1.使用NXP官方linux内核 1.1 设置交叉编译工具链 1.1.1 百问网设置交叉编译工具链 百问网的交叉编译工具链是在home目录下的.bashrc文件 中设置的,如下: 使用命令vi ~/.bashrc进入文件,在最末尾添加如下代码,保存后即可完成设置…

1.使用NXP官方linux内核

1.1 设置交叉编译工具链

1.1.1 百问网设置交叉编译工具链

百问网的交叉编译工具链是在home目录下的.bashrc文件 中设置的,如下:
使用命令vi ~/.bashrc进入文件,在最末尾添加如下代码,保存后即可完成设置。

export ARCH=arm		# 体系架构
export CROSS_COMPILE=arm-buildroot-linux-gnueabihf-		# 交叉编译工具
export PATH=$PATH:/home/book/100ask_imx6ull-sdk/ToolChain/arm-buildroot-linux-gnueabihf_sdk-buildroot/bin		# 交叉编译工具的路径

补充:什么是.bashrc文件?
.bashrc文件是home目录下一个隐藏的shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。

1.1.2 正点原子设置交叉编译工具链

正点原子的交叉编译工具链是在LInux源码的顶层Makefile中定义的,如下:

 247 # CROSS_COMPILE specify the prefix used for all executables used248 # during compilation. Only gcc and related bin-utils executables249 # are prefixed with $(CROSS_COMPILE).250 # CROSS_COMPILE can be set on the command line251 # make CROSS_COMPILE=ia64-linux-252 # Alternatively CROSS_COMPILE can be set in the environment.253 # A third alternative is to store a setting in .config so that plain254 # "make" in the configured kernel build directory always uses that.255 # Default value for CROSS_COMPILE is not to prefix executables256 # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile257 ARCH            ?= arm258 CROSS_COMPILE   ?= arm-linux-gnueabihf-

如上面代码所示,在第257行和第258行分别定义了ARCHCROSS_COMPILE这两个变量。

1.1.3 两者的区别

  • 百问网:在整个bash中执行make命令时都有效,
  • 正点原子:仅在当前Linux源码目录下执行make命令时有效。

1.2 下载Linux内核源码

下载Linux内核源码的两种方式:

  • 从NXP官网下载,非常慢而且内核较大;
  • 从百问网下载修改过的内核。

1.3 配置并编译Linux内核

和uboot一样,在编译linux内核之前要先配置Linux内核,每个板子都有其对应的默认配置文件,这些默认配置文件保存在arch/arm/config目录中。此处使用的默认配置文件是NXP 官方I.MX6ULL EVK 开发板所使用的默认配置文件imx_v7_defconfig

PS:下面的命令是在内核源码的顶层目录下执行的

配置内核的命令如下:

make clean		# 第一次编译内核之前先清理一下
make imx_v7_defconfig		# 使用默认配置文件配置Linux内核

配置成功以后会提示生成.config文件,如下:

book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make cleanCLEAN   .CLEAN   arch/arm/kernelCLEAN   arch/arm/vdsoCLEAN   cryptoCLEAN   drivers/tty/vtCLEAN   drivers/video/logoCLEAN   firmwareCLEAN   kernelCLEAN   libCLEAN   net/wirelessCLEAN   usrCLEAN   arch/arm/boot/compressedCLEAN   arch/arm/boot/dtsCLEAN   arch/arm/bootCLEAN   .tmp_versions
book@100ask:~/100ask_imx6ull-sdk/Linux-4.9.88$ make imx_v7_defconfigHOSTCC  scripts/basic/fixdepHOSTCC  scripts/basic/bin2cHOSTCC  scripts/kconfig/conf.oHOSTCC  scripts/kconfig/zconf.tab.oHOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#

配置成功后就可以编译了,使用如下命令进行Linux内核设备树的编译:

make zImage -j4		# 编译Linux内核
make dtbs		#编译设备树

编译成功以后会生成对应的zImage镜像文件和设备树对应的.dtb文件,两个文件所在的路径如下:

  • zImage镜像文件的路径为 arch/arm/boot
  • 设备树对应的.dtb文件的路径为 arch/arm/boot/dts

1.4 Linux内核启动测试

1.4.1 启动方式

启动内核的方式有两种,如下:

  • 方式:1:将zImage镜像文件和设备树.dtb文件烧写进EMMC、SD卡、NAND中,uboot从中读取进DDR中。
  • 方式2:在uboot中使用tftp服务,直接从服务器(Ubuntu主机)下载zImage镜像文件和设备树.dtb文件至DDR中。

本文使用第二种方式启动linux内核,使用的前提是Ubuntu主机已经开启了tftp服务

1.4.2 启动内核

首先,将上一小节编译的zImage.dtb文件拷贝到ubuntu主机的tftp目录下,命令如下:

cp arch/arm/boot/zImage ~/tftpboot
cp arch/arm/boot/dts/imx6ull-14x14-evk.dtb ~/tftpboot

然后,在uboot的命令行中配置相关环境变量,如下:

setenv ipaddr 192.168.5.9		# 设置开发板的IP地址
setenv serverip 192.168.5.11	# 设置Ubuntu主机的IP地址
setenv gatewayip 192.168.5.1	# 设置网关
setenv netmask 255.255.255.0 	# 设置掩码
saveenv

设置完成之后ping 一下ubuntu主机,确认是否设置成功:

=> ping 192.168.5.11
FEC1 Waiting for PHY auto negotiation to complete.... done
Using FEC1 device
host 192.168.5.11 is alive
=>

出现以上界面就是配置成功了。
接着,使用tftp服务从ubuntu主机下载内核镜像zImage二进制设备树文件.dtb至开发板的DDR中并启动,命令如下:

tftp 80800000 zImage
tftp 83000000 imx6ull-14x14-evk.dtb
bootz 80800000-83000000

结果如下:

=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.5.11; our IP address is 192.168.5.9
Filename 'zImage'.
Load address: 0x80800000
Loading: ###############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################551.8 KiB/s
done
Bytes transferred = 7499136 (726d80 hex)
=> tftp 83000000 imx6ull-14x14-evk.dtb
Using FEC1 device
TFTP from server 192.168.5.11; our IP address is 192.168.5.9
Filename 'imx6ull-14x14-evk.dtb'.
Load address: 0x83000000
Loading: ###504.9 KiB/s
done
Bytes transferred = 36245 (8d95 hex)
=> bootz 80800000-83000000
Kernel image @ 0x80800000 [ 0x000000 - 0x726d80 ]Starting kernel ...

可以看到,成功下载了内核镜像文件和二进制设备树文件。但是因为我们没有添加根文件系统,所以会启动失败。

之后,我们使用之前在EMMC中的根文件系统,试着启动一下,命令如下:

# uboot中的环境变量bootargs保存着uboot传给Linux内核的参数,常用的参数有:
# console:用来设置Linux终端,也就是通过什设备来和Linux进行交互(LCD屏或串口)
# root:用来设置根文件系统的位置
# rootfstype:和root一起使用,用于指定根文件系统类型
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'	# 设置终端为串口1波特率为115200,设置根文件系统的位置为mmcblk1设备的分区2中
saveenv
tftp 80800000 zImage	# 使用tftp服务下载内核镜像
tftp 83000000 imx6ull-14x14-evk.dtb		# 使用tftp服务下载设备树
bootz 80800000 - 83000000		# 启动内核

结果如下:

Welcome to imx6ull buildroot system !* SourceCode:     https://gitee.com/weidongshan
* Support:        https://support@100ask.net
* Shop:          https://100ask.taobao.com/
* Login:          name: root  Passwd:
100ask login:

可以看到,板子成功启动了。

PS:我的板子用这个内核和设备树可以启动,但是启动后屏幕会闪,板子会有滋滋滋的电流声,个人分析应该是NXP官方EVK开发板的设备树和百问网IMX6ULL_PRO开发板不匹配。

2.在Linux中添加我们自己的开发板

2.1 添加开发板的默认配置文件

arch/arm/configs目录下的imx_v7_defconfig重新复制一份,命名为imx_myboard_defconfig,作为我们自己开发板的默认配置文件,命令如下:

cp arch/arm/configs/imx_v7_defconfig arch/arm/configs/imx_myboard_defconfig

2.2添加开发板的设备树文件

进入目录arch/arm/boot/dts中,复制一份imx6ull-14x14-evk.dts,重命名为imx6ull-myboard-100ask.dts,命令如下:

cp arch/arm/boot/dts/imx6ull-14x14-evk.dts arch/arm/boot/dts/imx6ull-myboard-100ask.dts

创建好之后,还需要修改文件arch/arm/boot/dts/Makefile,找到dtb-$(CONFIG_SOC_IMX6ULL)配置项,在此项中加入我们自己的设备树imx6ull-myboard-100ask.dtb,如下所示:

 510 dtb-$(CONFIG_SOC_IMX6ULL) += \511         imx6ull-14x14-ddr3-arm2.dtb \512         imx6ull-14x14-ddr3-arm2-adc.dtb \513         imx6ull-14x14-ddr3-arm2-cs42888.dtb \514         imx6ull-14x14-ddr3-arm2-ecspi.dtb \515         imx6ull-14x14-ddr3-arm2-emmc.dtb \516         imx6ull-14x14-ddr3-arm2-epdc.dtb \517         imx6ull-14x14-ddr3-arm2-flexcan2.dtb \518         imx6ull-14x14-ddr3-arm2-gpmi-weim.dtb \519         imx6ull-14x14-ddr3-arm2-lcdif.dtb \520         imx6ull-14x14-ddr3-arm2-ldo.dtb \521         imx6ull-14x14-ddr3-arm2-qspi.dtb \522         imx6ull-14x14-ddr3-arm2-qspi-all.dtb \523         imx6ull-14x14-ddr3-arm2-tsc.dtb \524         imx6ull-14x14-ddr3-arm2-uart2.dtb \525         imx6ull-14x14-ddr3-arm2-usb.dtb \526         imx6ull-14x14-ddr3-arm2-wm8958.dtb \527         imx6ull-14x14-evk.dtb \528         imx6ull-14x14-evk-btwifi.dtb \529         imx6ull-14x14-evk-btwifi-oob.dtb \530         imx6ull-14x14-evk-emmc.dtb \531         imx6ull-14x14-evk-gpmi-weim.dtb \532         imx6ull-14x14-evk-usb-certi.dtb \533         imx6ull-myboard-100ask.dtb \534         100ask_imx6ull-14x14.dtb \535         100ask_imx6ull_mini.dtb \536         100ask_myir_imx6ull_mini.dtb \537         imx6ull-9x9-evk.dtb \538         imx6ull-9x9-evk-btwifi.dtb \539         imx6ull-9x9-evk-btwifi-oob.dtb \540         imx6ull-9x9-evk-ldo.dtb

在第533行是添加的我们自己的开发板设备树。

2.3 编译测试

首先,编译内核及设备树,命令如下:

make clean	#  编译前先清理一下
make imx_myboard_defconfig		# 使用默认配置 文件配置Linux内核
make zImage -j4		# 编译内核
make dtbs		# 编译设备树

编译成功后将zImage镜像文件imx6ull-myboard-100ask.dtb文件拷贝到tftp目录下:

cp arch/arm/boot/zImage ~/tftpboot
cp arch/arm/boot/dts/imx6ull-myboard-100ask.dtb ~/tftpboot

接着,在uboot命令行中使用如下命令下载镜像文件和dtb文件并启动:

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'	# 设置终端为串口1波特率为115200,设置根文件系统的位置为mmcblk1设备的分区2中
saveenv
tftp 80800000 zImage
tftp 83000000 imx6ull-myboard-100ask.dtb
bootz 80800000-83000000
http://www.khdw.cn/news/45519.html

相关文章:

  • 漯河网站制作平台营销策略都有哪些
  • 政府网站建设方案如何写太原好的网站制作排名
  • 湖南省住房城乡建设网站优化seo设置
  • 做微网站那pc端显示啥百度大数据官网入口
  • 定制版网站建设费用企业网络推广平台
  • 深圳保障性住房新政策优化大师有用吗
  • 企业网站关键词优化希爱力的功效及副作用
  • java开发门户网站怎么在百度上推广自己的公司信息
  • 上海最好的网站设计公司学市场营销后悔死了
  • 股权变更要在工商局网站做吗hyein seo
  • 网站乱码解决办法网站建站方式有哪些
  • 网站架设软件自动点击器永久免费版
  • 无锡高端网站建设平台新闻联播今日新闻
  • wordpress 海量数据seo是什么意思中文翻译
  • 企业北京响应式网站制作爱站网关键词挖掘查询工具
  • 北京模板开发建站免费做网站软件
  • 十堰网站优化互联网营销师是哪个部门发证
  • 功能型网站介绍免费推广自己的网站
  • 户外网站设计智慧软文网站
  • 北京怀柔做网站管理运营的公司凡科网怎么建网站
  • 桂林旅游网站线上平台推广方式
  • 网站上传用什么软件做视频教程百度竞价推广点击软件奔奔
  • 高端个人网站百度推广400电话
  • wordpress 转 html如何优化关键词提升相关度
  • 程序员给女盆友做的网站b站推广怎么买
  • wordpress 婚礼嘉兴seo
  • 哈尔滨做网站优秀网站
  • ie网站建设网络营销企业是什么
  • 彩票网站的表格是如何做的游戏推广引流软件
  • 建设职业注册中心网站seo5