Make a faster method to list supported boards.

  • Open
  • quality assurance status badge
Details
3 participants
  • Caleb Ristvedt
  • Danny Milosavljevic
  • Jesse Gibbons
Owner
unassigned
Submitted by
Jesse Gibbons
Severity
normal
J
J
Jesse Gibbons wrote on 2 Sep 2019 20:52
(name . bug-guix mailing list)(address . bug-guix@gnu.org)
5f87e4c297b8e4fca0f9ceb0729f2176dec947bb.camel@gmail.com
There should be a faster way to list the supported boards with custom
versions of U-Boot.

From manual:
Many ARM boards require a specific variant of the U-Boot

If you build a disk image and the bootloader is not available
otherwise (on another boot drive etc), it’s advisable to build an image
that includes the bootloader, specifically:

guix system disk-image --system=armhf-linux -e '((@ (gnu system
install) os-with-u-boot) (@ (gnu system install) installation-os) "A20-
OLinuXino-Lime2")'

‘A20-OLinuXino-Lime2’ is the name of the board. If you specify an
invalid board, a list of possible boards will be printed.



I think an example of an invalid board is "dne-board", which (last I
checked) does not exist and probably never will exist. If I run the
following command:

guix system disk-image --system=armhf-linux -e '((@ (gnu system
install) os-with-u-boot) (@ (gnu system install) installation-os) "dne-
board")'

guix tries to build an entire system. It doesn't look like it checks if
"dne-board" is a valid board until it is building the image. It takes
hours to cross-compile the kernel, and even longer if the kernel needs
to be deblobbed. I have not yet been able to cross-compile any system
using this method.
D
D
Danny Milosavljevic wrote on 2 Sep 2019 22:49
(name . Jesse Gibbons)(address . jgibbons2357@gmail.com)
20190902224904.57e41fa4@scratchpost.org
Hi,

On Mon, 02 Sep 2019 12:52:49 -0600
Jesse Gibbons <jgibbons2357@gmail.com> wrote:

Toggle quote (5 lines)
> guix tries to build an entire system. It doesn't look like it checks if
> "dne-board" is a valid board until it is building the image. It takes
> hours to cross-compile the kernel, and even longer if the kernel needs
> to be deblobbed.

Yes, that's true.

For better or for worse, there are a LOT of different ARM boards.

Back when I implemented that part I thought that when you want to find out
whether your board is supported, there's a good chance that you want to
install Guix anyway--so you need the system image anyway.

If it turns out not to be supported you just uselessly built a lot of
stuff--but the substitute cache should have cached all that stuff anyway.

