Improved readme.
BIN
Readme Assets/Add connection.png
Normal file
|
After Width: | Height: | Size: 5.7 MiB |
BIN
Readme Assets/Boot partition.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
Readme Assets/Checking IP Address.png
Normal file
|
After Width: | Height: | Size: 338 KiB |
BIN
Readme Assets/Configure Connection Method.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
Readme Assets/Configure Connection Name.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
Readme Assets/Connect to connection.png
Normal file
|
After Width: | Height: | Size: 537 KiB |
BIN
Readme Assets/Create ssh.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
BIN
Readme Assets/Edit cmdline_txt.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
Readme Assets/Edit config_txt.png
Normal file
|
After Width: | Height: | Size: 162 KiB |
BIN
Readme Assets/Eject SD.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
Readme Assets/Insert SD.png
Normal file
|
After Width: | Height: | Size: 6.2 MiB |
BIN
Readme Assets/Micro USB Cable.png
Normal file
|
After Width: | Height: | Size: 7.5 MiB |
603
Readme Assets/Micro USB Cable.png.out.pp3
Normal file
@@ -0,0 +1,603 @@
|
||||
[Version]
|
||||
AppVersion=5.4
|
||||
Version=331
|
||||
|
||||
[General]
|
||||
Rank=0
|
||||
ColorLabel=0
|
||||
InTrash=false
|
||||
|
||||
[Exposure]
|
||||
Auto=false
|
||||
Clip=0.02
|
||||
Compensation=0
|
||||
Brightness=0
|
||||
Contrast=0
|
||||
Saturation=0
|
||||
Black=0
|
||||
HighlightCompr=0
|
||||
HighlightComprThreshold=33
|
||||
ShadowCompr=50
|
||||
HistogramMatching=false
|
||||
CurveMode=Standard
|
||||
CurveMode2=Standard
|
||||
Curve=0;
|
||||
Curve2=0;
|
||||
|
||||
[HLRecovery]
|
||||
Enabled=false
|
||||
Method=Blend
|
||||
|
||||
[Retinex]
|
||||
Enabled=false
|
||||
Str=20
|
||||
Scal=3
|
||||
Iter=1
|
||||
Grad=1
|
||||
Grads=1
|
||||
Gam=1.3
|
||||
Slope=3
|
||||
Median=false
|
||||
Neigh=80
|
||||
Offs=0
|
||||
Vart=200
|
||||
Limd=8
|
||||
highl=4
|
||||
skal=3
|
||||
RetinexMethod=high
|
||||
mapMethod=none
|
||||
viewMethod=none
|
||||
Retinexcolorspace=Lab
|
||||
Gammaretinex=none
|
||||
CDCurve=0;
|
||||
MAPCurve=0;
|
||||
CDHCurve=0;
|
||||
LHCurve=0;
|
||||
Highlights=0
|
||||
HighlightTonalWidth=80
|
||||
Shadows=0
|
||||
ShadowTonalWidth=80
|
||||
Radius=40
|
||||
TransmissionCurve=1;0;0.5;0.34999999999999998;0.34999999999999998;0.59999999999999998;0.75;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
GainTransmissionCurve=1;0;0.10000000000000001;0.34999999999999998;0;0.25;0.25;0.34999999999999998;0.34999999999999998;0.69999999999999996;0.25;0.34999999999999998;0.34999999999999998;1;0.10000000000000001;0;0;
|
||||
|
||||
[Local Contrast]
|
||||
Enabled=false
|
||||
Radius=80
|
||||
Amount=0.20000000000000001
|
||||
Darkness=1
|
||||
Lightness=1
|
||||
|
||||
[Channel Mixer]
|
||||
Enabled=false
|
||||
Red=100;0;0;
|
||||
Green=0;100;0;
|
||||
Blue=0;0;100;
|
||||
|
||||
[Black & White]
|
||||
Enabled=false
|
||||
Method=Desaturation
|
||||
Auto=false
|
||||
ComplementaryColors=true
|
||||
Setting=NormalContrast
|
||||
Filter=None
|
||||
MixerRed=43
|
||||
MixerOrange=33
|
||||
MixerYellow=33
|
||||
MixerGreen=33
|
||||
MixerCyan=33
|
||||
MixerBlue=30
|
||||
MixerMagenta=33
|
||||
MixerPurple=33
|
||||
GammaRed=0
|
||||
GammaGreen=0
|
||||
GammaBlue=0
|
||||
Algorithm=SP
|
||||
LuminanceCurve=0;
|
||||
BeforeCurveMode=Standard
|
||||
AfterCurveMode=Standard
|
||||
BeforeCurve=0;
|
||||
AfterCurve=0;
|
||||
|
||||
[Luminance Curve]
|
||||
Enabled=false
|
||||
Brightness=0
|
||||
Contrast=0
|
||||
Chromaticity=0
|
||||
AvoidColorShift=false
|
||||
RedAndSkinTonesProtection=0
|
||||
LCredsk=true
|
||||
LCurve=0;
|
||||
aCurve=0;
|
||||
bCurve=0;
|
||||
ccCurve=0;
|
||||
chCurve=0;
|
||||
lhCurve=0;
|
||||
hhCurve=0;
|
||||
LcCurve=0;
|
||||
ClCurve=0;
|
||||
|
||||
[Sharpening]
|
||||
Enabled=false
|
||||
Method=usm
|
||||
Radius=0.5
|
||||
Amount=200
|
||||
Threshold=20;80;2000;1200;
|
||||
OnlyEdges=false
|
||||
EdgedetectionRadius=1.8999999999999999
|
||||
EdgeTolerance=1800
|
||||
HalocontrolEnabled=false
|
||||
HalocontrolAmount=85
|
||||
DeconvRadius=0.75
|
||||
DeconvAmount=75
|
||||
DeconvDamping=20
|
||||
DeconvIterations=30
|
||||
|
||||
[Vibrance]
|
||||
Enabled=false
|
||||
Pastels=0
|
||||
Saturated=0
|
||||
PSThreshold=0;75;
|
||||
ProtectSkins=false
|
||||
AvoidColorShift=true
|
||||
PastSatTog=true
|
||||
SkinTonesCurve=0;
|
||||
|
||||
[SharpenEdge]
|
||||
Enabled=false
|
||||
Passes=2
|
||||
Strength=50
|
||||
ThreeChannels=false
|
||||
|
||||
[SharpenMicro]
|
||||
Enabled=false
|
||||
Matrix=false
|
||||
Strength=20
|
||||
Uniformity=50
|
||||
|
||||
[White Balance]
|
||||
Enabled=true
|
||||
Setting=Camera
|
||||
Temperature=6490
|
||||
Green=1.002
|
||||
Equal=1
|
||||
TemperatureBias=0
|
||||
|
||||
[Color appearance]
|
||||
Enabled=false
|
||||
Degree=90
|
||||
AutoDegree=true
|
||||
Degreeout=90
|
||||
AutoDegreeout=true
|
||||
Surround=Average
|
||||
Surrsrc=Average
|
||||
AdaptLum=16
|
||||
Badpixsl=0
|
||||
Model=RawT
|
||||
Algorithm=JC
|
||||
J-Light=0
|
||||
Q-Bright=0
|
||||
C-Chroma=0
|
||||
S-Chroma=0
|
||||
M-Chroma=0
|
||||
J-Contrast=0
|
||||
Q-Contrast=0
|
||||
H-Hue=0
|
||||
RSTProtection=0
|
||||
AdaptScene=2000
|
||||
AutoAdapscen=true
|
||||
YbScene=18
|
||||
Autoybscen=true
|
||||
SurrSource=false
|
||||
Gamut=true
|
||||
Tempout=5000
|
||||
Greenout=1
|
||||
Tempsc=5000
|
||||
Greensc=1
|
||||
Ybout=18
|
||||
Datacie=false
|
||||
Tonecie=false
|
||||
CurveMode=Lightness
|
||||
CurveMode2=Lightness
|
||||
CurveMode3=Chroma
|
||||
Curve=0;
|
||||
Curve2=0;
|
||||
Curve3=0;
|
||||
|
||||
[Impulse Denoising]
|
||||
Enabled=false
|
||||
Threshold=50
|
||||
|
||||
[Defringing]
|
||||
Enabled=false
|
||||
Radius=2
|
||||
Threshold=13
|
||||
HueCurve=1;0.16666666699999999;0;0.34999999999999998;0.34999999999999998;0.34699999999999998;0;0.34999999999999998;0.34999999999999998;0.51366742600000004;0;0.34999999999999998;0.34999999999999998;0.66894457100000004;0;0.34999999999999998;0.34999999999999998;0.82877752459999998;0.97835991;0.34999999999999998;0.34999999999999998;0.99088838270000001;0;0.34999999999999998;0.34999999999999998;
|
||||
|
||||
[Directional Pyramid Denoising]
|
||||
Enabled=false
|
||||
Enhance=false
|
||||
Median=false
|
||||
Luma=0
|
||||
Ldetail=0
|
||||
Chroma=15
|
||||
Method=Lab
|
||||
LMethod=SLI
|
||||
CMethod=MAN
|
||||
C2Method=AUTO
|
||||
SMethod=shal
|
||||
MedMethod=soft
|
||||
RGBMethod=soft
|
||||
MethodMed=Lonly
|
||||
Redchro=0
|
||||
Bluechro=0
|
||||
Gamma=1.7
|
||||
Passes=1
|
||||
LCurve=1;0.050000000000000003;0.14999999999999999;0.34999999999999998;0.34999999999999998;0.55000000000000004;0.040000000000000001;0.34999999999999998;0.34999999999999998;
|
||||
CCCurve=1;0.050000000000000003;0.5;0.34999999999999998;0.34999999999999998;0.34999999999999998;0.050000000000000003;0.34999999999999998;0.34999999999999998;
|
||||
|
||||
[EPD]
|
||||
Enabled=false
|
||||
Strength=0.5
|
||||
Gamma=1
|
||||
EdgeStopping=1.3999999999999999
|
||||
Scale=1
|
||||
ReweightingIterates=0
|
||||
|
||||
[FattalToneMapping]
|
||||
Enabled=false
|
||||
Threshold=0
|
||||
Amount=30
|
||||
Anchor=50
|
||||
|
||||
[Shadows & Highlights]
|
||||
Enabled=false
|
||||
HighQuality=false
|
||||
Highlights=0
|
||||
HighlightTonalWidth=80
|
||||
Shadows=0
|
||||
ShadowTonalWidth=80
|
||||
Radius=40
|
||||
|
||||
[Crop]
|
||||
Enabled=true
|
||||
X=567
|
||||
Y=720
|
||||
W=5077
|
||||
H=1905
|
||||
FixedRatio=false
|
||||
Ratio=As Image
|
||||
Orientation=As Image
|
||||
Guide=Frame
|
||||
|
||||
[Coarse Transformation]
|
||||
Rotate=0
|
||||
HorizontalFlip=false
|
||||
VerticalFlip=false
|
||||
|
||||
[Common Properties for Transformations]
|
||||
AutoFill=true
|
||||
|
||||
[Rotation]
|
||||
Degree=0
|
||||
|
||||
[Distortion]
|
||||
Amount=0
|
||||
|
||||
[LensProfile]
|
||||
LcMode=none
|
||||
LCPFile=
|
||||
UseDistortion=true
|
||||
UseVignette=false
|
||||
UseCA=false
|
||||
LFCameraMake=Nikon Corporation
|
||||
LFCameraModel=Nikon D3300
|
||||
LFLens=Nikon Nikon AF-S DX Nikkor 35mm f/1.8G
|
||||
|
||||
[Perspective]
|
||||
Horizontal=0
|
||||
Vertical=0
|
||||
|
||||
[Gradient]
|
||||
Enabled=false
|
||||
Degree=0
|
||||
Feather=25
|
||||
Strength=0.59999999999999998
|
||||
CenterX=0
|
||||
CenterY=0
|
||||
|
||||
[PCVignette]
|
||||
Enabled=false
|
||||
Strength=0.59999999999999998
|
||||
Feather=50
|
||||
Roundness=50
|
||||
|
||||
[CACorrection]
|
||||
Red=0
|
||||
Blue=-0.002
|
||||
|
||||
[Vignetting Correction]
|
||||
Amount=0
|
||||
Radius=50
|
||||
Strength=1
|
||||
CenterX=0
|
||||
CenterY=0
|
||||
|
||||
[Resize]
|
||||
Enabled=false
|
||||
Scale=0.19
|
||||
AppliesTo=Cropped area
|
||||
Method=Lanczos
|
||||
DataSpecified=3
|
||||
Width=900
|
||||
Height=900
|
||||
|
||||
[PostResizeSharpening]
|
||||
Enabled=false
|
||||
Method=rld
|
||||
Radius=0.5
|
||||
Amount=200
|
||||
Threshold=20;80;2000;1200;
|
||||
OnlyEdges=false
|
||||
EdgedetectionRadius=1.8999999999999999
|
||||
EdgeTolerance=1800
|
||||
HalocontrolEnabled=false
|
||||
HalocontrolAmount=85
|
||||
DeconvRadius=0.45000000000000001
|
||||
DeconvAmount=100
|
||||
DeconvDamping=0
|
||||
DeconvIterations=100
|
||||
|
||||
[Color Management]
|
||||
InputProfile=(embedded)
|
||||
ToneCurve=false
|
||||
ApplyLookTable=false
|
||||
ApplyBaselineExposureOffset=true
|
||||
ApplyHueSatMap=true
|
||||
DCPIlluminant=0
|
||||
WorkingProfile=ProPhoto
|
||||
OutputProfile=RT_sRGB
|
||||
OutputProfileIntent=Relative
|
||||
OutputBPC=true
|
||||
Gammafree=default
|
||||
Freegamma=false
|
||||
GammaValue=2.2200000000000002
|
||||
GammaSlope=4.5
|
||||
|
||||
[Wavelet]
|
||||
Enabled=false
|
||||
Strength=100
|
||||
Balance=0
|
||||
Iter=0
|
||||
MaxLev=7
|
||||
TilesMethod=full
|
||||
DaubMethod=4_
|
||||
ChoiceLevMethod=all
|
||||
BackMethod=grey
|
||||
LevMethod=4
|
||||
DirMethod=all
|
||||
CBgreenhigh=0
|
||||
CBgreenmed=0
|
||||
CBgreenlow=0
|
||||
CBbluehigh=0
|
||||
CBbluemed=0
|
||||
CBbluelow=0
|
||||
Expcontrast=false
|
||||
Expchroma=false
|
||||
Expedge=false
|
||||
Expresid=false
|
||||
Expfinal=false
|
||||
Exptoning=false
|
||||
Expnoise=false
|
||||
Contrast1=0
|
||||
Contrast2=0
|
||||
Contrast3=0
|
||||
Contrast4=0
|
||||
Contrast5=0
|
||||
Contrast6=0
|
||||
Contrast7=0
|
||||
Contrast8=0
|
||||
Contrast9=0
|
||||
Chroma1=0
|
||||
Chroma2=0
|
||||
Chroma3=0
|
||||
Chroma4=0
|
||||
Chroma5=0
|
||||
Chroma6=0
|
||||
Chroma7=0
|
||||
Chroma8=0
|
||||
Chroma9=0
|
||||
ContExtra=0
|
||||
HSMethod=with
|
||||
HLRange=50;75;100;98;
|
||||
SHRange=0;2;50;25;
|
||||
Edgcont=0;10;75;40;
|
||||
Level0noise=0;0;
|
||||
Level1noise=0;0;
|
||||
Level2noise=0;0;
|
||||
Level3noise=0;0;
|
||||
ThresholdHighlight=5
|
||||
ThresholdShadow=4
|
||||
Edgedetect=90
|
||||
Edgedetectthr=20
|
||||
EdgedetectthrHi=0
|
||||
Edgesensi=60
|
||||
Edgeampli=10
|
||||
ThresholdChroma=5
|
||||
CHromaMethod=without
|
||||
Medgreinf=less
|
||||
CHSLromaMethod=SL
|
||||
EDMethod=CU
|
||||
NPMethod=none
|
||||
BAMethod=none
|
||||
TMMethod=cont
|
||||
ChromaLink=0
|
||||
ContrastCurve=1;0;0.25;0.34999999999999998;0.34999999999999998;0.5;0.75;0.34999999999999998;0.34999999999999998;0.90000000000000002;0;0.34999999999999998;0.34999999999999998;
|
||||
Pastlev=0;2;30;20;
|
||||
Satlev=30;45;130;100;
|
||||
OpacityCurveRG=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
OpacityCurveBY=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
OpacityCurveW=1;0;0.34999999999999998;0.34999999999999998;0;0.34999999999999998;0.75;0.34999999999999998;0.34999999999999998;0.59999999999999998;0.75;0.34999999999999998;0.34999999999999998;1;0.34999999999999998;0;0;
|
||||
OpacityCurveWL=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
HHcurve=0;
|
||||
CHcurve=0;
|
||||
WavclCurve=0;
|
||||
Median=false
|
||||
Medianlev=false
|
||||
Linkedg=true
|
||||
CBenab=false
|
||||
Lipst=false
|
||||
Skinprotect=0
|
||||
Hueskin=-5;25;170;120;
|
||||
Edgrad=15
|
||||
Edgval=0
|
||||
ThrEdg=10
|
||||
AvoidColorShift=false
|
||||
TMr=false
|
||||
ResidualcontShadow=0
|
||||
ResidualcontHighlight=0
|
||||
ThresholdResidShadow=35
|
||||
ThresholdResidHighLight=65
|
||||
Residualchroma=0
|
||||
ResidualTM=0
|
||||
Residualgamma=1
|
||||
HueRangeResidual=0
|
||||
HueRange=-260;-250;-130;-140;
|
||||
Contrast=0
|
||||
|
||||
[Directional Pyramid Equalizer]
|
||||
Enabled=false
|
||||
Gamutlab=false
|
||||
cbdlMethod=bef
|
||||
Mult0=1
|
||||
Mult1=1
|
||||
Mult2=1
|
||||
Mult3=1
|
||||
Mult4=1
|
||||
Mult5=1
|
||||
Threshold=0.20000000000000001
|
||||
Skinprotect=0
|
||||
Hueskin=-5;25;170;120;
|
||||
|
||||
[HSV Equalizer]
|
||||
Enabled=false
|
||||
HCurve=0;
|
||||
SCurve=0;
|
||||
VCurve=0;
|
||||
|
||||
[Film Simulation]
|
||||
Enabled=false
|
||||
ClutFilename=
|
||||
Strength=100
|
||||
|
||||
[RGB Curves]
|
||||
Enabled=false
|
||||
LumaMode=false
|
||||
rCurve=0;
|
||||
gCurve=0;
|
||||
bCurve=0;
|
||||
|
||||
[ColorToning]
|
||||
Enabled=false
|
||||
Method=Lab
|
||||
Lumamode=true
|
||||
Twocolor=Std
|
||||
Redlow=0
|
||||
Greenlow=0
|
||||
Bluelow=0
|
||||
Satlow=0
|
||||
Balance=0
|
||||
Sathigh=0
|
||||
Redmed=0
|
||||
Greenmed=0
|
||||
Bluemed=0
|
||||
Redhigh=0
|
||||
Greenhigh=0
|
||||
Bluehigh=0
|
||||
Autosat=true
|
||||
OpacityCurve=1;0;0.29999999999999999;0.34999999999999998;0;0.25;0.80000000000000004;0.34999999999999998;0.34999999999999998;0.69999999999999996;0.80000000000000004;0.34999999999999998;0.34999999999999998;1;0.29999999999999999;0;0;
|
||||
ColorCurve=1;0.050000000000000003;0.62;0.25;0.25;0.58499999999999996;0.11;0.25;0.25;
|
||||
SatProtectionThreshold=0
|
||||
SaturatedOpacity=1
|
||||
Strength=50
|
||||
HighlightsColorSaturation=60;80;
|
||||
ShadowsColorSaturation=80;208;
|
||||
ClCurve=3;0;0;0.34999999999999998;0.65000000000000002;1;1;
|
||||
Cl2Curve=3;0;0;0.34999999999999998;0.65000000000000002;1;1;
|
||||
LabGridALow=0
|
||||
LabGridBLow=0
|
||||
LabGridAHigh=0
|
||||
LabGridBHigh=0
|
||||
|
||||
[RAW]
|
||||
DarkFrame=/szeva
|
||||
DarkFrameAuto=false
|
||||
FlatFieldFile=/szeva
|
||||
FlatFieldAutoSelect=false
|
||||
FlatFieldBlurRadius=32
|
||||
FlatFieldBlurType=Area Flatfield
|
||||
FlatFieldAutoClipControl=false
|
||||
FlatFieldClipControl=0
|
||||
CA=false
|
||||
CARed=0
|
||||
CABlue=0
|
||||
HotPixelFilter=false
|
||||
DeadPixelFilter=false
|
||||
HotDeadPixelThresh=100
|
||||
PreExposure=1
|
||||
PrePreserv=0
|
||||
|
||||
[RAW Bayer]
|
||||
Method=amaze
|
||||
ImageNum=1
|
||||
CcSteps=0
|
||||
PreBlack0=0
|
||||
PreBlack1=0
|
||||
PreBlack2=0
|
||||
PreBlack3=0
|
||||
PreTwoGreen=true
|
||||
LineDenoise=0
|
||||
GreenEqThreshold=0
|
||||
DCBIterations=2
|
||||
DCBEnhance=true
|
||||
LMMSEIterations=2
|
||||
PixelShiftMotion=0
|
||||
PixelShiftMotionCorrection=5
|
||||
PixelShiftMotionCorrectionMethod=1
|
||||
pixelShiftStddevFactorGreen=5
|
||||
pixelShiftStddevFactorRed=5
|
||||
pixelShiftStddevFactorBlue=5
|
||||
PixelShiftEperIso=0
|
||||
PixelShiftNreadIso=0
|
||||
PixelShiftPrnu=1
|
||||
PixelShiftSigma=1
|
||||
PixelShiftSum=3
|
||||
PixelShiftRedBlueWeight=0.69999999999999996
|
||||
PixelShiftShowMotion=false
|
||||
PixelShiftShowMotionMaskOnly=false
|
||||
pixelShiftAutomatic=true
|
||||
pixelShiftNonGreenHorizontal=false
|
||||
pixelShiftNonGreenVertical=false
|
||||
pixelShiftHoleFill=true
|
||||
pixelShiftMedian=false
|
||||
pixelShiftMedian3=false
|
||||
pixelShiftGreen=true
|
||||
pixelShiftBlur=true
|
||||
pixelShiftSmoothFactor=0.69999999999999996
|
||||
pixelShiftExp0=false
|
||||
pixelShiftLmmse=false
|
||||
pixelShiftEqualBright=false
|
||||
pixelShiftEqualBrightChannel=false
|
||||
pixelShiftNonGreenCross=true
|
||||
pixelShiftNonGreenCross2=false
|
||||
pixelShiftNonGreenAmaze=false
|
||||
|
||||
[RAW X-Trans]
|
||||
Method=3-pass (best)
|
||||
CcSteps=0
|
||||
PreBlackRed=0
|
||||
PreBlackGreen=0
|
||||
PreBlackBlue=0
|
||||
|
||||
[MetaData]
|
||||
Mode=0
|
||||
BIN
Readme Assets/Nmap IP scan.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
Readme Assets/Pi Data Connection.png
Normal file
|
After Width: | Height: | Size: 8.0 MiB |
603
Readme Assets/Pi Data Connection.png.out.pp3
Normal file
@@ -0,0 +1,603 @@
|
||||
[Version]
|
||||
AppVersion=5.4
|
||||
Version=331
|
||||
|
||||
[General]
|
||||
Rank=0
|
||||
ColorLabel=0
|
||||
InTrash=false
|
||||
|
||||
[Exposure]
|
||||
Auto=false
|
||||
Clip=0.02
|
||||
Compensation=0
|
||||
Brightness=0
|
||||
Contrast=0
|
||||
Saturation=0
|
||||
Black=0
|
||||
HighlightCompr=0
|
||||
HighlightComprThreshold=33
|
||||
ShadowCompr=50
|
||||
HistogramMatching=false
|
||||
CurveMode=Standard
|
||||
CurveMode2=Standard
|
||||
Curve=0;
|
||||
Curve2=0;
|
||||
|
||||
[HLRecovery]
|
||||
Enabled=false
|
||||
Method=Blend
|
||||
|
||||
[Retinex]
|
||||
Enabled=false
|
||||
Str=20
|
||||
Scal=3
|
||||
Iter=1
|
||||
Grad=1
|
||||
Grads=1
|
||||
Gam=1.3
|
||||
Slope=3
|
||||
Median=false
|
||||
Neigh=80
|
||||
Offs=0
|
||||
Vart=200
|
||||
Limd=8
|
||||
highl=4
|
||||
skal=3
|
||||
RetinexMethod=high
|
||||
mapMethod=none
|
||||
viewMethod=none
|
||||
Retinexcolorspace=Lab
|
||||
Gammaretinex=none
|
||||
CDCurve=0;
|
||||
MAPCurve=0;
|
||||
CDHCurve=0;
|
||||
LHCurve=0;
|
||||
Highlights=0
|
||||
HighlightTonalWidth=80
|
||||
Shadows=0
|
||||
ShadowTonalWidth=80
|
||||
Radius=40
|
||||
TransmissionCurve=1;0;0.5;0.34999999999999998;0.34999999999999998;0.59999999999999998;0.75;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
GainTransmissionCurve=1;0;0.10000000000000001;0.34999999999999998;0;0.25;0.25;0.34999999999999998;0.34999999999999998;0.69999999999999996;0.25;0.34999999999999998;0.34999999999999998;1;0.10000000000000001;0;0;
|
||||
|
||||
[Local Contrast]
|
||||
Enabled=false
|
||||
Radius=80
|
||||
Amount=0.20000000000000001
|
||||
Darkness=1
|
||||
Lightness=1
|
||||
|
||||
[Channel Mixer]
|
||||
Enabled=false
|
||||
Red=100;0;0;
|
||||
Green=0;100;0;
|
||||
Blue=0;0;100;
|
||||
|
||||
[Black & White]
|
||||
Enabled=false
|
||||
Method=Desaturation
|
||||
Auto=false
|
||||
ComplementaryColors=true
|
||||
Setting=NormalContrast
|
||||
Filter=None
|
||||
MixerRed=43
|
||||
MixerOrange=33
|
||||
MixerYellow=33
|
||||
MixerGreen=33
|
||||
MixerCyan=33
|
||||
MixerBlue=30
|
||||
MixerMagenta=33
|
||||
MixerPurple=33
|
||||
GammaRed=0
|
||||
GammaGreen=0
|
||||
GammaBlue=0
|
||||
Algorithm=SP
|
||||
LuminanceCurve=0;
|
||||
BeforeCurveMode=Standard
|
||||
AfterCurveMode=Standard
|
||||
BeforeCurve=0;
|
||||
AfterCurve=0;
|
||||
|
||||
[Luminance Curve]
|
||||
Enabled=false
|
||||
Brightness=0
|
||||
Contrast=0
|
||||
Chromaticity=0
|
||||
AvoidColorShift=false
|
||||
RedAndSkinTonesProtection=0
|
||||
LCredsk=true
|
||||
LCurve=0;
|
||||
aCurve=0;
|
||||
bCurve=0;
|
||||
ccCurve=0;
|
||||
chCurve=0;
|
||||
lhCurve=0;
|
||||
hhCurve=0;
|
||||
LcCurve=0;
|
||||
ClCurve=0;
|
||||
|
||||
[Sharpening]
|
||||
Enabled=false
|
||||
Method=usm
|
||||
Radius=0.5
|
||||
Amount=200
|
||||
Threshold=20;80;2000;1200;
|
||||
OnlyEdges=false
|
||||
EdgedetectionRadius=1.8999999999999999
|
||||
EdgeTolerance=1800
|
||||
HalocontrolEnabled=false
|
||||
HalocontrolAmount=85
|
||||
DeconvRadius=0.75
|
||||
DeconvAmount=75
|
||||
DeconvDamping=20
|
||||
DeconvIterations=30
|
||||
|
||||
[Vibrance]
|
||||
Enabled=false
|
||||
Pastels=0
|
||||
Saturated=0
|
||||
PSThreshold=0;75;
|
||||
ProtectSkins=false
|
||||
AvoidColorShift=true
|
||||
PastSatTog=true
|
||||
SkinTonesCurve=0;
|
||||
|
||||
[SharpenEdge]
|
||||
Enabled=false
|
||||
Passes=2
|
||||
Strength=50
|
||||
ThreeChannels=false
|
||||
|
||||
[SharpenMicro]
|
||||
Enabled=false
|
||||
Matrix=false
|
||||
Strength=20
|
||||
Uniformity=50
|
||||
|
||||
[White Balance]
|
||||
Enabled=true
|
||||
Setting=Camera
|
||||
Temperature=6490
|
||||
Green=1.002
|
||||
Equal=1
|
||||
TemperatureBias=0
|
||||
|
||||
[Color appearance]
|
||||
Enabled=false
|
||||
Degree=90
|
||||
AutoDegree=true
|
||||
Degreeout=90
|
||||
AutoDegreeout=true
|
||||
Surround=Average
|
||||
Surrsrc=Average
|
||||
AdaptLum=16
|
||||
Badpixsl=0
|
||||
Model=RawT
|
||||
Algorithm=JC
|
||||
J-Light=0
|
||||
Q-Bright=0
|
||||
C-Chroma=0
|
||||
S-Chroma=0
|
||||
M-Chroma=0
|
||||
J-Contrast=0
|
||||
Q-Contrast=0
|
||||
H-Hue=0
|
||||
RSTProtection=0
|
||||
AdaptScene=2000
|
||||
AutoAdapscen=true
|
||||
YbScene=18
|
||||
Autoybscen=true
|
||||
SurrSource=false
|
||||
Gamut=true
|
||||
Tempout=5000
|
||||
Greenout=1
|
||||
Tempsc=5000
|
||||
Greensc=1
|
||||
Ybout=18
|
||||
Datacie=false
|
||||
Tonecie=false
|
||||
CurveMode=Lightness
|
||||
CurveMode2=Lightness
|
||||
CurveMode3=Chroma
|
||||
Curve=0;
|
||||
Curve2=0;
|
||||
Curve3=0;
|
||||
|
||||
[Impulse Denoising]
|
||||
Enabled=false
|
||||
Threshold=50
|
||||
|
||||
[Defringing]
|
||||
Enabled=false
|
||||
Radius=2
|
||||
Threshold=13
|
||||
HueCurve=1;0.16666666699999999;0;0.34999999999999998;0.34999999999999998;0.34699999999999998;0;0.34999999999999998;0.34999999999999998;0.51366742600000004;0;0.34999999999999998;0.34999999999999998;0.66894457100000004;0;0.34999999999999998;0.34999999999999998;0.82877752459999998;0.97835991;0.34999999999999998;0.34999999999999998;0.99088838270000001;0;0.34999999999999998;0.34999999999999998;
|
||||
|
||||
[Directional Pyramid Denoising]
|
||||
Enabled=false
|
||||
Enhance=false
|
||||
Median=false
|
||||
Luma=0
|
||||
Ldetail=0
|
||||
Chroma=15
|
||||
Method=Lab
|
||||
LMethod=SLI
|
||||
CMethod=MAN
|
||||
C2Method=AUTO
|
||||
SMethod=shal
|
||||
MedMethod=soft
|
||||
RGBMethod=soft
|
||||
MethodMed=Lonly
|
||||
Redchro=0
|
||||
Bluechro=0
|
||||
Gamma=1.7
|
||||
Passes=1
|
||||
LCurve=1;0.050000000000000003;0.14999999999999999;0.34999999999999998;0.34999999999999998;0.55000000000000004;0.040000000000000001;0.34999999999999998;0.34999999999999998;
|
||||
CCCurve=1;0.050000000000000003;0.5;0.34999999999999998;0.34999999999999998;0.34999999999999998;0.050000000000000003;0.34999999999999998;0.34999999999999998;
|
||||
|
||||
[EPD]
|
||||
Enabled=false
|
||||
Strength=0.5
|
||||
Gamma=1
|
||||
EdgeStopping=1.3999999999999999
|
||||
Scale=1
|
||||
ReweightingIterates=0
|
||||
|
||||
[FattalToneMapping]
|
||||
Enabled=false
|
||||
Threshold=0
|
||||
Amount=30
|
||||
Anchor=50
|
||||
|
||||
[Shadows & Highlights]
|
||||
Enabled=false
|
||||
HighQuality=false
|
||||
Highlights=0
|
||||
HighlightTonalWidth=80
|
||||
Shadows=0
|
||||
ShadowTonalWidth=80
|
||||
Radius=40
|
||||
|
||||
[Crop]
|
||||
Enabled=true
|
||||
X=1258
|
||||
Y=737
|
||||
W=4088
|
||||
H=3005
|
||||
FixedRatio=false
|
||||
Ratio=As Image
|
||||
Orientation=As Image
|
||||
Guide=Frame
|
||||
|
||||
[Coarse Transformation]
|
||||
Rotate=0
|
||||
HorizontalFlip=false
|
||||
VerticalFlip=false
|
||||
|
||||
[Common Properties for Transformations]
|
||||
AutoFill=true
|
||||
|
||||
[Rotation]
|
||||
Degree=0
|
||||
|
||||
[Distortion]
|
||||
Amount=0
|
||||
|
||||
[LensProfile]
|
||||
LcMode=none
|
||||
LCPFile=
|
||||
UseDistortion=true
|
||||
UseVignette=false
|
||||
UseCA=false
|
||||
LFCameraMake=Nikon Corporation
|
||||
LFCameraModel=Nikon D3300
|
||||
LFLens=Nikon Nikon AF-S DX Nikkor 35mm f/1.8G
|
||||
|
||||
[Perspective]
|
||||
Horizontal=0
|
||||
Vertical=0
|
||||
|
||||
[Gradient]
|
||||
Enabled=false
|
||||
Degree=0
|
||||
Feather=25
|
||||
Strength=0.59999999999999998
|
||||
CenterX=0
|
||||
CenterY=0
|
||||
|
||||
[PCVignette]
|
||||
Enabled=false
|
||||
Strength=0.59999999999999998
|
||||
Feather=50
|
||||
Roundness=50
|
||||
|
||||
[CACorrection]
|
||||
Red=0
|
||||
Blue=0
|
||||
|
||||
[Vignetting Correction]
|
||||
Amount=0
|
||||
Radius=50
|
||||
Strength=1
|
||||
CenterX=0
|
||||
CenterY=0
|
||||
|
||||
[Resize]
|
||||
Enabled=false
|
||||
Scale=0.22
|
||||
AppliesTo=Cropped area
|
||||
Method=Lanczos
|
||||
DataSpecified=3
|
||||
Width=900
|
||||
Height=900
|
||||
|
||||
[PostResizeSharpening]
|
||||
Enabled=false
|
||||
Method=rld
|
||||
Radius=0.5
|
||||
Amount=200
|
||||
Threshold=20;80;2000;1200;
|
||||
OnlyEdges=false
|
||||
EdgedetectionRadius=1.8999999999999999
|
||||
EdgeTolerance=1800
|
||||
HalocontrolEnabled=false
|
||||
HalocontrolAmount=85
|
||||
DeconvRadius=0.45000000000000001
|
||||
DeconvAmount=100
|
||||
DeconvDamping=0
|
||||
DeconvIterations=100
|
||||
|
||||
[Color Management]
|
||||
InputProfile=(embedded)
|
||||
ToneCurve=false
|
||||
ApplyLookTable=false
|
||||
ApplyBaselineExposureOffset=true
|
||||
ApplyHueSatMap=true
|
||||
DCPIlluminant=0
|
||||
WorkingProfile=ProPhoto
|
||||
OutputProfile=RT_sRGB
|
||||
OutputProfileIntent=Relative
|
||||
OutputBPC=true
|
||||
Gammafree=default
|
||||
Freegamma=false
|
||||
GammaValue=2.2200000000000002
|
||||
GammaSlope=4.5
|
||||
|
||||
[Wavelet]
|
||||
Enabled=false
|
||||
Strength=100
|
||||
Balance=0
|
||||
Iter=0
|
||||
MaxLev=7
|
||||
TilesMethod=full
|
||||
DaubMethod=4_
|
||||
ChoiceLevMethod=all
|
||||
BackMethod=grey
|
||||
LevMethod=4
|
||||
DirMethod=all
|
||||
CBgreenhigh=0
|
||||
CBgreenmed=0
|
||||
CBgreenlow=0
|
||||
CBbluehigh=0
|
||||
CBbluemed=0
|
||||
CBbluelow=0
|
||||
Expcontrast=false
|
||||
Expchroma=false
|
||||
Expedge=false
|
||||
Expresid=false
|
||||
Expfinal=false
|
||||
Exptoning=false
|
||||
Expnoise=false
|
||||
Contrast1=0
|
||||
Contrast2=0
|
||||
Contrast3=0
|
||||
Contrast4=0
|
||||
Contrast5=0
|
||||
Contrast6=0
|
||||
Contrast7=0
|
||||
Contrast8=0
|
||||
Contrast9=0
|
||||
Chroma1=0
|
||||
Chroma2=0
|
||||
Chroma3=0
|
||||
Chroma4=0
|
||||
Chroma5=0
|
||||
Chroma6=0
|
||||
Chroma7=0
|
||||
Chroma8=0
|
||||
Chroma9=0
|
||||
ContExtra=0
|
||||
HSMethod=with
|
||||
HLRange=50;75;100;98;
|
||||
SHRange=0;2;50;25;
|
||||
Edgcont=0;10;75;40;
|
||||
Level0noise=0;0;
|
||||
Level1noise=0;0;
|
||||
Level2noise=0;0;
|
||||
Level3noise=0;0;
|
||||
ThresholdHighlight=5
|
||||
ThresholdShadow=4
|
||||
Edgedetect=90
|
||||
Edgedetectthr=20
|
||||
EdgedetectthrHi=0
|
||||
Edgesensi=60
|
||||
Edgeampli=10
|
||||
ThresholdChroma=5
|
||||
CHromaMethod=without
|
||||
Medgreinf=less
|
||||
CHSLromaMethod=SL
|
||||
EDMethod=CU
|
||||
NPMethod=none
|
||||
BAMethod=none
|
||||
TMMethod=cont
|
||||
ChromaLink=0
|
||||
ContrastCurve=1;0;0.25;0.34999999999999998;0.34999999999999998;0.5;0.75;0.34999999999999998;0.34999999999999998;0.90000000000000002;0;0.34999999999999998;0.34999999999999998;
|
||||
Pastlev=0;2;30;20;
|
||||
Satlev=30;45;130;100;
|
||||
OpacityCurveRG=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
OpacityCurveBY=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
OpacityCurveW=1;0;0.34999999999999998;0.34999999999999998;0;0.34999999999999998;0.75;0.34999999999999998;0.34999999999999998;0.59999999999999998;0.75;0.34999999999999998;0.34999999999999998;1;0.34999999999999998;0;0;
|
||||
OpacityCurveWL=1;0;0.5;0.34999999999999998;0.34999999999999998;1;0.5;0.34999999999999998;0.34999999999999998;
|
||||
HHcurve=0;
|
||||
CHcurve=0;
|
||||
WavclCurve=0;
|
||||
Median=false
|
||||
Medianlev=false
|
||||
Linkedg=true
|
||||
CBenab=false
|
||||
Lipst=false
|
||||
Skinprotect=0
|
||||
Hueskin=-5;25;170;120;
|
||||
Edgrad=15
|
||||
Edgval=0
|
||||
ThrEdg=10
|
||||
AvoidColorShift=false
|
||||
TMr=false
|
||||
ResidualcontShadow=0
|
||||
ResidualcontHighlight=0
|
||||
ThresholdResidShadow=35
|
||||
ThresholdResidHighLight=65
|
||||
Residualchroma=0
|
||||
ResidualTM=0
|
||||
Residualgamma=1
|
||||
HueRangeResidual=0
|
||||
HueRange=-260;-250;-130;-140;
|
||||
Contrast=0
|
||||
|
||||
[Directional Pyramid Equalizer]
|
||||
Enabled=false
|
||||
Gamutlab=false
|
||||
cbdlMethod=bef
|
||||
Mult0=1
|
||||
Mult1=1
|
||||
Mult2=1
|
||||
Mult3=1
|
||||
Mult4=1
|
||||
Mult5=1
|
||||
Threshold=0.20000000000000001
|
||||
Skinprotect=0
|
||||
Hueskin=-5;25;170;120;
|
||||
|
||||
[HSV Equalizer]
|
||||
Enabled=false
|
||||
HCurve=0;
|
||||
SCurve=0;
|
||||
VCurve=0;
|
||||
|
||||
[Film Simulation]
|
||||
Enabled=false
|
||||
ClutFilename=
|
||||
Strength=100
|
||||
|
||||
[RGB Curves]
|
||||
Enabled=false
|
||||
LumaMode=false
|
||||
rCurve=0;
|
||||
gCurve=0;
|
||||
bCurve=0;
|
||||
|
||||
[ColorToning]
|
||||
Enabled=false
|
||||
Method=Lab
|
||||
Lumamode=true
|
||||
Twocolor=Std
|
||||
Redlow=0
|
||||
Greenlow=0
|
||||
Bluelow=0
|
||||
Satlow=0
|
||||
Balance=0
|
||||
Sathigh=0
|
||||
Redmed=0
|
||||
Greenmed=0
|
||||
Bluemed=0
|
||||
Redhigh=0
|
||||
Greenhigh=0
|
||||
Bluehigh=0
|
||||
Autosat=true
|
||||
OpacityCurve=1;0;0.29999999999999999;0.34999999999999998;0;0.25;0.80000000000000004;0.34999999999999998;0.34999999999999998;0.69999999999999996;0.80000000000000004;0.34999999999999998;0.34999999999999998;1;0.29999999999999999;0;0;
|
||||
ColorCurve=1;0.050000000000000003;0.62;0.25;0.25;0.58499999999999996;0.11;0.25;0.25;
|
||||
SatProtectionThreshold=0
|
||||
SaturatedOpacity=1
|
||||
Strength=50
|
||||
HighlightsColorSaturation=60;80;
|
||||
ShadowsColorSaturation=80;208;
|
||||
ClCurve=3;0;0;0.34999999999999998;0.65000000000000002;1;1;
|
||||
Cl2Curve=3;0;0;0.34999999999999998;0.65000000000000002;1;1;
|
||||
LabGridALow=0
|
||||
LabGridBLow=0
|
||||
LabGridAHigh=0
|
||||
LabGridBHigh=0
|
||||
|
||||
[RAW]
|
||||
DarkFrame=/szeva
|
||||
DarkFrameAuto=false
|
||||
FlatFieldFile=/szeva
|
||||
FlatFieldAutoSelect=false
|
||||
FlatFieldBlurRadius=32
|
||||
FlatFieldBlurType=Area Flatfield
|
||||
FlatFieldAutoClipControl=false
|
||||
FlatFieldClipControl=0
|
||||
CA=false
|
||||
CARed=0
|
||||
CABlue=0
|
||||
HotPixelFilter=false
|
||||
DeadPixelFilter=false
|
||||
HotDeadPixelThresh=100
|
||||
PreExposure=1
|
||||
PrePreserv=0
|
||||
|
||||
[RAW Bayer]
|
||||
Method=amaze
|
||||
ImageNum=1
|
||||
CcSteps=0
|
||||
PreBlack0=0
|
||||
PreBlack1=0
|
||||
PreBlack2=0
|
||||
PreBlack3=0
|
||||
PreTwoGreen=true
|
||||
LineDenoise=0
|
||||
GreenEqThreshold=0
|
||||
DCBIterations=2
|
||||
DCBEnhance=true
|
||||
LMMSEIterations=2
|
||||
PixelShiftMotion=0
|
||||
PixelShiftMotionCorrection=5
|
||||
PixelShiftMotionCorrectionMethod=1
|
||||
pixelShiftStddevFactorGreen=5
|
||||
pixelShiftStddevFactorRed=5
|
||||
pixelShiftStddevFactorBlue=5
|
||||
PixelShiftEperIso=0
|
||||
PixelShiftNreadIso=0
|
||||
PixelShiftPrnu=1
|
||||
PixelShiftSigma=1
|
||||
PixelShiftSum=3
|
||||
PixelShiftRedBlueWeight=0.69999999999999996
|
||||
PixelShiftShowMotion=false
|
||||
PixelShiftShowMotionMaskOnly=false
|
||||
pixelShiftAutomatic=true
|
||||
pixelShiftNonGreenHorizontal=false
|
||||
pixelShiftNonGreenVertical=false
|
||||
pixelShiftHoleFill=true
|
||||
pixelShiftMedian=false
|
||||
pixelShiftMedian3=false
|
||||
pixelShiftGreen=true
|
||||
pixelShiftBlur=true
|
||||
pixelShiftSmoothFactor=0.69999999999999996
|
||||
pixelShiftExp0=false
|
||||
pixelShiftLmmse=false
|
||||
pixelShiftEqualBright=false
|
||||
pixelShiftEqualBrightChannel=false
|
||||
pixelShiftNonGreenCross=true
|
||||
pixelShiftNonGreenCross2=false
|
||||
pixelShiftNonGreenAmaze=false
|
||||
|
||||
[RAW X-Trans]
|
||||
Method=3-pass (best)
|
||||
CcSteps=0
|
||||
PreBlackRed=0
|
||||
PreBlackGreen=0
|
||||
PreBlackBlue=0
|
||||
|
||||
[MetaData]
|
||||
Mode=0
|
||||
BIN
Readme Assets/SSH connecting ECDSA.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
Readme Assets/Storage.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
284
Readme.md
Normal file
@@ -0,0 +1,284 @@
|
||||
# U2FDevice
|
||||
|
||||
[TOC]
|
||||
|
||||
# Required materials
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
# OS Install
|
||||
|
||||
## Getting the image
|
||||
|
||||
Go [here](https://www.raspberrypi.org/downloads/raspbian/) and download the Raspbian Stretch _Lite_ image.<br />If you download the zip, make sure you extract it.
|
||||
|
||||
## Installing the image
|
||||
|
||||
Once you have the `*.img` file, you must write it to an SD card. <br />For this, I suggest the use of [etcher.io](https://etcher.io/) which works cross-platfrom. Alternatively, use whatever image burner you want.
|
||||
|
||||
## Mounting the SD Card
|
||||
|
||||
After the image burning has completed, most OSs should automatically mount the SD card. We only need access to the `boot` partition initially.
|
||||
|
||||

|
||||
|
||||
## Setting up SSH
|
||||
|
||||
Since this device can be set up without a monitor, we shall. <br />First, we need to enable SSH.
|
||||
1. Open the boot partition - it should look like so: <br />
|
||||
|
||||
2. Create a `ssh` file. Note that this doesn't have any extension. For Linux users, you can open a console in this directory, and `touch ssh` to create the file. This file enables `ssh` on the latest versions of Raspbian. <br />
|
||||
|
||||
3. Edit `config.txt`. Using your preferred editor, add the line `dtoverlay=dwc2` to the end. <br />
|
||||
|
||||
4. Edit `cmdline.txt`. Again, using your preferred editor, between `rootwait` and the next word, insert `modules-load=dwc2,g_ether` leaving only one space after `rootwait` and one before the next word. <br />
|
||||
|
||||
5. Eject the SD card safely. <br />
|
||||
|
||||
6. Insert the SD card into the Raspberry Pi. <br />
|
||||
|
||||
7. Use a known USB micro data cable to connect the Raspberry Pi to a computer.
|
||||
|
||||
* If possible, check this cable can transfer data by connecting another device and attempting to transfer a file.
|
||||
* If possible, use a Linux computer for the next step, one with a graphical network manager.
|
||||
* If possible, use a USB 3 or higher port instead of a USB 2 port. This is because the USB port will supply the entire power for the Raspberry Pi, and some USB 2 ports may not be able to deliver the required power.
|
||||
|
||||
8. Let the Raspberry Pi fully boot up (once the LED stops blinking frequently, it is probably booted). Then you need to configure your network settings.
|
||||
|
||||
* Linux:
|
||||
|
||||
* Use your preferred network manager:
|
||||
|
||||
* Create a new connection profile <br />
|
||||
|
||||
* Set it's type to be 'Wired Ethernet (shared)' if available, else, 'Wired Ethernet'
|
||||
|
||||
* Name it <br />
|
||||
|
||||
* Ensure the method is set to 'Shared to other computers', or similar. <br />
|
||||
|
||||
* Save and connect on the connection not currently used. <br />
|
||||
|
||||
* Check your IP address on this network. <br />
|
||||
|
||||
* This shows that the host computer (Linux) has the IP address `10.42.0.1`
|
||||
|
||||
* Therefore, the Raspberry Pi has an IP address of `10.42.0.*`, where `*` can be any number 2-255.
|
||||
|
||||
* Find the Raspberry Pi's address by using the tool [`nmap`](https://nmap.org/), installable from your preferred package manager.
|
||||
|
||||
`nmap -sn "10.42.0.*"` and look for the IP address which the host doesn't have (i.e. look for the ip address other than 10.42.0.1 in this example).
|
||||
|
||||
For example, when I ran the command, the output was <br />
|
||||
|
||||
so the IP address I am looking for is `10.42.0.172`.
|
||||
|
||||
9. Connecting
|
||||
|
||||
* Linux users
|
||||
* Now finally we can SSH into the Raspberry Pi:
|
||||
|
||||
`ssh pi@RASPBERRY_PI_IP`
|
||||
|
||||
So in my example, the command would be:
|
||||
|
||||
`ssh pi@10.42.0.172`
|
||||
|
||||
* Other OSs
|
||||
|
||||
* For users of windows, see [ssh using PUTTY](https://desertbot.io/blog/headless-pi-zero-ssh-access-over-usb-windows#step-8-install-putty), and for users of OS X, you can simply ssh in using `ssh pi@raspberrypi.local` in a terminal.
|
||||
|
||||
* This should then ask you if you want to continue connecting, displaying the ECDSA key. Type `yes` and hit enter to continue.<br />
|
||||
|
||||
* Then, when the password is asked for, type `raspberry` - the default password in Raspbian.
|
||||
|
||||
10. Then, change your password using `passwd`. Enter `raspberry` as the current password, and a memorable password for the new password.
|
||||
|
||||
## Setting up USB config for multiple drivers simultaneously
|
||||
|
||||
Past this point, do not reboot / power off unless you wish to start all over again.
|
||||
|
||||
1. Edit `/boot/cmdline.txt` by using `sudoedit /boot/cmdline.txt`
|
||||
* Remove the `modules-load=dwc2,g_ether` and ensure there is no trailing space.
|
||||
* Close and save by pressing `ctrl-x`.
|
||||
2. Edit `/etc/modules` by using `sudoedit /etc/modules`
|
||||
* Add `libcomposite` at the end of the file (i.e. not on a line beggining with `#`).
|
||||
|
||||
## Setting up the libcomposite config script
|
||||
|
||||
### Getting Git
|
||||
|
||||
1. Update package list using `sudo apt-get update`
|
||||
2. Get git by running `sudo apt-get install git`
|
||||
|
||||
### Using this respository
|
||||
|
||||
1. Grab the contents of this repository using `git clone https://github.com/Crystalix007/U2FDevice.git`
|
||||
2. Enter the cloned directory by running `cd U2FDevice`
|
||||
3. Install the config script using `sudo install -m755 Scripts/Kernel_HID_Config.sh /usr/bin/Kernel_HID_Config.sh`
|
||||
4. Install the config script startup service by editing `/etc/rc.local`
|
||||
* `sudoedit /etc/rc.local`
|
||||
* Add `/usr/bin/Kernel_HID_Config.sh`, on a new line, before `'exit 0'`
|
||||
5. At this point you are once again free to reboot / shutdown.
|
||||
|
||||
## Setting up udev rules
|
||||
|
||||
For Linux only.
|
||||
|
||||
On most distributions of Linux, devices get automatically managed based upon certain tags they expose to the computer. This program exposes custom tags to uniquely identify it from other U2F keys. However, as a result, the automatic rules do not include it in the list of USB devices to mount as U2F keys.
|
||||
|
||||
On your Linux desktop, run the command `ls /etc/udev/rules.d/`. Look for anything which seems related to U2F. <br />For example, on my computer, I have the rules `/etc/udev/rules.d/70-u2f.rules`. <br />Inside this file, the contents are:
|
||||
|
||||
```
|
||||
# Copyright (C) 2013-2015 Yubico AB
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1, or (at your option)
|
||||
# any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
|
||||
# General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# along with this program; if not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
# this udev file should be used with udev 188 and newer
|
||||
ACTION!="add|change", GOTO="u2f_end"
|
||||
|
||||
# Yubico YubiKey
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0113|0114|0115|0116|0120|0200|0402|0403|0406|0407|0410", TAG+="uaccess"
|
||||
|
||||
# Happlink (formerly Plug-Up) Security KEY
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2581", ATTRS{idProduct}=="f1d0", TAG+="uaccess"
|
||||
|
||||
# Neowave Keydo and Keydo AES
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1e0d", ATTRS{idProduct}=="f1d0|f1ae", TAG+="uaccess"
|
||||
|
||||
# HyperSecu HyperFIDO
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e|2ccf", ATTRS{idProduct}=="0880", TAG+="uaccess"
|
||||
|
||||
# Feitian ePass FIDO
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="096e", ATTRS{idProduct}=="0850|0852|0853|0854|0856|0858|085a|085b", TAG+="uaccess"
|
||||
|
||||
# JaCarta U2F
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="24dc", ATTRS{idProduct}=="0101", TAG+="uaccess"
|
||||
|
||||
# U2F Zero
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="8acf", TAG+="uaccess"
|
||||
|
||||
# VASCO SeccureClick
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1a44", ATTRS{idProduct}=="00bb", TAG+="uaccess"
|
||||
|
||||
# Bluink Key
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="2abe", ATTRS{idProduct}=="1002", TAG+="uaccess"
|
||||
|
||||
# Thetis Key
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1ea8", ATTRS{idProduct}=="f025", TAG+="uaccess"
|
||||
|
||||
# Nitrokey FIDO U2F
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="4287", TAG+="uaccess"
|
||||
|
||||
# Google Titan U2F
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="5026", TAG+="uaccess"
|
||||
|
||||
LABEL="u2f_end"
|
||||
```
|
||||
|
||||
Basically, this file contains the same contents as [Yubico's udev rules](https://github.com/Yubico/libu2f-host/blob/master/70-u2f.rules). <br />
|
||||
If you don't have any rules, download the [raw file](https://raw.githubusercontent.com/Yubico/libu2f-host/master/70-u2f.rules), and copy it to the `/etc/udev/rules.d/` directory. <br />
|
||||
Then, add: <br />
|
||||
```# Rapsberry Pi U2F```<br /> ```KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0400", TAG+="uaccess"``` <br />
|
||||
on lines just before `LABEL="u2f_end"`.
|
||||
|
||||
Then, reload the rules using `sudo udevadm control --reload-rules `
|
||||
|
||||
## Setting up to build
|
||||
|
||||
1. Grab all the submodules using `git submodule update --init --recursive`
|
||||
2. Copy the `cpp-base64` Makefile using `cp Scripts/cpp-base64-Makefile cpp-base64/Makefile`
|
||||
3. Copy the `micro-ecc` Makefile using `cp Scripts/uECC-Makefile micro-ecc/Makefile`
|
||||
4. Make the object file directories using `mkdir obj && mkdir cpp-base64/obj && mkdir micro-ecc/obj`
|
||||
5. Grab the required library using `sudo apt-get install libmbedtls-dev`
|
||||
|
||||
## Build the program
|
||||
|
||||
1. Run `make`
|
||||
|
||||
## Install the program
|
||||
|
||||
1. Run `sudo make install`
|
||||
|
||||
# Warnings
|
||||
|
||||
## To shut down
|
||||
|
||||
This device cannot be powered off without running a command in SSH (for now). If the device has its power interrupted by a sudden poweroff, it is likely there will be corruption which will render all data on the SD card useless.
|
||||
|
||||
So, to power off currently, SSH into the device as shown above, then run the command `sudo poweroff ; exit`
|
||||
|
||||
## Security issues
|
||||
|
||||
This project is intended solely for the use in experimentation of the use of U2F or as a backup for keys. It is _not_ intended for use as a regular day-to-day key for several reasons.
|
||||
|
||||
* Private keys are stored in a freely accessible file (to users of the pi) `/usr/share/U2FDevice/U2F_Priv_Keys.txt`
|
||||
* This program doesn't comply with the specification with regards to user interaction. There is a specific code sent to check for user interaction for registering or authenticating keys. This requirement is ignored by this implementation as there are no pre-existing buttons on the Pi.
|
||||
* Whilst this program is functional, it has the possibility of unintended crashes. I have tested to the limits I require, but you may require additional assurance.
|
||||
* This program's private keys are stored on an SD card. This is an incredibly volatile medium (and yes, regularly I mean that in the computing sense - SD cards regularly do cleanup / maintenance routines that can cause complete corruption if the power is lost suddenly). I would not consider these keys safe under very regular use (infrequent use should be fine though).
|
||||
* This solution is rather unwieldy - it requires a long boot time and must be shutdown (for now) with a command using SSH.
|
||||
|
||||
For these reasons, if you want to use this as a way to backup your other U2F devices against loss, this may be a very valid solution, but please don't rely solely on this solution for U2F security.
|
||||
|
||||
## To improve RNG (improve crypto security)
|
||||
|
||||
1. Install `rng-tools` with `sudo apt-get install rng-tools`
|
||||
|
||||
## To change the Attestation certificate
|
||||
|
||||
This may be highly advisable, or inadvisable - I am currently unsure. <br />All registration requests use this private key, so likely advisable. <br/>However, you can be uniquely identified by having a unique attestation certificate.
|
||||
|
||||
See the `Readme.AttestationCertificateGeneration.txt`
|
||||
|
||||
# Running the program
|
||||
|
||||
## To run
|
||||
|
||||
Run `sudo systemctl start U2FDevice.service`
|
||||
|
||||
At this point, the program should be tested using U2F demo websites. For example, [Yubico's U2F demo](https://demo.yubico.com/u2f?tab=register), or (appspot's U2F demo)[https://crxjs-dot-u2fdemo.appspot.com/]. First register the device, then test authentication.
|
||||
|
||||
If the program doesn't work on these - don't use as a backup device.
|
||||
|
||||
## To run automatically at boot
|
||||
|
||||
Once the program runs successfully, you can enable automatic startup at boot.
|
||||
|
||||
Run `sudo systmectl enable U2FDevice.service`
|
||||
|
||||
## Debug files
|
||||
|
||||
For those of you wishing to dig around in the actual protocol work, these are the files used by the application to log the activity.
|
||||
|
||||
The documents used for raw communication contain just that - the raw data sent to and from the device. <br />To view this data, I would recommend using `od` . For example, `cat /tmp/comdev.txt | od -tx1 -Anone -v` in order to print out the bytes sent from the Raspberry Pi to the PC in hexadecimal form.
|
||||
|
||||
The documents used for packets show the higher-level structures used in the U2F protocol. The first level above the data sent in USB frames is the `U2F-HID` protocol. The most recent specification for these packets is available [here](https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-hid-protocol-v1.2-ps-20170411.html) (as of 12/07/2018). This level details mainly how the PC performs the setup for talking to the device.
|
||||
|
||||
The next level above that is the actual `U2F` protocol. The most recent specification for these messages is available [here](https://fidoalliance.org/specs/fido-u2f-v1.2-ps-20170411/fido-u2f-raw-message-formats-v1.2-ps-20170411.html) (as of 12/07/2018). This level details how registration and authentication actually occurs.
|
||||
|
||||
* __Raw communication__
|
||||
* /tmp/comdev.txt
|
||||
* /tmp/comhost.txt
|
||||
|
||||
* __Packets__
|
||||
* /tmp/devPackets.html
|
||||
* /tmp/devAPDU.html
|
||||
* /tmp/hostPackets.html
|
||||
* /tmp/hostAPDU.html
|
||||
46
Readme.txt
@@ -1,46 +0,0 @@
|
||||
To make HID work
|
||||
|
||||
sudo install -m755 Scripts/Kernel_HID_Config.sh /usr/bin/Kernel_HID_Config.sh
|
||||
sudoedit /etc/rc.local # Add '/usr/bin/Kernel_HID_Config.sh' on a new line before 'exit 0'
|
||||
|
||||
Things to install
|
||||
|
||||
To provide HW RNG facilities
|
||||
|
||||
sudo apt-get install rng-tools
|
||||
|
||||
To provide ECC facilities
|
||||
|
||||
git submodule update --init --recursive
|
||||
cp Scripts/uECC-Makefile micro-ecc/Makefile
|
||||
cp Scripts/cpp-base64-Makefile cpp-base64/Makefile
|
||||
|
||||
To change the Attestation certificate, see the Attestation readme
|
||||
|
||||
To build
|
||||
|
||||
make
|
||||
|
||||
To install
|
||||
|
||||
sudo make install
|
||||
|
||||
To run
|
||||
|
||||
sudo systemctl start U2FDevice.service
|
||||
|
||||
To run automatically at boot
|
||||
|
||||
sudo systmectl enable U2FDevice.service
|
||||
|
||||
Debug files at
|
||||
|
||||
Raw communication
|
||||
/tmp/comdev.txt
|
||||
/tmp/comhost.txt
|
||||
|
||||
Packets
|
||||
/tmp/devPackets.html
|
||||
/tmp/devAPDU.html
|
||||
/tmp/hostPackets.html
|
||||
/tmp/hostAPDU.html
|
||||
@@ -1,5 +1,7 @@
|
||||
[Unit]
|
||||
Description=An implementation of the U2F device protocol for Raspberry Pi 0
|
||||
Requires=rc-local.service
|
||||
After=rc-local.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/U2FDevice
|
||||
|
||||