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
版權宣告:本文為博主原創文章,轉載請附上博文連結!