Hey Guys,

I've been using Fedora on Raspberry Pis for a while now and I love it. The only 
problem I consistently face is the process of reinstalling (due to broken SD, 
sudo SNAFU etc.):

1. Put SD card in secondary machine
2. DD the Fedora aarch64 image onto SD card
3. Grow partition
4. Put SD card back
5. Boot
6. Go through initial setup
7. Update all packages
8. Continue with regular config and host management

Since I've used PXE in x86_64 environments for years, I started looking into 
doing the same for the RPI. The idea is to condense the process into a single 
step:

1. Either insert (new) empty SD card or destroy the partition table on the 
active SD card and reboot

In theory this should work because by default the RPI 3 B+ boots from SD card 
first and on failure moves on to PXE which then loads the PXE components from 
TFTP and starts the kickstart process. That should give (with the proper 
kickstart instructions) a completely headless and unattended installation 
environment for RPI.

This has been done for preseeding raspbian here: 
https://github.com/debian-pi/raspbian-ua-netinst and I'd love to do this for 
Fedora as well.

I brought up my PXE environment and the RPI is reliably pulling everything from 
initial bootcode.bin all the way to U-Boot and I end up with a U-Boot shell 
prompt.
Then loading grubaa64.efi through TFTP brings me to the GRUB shell which pulls 
the vmlinuz and initrd.img devices and starts the kernel.

This is where I'm stuck. When the system is loading the stage2 install.img it 
looks like it's running out of space on the tmpfs and I'm getting a "No space 
left on device" error and kernel panic (not sure yet if they are related).

I'm not very skilled in dissecting initrd images so I'd appreciate any 
pointers. Is there a kernel or anaconda parameter to increase the tmpfs size? 
Maybe the 1G of memory is just not big enough to hold the ~470MB install.img 
AND have enough left to finish the kickstart. Would it be feasible to reduce 
install.img?

