Coder Social home page Coder Social logo

rpi-update's Introduction

This repo is now deprecated

Development is continuing at https://github.com/raspberrypi/rpi-update The rpi-update script will switch automatically to the new repo.

rpi-update

A tool to get the latest bleeding-edge firmware and kernel for your Raspberry Pi.

Notes

This is only intended for use with Raspberry Pi OS. If you are using a different distribution then check with the maintainers if using rpi-update is safe.

If the distribution ships a custom kernel (e.g. BerryBoot), then it almost certainly is not safe. Also differences in the usage of /boot and /opt/vc directories will likely make it unsafe.

Even on Raspberry Pi OS you should only use this with a good reason.

This gets you the latest bleeding edge kernel/firmware. There is always the possibility of regressions.

Bug fixes and improvements will eventually make their way into new Raspberry Pi OS releases and apt-get when they are considered sufficiently well tested.

A good reason for using this would be if you like to help with the testing effort, and are happy to risk breakages and submit bug reports. These testers are welcome.

Also if you are suffering from a bug in current firmware (perhaps as one of the reporters of the bug on github or forum) and a fix has been pushed out for testing, then using rpi-update is the right way to get the fix until it makes its way into new Raspberry Pi OS images and apt-get.

Backing up before updating is always advisable.

Installing

Installing under Raspberry Pi OS

To install the tool, run the following command:

sudo apt-get install rpi-update

Installing under other OSes

To install the tool, run the following command:

sudo curl -L --output /usr/bin/rpi-update https://raw.githubusercontent.com/Hexxeh/rpi-update/master/rpi-update && sudo chmod +x /usr/bin/rpi-update

Updating

Then, to update your firmware, just run the following command:

sudo rpi-update

Activating

After the firmware has been sucessfully updated, you'll need to reboot to load the new firmware.

Options

If you'd like to set a different GPU/ARM memory split, then define gpu_mem in /boot/config.txt.

