1. 程式人生 > >buildroot學習(一)——at91sam9g45軟體平臺更新

buildroot學習(一)——at91sam9g45軟體平臺更新

轉載地址:https://blog.csdn.net/srf1986/article/details/52280364

我也是最近剛發現這個工具,剛開始弄,我把每天的學習筆記留下,後期用明白了在整理下。

   目前專案一直用的是一款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的深入學習了
--------------------- 
作者:海邊自在生活 
來源:CSDN 
原文:https://blog.csdn.net/srf1986/article/details/52280364 
版權宣告:本文為博主原創文章,轉載請附上博文連結!