[   47.515164] usbcore: registered new interface driver lan78xx
[   49.874865] ------------[ cut here ]------------
[   49.892272] irq 79 handler irq_default_primary_handler+0x0/0x20 enabled 
interrupts
[   49.912598] WARNING: CPU: 0 PID: 0 at kernel/irq/handle.c:152 
__handle_irq_event_percpu+0x1fc/0x228
[   49.934342] Modules linked in: microchip lan78xx hid_ite snd_pcm snd_timer 
snd soundcore drm_kms_helper mmc_block syscopyarea sysfillrect sysimgblt 
fb_sys_fops drm dwc2 sdhci_iproc sdhci_pltfm crct10dif_ce udc_core sdhci 
gpio_raspberrypi_exp pwm_bcm2835 i2c_bcm2835 bcm2835 bcm2835_dma phy_generic 
sunrpc lrw dm_crypt dm_round_robin dm_multipath linear raid10 raid456 
async_raid6_recov async_memcpy async_pq async_xor async_tx xor xor_neon 
raid6_pq libcrc32c raid1 raid0 squashfs zstd_decompress cramfs be2iscsi bnx2i 
cnic uio cxgb4i cxgb4 cxgb3i cxgb3 mdio libcxgbi libcxgb qla4xxx 
iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi
[   50.057520] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.0.9-301.fc30.aarch64 
#1
[   50.078134] Hardware name: raspberrypi rpi/rpi, BIOS 2019.04 04/18/2019
[   50.098047] pstate: 60400005 (nZCv daif +PAN -UAO)
[   50.116053] pc : __handle_irq_event_percpu+0x1fc/0x228
[   50.134467] lr : __handle_irq_event_percpu+0x1fc/0x228
[   50.152808] sp : ffff000010003ce0
[   50.168935] x29: ffff000010003ce0 x28: ffff80002aa46a00
[   50.186785] x27: ffff000011184018 x26: ffff000011184018
[   50.204289] x25: ffff00001157ef60 x24: ffff000010003d6c
[   50.221399] x23: 0000000000000000 x22: 000000000000004f
[   50.238168] x21: ffff80002aa46a28 x20: 0000000000000002
[   50.254596] x19: ffff80002370d700 x18: 0000000000000000
[   50.270753] x17: 0000000000000000 x16: 0000000000000000
[   50.286512] x15: 0000000000000010 x14: 0000000000000001
[   50.301835] x13: 0000000000001280 x12: ffff000010bf0db8
[   50.316804] x11: 0000000000000000 x10: ffff800037ada0b0
[   50.331455] x9 : 00000000ffffffff x8 : 0000000000000152
[   50.346058] x7 : ffff0000176d1820 x6 : 0000000000000001
[   50.360583] x5 : 0000000000000000 x4 : 0000000000000001
[   50.374766] x3 : 0000000000000000 x2 : 0000000000000040
[   50.388589] x1 : 0000000000000004 x0 : 0000000000000046
[   50.402281] Call trace:
[   50.412701]  __handle_irq_event_percpu+0x1fc/0x228
[   50.425284]  handle_irq_event_percpu+0x28/0x70
[   50.437447]  handle_irq_event+0x50/0xa8
[   50.448636]  handle_simple_irq+0xac/0xf8
[   50.459564]  generic_handle_irq+0x34/0x50
[   50.470387]  intr_complete+0x8c/0x178 [lan78xx]
[   50.481577]  __usb_hcd_giveback_urb+0x74/0x140
[   50.492398]  usb_giveback_urb_bh+0xd0/0x150
[   50.502669]  tasklet_action_common.isra.0+0x88/0xf0
[   50.513687]  tasklet_hi_action+0x2c/0x38
[   50.523602]  __do_softirq+0x128/0x31c
[   50.533054]  irq_exit+0xc0/0xe0
[   50.541612]  __handle_domain_irq+0x70/0xc0
[   50.550842]  bcm2836_arm_irqchip_handle_irq+0x74/0xd8
[   50.560783]  el1_irq+0xe8/0x1c0
[   50.568434]  arch_cpu_idle+0x34/0x1b8
[   50.576319]  do_idle+0x1fc/0x248
[   50.583591]  cpu_startup_entry+0x2c/0x30
[   50.591483]  rest_init+0xc0/0xcc
[   50.598557]  arch_call_rest_init+0x14/0x1c
[   50.606494]  start_kernel+0x46c/0x480
[   50.614059] ---[ end trace b9c80dddae7c6c2b ]---
[   50.628673] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   54.412911] dracut-initqueue[880]: Warning: can't find installer main image 
path in .treeinfo
[   54.483584] dracut-initqueue[880]:   % Total    % Received % Xferd  Average 
Speed   Time    Time     Time  Current
[   54.484525] dracut-initqueue[880]:                                  Dload  
Upload   Total   Spent    Left  Speed
 38  482M   38  187M    0     0  38.1M      0  0:00:12  0:00:04  0:00:08 38.2M
[   59.408000] dracut-initqueue[880]: curl: (23) Failed writing body (2946 != 
5792)
[   60.172589] loop: module loaded
[   60.334211] dracut-initqueue[880]: mount: /run/initramfs/squashfs: wrong fs 
t[   60.342641] dracut: FATAL: Failed to find a root filesystem in 
/tmp/curl_fetch_url1/install.img.
ype, bad option, bad superblock on /dev/loop0, missing codepage or helpe[   
60.342703] dracut: Refusing to continue
r program, or other error.
[   60.337120] dracut-initqueue[880]: /lib/dracut-lib.sh: line 465: echo: write 
error: No space left on device
[   60.367607] dracut-initqueue[880]: /lib/dracut-lib.sh: line 466: echo: write 
error: No space left on device
[   60.425966] dracut-initqueue[880]: /lib/anaconda-lib.sh: line 151: printf: 
write error: No space left on device
_______________________________________________
arm mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]

Reply via email to