But for some reason the ARM build farm substitute cache has a very bad hit
rate (I remember waiting MONTHS to finally get a "flash-image" substitute
that I didn't build myself).

If we decided to do so, we could limit ourselves to just a few that we
specially support--but that would make Guix System really a non-universal
operating system. (with the current state of Guix ARM implementation it is
anyway)

It would be easy to get the list of supported u-boot targets from the
derivation. It might be that Guix Data Service would help with that
(see "More progress with the Guix Data Service" by Christopher Baines).

Or we can maintain a list in the package definition ourselves.

What do you think?
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl1tgEAACgkQ5xo1VCww
uqXbSgf/WkxKl80pukLaejveXy6jRxEIq33uSWCMII7FPgfmyiiMJofxeQSdXufo
IC1/ZlLtawlKdsGQFbTj3w0ytXmEjkJe8i9AmxJ9ZcElikSA6tSV1Jn3iQJ+ZWDC
N+YMaa5D8PfARo3FSZmyQn9Nevyluw7e5AVvOpXZLmP3oLthUA0rC4WtxtffQ4kg
4JTtq3ppDRHagthv4QgPokJQbkntkR1vLTyCSErLKjmO/6r2bVFvuamdA8PF7c+x
eNErz6v0MaqL0kaSUU2ZsscLgmcfiS1u8GQy4BiRaKUyDa/MZnYFTKf+ryFRqj5o
BQBD3ca7GBd1Mgam3+vw8FOg4kyAFg==
=aF01
-----END PGP SIGNATURE-----


J
J
Jesse Gibbons wrote on 3 Sep 2019 04:07
(name . Danny Milosavljevic)(address . dannym@scratchpost.org)
ead0664fe5d2845cdaba96c8e06973baa5ab0492.camel@gmail.com
On Mon, 2019-09-02 at 22:49 +0200, Danny Milosavljevic wrote:
Toggle quote (22 lines)
> Hi,
>
> On Mon, 02 Sep 2019 12:52:49 -0600
> Jesse Gibbons <jgibbons2357@gmail.com> wrote:
>
> > guix tries to build an entire system. It doesn't look like it
> > checks if
> > "dne-board" is a valid board until it is building the image. It
> > takes
> > hours to cross-compile the kernel, and even longer if the kernel
> > needs
> > to be deblobbed.
>
> Yes, that's true.
>
> For better or for worse, there are a LOT of different ARM boards.
>
> Back when I implemented that part I thought that when you want to
> find out
> whether your board is supported, there's a good chance that you want
> to
> install Guix anyway--so you need the system image anyway.
If the bootloader build fails, which appears necessary to generate the
list, doesn't the system build fail?
Toggle quote (10 lines)
>
> If it turns out not to be supported you just uselessly built a lot of
> stuff--but the substitute cache should have cached all that stuff
> anyway.
>
> But for some reason the ARM build farm substitute cache has a very
> bad hit
> rate (I remember waiting MONTHS to finally get a "flash-image"
> substitute
> that I didn't build myself).
It would be good to find out what's going on there. How many concurrent
builds can the build farm handle?
Toggle quote (8 lines)
>
> If we decided to do so, we could limit ourselves to just a few that
> we
> specially support--but that would make Guix System really a non-
> universal
> operating system. (with the current state of Guix ARM implementation
> it is
> anyway)
Guix is a libre operating system. The fact that you need to carefully
choose the hardware it can use means universal use is not officially
supported. But if hardware is supported, I think we should be able to
install guix onto it, and the users should be able to look up if it is
supported.
Toggle quote (5 lines)
>
> It would be easy to get the list of supported u-boot targets from the
> derivation. It might be that Guix Data Service would help with that
> (see "More progress with the Guix Data Service" by Christopher
> Baines).
That sounds like an interesting article, but my search engine of choice
doesn't know where it is. Would you mind providing a link please?
Toggle quote (2 lines)
>
> Or we can maintain a list in the package definition ourselves.
The list would be most accurate if :
- The user keeps the building install up-to-date.
- We keep the list up-to-date.
This solution is good as long as we are diligent to update the list
when a new board is added.
Toggle quote (2 lines)
>
> What do you think?
The behavior described in the manual is implemented in the make-u-boot-
package function in gnu/packages/bootloaders.scm, in the replaced
'configure phase. If it could be moved from that function to a script
(maybe guix system list-boards), that would be the best solution IMHO.

At this point, the fastest way to get the list would be "guix package
-e '((@ (gnu packages bootloaders) make-u-boot-package) "dneboard"
"arm-linux-gnueabihf")'" and view the end of the resulting log. I
tested this, and it takes a minute at most. It's still needlessly
complicated though -- the boards listed are not limited to the triplet.

Here's what it gives me (it's very long):
Invalid board name. Valid board names are:- 10m50
- 3c120
- A10-OLinuXino-Lime
- A10s-OLinuXino-M
- A13-OLinuXino
- A13-OLinuXinoM
- A20-Olimex-SOM-EVB
- A20-Olimex-SOM204-EVB-eMMC
- A20-Olimex-SOM204-EVB
- A20-OLinuXino-Lime2-eMMC
- A20-OLinuXino-Lime2
- A20-OLinuXino-Lime
- A20-OLinuXino_MICRO-eMMC
- A20-OLinuXino_MICRO
- A33-OLinuXino
- a64-olinuxino
- adp-ae3xx
- adp-ag101p
- ae350_rv32
- ae350_rv64
- Ainol_AW1
- alt
- am335x_baltos
- am335x_boneblack_vboot
- am335x_evm
- am335x_hs_evm
- am335x_hs_evm_uart
- am335x_igep003x
- am335x_pdu001
- am335x_shc
- am335x_shc_ict
- am335x_shc_netboot
- am335x_shc_sdboot
- am335x_sl50
- am3517_crane
- am3517_evm
- am43xx_evm
- am43xx_evm_qspiboot
- am43xx_evm_rtconly
- am43xx_evm_usbhost_boot
- am43xx_hs_evm
- am57xx_evm
- am57xx_hs_evm
- am57xx_hs_evm_usb
- am65x_evm_a53
- am65x_evm_r5
- amarula_a64_relic
- amcore
- Ampe_A76
- ap121
- ap143
- ap325rxa
- ap_sh4a_4a
- apalis-tk1
- apalis_imx6
- apalis_imx6_nospl_com
- apalis_imx6_nospl_it
- apalis_t30
- apf27
- apx4devkit
- aristainetos2
- aristainetos2b
- aristainetos
- armadillo-800eva
- arndale
- aspenite
- astro_mcf5373l
- at91rm9200ek
- at91rm9200ek_ram
- at91sam9260ek_dataflash_cs0
- at91sam9260ek_dataflash_cs1
- at91sam9260ek_nandflash
- at91sam9261ek_dataflash_cs0
- at91sam9261ek_dataflash_cs3
- at91sam9261ek_nandflash
- at91sam9263ek_dataflash_cs0
- at91sam9263ek_dataflash
- at91sam9263ek_nandflash
- at91sam9263ek_norflash_boot
- at91sam9263ek_norflash
- at91sam9g10ek_dataflash_cs0
- at91sam9g10ek_dataflash_cs3
- at91sam9g10ek_nandflash
- at91sam9g20ek_2mmc
- at91sam9g20ek_2mmc_nandflash
- at91sam9g20ek_dataflash_cs0
- at91sam9g20ek_dataflash_cs1
- at91sam9g20ek_nandflash
- at91sam9m10g45ek_mmc
- at91sam9m10g45ek_nandflash
- at91sam9n12ek_mmc
- at91sam9n12ek_nandflash
- at91sam9n12ek_spiflash
- at91sam9rlek_dataflash
- at91sam9rlek_mmc
- at91sam9rlek_nandflash
- at91sam9x5ek_dataflash
- at91sam9x5ek_mmc
- at91sam9x5ek_nandflash
- at91sam9x5ek_spiflash
- at91sam9xeek_dataflash_cs0
- at91sam9xeek_dataflash_cs1
- at91sam9xeek_nandflash
- Auxtek-T003
- Auxtek-T004
- avnet_ultra96_rev1
- axm
- axs101
- axs103
- B4420QDS
- B4420QDS_NAND
- B4420QDS_SPIFLASH
- B4860QDS
- B4860QDS_NAND
- B4860QDS_SECURE_BOOT
- B4860QDS_SPIFLASH
- B4860QDS_SRIO_PCIE_BOOT
- ba10_tv_box
- Bananapi
- bananapi_m1_plus
- bananapi_m2_berry
- bananapi_m2_plus_h3
- bananapi_m2_plus_h5
- Bananapi_M2_Ultra
- bananapi_m2_zero
- Bananapi_m2m
- bananapi_m64
- Bananapro
- bayleybay
- bcm11130
- bcm11130_nand
- bcm23550_w1d
- bcm28155_ap
- bcm28155_w1d
- bcm7260
- bcm7445
- bcm911360_entphn-ns
- bcm911360_entphn
- bcm911360k
- bcm958300k-ns
- bcm958300k
- bcm958305k
- bcm958622hr
- bcm958712k
- bcm963158_ram
- bcm968380gerg_ram
- bcm968580xref_ram
- beaver
- bg0900
- birdland_bav335a
- birdland_bav335b
- bitmain_antminer_s9
- bk4r1
- blanche
- boston32r2
- boston32r2el
- boston32r6
- boston32r6el
- boston64r2
- boston64r2el
- boston64r6
- boston64r6el
- brppt1_mmc
- brppt1_nand
- brppt1_spi
- brxre1
- BSC9131RDB_NAND
- BSC9131RDB_NAND_SYSCLK100
- BSC9131RDB_SPIFLASH
- BSC9131RDB_SPIFLASH_SYSCLK100
- BSC9132QDS_NAND_DDRCLK100
- BSC9132QDS_NAND_DDRCLK100_SECURE
- BSC9132QDS_NAND_DDRCLK133
- BSC9132QDS_NAND_DDRCLK133_SECURE
- BSC9132QDS_NOR_DDRCLK100
- BSC9132QDS_NOR_DDRCLK100_SECURE
- BSC9132QDS_NOR_DDRCLK133
- BSC9132QDS_NOR_DDRCLK133_SECURE
- BSC9132QDS_SDCARD_DDRCLK100
- BSC9132QDS_SDCARD_DDRCLK100_SECURE
- BSC9132QDS_SDCARD_DDRCLK133
- BSC9132QDS_SDCARD_DDRCLK133_SECURE
- BSC9132QDS_SPIFLASH_DDRCLK100
- BSC9132QDS_SPIFLASH_DDRCLK100_SECURE
- BSC9132QDS_SPIFLASH_DDRCLK133
- BSC9132QDS_SPIFLASH_DDRCLK133_SECURE
- bubblegum_96
- C29XPCIE
- C29XPCIE_NAND
- C29XPCIE_NOR_SECBOOT
- C29XPCIE_SPIFLASH
- C29XPCIE_SPIFLASH_SECBOOT
- caddy2
- cairo
- calimain
- cardhu
- cei-tk1-som
- cgtqmx6eval
- cherryhill
- chiliboard
- CHIP
- CHIP_pro
- chromebit_mickey
- chromebook_bob
- chromebook_jerry
- chromebook_link64
- chromebook_link
- chromebook_minnie
- chromebook_samus
- chromebook_speedy
- chromebox_panther
- Chuwi_V7_CW0825
- ci20_mmc
- cl-som-am57x
- cl-som-imx7
- clearfog
- clearfog_gt_8k
- cm_fx6
- cm_t335
- cm_t3517
- cm_t35
- cm_t43
- cm_t54
- cobra5272
- colibri-imx6ull
- colibri_imx6
- colibri_imx6_nospl
- colibri_imx7
- colibri_imx7_emmc
- colibri_pxa270
- colibri_t20
- colibri_t30
- colibri_vf
- Colombus
- colorfly_e708_q1
- comtrend_ar5315u_ram
- comtrend_ar5387un_ram
- comtrend_ct5361_ram
- comtrend_vr3032u_ram
- comtrend_wap5813n_ram
- conga-qeval20-qa3-e3845-internal-uart
- conga-qeval20-qa3-e3845
- controlcenterd_36BIT_SDCARD
- controlcenterd_36BIT_SDCARD_DEVELOP
- controlcenterd_TRAILBLAZER
- controlcenterd_TRAILBLAZER_DEVELOP
- controlcenterdc
- coreboot
- corvus
- cougarcanyon2
- crownbay
- CSQ_CS908
- Cubieboard2
- Cubieboard4
- Cubieboard
- Cubietruck
- Cubietruck_plus
- Cyrus_P5020
- Cyrus_P5040
- d2net_v2
- da850_am18xxevm
- da850evm
- da850evm_direct_nor
- da850evm_nand
- dalmore
- db-88f6720
- db-88f6820-amc
- db-88f6820-gp
- db-mv784mp-gp
- devkit3250
- devkit8000
- dfi-bt700-q7x-151
- dh_imx6
- difrnce_dit4350
- display5
- display5_factory
- dms-ba16-1g
- dms-ba16
- dns325
- dockstar
- dra7xx_evm
- dra7xx_hs_evm
- dra7xx_hs_evm_usb
- draco
- dragonboard410c
- dragonboard820c
- dreamplug
- ds109
- ds414
- dserve_dsrv9703c
- duovero
- e2220-1170
- ea20
- eb_cpu5282
- eb_cpu5282_internal
- eco5pk
- ecovec
- edb9315a
- edison
- edminiv2
- efi-x86_app
- efi-x86_payload32
- efi-x86_payload64
- elgin-rv1108
- emlid_neutis_n5_devboard
- Empire_electronix_d709
- Empire_electronix_m712
- emsdp
- espresso7420
- espt
- etamin
- ethernut5
- evb-ast2500
- evb-px5
- evb-rk3036
- evb-rk3128
- evb-rk3229
- evb-rk3288
- evb-rk3328
- evb-rk3399
- evb-rv1108
- fennec-rk3288
- ficus-rk3399
- firefly-rk3288
- firefly-rk3399
- flea3
- ga10h_v1_1
- galileo
- gardena-smart-gateway-mt7688-ram
- gardena-smart-gateway-mt7688
- ge_bx50v3
- geekbox
- goflexhome
- gose
- gplugd
- gt90h_v4
- gurnard
- guruplug
- gwventana_emmc
- gwventana_gw5904
- gwventana_nand
- h2200
- h8_homlet_v2
- harmony
- helios4
- highbank
- hikey
- hrcon
- hrcon_dh
- hsdk
- huawei_hg556a_ram
- Hummingbird_A31
- Hyundai_A7HD
- i12-tvbox
- ib62x0
- icnova-a20-swac
- iconnect
- ids8313
- igep00x0
- imgtec_xilfpga
- imx6dl_icore_nand
- imx6dl_mamoj
- imx6q_icore_nand
- imx6q_logic
- imx6qdl_icore_mipi
- imx6qdl_icore_mmc
- imx6qdl_icore_nand
- imx6qdl_icore_rqs
- imx6ul_geam_mmc
- imx6ul_geam_nand
- imx6ul_isiot_emmc
- imx6ul_isiot_nand
- imx8mq_evk
- imx8qxp_mek
- inet1
- inet86dz
- inet97fv2
- inet98v_rev2
- inet9f_rev03
- iNet_3F
- iNet_3W
- iNet_86VS
- iNet_D978_rev2
- inet_q972
- inetspace_v2
- integratorap_cm720t
- integratorap_cm920t
- integratorap_cm926ejs
- integratorap_cm946es
- integratorcp_cm1136
- integratorcp_cm920t
- integratorcp_cm926ejs
- integratorcp_cm946es
- iot_devkit
- ipam390
- Itead_Ibox_A20
- jesurun_q5
- jetson-tk1
- k2e_evm
- k2e_hs_evm
- k2g_evm
- k2g_hs_evm
- k2hk_evm
- k2hk_hs_evm
- k2l_evm
- k2l_hs_evm
- kc1
- khadas-vim2
- khadas-vim
- km_kirkwood_128m16
- km_kirkwood
- km_kirkwood_pci
- kmcoge4
- kmcoge5ne
- kmcoge5un
- kmeter1
- kmlion1
- kmnusa
- kmopti2
- kmsugp1
- kmsupx5
- kmsuv31
- kmtegr1
- kmtepr2
- kmvect1
- koelsch
- kp_imx53
- kp_imx6q_tpc
- kylin-rk3036
- kzm9g
- lager
- Lamobo_R1
- legoev3
- libretech-cc
- libretech_all_h3_cc_h2_plus
- libretech_all_h3_cc_h3
- libretech_all_h3_cc_h5
- LicheePi_Zero
- linkit-smart-7688-ram
- linkit-smart-7688
- Linksprite_pcDuino3
- Linksprite_pcDuino3_Nano
- Linksprite_pcDuino
- lion-rk3368
- liteboard
- ls1012a2g5rdb_qspi
- ls1012a2g5rdb_tfa
- ls1012afrdm_qspi
- ls1012afrdm_tfa
- ls1012afrwy_qspi
- ls1012afrwy_qspi_SECURE_BOOT
- ls1012afrwy_tfa
- ls1012afrwy_tfa_SECURE_BOOT
- ls1012aqds_qspi
- ls1012aqds_tfa
- ls1012aqds_tfa_SECURE_BOOT
- ls1012ardb_qspi
- ls1012ardb_qspi_SECURE_BOOT
- ls1012ardb_tfa
- ls1012ardb_tfa_SECURE_BOOT
- ls1021aiot_qspi
- ls1021aiot_sdcard
- ls1021aqds_ddr4_nor
- ls1021aqds_ddr4_nor_lpuart
- ls1021aqds_nand
- ls1021aqds_nor
- ls1021aqds_nor_lpuart
- ls1021aqds_nor_SECURE_BOOT
- ls1021aqds_qspi
- ls1021aqds_sdcard_ifc
- ls1021aqds_sdcard_qspi
- ls1021atwr_nor
- ls1021atwr_nor_lpuart
- ls1021atwr_nor_SECURE_BOOT
- ls1021atwr_qspi
- ls1021atwr_sdcard_ifc
- ls1021atwr_sdcard_ifc_SECURE_BOOT
- ls1021atwr_sdcard_qspi
- ls1043aqds
- ls1043aqds_lpuart
- ls1043aqds_nand
- ls1043aqds_nor_ddr3
- ls1043aqds_qspi
- ls1043aqds_sdcard_ifc
- ls1043aqds_sdcard_qspi
- ls1043aqds_tfa
- ls1043aqds_tfa_SECURE_BOOT
- ls1043ardb
- ls1043ardb_nand
- ls1043ardb_nand_SECURE_BOOT
- ls1043ardb_sdcard
- ls1043ardb_sdcard_SECURE_BOOT
- ls1043ardb_SECURE_BOOT
- ls1043ardb_tfa
- ls1043ardb_tfa_SECURE_BOOT
- ls1046aqds
- ls1046aqds_lpuart
- ls1046aqds_nand
- ls1046aqds_qspi
- ls1046aqds_sdcard_ifc
- ls1046aqds_sdcard_qspi
- ls1046aqds_SECURE_BOOT
- ls1046aqds_tfa
- ls1046aqds_tfa_SECURE_BOOT
- ls1046ardb_emmc
- ls1046ardb_qspi
- ls1046ardb_qspi_SECURE_BOOT
- ls1046ardb_qspi_spl
- ls1046ardb_sdcard
- ls1046ardb_sdcard_SECURE_BOOT
- ls1046ardb_tfa
- ls1046ardb_tfa_SECURE_BOOT
- ls1088aqds
- ls1088aqds_qspi
- ls1088aqds_qspi_SECURE_BOOT
- ls1088aqds_sdcard_ifc
- ls1088aqds_sdcard_qspi
- ls1088aqds_tfa
- ls1088ardb_qspi
- ls1088ardb_qspi_SECURE_BOOT
- ls1088ardb_sdcard_qspi
- ls1088ardb_sdcard_qspi_SECURE_BOOT
- ls1088ardb_tfa
- ls1088ardb_tfa_SECURE_BOOT
- ls2080a_emu
- ls2080a_simu
- ls2080aqds
- ls2080aqds_nand
- ls2080aqds_qspi
- ls2080aqds_sdcard
- ls2080aqds_SECURE_BOOT
- ls2080ardb
- ls2080ardb_nand
- ls2080ardb_SECURE_BOOT
- ls2081ardb
- ls2088aqds_tfa
- ls2088ardb_qspi
- ls2088ardb_qspi_SECURE_BOOT
- ls2088ardb_tfa
- ls2088ardb_tfa_SECURE_BOOT
- lschlv2
- lsxhl
- lx2160aqds_tfa
- lx2160aqds_tfa_SECURE_BOOT
- lx2160ardb_tfa
- lx2160ardb_tfa_SECURE_BOOT
- M5208EVBE
- M52277EVB
- M52277EVB_stmicro
- M5235EVB
- M5235EVB_Flash32
- M5249EVB
- M5253DEMO
- M5272C3
- M5275EVB
- M5282EVB
- M53017EVB
- M5329AFEE
- M5329BFEE
- M5373EVB
- m53menlo
- M54418TWR
- M54418TWR_nand_mii
- M54418TWR_nand_rmii
- M54418TWR_nand_rmii_lowfreq
- M54418TWR_serial_mii
- M54418TWR_serial_rmii
- M54451EVB
- M54451EVB_stmicro
- M54455EVB_a66
- M54455EVB
- M54455EVB_i66
- M54455EVB_intel
- M54455EVB_stm33
- M5475AFE
- M5475BFE
- M5475CFE
- M5475DFE
- M5475EFE
- M5475FFE
- M5475GFE
- M5485AFE
- M5485BFE
- M5485CFE
- M5485DFE
- M5485EFE
- M5485FFE
- M5485GFE
- M5485HFE
- malta64
- malta64el
- malta
- maltael
- Marsboard_A10
- marsboard
- maxbcm
- mccmon6_nor
- mccmon6_sd
- MCR3000
- mcx
- medcom-wide
- meesc_dataflash
- meesc
- Mele_A1000
- Mele_A1000G_quad
- Mele_I7
- Mele_M3
- Mele_M5
- Mele_M9
- Merrii_A80_Optimus
- mgcoge3un
- microblaze-generic
- MigoR
- Mini-X
- minnowmax
- miqi-rk3288
- mixtile_loftq
- mk802_a10s
- mk802
- mk802ii
- MK808C
- mpc8308_p1m
- MPC8308RDB
- MPC8313ERDB_33
- MPC8313ERDB_66
- MPC8313ERDB_NAND_33
- MPC8313ERDB_NAND_66
- MPC8315ERDB
- MPC8323ERDB
- MPC832XEMDS_ATM
- MPC832XEMDS
- MPC832XEMDS_HOST_33
- MPC832XEMDS_HOST_66
- MPC832XEMDS_SLAVE
- MPC8349EMDS
- MPC8349ITX
- MPC8349ITX_LOWBOOT
- MPC8349ITXGP
- MPC837XEMDS
- MPC837XEMDS_HOST
- MPC837XERDB
- MPC8536DS_36BIT
- MPC8536DS
- MPC8536DS_SDCARD
- MPC8536DS_SPIFLASH
- MPC8541CDS
- MPC8541CDS_legacy
- MPC8544DS
- MPC8548CDS_36BIT
- MPC8548CDS
- MPC8548CDS_legacy
- MPC8555CDS
- MPC8555CDS_legacy
- MPC8568MDS
- MPC8569MDS_ATM
- MPC8569MDS
- MPC8572DS_36BIT
- MPC8572DS
- MPC8610HPCD
- MPC8641HPCN_36BIT
- MPC8641HPCN
- mpr2
- ms7720se
- ms7722se
- ms7750se
- mscc_jr2
- mscc_luton
- mscc_ocelot
- mscc_serval
- mscc_servalt
- MSI_Primo73
- MSI_Primo81
- mt7623n_bpir2
- mt7629_rfb
- mt_ventoux
- mvebu_db-88f3720
- mvebu_db_armada8k
- mvebu_espressobin-88f3720
- mvebu_mcbin-88f8040
- mx23_olinuxino
- mx23evk
- mx25pdk
- mx28evk_auart_console
- mx28evk
- mx28evk_nand
- mx28evk_spi
- mx31pdk
- mx35pdk
- mx51evk
- mx53ard
- mx53cx9020
- mx53evk
- mx53loco
- mx53ppd
- mx53smd
- mx6cuboxi
- mx6dlarm2
- mx6dlarm2_lpddr2
- mx6memcal
- mx6qarm2
- mx6qarm2_lpddr2
- mx6qsabrelite
- mx6sabreauto
- mx6sabresd
- mx6slevk
- mx6slevk_spinor
- mx6slevk_spl
- mx6sllevk
- mx6sllevk_plugin
- mx6sxsabreauto
- mx6sxsabresd
- mx6sxsabresd_spl
- mx6ul_14x14_evk
- mx6ul_9x9_evk
- mx6ull_14x14_evk
- mx6ull_14x14_evk_plugin
- mx7dsabresd
- mx7dsabresd_qspi
- mx7ulp_evk
- mx7ulp_evk_plugin
- nanopi-k2
- nanopi_a64
- nanopi_m1
- nanopi_m1_plus
- nanopi_neo2
- nanopi_neo_air
- nanopi_neo
- nanopi_neo_plus2
- nas220
- net2big_v2
- netgear_cg3100d_ram
- netgear_dgnd3700v2_ram
- netspace_lite_v2
- netspace_max_v2
- netspace_mini_v2
- netspace_v2
- Nintendo_NES_Classic_Edition
- nitrogen6dl2g
- nitrogen6dl
- nitrogen6q2g
- nitrogen6q
- nitrogen6s1g
- nitrogen6s
- nokia_rx51
- novena
- nsa310s
- nsim_700
- nsim_700be
- nsim_hs38
- nsim_hs38be
- nyan-big
- odroid-c2
- odroid-xu3
- odroid
- omap35_logic
- omap35_logic_somlv
- omap3_beagle
- omap3_evm
- omap3_ha
- omap3_logic
- omap3_logic_somlv
- omap3_overo
- omap3_pandora
- omap3_zoom1
- omap4_panda
- omap4_sdp4430
- omap5_uevm
- omapl138_lcdk
- openrd_base
- openrd_client
- openrd_ultimate
- opos6uldev
- orangepi_2
- Orangepi
- orangepi_lite2
- orangepi_lite
- Orangepi_mini
- orangepi_one
- orangepi_one_plus
- orangepi_pc2
- orangepi_pc
- orangepi_pc_plus
- orangepi_plus2e
- orangepi_plus
- orangepi_prime
- orangepi_r1
- orangepi_win
- orangepi_zero
- orangepi_zero_plus2
- orangepi_zero_plus
- origen
- ot1200
- ot1200_spl
- P1010RDB-PA_36BIT_NAND
- P1010RDB-PA_36BIT_NAND_SECBOOT
- P1010RDB-PA_36BIT_NOR
- P1010RDB-PA_36BIT_NOR_SECBOOT
- P1010RDB-PA_36BIT_SDCARD
- P1010RDB-PA_36BIT_SPIFLASH
- P1010RDB-PA_36BIT_SPIFLASH_SECBOOT
- P1010RDB-PA_NAND
- P1010RDB-PA_NAND_SECBOOT
- P1010RDB-PA_NOR
- P1010RDB-PA_NOR_SECBOOT
- P1010RDB-PA_SDCARD
- P1010RDB-PA_SPIFLASH
- P1010RDB-PA_SPIFLASH_SECBOOT
- P1010RDB-PB_36BIT_NAND
- P1010RDB-PB_36BIT_NAND_SECBOOT
- P1010RDB-PB_36BIT_NOR
- P1010RDB-PB_36BIT_NOR_SECBOOT
- P1010RDB-PB_36BIT_SDCARD
- P1010RDB-PB_36BIT_SPIFLASH
- P1010RDB-PB_36BIT_SPIFLASH_SECBOOT
- P1010RDB-PB_NAND
- P1010RDB-PB_NAND_SECBOOT
- P1010RDB-PB_NOR
- P1010RDB-PB_NOR_SECBOOT
- P1010RDB-PB_SDCARD
- P1010RDB-PB_SPIFLASH
- P1010RDB-PB_SPIFLASH_SECBOOT
- P1020MBG-PC_36BIT
- P1020MBG-PC_36BIT_SDCARD
- P1020MBG-PC
- P1020MBG-PC_SDCARD
- P1020RDB-PC_36BIT
- P1020RDB-PC_36BIT_NAND
- P1020RDB-PC_36BIT_SDCARD
- P1020RDB-PC_36BIT_SPIFLASH
- P1020RDB-PC
- P1020RDB-PC_NAND
- P1020RDB-PC_SDCARD
- P1020RDB-PC_SPIFLASH
- P1020RDB-PD
- P1020RDB-PD_NAND
- P1020RDB-PD_SDCARD
- P1020RDB-PD_SPIFLASH
- P1020UTM-PC_36BIT
- P1020UTM-PC_36BIT_SDCARD
- P1020UTM-PC
- P1020UTM-PC_SDCARD
- P1021RDB-PC_36BIT
- P1021RDB-PC_36BIT_NAND
- P1021RDB-PC_36BIT_SDCARD
- P1021RDB-PC_36BIT_SPIFLASH
- P1021RDB-PC
- P1021RDB-PC_NAND
- P1021RDB-PC_SDCARD
- P1021RDB-PC_SPIFLASH
- P1022DS_36BIT
- P1022DS_36BIT_NAND
- P1022DS_36BIT_SDCARD
- P1022DS_36BIT_SPIFLASH
- P1022DS
- P1022DS_NAND
- P1022DS_SDCARD
- P1022DS_SPIFLASH
- P1023RDB
- P1024RDB_36BIT
- P1024RDB
- P1024RDB_NAND
- P1024RDB_SDCARD
- P1024RDB_SPIFLASH
- P1025RDB_36BIT
- P1025RDB
- P1025RDB_NAND
- P1025RDB_SDCARD
- P1025RDB_SPIFLASH
- P2020RDB-PC_36BIT
- P2020RDB-PC_36BIT_NAND
- P2020RDB-PC_36BIT_SDCARD
- P2020RDB-PC_36BIT_SPIFLASH
- P2020RDB-PC
- P2020RDB-PC_NAND
- P2020RDB-PC_SDCARD
- P2020RDB-PC_SPIFLASH
- P2041RDB
- P2041RDB_NAND
- P2041RDB_SDCARD
- P2041RDB_SECURE_BOOT
- P2041RDB_SPIFLASH
- P2041RDB_SRIO_PCIE_BOOT
- p212
- p2371-0000
- p2371-2180
- p2571
- p2771-0000-000
- p2771-0000-500
- P3041DS
- P3041DS_NAND
- P3041DS_NAND_SECURE_BOOT
- P3041DS_SDCARD
- P3041DS_SECURE_BOOT
- P3041DS_SPIFLASH
- P3041DS_SRIO_PCIE_BOOT
- P4080DS
- P4080DS_SDCARD
- P4080DS_SECURE_BOOT
- P4080DS_SPIFLASH
- P4080DS_SRIO_PCIE_BOOT
- P5020DS
- P5020DS_NAND
- P5020DS_NAND_SECURE_BOOT
- P5020DS_SDCARD
- P5020DS_SECURE_BOOT
- P5020DS_SPIFLASH
- P5020DS_SRIO_PCIE_BOOT
- P5040DS
- P5040DS_NAND
- P5040DS_NAND_SECURE_BOOT
- P5040DS_SDCARD
- P5040DS_SECURE_BOOT
- P5040DS_SPIFLASH
- parrot_r16
- paz00
- pcm051_rev1
- pcm051_rev3
- pcm052
- pcm058
- peach-pi
- peach-pit
- pengwyn
- pepper
- pfla02
- phycore-rk3288
- phycore_pcl063
- pic32mzdask
- pico-hobbit-imx6ul
- pico-hobbit-imx7d
- pico-imx6ul
- pico-imx7d
- pico-pi-imx6ul
- pico-pi-imx7d
- picosam9g45
- pine64-lts
- pine64_plus
- pine_h64
- pinebook
- platinum_picon
- platinum_titanium
- plutux
- pm9261
- pm9263
- pm9g45
- pogo_e02
- polaroid_mid2407pxe03
- polaroid_mid2809pxe04
- poplar
- popmetal-rk3288
- porter
- portl2
- pov_protab2_ips9
- puma-rk3399
- pxm2
- q8_a13_tablet
- q8_a23_tablet_800x480
- q8_a33_tablet_1024x600
- q8_a33_tablet_800x480
- qemu-ppce500
- qemu-riscv32
- qemu-riscv32_smode
- qemu-riscv64
- qemu-riscv64_smode
- qemu-x86_64
- qemu-x86
- qemu_arm64
- qemu_arm
- qemu_mips64
- qemu_mips64el
- qemu_mips
- qemu_mipsel
- r0p7734
- r2dplus
- r7-tv-dongle
- r7780mp
- r8a7795_salvator-x
- r8a7795_ulcb
- r8a77965_salvator-x
- r8a7796_salvator-x
- r8a7796_ulcb
- r8a77970_eagle
- r8a77990_ebisu
- r8a77995_
This message was truncated. Download the full message here.
C
C
Caleb Ristvedt wrote on 3 Sep 2019 05:28
(name . Jesse Gibbons)(address . jgibbons2357@gmail.com)(address . 37286@debbugs.gnu.org)
875zma12k9.fsf@cune.org
Toggle quote (3 lines)
> Where does guix get this list? Is it configured or automatically
> generated?

