rpi-update: download fail,how to soulve this problem?

pi@pi-desktop:~$ sudo rpi-update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** Performing self-update
 *** Relaunching after update
 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS and Dom
 *** We're running for the first time
 *** Backing up files (this will take a few minutes)
 *** Remove old firmware backup
 *** Backing up firmware
 *** Remove old modules backup
 *** Backing up modules 4.4.38-v7+
#############################################################
This update bumps to rpi-4.9.y linux tree
Be aware there could be compatibility issues with some drivers
Discussion here:
https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=167934
##############################################################
 *** Downloading specific firmware revision (this will take a few minutes)
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   168    0   168    0     0     36      0 --:--:--  0:00:04 --:--:--    43
  5 54.1M    5 2831k    0     0   4942      0  3:11:20  0:09:46  3:01:34  6320
curl: (18) transfer closed with 53836053 bytes remaining to read

gzip: stdin: unexpected end of file
tar: Unexpected EOF in archive
tar: Unexpected EOF in archive
tar: Error is not recoverable: exiting now

download 5%,it’s downloading kernel.img,then stop

pi@pi-desktop:~$ sudo ls -alh /root/.rpi-firmware
total 4,0M
drwxr-xr-x 2 root root 4,0K Nov  9 15:22 .
drwx------ 8 root root 4,0K Nov  9 15:20 ..
-rw-rw-r-- 1 root root  16K Nov  3 21:02 bcm2708-rpi-0-w.dtb
-rw-rw-r-- 1 root root  16K Nov  3 21:02 bcm2708-rpi-b.dtb
-rw-rw-r-- 1 root root  16K Nov  3 21:02 bcm2708-rpi-b-plus.dtb
-rw-rw-r-- 1 root root  15K Nov  3 21:02 bcm2708-rpi-cm.dtb
-rw-rw-r-- 1 root root  17K Nov  3 21:02 bcm2709-rpi-2-b.dtb
-rw-rw-r-- 1 root root  18K Nov  3 21:02 bcm2710-rpi-3-b.dtb
-rw-rw-r-- 1 root root  17K Nov  3 21:02 bcm2710-rpi-cm3.dtb
-rw-rw-r-- 1 root root  50K Nov  3 21:02 bootcode.bin
-rw-rw-r-- 1 root root  19K Nov  3 21:02 COPYING.linux
-rw-rw-r-- 1 root root 2,6K Nov  3 21:02 fixup_cd.dat
-rw-rw-r-- 1 root root 6,4K Nov  3 21:02 fixup.dat
-rw-rw-r-- 1 root root 9,5K Nov  3 21:02 fixup_db.dat
-rw-rw-r-- 1 root root 9,5K Nov  3 21:02 fixup_x.dat
-rw-rw-r-- 1 root root   41 Nov  3 21:02 git_hash
-rw------- 1 root root 2,4M Nov  9 15:30 kernel.img
-rw-rw-r-- 1 root root 1,5K Nov  3 21:02 LICENCE.broadcom
-rw-rw-r-- 1 root root 714K Nov  3 21:02 Module7.symvers
-rw-rw-r-- 1 root root 720K Nov  3 21:02 Module.symvers
-rw-rw-r-- 1 root root  357 Nov  3 21:02 NOTICE.md
-rw-rw-r-- 1 root root  585 Nov  3 21:02 README.md

pi 3b Ubuntu Mate 16.04

how to soulve this problem? Network ? I am from Beijing China Thank you !

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 44 (2 by maintainers)

Most upvoted comments

@popcornmix I solved this following way curl -L https://github.com/Hexxeh/rpi-firmware/archive/master.tar.gz -o master.tar.gz cd /root/.rpi-firmware && tar -xvzf /root/master.tar.gz SKIP_DOWNLOAD=1 rpi-update

I just resolv this issue on my pi zero w it by creating file ~root/.curlrc containing the following line –keepalive-time 2

Latest rpi-update should include @d4nyll’s suggestion

You’ll have to complain to GitHub about this and/or use an API token - there’s nothing we can do.

@robrackn have you tried the keepalive suggestion in the post preceding yours?

I’ve got a RPi model B, and a fairly fast internet connection. Like others, running rpi-update was failing for me every time with curl: (18) transfer closed with .... errors

I ran the curl manually, saving to a file, and that worked without errors. It also completed quite quickly. I then un-tar’d the master.tar.gz file, which took quite a lot longer to run than the curl did. I wonder therefore if the issue is that, on some older Pis with fast connections, the curl can hang trying to push data to tar, and the connection then dies while waiting?

I’d be tempted to at least add an option / env variable to download to a temp file then unpack, which those of us affected could then easily use. Maybe even on by default for older Pi versions with spare disk space?