mirror of
https://github.com/polhenarejos/pico-rng.git
synced 2026-04-09 17:25:51 +02:00
Updated README.md
This commit is contained in:
20
README.md
20
README.md
@@ -1,12 +1,12 @@
|
||||
# Raspberry Pi Pico Random Number Generator
|
||||
|
||||
A basic random number generator that generates numbers from the onboard DAC of the Raspberry Pi Pico. The project used the Raspberry Pi Pico USB dev_lowlevel as a starting point. The RNG is not meant to be FIPS 140-2 compliant by a long shot. This is not meant to by used in a production system as a TRNG. Maybe one day the next gen Pico's will include an onboard crypto module.
|
||||
A basic random number generator that generates numbers from enviromental noise with the onboard DAC of the Raspberry Pi Pico. The project uses the Raspberry Pi Pico USB dev_lowlevel as a starting point. The RNG is not meant to be FIPS 140-2 compliant by any means. This is not meant to by used in a production system as a TRNG. Maybe one day the next gen Pico's will include an onboard crypto module.
|
||||
|
||||
|
||||
## Project Goals
|
||||
* Raspberry Pi Pico firmware generates random numbers as a USB Endpoint
|
||||
* Linux Kernel Module (aka driver) provides random numbers to the Kernel
|
||||
* Driver can transmit random numbers on demand to the system and/or user processes via a character device
|
||||
* Raspberry Pi Pico firmware generates random numbers as a USB Endpoint.
|
||||
* Linux Kernel Module (aka driver) provides random numbers to the Kernel.
|
||||
* Driver can transmit random numbers on demand to the system and/or user processes via a character device.
|
||||
|
||||
|
||||
### Prerequisites
|
||||
@@ -34,6 +34,8 @@ make
|
||||
|
||||
### Install
|
||||
|
||||
The driver can be installed from the build directory using the traditional insmod command.
|
||||
|
||||
```bash
|
||||
# Assumes CWD is 'build/'
|
||||
# debug will enable debug log level
|
||||
@@ -41,13 +43,21 @@ make
|
||||
sudo insmod driver/pico_rng.ko [debug=1] [timeout=<msec timeout>]
|
||||
```
|
||||
|
||||
The Pico firmware is installed thorugh the normal process as outlined in the Raspberry Pi Pico Development Documentation.
|
||||
|
||||
* Unplug the Pico from the host.
|
||||
* Plug the Pico into the host while holding the 'boot' button.
|
||||
* Mount the Pico ```sudo mount /dev/sdb1 /mnt```. Note /dev/sdb1 could be different you. Use ```sudo dmesg``` to find out what device the Pico shows up as on your system.
|
||||
* Copy the uf2 file to the Pico ```sudo cp firmware/pico_rng.uf2 /mnt```.
|
||||
* Umount the pico ```sudo umount /mnt```.
|
||||
|
||||
### Testing
|
||||
|
||||
You can test Pico RNG firmware with the [pico_rng_test.py](firmware/pico_rng_test.py) script.
|
||||
|
||||
```bash
|
||||
# Running with --performance will measure the devices' KB/s.
|
||||
# if the kernel module is inserted, then the test tool will use /dev/pico_rng otherwise python's libusb implementation will be used.
|
||||
# if the kernel module has been installed, then the test tool will use /dev/pico_rng otherwise python's libusb implementation will be used.
|
||||
sudo firmware/pico_rng_test.py [--performance]
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user