It's all the filenames suffixed with "_defconfig" in the "configs"
subdirectory of the u-boot source, minus the suffix.

- reepca
D
D
Danny Milosavljevic wrote on 3 Sep 2019 10:57
(name . Jesse Gibbons)(address . jgibbons2357@gmail.com)
20190903105712.01aba383@scratchpost.org
Hi Jesse,

On Mon, 02 Sep 2019 20:07:53 -0600
Jesse Gibbons <jgibbons2357@gmail.com> wrote:

Toggle quote (9 lines)
> On Mon, 2019-09-02 at 22:49 +0200, Danny Milosavljevic wrote:
> > Hi,
> >
> > On Mon, 02 Sep 2019 12:52:49 -0600
> > Jesse Gibbons <jgibbons2357@gmail.com> wrote:
> >
> If the bootloader build fails, which appears necessary to generate the
> list, doesn't the system build fail?

Yes.

Toggle quote (7 lines)
> > It would be easy to get the list of supported u-boot targets from the
> > derivation. It might be that Guix Data Service would help with that
> > (see "More progress with the Guix Data Service" by Christopher
> > Baines).
> That sounds like an interesting article, but my search engine of choice
> doesn't know where it is. Would you mind providing a link please?

Toggle quote (5 lines)
> The behavior described in the manual is implemented in the make-u-boot-
> package function in gnu/packages/bootloaders.scm, in the replaced
> 'configure phase. If it could be moved from that function to a script
> (maybe guix system list-boards), that would be the best solution IMHO.

It can't because it's getting the list of supported boards from the
u-boot derivation--which is not available host side.

We could move it to guix/build/list-boards.scm but that won't help us much.

I think what I did (now) in wip-buildroot branch is a good compromise,
but it requires us to manually import buildroot configs from buildroot:

$ guix import buildroot orangepi_zero_plus2_defconfig

And then stick the resulting "bootloader" form into gnu/bootloader/u-boot.scm,
which is also where we can get the list from. (i.e. have our own "packages"
for the boards)

Toggle quote (6 lines)
> At this point, the fastest way to get the list would be "guix package
> -e '((@ (gnu packages bootloaders) make-u-boot-package) "dneboard"
> "arm-linux-gnueabihf")'" and view the end of the resulting log. I
> tested this, and it takes a minute at most. It's still needlessly
> complicated though -- the boards listed are not limited to the triplet.

I know, it's not user-friendly yet.

Toggle quote (4 lines)
> How many of these can run on fully free software? I see
> rpi{,2,3,3_32b,0_w} in the list, but last I checked, it has a blobby
> bootloader.

I don't know.

Toggle quote (3 lines)
> Where does guix get this list? Is it configured or automatically
> generated?

It's fetched from the u-boot source code, "configs" subdirectory.

In wip-buildroot, it will be fetched from buildroot https://buildroot.org/
instead, "configs" subdirectory.

