mirror of
https://github.com/polhenarejos/pico-rng.git
synced 2026-06-01 19:11:24 +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
|
# 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
|
## Project Goals
|
||||||
* Raspberry Pi Pico firmware generates random numbers as a USB Endpoint
|
* Raspberry Pi Pico firmware generates random numbers as a USB Endpoint.
|
||||||
* Linux Kernel Module (aka driver) provides random numbers to the Kernel
|
* 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
|
* Driver can transmit random numbers on demand to the system and/or user processes via a character device.
|
||||||
|
|
||||||
|
|
||||||
### Prerequisites
|
### Prerequisites
|
||||||
@@ -34,6 +34,8 @@ make
|
|||||||
|
|
||||||
### Install
|
### Install
|
||||||
|
|
||||||
|
The driver can be installed from the build directory using the traditional insmod command.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Assumes CWD is 'build/'
|
# Assumes CWD is 'build/'
|
||||||
# debug will enable debug log level
|
# debug will enable debug log level
|
||||||
@@ -41,13 +43,21 @@ make
|
|||||||
sudo insmod driver/pico_rng.ko [debug=1] [timeout=<msec timeout>]
|
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
|
### Testing
|
||||||
|
|
||||||
You can test Pico RNG firmware with the [pico_rng_test.py](firmware/pico_rng_test.py) script.
|
You can test Pico RNG firmware with the [pico_rng_test.py](firmware/pico_rng_test.py) script.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Running with --performance will measure the devices' KB/s.
|
# 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]
|
sudo firmware/pico_rng_test.py [--performance]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user