buildroot学习(一)——at91sam9g45软件平台更新

 buildroot学习(一) 2016-08-21

   我也是最近刚发现这个工具,刚开始弄,我把每天的学习笔记留下,后期用明白了在整理下。

   目前项目一直用的是一款atmel的一款ARM9处理器,at91sam9g45相当老的一款处理器,但是只要满足项目需求就可以了,而且这款处理器算是MPU,而且架构清晰更易与学习,可以对照《深入理解计算机体系》的x86处理器来学习这块ARM处理器。

   之前项目的linux移植,一直是在开发板提供的源码基础上,进行适应性修改,之前的版本是atmel_bootstrap1.13(atmel特有的一级启动,其实应该算作第二级了,因为芯片内置的ROM,才是第一级,只不过ROM中的程序无法修改而已),Uboot2010.06(这个版本,是自己升级的),linux2.6.30(这个版本也够老的),根文件系统是自己按照教程建立的目录,然后安装交叉编译工具的库、内核模块、busybox提供的基础命令包,根文件系统我也是花了大心思,升级了busybox,添加了ftp服务器,没有账目和密码管理哦,开通的telnet登陆,这个有密码登陆保护,后面还想加ssl的安全网络服务,感觉一个个移植好痛苦啊,毕竟这只是工具,花费太多时间了,就暂时搁置了。

   近期由于想深入理解linux驱动和网络协议栈,所以打算更新软件平台,偶然间,在http://www.at91.com/linux4sam/bin/view/Linux4SAM/WebHome,也就是atmel的软件开发官网,发现了buildroot,最近开发一看,这不仅有我知道的工具,还有很多我不知道的工具可以安装到根文件系统中,这个工具的目的是:Makeing Embedded Linux Easy,官网的原话,https://buildroot.org/。这工具可以干嘛啊,可以编译bootstrap、uboot、linux-kernel、rootfs,自己看看就知道了,太强大了,不仅支持atmel,还有支持imx6q、还有很多我知道的处理器,自己找找吧。基本使用也很简单,

简单使用

1、下载

https://git.busybox.net/buildroot/refs/tags

我当前最新的稳定版是2016.05,下载

2、解压

tar xvjf buildroot-2016.05.tar.bz2

3、配置

make list-defconfigs  列举出当前支持的板子,还挺多的自己看看吧