(The reason is that buildroot also contains data about how to install u-boot
to the respective board, but u-boot doesn't)

So the fact that on master it's fetched from u-boot right now is an
implementation detail.
-----BEGIN PGP SIGNATURE-----

iQEzBAEBCAAdFiEEds7GsXJ0tGXALbPZ5xo1VCwwuqUFAl1uKugACgkQ5xo1VCww
uqUZZwf/aC0IW77d/itq+mG+rl9gNn2ccSHmVJseBl/QB6l1Chgn7APQQJDAvGuK
0zo/ZZLYVEgz/y0Q+Hn7GQ/8isbEgjzvGXGuRSrZW6wartHn38A24YGSNqjT3i6K
TTyL9EN8UNA21GFrgQ0Y0cT8jLTDhc3qa4q9f4zbbzWLi26009757GAblszElaFa
HyR26CZvyd+q5VxNP6zc9HCZ1BZWDM8nPi9tKWLLZROE2bt8t+3Fp3xOmNcuBVyE
gEg3Gs0S8w0hjyMzmayGXDbNIU1PPwrb0ElMF58R2wG/ZfzXtLPaTfKU9d8cEr1e
76DPpTa1XXlG7dKi7miMN7rMqFONWg==
=UJdZ
-----END PGP SIGNATURE-----


?