First the grc graph:

For making GNU Radio to connect Hackrf One, I set the "Device Arguments" to "hackrf=0" same as in osmocom source block which works fine. And I found this argument in the documentation of the block.

Then I execute the flow graph and get the error:

This really confuses me... Same hardware, same driver, same pc...
OK, time to read some codes.
At last, I found this code:
https://git.osmocom.org/gr-osmosdr/tree/lib/hackrf/hackrf_common.cc

It seems when osmocom block is finding a hackrf device with specified serail number given by the block properties window.
Then I tried to remove the "=0" texts from arguments.
Yeah, it worked...

Just like the osmocom source block.
But the "=0" argment takes no effect on osmocom source block...
Why...
🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔🤔