goodrobots / maverick

UAV Autonomous Systems Management
https://goodrobots.github.io/maverick/
MIT License
174 stars 61 forks source link

Flashing Error for TX2 #762

Open smafaith opened 6 years ago

smafaith commented 6 years ago

After getting tx2 to recovery mode, I run "sudo ./flash.sh -r jetson-tx2 mmcblk0p1" and it goes like this in terminal: "Error: Return value 8 Command tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml --skipuid Reading board information failed." Failing from the beginning. Help!

smafaith commented 6 years ago

For the first running, the error information is: "UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128) Reading board information failed." And for retrying, the error goes like that above.

fnoop commented 6 years ago

Hey, thanks for the report. Unfortunately I don't have a TX2 so put this together somewhat blind, but I have had a report of at least one person getting it to work. It's on my todo list to update the images to be based around jetpack 3.2, I'll try and do that tonight and get new images uploaded.

smafaith commented 6 years ago

It's quite interesting because I can get different error messages for different trying. Latest trying goes further with the error of "Reusing existing system.img... file does not exist." Thank you fnoop.

fnoop commented 6 years ago

That is weird! Are you using the dev board or another carrier?

smafaith commented 6 years ago

I'm using the dev board. And I've installed Jetpack 3.0.

fnoop commented 6 years ago

I think I created these images from jetpack 3.1, but the way they are created is supposed to be independent of jetpack. I wonder though if you do need to update to jetpack 3.1 first? It shouldn't be necessary..

smafaith commented 6 years ago

Okay, I'll have a try. Thank you fnoop.

smafaith commented 6 years ago

Dear fnoop, I failed in updating to jetpack 3.1 and 3.2 for bad network connection. I have two questions:

  1. Will network connection affect maverick installation?
  2. I unzip the tgz on my Ubuntu 16.04 laptop and then try to flash my tx2-dev with "sudo ./flash.sh -r jetson-tx2 mmcblk0p1", are the installation steps right?
fnoop commented 6 years ago

Yes I believe that's correct, make sure you follow the instructions to the letter: http://goodrobots.github.io/maverick/#/?id=nvidia-tegra-tx1tx2-instructions Are you sure you have a good download of the tgz? I didn't post a hash to check it against which was bad, I'll do that now.

fnoop commented 6 years ago

It looks like the problem is actually between your computer and the tx2 module, are you running in a VM by any chance? https://devtalk.nvidia.com/default/topic/1009581/jetson-tx2/-quot-reading-board-information-failed-quot-when-flashing-jetson-tx2/

fnoop commented 6 years ago

Added download sha256 hashes #764

smafaith commented 6 years ago

Yes, I followed the instructions, and I think the download of tgz is good. My Ubuntu system is independent, not running in a VM. Maybe I should try on a new computer.

smafaith commented 6 years ago

I followed the guide to try bootstrap on tx2 and it went like this: "Maverick - UAV Companion Computer System - Version 1.1.6

Environment marker set but is being ignored as --env is set Maverick Environment: dev Proceeding to update system configuration - please be patient, this can take a while.