To upgrade/downgrade to a specific firmware revision, specify its Git hash (from the https://github.com/Hexxeh/rpi-firmware repository) as follows:

sudo rpi-update fab7796df0cf29f9563b507a59ce5b17d93e0390

Expert options

There are a number of options for experts you might like to use. These are all environment variables you must set if you wish to use them.

UPDATE_SELF

By default, rpi-update will attempt to update itself each time it is run. You can disable this behavior by:

sudo UPDATE_SELF=0 rpi-update

SKIP_KERNEL

sudo SKIP_KERNEL=1 rpi-update

Will update everything except the kernel.img files and the kernel modules. Use with caution, some firmware updates might depend on a kernel update.

SKIP_BACKUP

sudo SKIP_BACKUP=1 rpi-update

Avoids making backup of /boot and /lib/modules on first run.

SKIP_REPODELETE

sudo SKIP_REPODELETE=1 rpi-update

By default the downloaded files (/root/.rpi-firmware) are deleted at end of update. Use this option to keep the files.

SKIP_VCLIBS

sudo SKIP_VCLIBS=1 rpi-update

Will update everything except the VideoCore libraries. Use this option to keep the existing VideoCore libraries if you do not want your local versions overwritten.

ROOT_PATH and BOOT_PATH

sudo ROOT_PATH=/media/root BOOT_PATH=/media/boot rpi-update

Allows you to perform an "offline" update, ie update firmware on an SD card you are not currently booted from. Useful for installing firmware/kernel to a non-RPI customised image. Be careful, you must specify both options or neither. Specifying only one will not work.

FW_SUBDIR

sudo FW_SUBDIR=safe rpi-update

Allows the firmware to be installed to a subdirectory of /boot. This feature is intended to support the os_prefix setting that can be used in config.txt. By default, FW_SUBDIR is initialised to the value of os_prefix in effect when the device was booted, so as to overwrite the "running" firmware. To explicitly install with no subdirectory (to install into /boot), use FW_SUBDIR=/.

BRANCH

By default, clones the firmware files from the master branch, else uses the files from the specified branch, eg:

sudo BRANCH=next rpi-update

will use the 'next' branch.

PRUNE_MODULES

Allows you to delete unused module directories when doing an update. Set it equal to a non-zero value and it will remove all modules except the latest installed:

sudo PRUNE_MODULES=1 rpi-update

will remove previously installed module files. Use this option to free disk space used by older module updates.

JUST_CHECK

To just get a list of commits contained in rpi-update since you last updated, run:

sudo JUST_CHECK=1 rpi-update

This won't update your firmware

GITHUB_API_TOKEN

By default, rpi-update will not use a custom GitHub API token. If you run into rate limiting issues, you can supply an API token on the command line:

sudo GITHUB_API_TOKEN=<your API token> rpi-update

RPI_REBOOT

To reboot after successfully update, run:

sudo RPI_REBOOT=1 rpi-update

You can use it to automate updates.

Troubleshooting

There are two possible problems related to SSL certificates that may prevent this tool from working.

  • The time may be set incorrectly on your Raspberry Pi, which you can fix by setting the time using NTP.

    sudo apt-get install ntpdate
    sudo ntpdate -u ntp.ubuntu.com
    
  • The other possible issue is that you might not have the ca-certificates package installed, and so GitHub's SSL certificate isn't trusted. If you are on Debian, you can resolve this by typing:

    sudo apt-get install ca-certificates
    

Pi-hole and similar DNS based may stop this tool from working. Make sure github.com domains are not blocked. (e.g. codeload.github.com)

rpi-update's People

Contributors

adammw avatar adarnon avatar bengt avatar ciminop avatar d4nyll avatar fastcat avatar ghollingworth avatar grigorig avatar grmpcerber avatar hexxeh avatar jackdanger avatar kcl-lescalan avatar lacop avatar leucos avatar lurch avatar maxnet avatar nonflammable avatar noozabooz avatar notro avatar nylen avatar palfrey avatar pelwell avatar popcornmix avatar puck avatar rm-hull avatar samnazarko avatar satmandu avatar vincent-c avatar vszakats avatar xecdesign avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rpi-update's Issues

error: The following untracked working tree files would be overwritten by merge

Hi there,

I was updating my raspbian when I experienced power blackout.
When the power came back, I tried running rpi-update but I keep getting this error. Can you help me?

Performing self-update
Using ARM/GPU memory split of 224MB/32MB
Updating firmware (this will take a few minutes)
error: Your local changes to the following files would be overwritten by merge:
    arm128_start.elf
    arm192_start.elf
    arm224_start.elf
    arm240_start.elf
    kernel.img
    kernel_cutdown.img
    kernel_emergency.img
    loader.bin
    modules/3.2.27+/kernel/arch/arm/oprofile/oprofile.ko
    modules/3.2.27+/kernel/crypto/aes_generic.ko
    modules/3.2.27+/kernel/crypto/arc4.ko
    modules/3.2.27+/kernel/crypto/async_tx/async_memcpy.ko
    modules/3.2.27+/kernel/crypto/async_tx/async_pq.ko
    modules/3.2.27+/kernel/crypto/async_tx/async_raid6_recov.ko
    modules/3.2.27+/kernel/crypto/async_tx/async_tx.ko
    modules/3.2.27+/kernel/crypto/async_tx/async_xor.ko
    modules/3.2.27+/kernel/crypto/authenc.ko
    modules/3.2.27+/kernel/crypto/authencesn.ko
    modules/3.2.27+/kernel/crypto/cast5.ko
    modules/3.2.27+/kernel/crypto/deflate.ko
    modules/3.2.27+/kernel/crypto/ecb.ko
    modules/3.2.27+/kernel/crypto/gf128mul.ko
    modules/3.2.27+/kernel/crypto/md4.ko
    modules/3.2.27+/kernel/crypto/michael_mic.ko
    modules/3.2.27+/kernel/crypto/seqiv.ko
    modules/3.2.27+/kernel/crypto/sha256_generic.ko
    modules/3.2.27+/kernel/crypto/sha512_generic.ko
    modules/3.2.27+/kernel/crypto/tgr192.ko
    modules/3.2.27+/kernel/crypto/wp512.ko
    modules/3.2.27+/kernel/crypto/xcbc.ko
    modules/3.2.27+/kernel/crypto/xor.ko
    modules/3.2.27+/kernel/crypto/xts.ko
    modules/3.2.27+/kernel/drivers/block/cryptoloop.ko
    modules/3.2.27+/kernel/drivers/block/nbd.ko
    modules/3.2.27+/kernel/drivers/block/pktcdvd.ko
    modules/3.2.27+/kernel/drivers/bluetooth/ath3k.ko
    modules/3.2.27+/kernel/drivers/bluetooth/bcm203x.ko
    modules/3.2.27+/kernel/drivers/bluetooth/bfusb.ko
    modules/3.2.27+/kernel/drivers/bluetooth/bpa10x.ko
    modules/3.2.27+/kernel/drivers/bluetooth/btmrvl.ko
    modules/3.2.27+/kernel/drivers/bluetooth/btmrvl_sdio.ko
    modules/3.2.27+/kernel/drivers/bluetooth/btusb.ko
    modules/3.2.27+/kernel/drivers/bluetooth/hci_vhci.ko
    modules/3.2.27+/kernel/drivers/cdrom/cdrom.ko
    modules/3.2.27+/kernel/drivers/connector/cn.ko
    modules/3.2.27+/kernel/drivers/hid/hid-a4tech.ko
    modules/3.2.27+/kernel/drivers/hid/hid-apple.ko
    modules/3.2.27+/kernel/drivers/hid/hid-axff.ko
    modules/3.2.27+/kernel/drivers/hid/hid-belkin.ko
    modules/3.2.27+/kernel/drivers/hid/hid-cherry.ko
    modules/3.2.27+/kernel/drivers/hid/hid-chicony.ko
    modules/3.2.27+/kernel/drivers/hid/hid-cypress.ko
    modules/3.2.27+/kernel/drivers/hid/hid-dr.ko
    modules/3.2.27+/kernel/drivers/hid/hid-elecom.ko
    modules/3.2.27+/kernel/drivers/hid/hid-emsff.ko
    modules/3.2.27+/kernel/drivers/hid/hid-ezkey.ko
    modules/3.2.27+/kernel/drivers/hid/hid-gaff.ko
    modules/3.2.27+/kernel/drivers/hid/hid-gyration.ko
    modules/3.2.27+/kernel/drivers/hid/hid-holtekff.ko
    modules/3.2.27+/kernel/drivers/hid/hid-kensington.ko
    modules/3.2.27+/kernel/drivers/hid/hid-keytouch.ko
    modules/3.2.27+/kernel/drivers/hid/hid-kye.ko
    modules/3.2.27+/kernel/drivers/hid/hid-lcpower.ko
    modules/3.2.27+/kernel/drivers/hid/hid-logitech-dj.ko
    modules/3.2.27+/kernel/drivers/hid/hid-logitech.ko
    modules/3.2.27+/kernel/drivers/hid/hid-magicmouse.ko
    modules/3.2.27+/kernel/drivers/hid/hid-microsoft.ko
    modules/3.2.27+/kernel/drivers/hid/hid-monterey.ko
    modules/3.2.27+/kernel/drivers/hid/hid-multitouch.ko
    modules/3.2.27+/kernel/drivers/hid/hid-ntrig.ko
    modules/3.2.27+/kernel/drivers/hid/hid-ortek.ko
    modules/3.2.27+/kernel/drivers/hid/hid-petalynx.ko
    modules/3.2.27+/kernel/drivers/hid/hid-picolcd.ko
    modules/3.2.27+/kernel/drivers/hid/hid-pl.ko
    modules/3.2.27+/kernel/drivers/hid/hid-quanta.ko
    modules/3.2.27+/kernel/drivers/hid/hid-roccat-common.ko
    modules/3.2.27+/kernel/drivers/hid/hid-roccat.ko
    modules/3.2.27+/kernel/drivers/hid/hid-samsung.ko
    modules/3.2.27+/kernel/drivers/hid/hid-sjoy.ko
    modules/3.2.27+/kernel/drivers/hid/hid-sony.ko
    modules/3.2.27+/kernel/drivers/hid/hid-speedlink.ko
    modules/3.2.27+/kernel/drivers/hid/hid-sunplus.ko
    modules/3.2.27+/kernel/drivers/hid/hid-tmff.ko
    modules/3.2.27+/kernel/drivers/hid/hid-topseed.ko
    modules/3.2.27+/kernel/drivers/hid/hid-twinhan.ko
    modules/3.2.27+/kernel/drivers/hid/hid-uclogic.ko
    modules/3.2.27+/kernel/drivers/hid/hid-wacom.ko
    modules/3.2.27+/
error: The following untracked working tree files would be overwritten by merge:
    modules/3.2.27+/kernel/drivers/rtc/rtc-ds1307.ko
Please move or remove them before you can merge.
Aborting

/opt/vc/sbin/vcfiled: error while loading shared libraries: libvchiq_arm.so: cannot open shared object file: No such file or directory

Hey, not sure what this means, but on my update (the Debian image from April) run I got the error message above. Here's the full log:

root@raspberrypi:/opt/rpi-update# ./rpi-update 
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 192MB/64MB
We're running for the first time
Setting up firmware (this will take a few minutes)
Using SoftFP libraries
/opt/vc/sbin/vcfiled: error while loading shared libraries: libvchiq_arm.so: cannot open shared object file: No such file or directory
If no errors appeared, your firmware was successfully setup
A reboot is needed to activate the new firmware

After reboot however, the update tool now says the firmware is already up to date, so I was just wondering what this error meant?

Thanks for the effort of building and maintaining this!

fatal: http://github.com/Hexxeh/rpi-firmware/rpi-firmware.git/info/refs not found

Hi,

I just downloaded this script in the last hour or so.

When I run it it fails with this output:

root@raspberrypi:/home# rpi-update
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 224MB/32MB
We're running for the first time
Setting up firmware (this will take a few minutes)
fatal: http://github.com/Hexxeh/rpi-firmware/rpi-firmware.git/info/refs not found: did you run git update-server-info on the server?

hello_triangle failed after update

after executing your script on a clean debian6-19-04-2012.zip installation (just installed "git-core" before to install all certificates for the script), the program /opt/vc/src/hello_pi/hello_triangle doesn't work anymore.
hello_triangle.bin: triangle.c:167: init_ogl: Assertion `state->surface != ((EGLSurface)0)' failed.

start.elf doesn't exist

"
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
/boot/start.elf doesn't exist.
"

This comes when installing firmware to new system.

Error when running on Arch Linux ARM

Hi! When I'm running rpi-update on Arch Linux ARM, I get the following error:

[root@alarmpi log]# rpi-update 224
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Using ARM/GPU memory split of 224MB/32MB
Updating firmware (this will take a few minutes)
ERROR: could not open directory //usr/lib/modules/3.1.9+: No such file or directory
FATAL: could not search modules: No such file or directory

uname -a
Linux alarmpi 3.1.9+ #242 PREEMPT Wed Aug 1 19:47:22 BST 2012 armv6l GNU/Linux

ls /usr/lib/modules:
3.1.9-33-ARCH+ extramodules-3.1.9--raspberrypi

ls /lib/modules:
3.1.9+ 3.1.9-10+

I've seen a similar report in raspberry pi forum. Here's the link:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=53&t=13299
But I can't just use "pacman -S raspberrypi-firmware" because it's not the latest version. And I need the latest version to fix an HDMI issue.

Any idea? Thanks in advance.

Raspberry Pi doesn't boot anymore after update

Hi,

I just updated as described.
I issued a reboot command, and now it looks like the raspberry issn't booting anymore correctyl.
Any help what to do?

root@raspberrypi:/home/pi# rpi-update
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 192MB/64MB
We're running for the first time
Setting up firmware (this will take a few minutes)
Using HardFP libraries
If no errors appeared, your firmware was successfully setup
A reboot is needed to activate the new firmware
root@raspberrypi:/home/pi# reboot

Broadcast message from root@raspberrypi (pts/0) (Sat Oct 20 13:22:18 2012):
The system is going down for reboot NOW!

Readme tweaks for sudo

could you rephrase this and the other commands with sudo as:
sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

sudo rpi-update

sudo rpi-update 192

sudo SKIP_KERNEL=1 rpi-update

sudo ROOT_PATH=/media/root BOOT_PATH=/media/boot rpi-update

new users get blocked when running the first line with only a sudo before wget as the instructions say "run as root", while expert users, running as root, will know what to do anyway

Version information

Would it be possible to show version information (maybe created by raspberry-pi firmware team) of existing a new versions before preceding? This would help to ensure that fixes from the other project are in a particular update.

Where do you find the current Firmware version listed?

I have rpi-update running no issue there, but where do you find the list or location that says specifically what firmware version is current and maybe a change log?

For example:
sudo /opt/vc/bin/vcgencmd version

Oct 5 2012 23:28:10
Copyright (c) 2012 Broadcom
version 342141 (release)

But how do I know that is the latest? I try it on another Pi and I get:

Sep 25 2012 00:18:40
Copyright (c) 2012 Broadcom
version 339137 (release)

Running rpi-update does not bring it to 342141 after reboot. I have tried removing the .rpi-firmware dir as well.

Thanks.

git fetch-pack error

*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
*** ARM/GPU split is now defined in /boot/config.txt using the gpu_mem option!
*** Updating firmware (this may take a few minutes)
fatal: git fetch-pack: expected shallow list
fatal: The remote end hung up unexpectedly

rpi-update not compatible with bootc's (bootc.net) wheezy minimal image

The wheezy minimal image from bootc at bootc.net has the boot partition mounted at /mnt/boot instead of /boot. I tried to pass the BOOT_PATH as a variable to the script doing: ROOT_PATH=/ BOOT_PATH=/mnt/boot rpi-update, but it still says that I have to specify both boot and root paths, even though I'm doing so.
I commented out the part of the script where it checks if the variables are different than / and /boot (root and boot), and I'm passing and UPDATE=0, so it doesn't overrides my changes. That's working for now, but it would be good if you can consider this in your program.

rpi-update problem

I'm getting this message if I'm trying to update:

"Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 240MB/16MB
Updating firmware (this will take a few minutes)
error: failed to read delta base object 478251a205c0625b9510e394c552ed916f34f934 at offset 7421254 from //root/.rpi-firmware/.git/objects/pack/pack-804a810fdc8b7b9d27a70e669b82e53859f8a0dd.pack
error: failed to read object f25e50b038da11bc9ba7c5862c84320f939c23f3 at offset 17330664 from //root/.rpi-firmware/.git/objects/pack/pack-804a810fdc8b7b9d27a70e669b82e53859f8a0dd.pack
fatal: packed object f25e50b038da11bc9ba7c5862c84320f939c23f3 (stored in //root/.rpi-firmware/.git/objects/pack/pack-804a810fdc8b7b9d27a70e669b82e53859f8a0dd.pack) is corrupt
fatal: index-pack failed"

What's wrong?
Thanks.

after update

I got this error after update Raspberry Pi

MJPG Streamer Version: svn rev: Unversioned directory
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 320 x 240
i: Frames Per Second.: 30
i: Format............: MJPEG
Adding control for Pan (relative)
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Adding control for Tilt (relative)
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Adding control for Pan Reset
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Adding control for Tilt Reset
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Adding control for Pan/tilt Reset
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
Adding control for Focus (absolute)
UVCIOC_CTRL_ADD - Error: Inappropriate ioctl for device
mapping control for Pan (relative)
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Tilt (relative)
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Pan Reset
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Tilt Reset
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Pan/tilt Reset
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Focus (absolute)
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for LED1 Mode
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for LED1 Frequency
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Disable video processing
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
mapping control for Raw bits per pixel
UVCIOC_CTRL_MAP - Error: Inappropriate ioctl for device
o: www-folder-path...: ./www/
o: HTTP TCP port.....: 8081
o: username:password.: disabled
o: commands..........: disabled

Kernel log

Jan 22 02:41:06 localhost kernel: [ 48.482369] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 02:43:25 localhost kernel: [ 187.856301] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 02:45:45 localhost kernel: [ 327.609291] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 02:46:13 localhost kernel: [ 355.135032] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 02:49:32 localhost kernel: [ 554.531625] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 03:08:02 localhost kernel: [ 1664.113372] uvcvideo: Non-zero status (-5) in video completion handler.
Jan 22 03:08:30 localhost kernel: [ 1692.565968] uvcvideo: Non-zero status (-5) in video completion handler.

I follow this website. It work perfectly before I using this rpi-update
http://wolfpaulus.com/journal/embedded/raspberrypi_webcam

Then webcam will not work.
Now, I can only see the white streamer.

Error under firmware update

root@raspberrypi:/home/oliver# rpi-update
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 192MB/64MB
We're running for the first time
Setting up firmware (this will take a few minutes)
Using SoftFP libraries
/opt/vc/sbin/vcfiled: error while loading shared libraries: libvchiq_arm.so: cannot open shared object file: No such file or directory
If no errors appeared, your firmware was successfully setup
A reboot is needed to activate the new firmware

Modify installation instruction to confirm to FHS

On most Linux distributions, it is adviced to place tools that are not installed using the package manager in /usr/local. Because rpi-update is only usefull as root user, I would advice modifying the installation instruction to install into /usr/local/sbin/ instead of /usr/bin/.

Always do a fresh clone / download

Because of the preponderance of binary files, it appears that there is no advantage to trying to do an "incremental" update, it just wastes time in the case of a merge conflict:

 *** Updating firmware (this may take a few minutes)
remote: Counting objects: 1658, done.
remote: Compressing objects: 100% (1329/1329), done.
remote: Total 1658 (delta 283), reused 1295 (delta 214)
Receiving objects: 100% (1658/1658), 28.73 MiB | 847 KiB/s, done.
Resolving deltas: 100% (283/283), done.
...
Automatic merge failed; fix conflicts and then commit the result.
 !!! Failed to merge updated firmware files, trying a fresh checkout
 *** Setting up firmware (this may take a few minutes)
Cloning into '//root/.rpi-firmware'...
remote: Counting objects: 1658, done.
remote: Compressing objects: 100% (1329/1329), done.
remote: Total 1658 (delta 283), reused 1295 (delta 214)
Receiving objects: 100% (1658/1658), 28.73 MiB | 1.23 MiB/s, done.
Resolving deltas: 100% (283/283), done.
Checking out files: 100% (1416/1416), done.

Download size is exactly the same in each case. That then begs the question, why use git for the download at all? I hate to say it, but I think git just isn't the right tool for doing binary deltas of "big" files like these, esp. when you don't care about history. Among source control systems, SVN I think would perform better at this task, and among general tools rsync even better.

That said ...

You can use git ls-remote to check the available version on the server without having to download it (does github provide an http url that does the same?), and the existing tarball download logic to fetch a new version if necessary. The tarball download is as close as makes no difference the same size as the git download, and if you want to reduce the space usage on the pi, you can pipe it to tar instead of saving it to a temp file first.

Second update clones entire firmware history

The first run of rpi-update does a git shallow clone, which is nice & appropriate.

However, the second run does a "normal" fetch, which pulls in the entire history, which is hundreds of MB and takes quite a long time, both for github to prepare and to transmit across the network.

Using git fetch --depth=1 pulls in more than would be downloaded if a fresh shallow clone was done, but vastly less than a full fetch does.

Given that even a shallow fetch downloads about double what a fresh shallow clone does (for only a handful or commits needing to be fetched), it seems like always doing a fresh shallow clone would be more efficient.

ERROR: failed to load symbols from...

root raspberrypi ~ # rpi-update 
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
ARM/GPU split is now defined in /boot/config.txt using the gpu_mem option!
We're running for the first time
Setting up firmware (this will take a few minutes)
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/misc/eeprom/eeprom_93cx6.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/hamradio/mkiss.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/hamradio/6pack.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/hamradio/yam.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/bonding/bonding.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/irda/irda-usb.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/net/irda/irtty-sir.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/videodev.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/wm8775.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/videobuf-vmalloc.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/videobuf2-core.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/videobuf2-memops.ko: Exec format error
ERROR: failed to load symbols from //lib/modules/3.2.27+/kernel/drivers/media/video/videobuf2-vmalloc.ko: Exec format error
Using HardFP libraries
If no errors appeared, your firmware was successfully setup
A reboot is needed to activate the new firmware

What does it mean? Is it safe to reboot?

Kernel headers?

Hi!
When the kernel gets updated via rpi-update, what's with the kernel headers?
Building some programs like VDR expect the kernel headers installed.
In the raspbian installation, I end up with a 3.6 kernel and the raspbian
installation of the 3.2 headers.

do_backup broken

function do_backup {
echo " *** Backing up files"
rm -rf "${FW_PATH}.bak"
cp -va "${FW_PATH}" "${FW_PATH}.bak"
rm -rf "${FW_MODPATH}.bak"
cp -va "${FW_MODPATH}" "" # <=============
}

you can't copy to null string

error on merge

Hi!

I am running a rpi raspian wheezy with a 3.2.27+ Kernel.
On starting the rpi-update I received following errors:

*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
*** Performing self-update
--2013-01-08 13:05:50-- https://github.com/Hexxeh/rpi-update/raw/master/rpi-update
Resolving github.com (github.com)... 207.97.227.239
Connecting to github.com (github.com)|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.github.com/Hexxeh/rpi-update/master/rpi-update [following]
--2013-01-08 13:05:57-- https://raw.github.com/Hexxeh/rpi-update/master/rpi-update
Resolving raw.github.com (raw.github.com)... 207.97.227.243
Connecting to raw.github.com (raw.github.com)|207.97.227.243|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 6525 (6.4K) [text/plain]
Saving to: `/usr/bin/rpi-update.tmp'

100%[======================================================================================================================================================================>] 6,525 --.-K/s in 0s

2013-01-08 13:06:06 (13.2 MB/s) - `/usr/bin/rpi-update.tmp' saved [6525/6525]

*** Relaunching after update
*** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
*** ARM/GPU split is now defined in /boot/config.txt using the gpu_mem option!
*** Updating firmware (this may take a few minutes)
remote: Total 0 (delta 0), reused 0 (delta 0)
HEAD is now at f709f0e Recreate opt/vc files from userland tree
warning: Cannot merge binary files: vc/softfp/opt/vc/sbin/vcfiled (HEAD vs. origin/master)

warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libvmcs_rpc_client.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libvcos.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libvchostif.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libvchiq_arm.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libvcfiled_check.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libopenmaxil.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libmmal_vc_client.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libmmal.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libkhrn_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libkhrn_client.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libdebug_sym.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libbcm_host.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libWFC.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libGLESv2_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libGLESv2.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libGLESv1_CM.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libEGL_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/lib/libEGL.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/bin/vchiq_test (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/bin/vcgencmd (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/bin/vcdbg (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/bin/tvservice (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/softfp/opt/vc/bin/edidparser (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/sbin/vcfiled (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libvmcs_rpc_client.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libvcos.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libvchostif.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libvchiq_arm.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libvcfiled_check.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libopenmaxil.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libmmal_vc_client.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libmmal.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libkhrn_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libkhrn_client.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libdebug_sym.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libbcm_host.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libWFC.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libGLESv2_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libGLESv2.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libGLESv1_CM.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libEGL_static.a (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/lib/libEGL.so (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/bin/vchiq_test (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/bin/vcgencmd (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/bin/vcdbg (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/bin/tvservice (HEAD vs. origin/master)
warning: Cannot merge binary files: vc/hardfp/opt/vc/bin/edidparser (HEAD vs. origin/master)
warning: Cannot merge binary files: start_cd.elf (HEAD vs. origin/master)
warning: Cannot merge binary files: start.elf (HEAD vs. origin/master)
warning: Cannot merge binary files: kernel_emergency.img (HEAD vs. origin/master)
warning: Cannot merge binary files: kernel.img (HEAD vs. origin/master)
warning: Cannot merge binary files: fixup_cd.dat (HEAD vs. origin/master)
warning: Cannot merge binary files: fixup.dat (HEAD vs. origin/master)
warning: Cannot merge binary files: bootcode.bin (HEAD vs. origin/master)

Auto-merging vc/softfp/opt/vc/sbin/vcfiled
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/sbin/vcfiled
Auto-merging vc/softfp/opt/vc/lib/libvmcs_rpc_client.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libvmcs_rpc_client.a
Auto-merging vc/softfp/opt/vc/lib/libvcos.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libvcos.so
Auto-merging vc/softfp/opt/vc/lib/libvchostif.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libvchostif.a
Auto-merging vc/softfp/opt/vc/lib/libvchiq_arm.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libvchiq_arm.so
Auto-merging vc/softfp/opt/vc/lib/libvcfiled_check.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libvcfiled_check.a
Auto-merging vc/softfp/opt/vc/lib/libopenmaxil.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libopenmaxil.so
Auto-merging vc/softfp/opt/vc/lib/libmmal_vc_client.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libmmal_vc_client.so
Auto-merging vc/softfp/opt/vc/lib/libmmal.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libmmal.so
Auto-merging vc/softfp/opt/vc/lib/libkhrn_static.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libkhrn_static.a
Auto-merging vc/softfp/opt/vc/lib/libkhrn_client.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libkhrn_client.a
Auto-merging vc/softfp/opt/vc/lib/libdebug_sym.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libdebug_sym.so
Auto-merging vc/softfp/opt/vc/lib/libbcm_host.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libbcm_host.so
Auto-merging vc/softfp/opt/vc/lib/libWFC.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libWFC.so
Auto-merging vc/softfp/opt/vc/lib/libGLESv2_static.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libGLESv2_static.a
Auto-merging vc/softfp/opt/vc/lib/libGLESv2.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libGLESv2.so
Auto-merging vc/softfp/opt/vc/lib/libGLESv1_CM.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libGLESv1_CM.so
Auto-merging vc/softfp/opt/vc/lib/libEGL_static.a
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libEGL_static.a
Auto-merging vc/softfp/opt/vc/lib/libEGL.so
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/lib/libEGL.so
Auto-merging vc/softfp/opt/vc/bin/vchiq_test
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/bin/vchiq_test
Auto-merging vc/softfp/opt/vc/bin/vcgencmd
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/bin/vcgencmd
Auto-merging vc/softfp/opt/vc/bin/vcdbg
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/bin/vcdbg
Auto-merging vc/softfp/opt/vc/bin/tvservice
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/bin/tvservice
Auto-merging vc/softfp/opt/vc/bin/edidparser
CONFLICT (add/add): Merge conflict in vc/softfp/opt/vc/bin/edidparser
Auto-merging vc/sdk/opt/vc/include/vcinclude/vcore.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/vcinclude/vcore.h
Auto-merging vc/sdk/opt/vc/include/vcinclude/common.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/vcinclude/common.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vcilcs_common.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vcilcs_common.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vcilcs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vcilcs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vcgencmd.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vcgencmd.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vcfilesys_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vcfilesys_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_vchi_audioserv_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_tvservice_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_tvservice_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_tvservice.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_tvservice.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_sdtv.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_sdtv.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_ilcs_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_ilcs_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_hostreq_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_hostreq_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_hdmi_property.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_hdmi_property.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_hdmi.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_hdmi.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_fileservice_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_fileservice_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispservice_x_defs.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispservice_x_defs.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispmanx_types.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispmanx_types.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispmanx.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_dispmanx.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/vc_cecservice.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/vc_cecservice.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Video.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Video.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Index.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Index.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Image.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Image.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_IVCommon.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_IVCommon.h
Auto-merging vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vmcs_host/khronos/IL/OMX_Broadcom.h
Auto-merging vc/sdk/opt/vc/include/interface/vctypes/vc_image_types.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vctypes/vc_image_types.h
Auto-merging vc/sdk/opt/vc/include/interface/vctypes/vc_display_types.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vctypes/vc_display_types.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_types.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_types.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_tls.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_tls.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_reentrant_mutex.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_reentrant_mutex.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_quickslow_mutex.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_quickslow_mutex.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_queue.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_queue.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_named_semaphore.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_named_semaphore.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_mempool.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_mempool.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_legacy_isr.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_legacy_isr.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_isr.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_isr.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_blockpool.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_blockpool.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/vcos_assert.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/vcos_assert.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_platform_types.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_platform_types.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_platform.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_platform.h
Auto-merging vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_futex_mutex.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vcos/pthreads/vcos_futex_mutex.h
Auto-merging vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_util.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_util.h
Auto-merging vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_test.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_test.h
Auto-merging vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_ioctl.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_ioctl.h
Auto-merging vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_if.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_if.h
Auto-merging vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_cfg.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchiq_arm/vchiq_cfg.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/vchi_common.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/vchi_common.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/vchi_cfg_internal.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/vchi_cfg_internal.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/vchi_cfg.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/vchi_cfg.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/vchi.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/vchi.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/message_drivers/message.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/message_drivers/message.h
Auto-merging vc/sdk/opt/vc/include/interface/vchi/connections/connection.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/interface/vchi/connections/connection.h
Auto-merging vc/sdk/opt/vc/include/IL/OMX_Video.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/IL/OMX_Video.h
Auto-merging vc/sdk/opt/vc/include/IL/OMX_Index.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/IL/OMX_Index.h
Auto-merging vc/sdk/opt/vc/include/IL/OMX_Image.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/IL/OMX_Image.h
Auto-merging vc/sdk/opt/vc/include/IL/OMX_IVCommon.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/IL/OMX_IVCommon.h
Auto-merging vc/sdk/opt/vc/include/IL/OMX_Broadcom.h
CONFLICT (add/add): Merge conflict in vc/sdk/opt/vc/include/IL/OMX_Broadcom.h
Auto-merging vc/hardfp/opt/vc/sbin/vcfiled
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/sbin/vcfiled
Auto-merging vc/hardfp/opt/vc/lib/libvmcs_rpc_client.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libvmcs_rpc_client.a
Auto-merging vc/hardfp/opt/vc/lib/libvcos.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libvcos.so
Auto-merging vc/hardfp/opt/vc/lib/libvchostif.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libvchostif.a
Auto-merging vc/hardfp/opt/vc/lib/libvchiq_arm.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libvchiq_arm.so
Auto-merging vc/hardfp/opt/vc/lib/libvcfiled_check.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libvcfiled_check.a
Auto-merging vc/hardfp/opt/vc/lib/libopenmaxil.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libopenmaxil.so
Auto-merging vc/hardfp/opt/vc/lib/libmmal_vc_client.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libmmal_vc_client.so
Auto-merging vc/hardfp/opt/vc/lib/libmmal.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libmmal.so
Auto-merging vc/hardfp/opt/vc/lib/libkhrn_static.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libkhrn_static.a
Auto-merging vc/hardfp/opt/vc/lib/libkhrn_client.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libkhrn_client.a
Auto-merging vc/hardfp/opt/vc/lib/libdebug_sym.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libdebug_sym.so
Auto-merging vc/hardfp/opt/vc/lib/libbcm_host.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libbcm_host.so
Auto-merging vc/hardfp/opt/vc/lib/libWFC.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libWFC.so
Auto-merging vc/hardfp/opt/vc/lib/libGLESv2_static.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libGLESv2_static.a
Auto-merging vc/hardfp/opt/vc/lib/libGLESv2.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libGLESv2.so
Auto-merging vc/hardfp/opt/vc/lib/libGLESv1_CM.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libGLESv1_CM.so
Auto-merging vc/hardfp/opt/vc/lib/libEGL_static.a
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libEGL_static.a
Auto-merging vc/hardfp/opt/vc/lib/libEGL.so
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/lib/libEGL.so
Auto-merging vc/hardfp/opt/vc/bin/vchiq_test
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/bin/vchiq_test
Auto-merging vc/hardfp/opt/vc/bin/vcgencmd
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/bin/vcgencmd
Auto-merging vc/hardfp/opt/vc/bin/vcdbg
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/bin/vcdbg
Auto-merging vc/hardfp/opt/vc/bin/tvservice
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/bin/tvservice
Auto-merging vc/hardfp/opt/vc/bin/edidparser
CONFLICT (add/add): Merge conflict in vc/hardfp/opt/vc/bin/edidparser
Auto-merging start_cd.elf
CONFLICT (add/add): Merge conflict in start_cd.elf
Auto-merging start.elf
CONFLICT (add/add): Merge conflict in start.elf
Auto-merging kernel_emergency.img
CONFLICT (add/add): Merge conflict in kernel_emergency.img
Auto-merging kernel.img
CONFLICT (add/add): Merge conflict in kernel.img
Auto-merging fixup_cd.dat
CONFLICT (add/add): Merge conflict in fixup_cd.dat
Auto-merging fixup.dat
CONFLICT (add/add): Merge conflict in fixup.dat
Auto-merging bootcode.bin
CONFLICT (add/add): Merge conflict in bootcode.bin
Automatic merge failed; fix conflicts and then commit the result.

What am I doning wrong?

Thank's!

Flobewan

Missing ending " line 27

[ "$RPI_UPDATE_UNSUPPORTED" -eq 0 ] && echo -e "You appear to be trying to update firmware on an incompatible distribution. To force update, run\nRPI_UPDATE_UNSUPPORTED=1 sudo ./rpi-update; exit 1

should be
[ "$RPI_UPDATE_UNSUPPORTED" -eq 0 ] && echo -e "You appear to be trying to update firmware on an incompatible distribution. To force update, run\nRPI_UPDATE_UNSUPPORTED=1 sudo ./rpi-update; exit 1"

or it causes syntax errors

[ArchLinux] ca-certificates problem "Make sure you have ca-certificates installed and that the time is set correctly"

While trying to sue rpi-update for the first time I also had this problem.
I did had ca-certificates installed and the date was right, but found a solution.

At least in archlinux (it might work in debian too), if you get this error and your date are ok, and have ca-certificates installed, do with root privileges:
[code] update-ca-certificates --fresh[/code]

When you have time had this to the readme Hexxeh.

Tks for your work:)

best regards

vchiq_lib: Very incompatible VCHIQ library - cannot retrieve driver version

Running 'rpi-update' on a recently shipped (6/6/12) Raspberry Pi using the standard 4/19/12 RPI Debain Squeeze image results in the following error:

2282281000: vchiq_lib: Very incompatible VCHIQ library - cannot retrieve driver version

The rpi-update run then completes, and the RPi seems to boot and function correctly. I have not verified whether or not the firmware was actually updated, but it appears to have been given that the time stamps for the files in the /boot directory were updated.

Prior to running 'rpi-update', I ran 'apt-get update; apt-get upgrade' in order to update the OS to the latest version of all packages. I also had to run 'ldconfig' prior to running 'rpi-update' to fix the issue discussed here: #7.

It seems this may be related to the very similar issue discussed in basn's Jun 05, 2012 5:59pm post here: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=5037&p=92585.

Very incompatible VCHIQ library

Hi I ran into the same issues other people had, where I had to ldconfig and rm /boot/.firmware_revision.

But after that, I get a new error, that has not been reported before:

3438160806: vchiq_lib: Very incompatible VCHIQ library - cannot retrieve driver version

What should I do?

Broken on Gentoo

I've been trying to run rpi-update on a Gentoo system. I get the following error:

rpi / # rpi-update 240
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Using ARM/GPU memory split of 240MB/16MB
Updating firmware (this will take a few minutes)
Using HardFP libraries
../sysdeps/unix/sysv/linux/getpagesize.c:32: __getpagesize: Assertion `_rtld_global_ro._dl_pagesize != 0' failed.
/usr/bin/rpi-update: line 112: 1947 Aborted git --git-dir="//root/.rpi-firmware/.git" --work-tree="//root/.rpi-firmware" rev-parse master

After this, virtually no commands work, I can't even shut the system down.

rpi / # init 0
Inconsistency detected by ld.so: dl-fini.c: 197: _dl_fini: Assertion `ns != 0 || i == nloaded' failed!

It won't boot afterwards, it panics on boot and I have to reimage.

Any ideas?

Many thanks,
Dave.

Ignores memory split after last update?

Did my weekly rpi-update today and noticed the script was itself updated first. But even if it was called with rpi-udate 192 it uses the 224/32 MB split. Seems it does not honor the mem-split command anymore.

$rpi-update 192
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Using ARM/GPU memory split of 224MB/32MB
Updating firmware (this will take a few minutes)
Using SoftFP libraries
If no errors appeared, your firmware was successfully updated
A reboot is needed to activate the new firmware

With latest files

I just ran:
sudo apt-get update
sudo apt-get upgrade
rpi-update

and got the following error

592221991: vchiq_lib: Very incompatible VCHIQ library - cannot retrieve driver versions

It also again killed my Edimax Wifi USB.

Memory for new Pi units.

Need to update the script to work with units that have 512mb of memory.

New memory options are:
384
448
496

Kernel overwrite by default

I installed a custom kernel with the ums-cypress code built into the kernel (to use external USB mass storage as a root device). When I run rpi-update with default options, it overwrites my kernel with a stock kernel (which has ums-cypress as a module rather than built in).
Now, I kernel panic at boot because no root device appears.

The solution to this problem (which was actually my first attempt, after giving up and building the module in) is to use an initramfs. My journies have led me to discover that the initramfs support is disabled in the stock kernel, so I'm assuming this kernel overwrite would "undo" that functionality as well.

Do you have any idea how rpi-update should be used differently to prevent this problem by default (at best), manually, or not at all (at worst)? If I cannot do anything manually (because, say, the firmware needs a new kernel, or something like that), then maybe something in the tool itself should detect whether a recognized stock kernel or custom kernel is being used.

running rpi-update wipes out /boot, possibly opens up port 60020?

hey Hexxeh,

I ran this according to the instructions and all that happened was that /boot was emptied out. Stupidly did not back /boot up myself, but copied over from /boot.bak to boot. Pi boots back up just fine, but weirdly enough, I now have an extra port (60020) open. Check with fuser, it says that 60020 is opened by /sbin/rpc.statd . I'm about 99% sure that this port wasn't open before the failed rpi-update.

Does this make sense to you? Seems like weird behaviour to me.

Error when running the command "rpi-update"

: command not found: line 1:
/usr/bin/rpi-update: line 2: !DOCTYPE: No such file or directory
: command not found: line 3:
: command not found: line 4:
/usr/bin/rpi-update: line 5: html: No such file or directory
/usr/bin/rpi-update: line 6: head: No such file or directory
: command not found: line 7:
/usr/bin/rpi-update: line 8: syntax error near unexpected token newline' /usr/bin/rpi-update: line 8: <title>‫×נצ×× ©‬</t'tle>

Error: Read-only file system

I wanted to update my system today and got the error:

Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
Autodetecting memory split
Using ARM/GPU memory split of 240MB/16MB
Updating firmware (this will take a few minutes)
Checking out files: 100% (2043/2043), done.
cp: cannot create regular file `/boot/arm192_start.elf': Read-only file system
cp: cannot create regular file `/boot/arm224_start.elf': Read-only file system
cp: cannot create regular file `/boot/arm240_start.elf': Read-only file system

System info:
Raspberry Pi with Debian Squeeze
Linux raspberrypi 3.1.9+ #272 PREEMPT Tue Aug 7 22:51:44 BST 2012 armv6l GNU/Linux

I tried to remount the filesystem but it said sudo: remount: command not found.

Certificates issue with wget

output of running sudo rpi-update:

 *** Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
 *** Performing self-update
--2013-01-28 21:20:16--  https://github.com/Hexxeh/rpi-update/raw/master/rpi-update
Resolving github.com... 207.97.227.239
Connecting to github.com|207.97.227.239|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://raw.github.com/Hexxeh/rpi-update/master/rpi-update [following]
--2013-01-28 21:20:16--  https://raw.github.com/Hexxeh/rpi-update/master/rpi-update
Resolving raw.github.com... 199.27.77.193
Connecting to raw.github.com|199.27.77.193|:443... connected.
ERROR: certificate common name `*.a.ssl.fastly.net' doesn't match requested host name `raw.github.com'.
To connect to raw.github.com insecurely, use `--no-check-certificate'.
 !!! Failed to download update for rpi-update!
 !!! Make sure you have ca-certificates installed and that the time is set correctly

rpi-update does not exit correctly if firmware is latest

Lines 205-209 have an issue that I can not pinpoint. I updated my firmware yesterday and while testing raspbx/asterisk and things, it issued another rpi-update. It got to the point of updating firmware (this may take a few...) and sat there for 1 hour, I Ctrl+C'd it. I figured maybe I did something wrong, so I tried it again - hung at same place, this time for 1 1/2 hours - Ctrl+C. Finally, I gave it one last test after cleaning some things up and it sat for 4 hours - Ctrl+C. Tonight, I decided to look at the script and see if I could figure out how to make sure I was on the latest. I should note that after every hang, I would update dist-upgrade and reboot to make sure the system still worked and I did not have to image another card.

I came across the FW_REV variable and decided to look into that. Through some testing against the github site, I discovered that it uses the first 7 characters of the output from the command:
git --git-dir=/root/.rpi-firmware/.git --work-tree=/root/.rpi-firmware rev-parse master
(I know you can cat the version from the boot directory, but verifying against the git is the best way to ensure latest version)
So, in this case: rpi-update 3851111 will put you on the latest.

I know this is kind of long and drawn out, just wanted to be thorough. For some reason, and I havent yet figured it out, it is hanging if the firmware on the pi is latest instead of notifying the user it is the latest and finalizing/exiting the script.

Side note: The only reason for my second paragraph is for those who may come across the same issue, though honestly, I never checked previous issues as I thought it was a problem with my internet or pi.

rpi-update broke synergyc autostartup.

I'm running debian on both my raspi and my desktop computer. Since I don't have a usb keyboard, I had to borrow one to get my raspi setup. I first setup ssh so I could get into my raspi. Then I setup gdm to auto start (edited my inittab file). I then setup synergy on both my computers. It was working well.

However, everytime I booted my raspi, I kept on getting errors about my SD card. After reading online, I found out about rpi-update to fix that issue. I ran rpi-update, and got the vchiq error. I deleted the .firmware_revision file, ran ldconfig, then reran rpi-update. Yes, booting up is much faster now. However, it seems to have broken synergy. It works partway through x starting, but dies now before I can log in.

rpi-update hangs at first git task

Here the symptoms. I see following output:
Raspberry Pi firmware updater by Hexxeh, enhanced by AndrewS
Performing self-update
ARM/GPU split is now defined in /boot/config.txt using the gpu_mem option!
Updating firmware (this will take a few minutes)

Then, nothing. I see a zero bytes FETCH_HEAD file in /root/.rpi-firmware/.git with the timestamp of the command start, everything else has timestamps from last successful update. strace shows process hanging on a read.

# ps auxw | grep rpi
root 2489 0.0 0.3 4916 1416 pts/0 S+ 16:04 0:00 /bin/bash /usr/bin/rpi-update
root 2502 0.0 0.3 5928 1452 pts/0 S+ 16:05 0:00 git --git-dir=//root/.rpi-firmware/.git --work-tree=//root/.rpi-firmware fetch --quiet
root 2503 0.0 0.5 16652 2280 pts/0 S+ 16:05 0:00 git-remote-http origin http://github.com/Hexxeh/rpi-firmware.git
root 2508 0.0 0.2 38576 1236 pts/0 S+ 16:05 0:00 git fetch-pack --stateless-rpc --stdin --lock-pack --include-tag --thin --no-progress http://github.com/Hexxeh/rpi-firmware.git/

This list does not seem to change.

The url http://github.com/Hexxeh/rpi-firmware could be fetched via wget (and the self-update worked, so probably no network issues).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.