acmesystems_aria_g25_128mb_defconfig - Build for acmesystems_aria_g25_128mb
  acmesystems_aria_g25_256mb_defconfig - Build for acmesystems_aria_g25_256mb
  acmesystems_arietta_g25_128mb_defconfig - Build for acmesystems_arietta_g25_128mb
  acmesystems_arietta_g25_256mb_defconfig - Build for acmesystems_arietta_g25_256mb
  altera_socdk_defconfig              - Build for altera_socdk
  altera_sockit_defconfig             - Build for altera_sockit
  arm_foundationv8_defconfig          - Build for arm_foundationv8
  arm_juno_defconfig                  - Build for arm_juno
  armadeus_apf27_defconfig            - Build for armadeus_apf27
  armadeus_apf28_defconfig            - Build for armadeus_apf28
  armadeus_apf51_defconfig            - Build for armadeus_apf51
  armadeus_apf9328_defconfig          - Build for armadeus_apf9328
  at91sam9260eknf_defconfig           - Build for at91sam9260eknf
  at91sam9g20dfc_defconfig            - Build for at91sam9g20dfc
  at91sam9g45m10ek_defconfig          - Build for at91sam9g45m10ek
  at91sam9rlek_defconfig              - Build for at91sam9rlek
  at91sam9x5ek_defconfig              - Build for at91sam9x5ek
  atmel_sama5d2_xplained_mmc_defconfig - Build for atmel_sama5d2_xplained_mmc
  atmel_sama5d3_xplained_defconfig    - Build for atmel_sama5d3_xplained
  atmel_sama5d3_xplained_mmc_defconfig - Build for atmel_sama5d3_xplained_mmc
  atmel_sama5d3xek_defconfig          - Build for atmel_sama5d3xek
  atmel_sama5d4_xplained_defconfig    - Build for atmel_sama5d4_xplained
  atmel_sama5d4_xplained_mmc_defconfig - Build for atmel_sama5d4_xplained_mmc
  atmel_sama5d4ek_defconfig           - Build for atmel_sama5d4ek
  beaglebone_defconfig                - Build for beaglebone
  calao_qil_a9260_defconfig           - Build for calao_qil_a9260
  calao_tny_a9g20_lpw_defconfig       - Build for calao_tny_a9g20_lpw
  calao_usb_a9260_defconfig           - Build for calao_usb_a9260
  calao_usb_a9263_defconfig           - Build for calao_usb_a9263
  calao_usb_a9g20_lpw_defconfig       - Build for calao_usb_a9g20_lpw
  ci20_defconfig                      - Build for ci20
  cubieboard2_defconfig               - Build for cubieboard2
  cubieboard_defconfig                - Build for cubieboard
  firefly_rk3288_defconfig            - Build for firefly_rk3288
  firefly_rk3288_demo_defconfig       - Build for firefly_rk3288_demo
  freescale_imx28evk_defconfig        - Build for freescale_imx28evk
  freescale_imx31_3stack_defconfig    - Build for freescale_imx31_3stack
  freescale_imx6dlsabreauto_defconfig - Build for freescale_imx6dlsabreauto
  freescale_imx6dlsabresd_defconfig   - Build for freescale_imx6dlsabresd
  freescale_imx6qsabreauto_defconfig  - Build for freescale_imx6qsabreauto
  freescale_imx6qsabresd_defconfig    - Build for freescale_imx6qsabresd
  freescale_imx6sololiteevk_defconfig - Build for freescale_imx6sololiteevk
  freescale_imx6sxsabresd_defconfig   - Build for freescale_imx6sxsabresd
  freescale_imx6ulevk_defconfig       - Build for freescale_imx6ulevk
  freescale_mpc8315erdb_defconfig     - Build for freescale_mpc8315erdb
  freescale_p1010rdb_pa_defconfig     - Build for freescale_p1010rdb_pa
  freescale_p2020ds_defconfig         - Build for freescale_p2020ds
  galileo_defconfig                   - Build for galileo
  kb9202_defconfig                    - Build for kb9202
  lego_ev3_defconfig                  - Build for lego_ev3
  mini2440_defconfig                  - Build for mini2440
  minnowboard_defconfig               - Build for minnowboard
  minnowboard_max-graphical_defconfig - Build for minnowboard_max-graphical
  minnowboard_max_defconfig           - Build for minnowboard_max
  mx53loco_defconfig                  - Build for mx53loco
  nitrogen6sx_defconfig               - Build for nitrogen6sx
  nitrogen6x_defconfig                - Build for nitrogen6x
  nitrogen7_defconfig                 - Build for nitrogen7
  odroidc2_defconfig                  - Build for odroidc2
  olimex_a20_olinuxino_lime2_defconfig - Build for olimex_a20_olinuxino_lime2
  olimex_a20_olinuxino_lime_defconfig - Build for olimex_a20_olinuxino_lime
  olimex_a20_olinuxino_lime_mali_defconfig - Build for olimex_a20_olinuxino_lime_mali
  olimex_a20_olinuxino_micro_defconfig - Build for olimex_a20_olinuxino_micro
  olimex_imx233_olinuxino_defconfig   - Build for olimex_imx233_olinuxino
  openblocks_a6_defconfig             - Build for openblocks_a6
  orangepipc_defconfig                - Build for orangepipc
  pandaboard_defconfig                - Build for pandaboard
  qemu_aarch64_virt_defconfig         - Build for qemu_aarch64_virt
  qemu_arm_versatile_defconfig        - Build for qemu_arm_versatile
  qemu_arm_vexpress_defconfig         - Build for qemu_arm_vexpress
  qemu_m68k_mcf5208_defconfig         - Build for qemu_m68k_mcf5208
  qemu_m68k_q800_defconfig            - Build for qemu_m68k_q800
  qemu_microblazebe_mmu_defconfig     - Build for qemu_microblazebe_mmu
  qemu_microblazeel_mmu_defconfig     - Build for qemu_microblazeel_mmu
  qemu_mips64_malta_defconfig         - Build for qemu_mips64_malta
  qemu_mips64el_malta_defconfig       - Build for qemu_mips64el_malta
  qemu_mips_malta_defconfig           - Build for qemu_mips_malta
  qemu_mipsel_malta_defconfig         - Build for qemu_mipsel_malta
  qemu_ppc64_pseries_defconfig        - Build for qemu_ppc64_pseries
  qemu_ppc_g3beige_defconfig          - Build for qemu_ppc_g3beige
  qemu_ppc_mpc8544ds_defconfig        - Build for qemu_ppc_mpc8544ds
  qemu_ppc_virtex_ml507_defconfig     - Build for qemu_ppc_virtex_ml507
  qemu_sh4_r2d_defconfig              - Build for qemu_sh4_r2d
  qemu_sh4eb_r2d_defconfig            - Build for qemu_sh4eb_r2d
  qemu_sparc64_sun4u_defconfig        - Build for qemu_sparc64_sun4u
  qemu_sparc_ss10_defconfig           - Build for qemu_sparc_ss10
  qemu_x86_64_defconfig               - Build for qemu_x86_64
  qemu_x86_defconfig                  - Build for qemu_x86
  qemu_xtensa_lx60_defconfig          - Build for qemu_xtensa_lx60
  qemu_xtensa_lx60_nommu_defconfig    - Build for qemu_xtensa_lx60_nommu
  qmx6_defconfig                      - Build for qmx6
  raspberrypi0_defconfig              - Build for raspberrypi0
  raspberrypi2_defconfig              - Build for raspberrypi2
  raspberrypi3_defconfig              - Build for raspberrypi3
  raspberrypi_defconfig               - Build for raspberrypi
  riotboard_defconfig                 - Build for riotboard
  s6lx9_microboard_defconfig          - Build for s6lx9_microboard
  sheevaplug_defconfig                - Build for sheevaplug
  snps_aarch64_vdk_defconfig          - Build for snps_aarch64_vdk
  snps_axs101_defconfig               - Build for snps_axs101
  snps_axs103_defconfig               - Build for snps_axs103
  snps_hs38_smp_vdk_defconfig         - Build for snps_hs38_smp_vdk
  snps_hs38_vdk_defconfig             - Build for snps_hs38_vdk
  stm32f429_disco_defconfig           - Build for stm32f429_disco
  stm32f469_disco_defconfig           - Build for stm32f469_disco
  telit_evk_pro3_defconfig            - Build for telit_evk_pro3
  ts5x00_defconfig                    - Build for ts5x00
  udoo_quad_defconfig                 - Build for udoo_quad
  via_imx6_vab820_defconfig           - Build for via_imx6_vab820
  wandboard_defconfig                 - Build for wandboard
  warpboard_defconfig                 - Build for warpboard
  zynq_microzed_defconfig             - Build for zynq_microzed
  zynq_zc706_defconfig                - Build for zynq_zc706
  zynq_zed_defconfig                  - Build for zynq_zed
我使用:make at91sam9g45m10ek_defconfig

编译:make

然后就等待他自己下载并安装了

然后在output/image/下生成烧写文件了

看到了吧,很简单吧,之光根文件系统就折腾了好久。

当然,现在编译的程序一般不能在板子上运行,不然还要移植工作的人怎么活。下面的任务就是探索这个buildroot并进行开发板的移植和linux的深入学习了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值