Warning: Facter: Could not retrieve fact='pip_version', resolution='': undefined method `[]' for nil:NilClass Warning: Scope(Class[Maverick_web::Cloud9]): Cloud9 will be compiled and can take a long time, please be patient.. Error: Evaluation Error: Error while evaluating a Resource Statement, Duplicate declaration: Oncevcsrepo[git-aruco] is already declared at (file: /srv/maverick/software/maverick/manifests/maverick-modules/maverick_hardware/manifests/tegra.pp, line: 12); cannot redeclare (file: /srv/maverick/software/maverick/manifests/maverick-modules/maverick_vision/manifests/aruco.pp, line: 9) (file: /srv/maverick/software/maverick/manifests/maverick-modules/maverick_vision/manifests/aruco.pp, line: 9, column: 9) on node tegra-ubuntu

Maverick finished, happy flying :)" I hope it may take a long period with a success, but maybe I'm not that lucky.

fnoop commented 6 years ago

Thanks for that report, will test and fix that bug. Wouldn't recommend you bootstrap at this point, would try and get the image flashed. I do think it's probably a problem between the tx2 and your computer, from what I see from that 'Reading board information failed' message.

smafaith commented 6 years ago

Actually, the main problem should be the missing of the system.img. I tried changing a filename to "system.img" and it went well, but ended up with a vital failure of tx2 for a wrong "system.img". I' m sure that I download the right tgz, but it may not be full.

fnoop commented 6 years ago

The TX1 image has a pre-squashed boot/system.img. The TX2 doesn't but it should generate one, although it needs a lot of space to do so. I'll look and see if I can make a squashed image for TX2 as well.

fnoop commented 6 years ago

OK, could you please try this command? sudo ./flash.sh jetson-tx2 mmcblk0p1

If that doesn't work, try: sudo ./flash.sh -R rootfs jetson-tx2 mmcblk0p1

You'll need quite a bit of disk space as it needs to build system.img.

fnoop commented 6 years ago

Need to document tegra image creation process: https://github.com/goodrobots/maverick/issues/706

smafaith commented 6 years ago

Good job fnoop, it works. Thank you so much!

fnoop commented 6 years ago

Fab! Did it take a lot of space creating the system.img before flashing?

smafaith commented 6 years ago

Yes, it did take a lot of space and may lead to a problem of "The system is running in low-graphics mode". So I have to flash it back to Jetpack 3.1...

fnoop commented 6 years ago

Which command worked in the end? Would you be interested in the uploading the system.img, so I can create a squashed download image for the tx2? If the squashed system.img is provided in the flash image then it doesn't need all that space to recreate it, and it's a lot faster.

smafaith commented 6 years ago

" sudo ./flash.sh -R rootfs jetson-tx2 mmcblk0p1" This worked at last. I've kept the " system.img" file and how can I upload that? And it turned out to be failed at last for the "low-graphics mode" issue.

smafaith commented 6 years ago

Hello fnoop, shall I use ssh or Web to run "maverick" codes on tx2 after flashing or connect the keyboard, mouse, and screen to run the codes in a terminal? If I should use ssh, then what is the local host I need to visit? If I should use the terminal on tx2, how to solve the problem of "The system is running in low-graphics mode"?

fnoop commented 6 years ago

Hey @smafaith did you unpack the maverick image as root, or through sudo? Or did you run out of disk space while flashing (while it was creating the system.img)? Have a read here: https://devtalk.nvidia.com/default/topic/1027037/jetson-tx2/unable-to-flash-tx2-with-jetpack-3-1-gt-quot-the-system-is-running-in-low-graphics-mode-quot-/

fnoop commented 6 years ago

The easiest way to get going is to plug an ethernet cable into the dev board, and then ssh to 'maverick-tegra.local' (if you're using a mac or linux computer, otherwise you'll have to find the IP from your router or otherways). You can also go to maverick-tegra.local in a browser and get some temporary web links - the real web interface is not until the upcoming 2.0 version. But the Cloud9 interface is very useful: http://maverick-tegra.local:6789

smafaith commented 6 years ago

Good news dear fnoop, I've visited and self-updated maverick on Cloud9, and after self-update, the system runs well. So I think the problem of "The system is running in low-graphics mode" is probably from an unsupported HDMI cable. Besides, I run sudo ./flash.sh jetson-tx2 mmcblk0p1 this time and it is able to generate "system.img" and flash it on TX2, and this code takes a shorter time than sudo ./flash.sh -R rootfs jetson-tx2 mmcblk0p1. What's more, I can't find the connection introductions for Maverick-TX2 and Pixhawk on either maverick pages or Ardupilot pages, so I wonder for a tx2 dev board, do I have to connect a J120 carrier board as middleware or connector? Thank you.

fnoop commented 6 years ago

@smafaith Great! I'll update the docs. No idea about connecting pixhawk to the dev board, I'll have a look at update the docs. It would be a good idea for the quick start for each hardware type, to then follow on to a 'what's next' section of the docs. I'll label this issue for documentation. Thanks for your efforts and feedback!

smafaith commented 6 years ago

@fnoop Actually I've been working on reading the maverick docs for a couple of days. I'm trying to make a Pixhawk2&TX2 drone with vision_landing functions. But it's a little hard for me to realize the drone only with the help of docs. I have a few questions:

  1. Is it possible for me to simply connect the J17(uart) on TX2 dev board and Telem2(uart) on Pixhawk2?
  2. Do I have to use 6 modules of "ArduPilot FC", "Mavlink Proxy", "Vision Landing", "Camera", "MAVROS", and "ROS"? Or I can use only 4 modules to realize that without "MAVROS" and "ROS".
fnoop commented 6 years ago

@smafaith I've never used vision_landing on the tegra platform - I don't think CUDA actually provides accelerated functions for most of the basic hard work that is needed in vision_landing, and it's all done on the CPU which isn't the strong point of the tegra (it's essentially a midrange graphics card). Also you should read the warning on the main github page: https://github.com/goodrobots/vision_landing

Neither ardupilot or px4 currently support vision based precision landing yet, at least not without some indepth knowledge and a bit of extra work. You can try it but depending on the performance you get, it may not be reliable/safe.

Anyway to answer your questions:

  1. I don't know about the dev board, it's not very useful for actually flying unless you have a gigantic UAV so never tried it. But yes you should be able to, and it would be very useful to document somewhere.
    1. vision_landing doesn't use MAVROS or ROS so you can disable those.
fnoop commented 6 years ago

@smafaith Have a look here: https://devtalk.nvidia.com/default/topic/978675/is-j17-dev-ttyths1-or-dev-ttyths2-/

It says J17 should be on /dev/ttyTHS2