Items with no label
3335 Discussions

dfu-updater for Ubuntu

JGwinner
New Contributor I
3,482 Views

I'm following the instructions but I can't get the updater to work.

 

I followed this document: https://www.intel.com/content/dam/support/us/en/documents/emerging-technologies/intel-realsense-technology/Linux-RealSense-D400-DFU-Guide.pdf?language=en_US

 

I checked on this, and it turns out the code repository is unsigned:

 

E: Failed to fetch http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo/dists/xenial/InRelease 403 Forbidden [IP: 52.218.36.153 80]

E: The repository 'http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial InRelease' is not signed.

N: Updating from such a repository can't be done securely, and is therefore disabled by default.

N: See apt-secure(8) manpage for repository creation and user configuration details.

 

(emphasis mine).

 

It would be great if Intel would sign these official releases.

 

I did follow the instructions to add the key to the chain, but it still doesn't work.

 

Because apt-get update fails per the above, the repositories can't be found.

 

$ sudo apt-get install intel-realsense-dfu*

Reading package lists... Done

Building dependency tree    

Reading state information... Done

E: Unable to locate package intel-realsense-dfu*

E: Couldn't find any package by glob 'intel-realsense-dfu*'

E: Couldn't find any package by regex 'intel-realsense-dfu*'

 

So I tried to add the variable Acquire::AllowInsecureRepositories "true";

to the apt.conf.d directory (as 99MyFile).

 

This seemed to work; I got a lot more when doing the apt-update.

 

However, I still ran into this:

 

... snip ...

Ign:9 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main all Packages

Err:10 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main amd64 Packages

 403 Forbidden [IP: 52.218.84.65 80]

Ign:11 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main i386 Packages

Ign:12 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main Translation-en

Ign:13 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main Translation-en_US

Ign:14 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main all DEP-11 Metadata

Ign:15 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main amd64 DEP-11 Metadata

Ign:16 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main DEP-11 48x48 Icons

Ign:17 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main DEP-11 64x64 Icons

Ign:18 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main amd64 c-n-f Metadata

Ign:19 http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial/main all c-n-f Metadata

Reading package lists... Done

W: The repository 'http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo xenial Release' does not have a Release file.

N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.

N: See apt-secure(8) manpage for repository creation and user configuration details.

E: Failed to fetch http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo/dists/xenial/main/binary-amd64/Packages 403 Forbidden [IP: 52.218.84.65 80]

E: Some index files failed to download. They have been ignored, or old ones used instead.

 

This is what happens when I try to install the DFU:

$ sudo apt-get install intel-realsense-dfu*

Reading package lists... Done

Building dependency tree    

Reading state information... Done

E: Unable to locate package intel-realsense-dfu*

E: Couldn't find any package by glob 'intel-realsense-dfu*'

E: Couldn't find any package by regex 'intel-realsense-dfu*'

 

 

== John ==

 

0 Kudos
1 Solution
JGwinner
New Contributor I
2,731 Views

WHOOPS! I figure it out, for some reason the dashes were missing when I did a cut and paste. The repo is http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo not http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo

 

I think it's odd a got a 'denied' instead of a 404 but ... hey, it's working.

 

The next hurdle: This camera is WEIRD. As the Windows version has the wrong bus ID to update or have the firmware update (in the .INF file), I tried Ubuntu. For others with the same issue, this DID work on a VM (Whew). I used Oracle's Virtual Box against advice, but you need the 6.04 version; they just came out with a USB 3.0 device driver. You need to load that add-on package.

 

Once you do so, right click on the USB icon and give the Intel camera to the VM.

 

Here's where it gets weird. The first time, it would not update. The camera goes off line, as it usually does when you try to program it. (poor thing goes and sulks I guess). When you connect it a second time, it doesn't show up as a D430 camera. Just go with the flow; at this point I'll try anything, and I just connected the only Intel vaguely camera looking device to the VM.

 

Every time you do this, you get a different bus ID, so you've got to repeatedly run lsusb to get the bus and device ID.

 

Here's what I did:

 

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 003 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 3

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

FW Version of .bin File  = 5.11.1.100

FW version on device = 5.9.2.0

MM FW Version = 255.255.255.255

FW update required...

 

Error: libusb_control_transfer failed. err = -9 - LIBUSB_ERROR_PIPE

 

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 003 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 3

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

 

Error: Couldn't find dev with busnum = 1 and devnum = 3

 

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 004: ID 8086:0adc Intel Corp. 

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 004 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 4

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

Could not find device in opmode: Device found, but incorrect (vid, pid) combo. Found (8086, adc)

Device pid = 2780

Already in DFU mode, do update...

Updating FW...

DFU FW version in file = 5.11.1.100

DFU_version = 60

DFU_isLocked = 0

FW_highestVersion = 0.0.0.0

FW_lastVersion = 0.0.0.0

 

Percentage done: 99

Running post download processes...

.

Post download processes done.

 

Done!

 

Error: No supported devices found. please specify bus number and device number

 

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 005: ID 8086:0b07 Intel Corp. 

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -p

FW version on device = 5.11.1.100

MM FW Version = 255.255.255.255

pi@pi-VirtualBox:~/realsense$ 

 

The firmware is now updated!!!

 

== John ==

View solution in original post

0 Kudos
6 Replies
JGwinner
New Contributor I
2,732 Views

WHOOPS! I figure it out, for some reason the dashes were missing when I did a cut and paste. The repo is http://realsense-hw-public.s3.amazonaws.com/Debian/apt-repo not http://realsense-hw-public.s3.amazonaws.com/Debian/aptrepo

 

I think it's odd a got a 'denied' instead of a 404 but ... hey, it's working.

 

The next hurdle: This camera is WEIRD. As the Windows version has the wrong bus ID to update or have the firmware update (in the .INF file), I tried Ubuntu. For others with the same issue, this DID work on a VM (Whew). I used Oracle's Virtual Box against advice, but you need the 6.04 version; they just came out with a USB 3.0 device driver. You need to load that add-on package.

 

Once you do so, right click on the USB icon and give the Intel camera to the VM.

 

Here's where it gets weird. The first time, it would not update. The camera goes off line, as it usually does when you try to program it. (poor thing goes and sulks I guess). When you connect it a second time, it doesn't show up as a D430 camera. Just go with the flow; at this point I'll try anything, and I just connected the only Intel vaguely camera looking device to the VM.

 

Every time you do this, you get a different bus ID, so you've got to repeatedly run lsusb to get the bus and device ID.

 

Here's what I did:

 

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 003 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 3

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

FW Version of .bin File  = 5.11.1.100

FW version on device = 5.9.2.0

MM FW Version = 255.255.255.255

FW update required...

 

Error: libusb_control_transfer failed. err = -9 - LIBUSB_ERROR_PIPE

 

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 003 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 3

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

 

Error: Couldn't find dev with busnum = 1 and devnum = 3

 

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 004: ID 8086:0adc Intel Corp. 

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -b 001 -d 004 -f -i Signed_Image_UVC_5_11_1_100.bin 

D400 busnum = 1

D400 devnum = 4

D400 FW file path = Signed_Image_UVC_5_11_1_100.bin

Could not find device in opmode: Device found, but incorrect (vid, pid) combo. Found (8086, adc)

Device pid = 2780

Already in DFU mode, do update...

Updating FW...

DFU FW version in file = 5.11.1.100

DFU_version = 60

DFU_isLocked = 0

FW_highestVersion = 0.0.0.0

FW_lastVersion = 0.0.0.0

 

Percentage done: 99

Running post download processes...

.

Post download processes done.

 

Done!

 

Error: No supported devices found. please specify bus number and device number

 

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 005: ID 8086:0b07 Intel Corp. 

Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

pi@pi-VirtualBox:~/realsense$ intel-realsense-dfu -p

FW version on device = 5.11.1.100

MM FW Version = 255.255.255.255

pi@pi-VirtualBox:~/realsense$ 

 

The firmware is now updated!!!

 

== John ==

0 Kudos
MartyG
Honored Contributor III
2,731 Views

I hope the link below will help solve your signed key problem.

https://github.com/IntelRealSense/librealsense/issues/2884

MartyG
Honored Contributor III
2,731 Views

I see in your added answer you solved it. Thanks so much for your really detailed feedback!

JGwinner
New Contributor I
2,731 Views

Thank you Marty! I appreciate you hanging in there.

 

I think the missing dash was from copy/paste. I noticed the PDF had some dashes and some emdashes; my guess is the em dash didn't paste into VIM. I didn't notice. Figured I did so much work complaining I should post that it was my fault :)

 

The key here is that the PC could *never* have done the firmware update; the hardware ID was wrong. Once I ran the Linux update, with the new firmware, it updated the bus ID's and the driver now worked.

 

This is not a Linux vs. Windows problem; the Linux developer should have paid attention to the hardware ID as well, but didn't. Or the Windows developer should have added the .INF settings for the older firmware. These really are bugs that need fixing; this much of a workaround is really exhausting!

 

I'm not sure why firmware would change a hardware ID. That's just weird. But it did. The hardware ID is now:

 

VID_8086&PID_0B07&MI_00

and

VID_8086&PID_0B07&REV_50B1&MI_00

 

 

== John ==

0 Kudos
JGwinner
New Contributor I
2,731 Views

I checked, and the viewer now works. The DFU utility now shows 2 cameras on the PC, not one; an RGB and a depth camera.

 

Basically, both the utilities on the PC side were messed up, but the worst was the firmware from the factory was heavily messed up, and would never allow the firmware to update on the PC side. The Linux side seemed to ignore the manufacturer USB ID, and did the update. It all seems to work OK now.

 

== John ==

0 Kudos
MartyG
Honored Contributor III
2,731 Views

Awesome news! Enjoy the camera! :)

0 Kudos
Reply