ytn Posted November 6, 2015 Posted November 6, 2015 Igor, I noticed that your build script automatically parses a URL to determine what the current stable release is for "Next". Since 4.3 is now officially released and has a number of features worth checking out, it would be nice if the build script offered an option to pick from stable vs. mainline. For now I am just manually setting the KernelTag to "4.3", but it would be nice not to have to modify any of the scripts manually and have this be an option you can pick from. Just a suggestion... Thanks.
wildcat_paris Posted November 6, 2015 Posted November 6, 2015 (edited) hi ytn, in configuration.sh just replace "stable" by "mainline" and also comment non relevant patches in patching.sh kernel 4.3.0 compiles ok, working also, but new features as sunxi-ss are not working I get [ 5.097091] sun4i-ss 1c15000.crypto-engine: no reset control found [ 5.098655] sun4i-ss 1c15000.crypto-engine: Die ID 0 [ 5.098672] sun4i-ss 1c15000.crypto-engine: Fail to register md5 [ 5.098947] sun4i-ss: probe of 1c15000.crypto-engine failed with error -22 otherwise the patch to test the sunxi prng doesn't work. Other new features seem to have no effect. Edited November 6, 2015 by wildcat_paris
ytn Posted November 6, 2015 Author Posted November 6, 2015 Hi Wilcat, Thanks for the response. The sunxi-ss has a bug... that's primarily the reason I wanted to test 4.3. I emailed the driver developer about that error. He has submitted a patch to fix that problem... here's a link to the patch request: https://lkml.org/lkml/2015/11/5/91 ​ 1
Igor Posted November 7, 2015 Posted November 7, 2015 Just define a KERNELTAG in a call script and this way you override automatic selection. We can also add a parameter for MAINLINE / STABLE if that is less confusing?
ytn Posted November 7, 2015 Author Posted November 7, 2015 Hi Igor, A command line parameter to compile.sh would be nice e.g. "./compile.sh mainline" if no parameter is passed in, then it could default to stable. That would make things a lot simpler and not require modifying any of the lib files or having to create separate call scripts to define KERNELTAG.
wildcat_paris Posted November 7, 2015 Posted November 7, 2015 ytn, thanks for the patch, you have spared me some time ss seems to work in /proc/crypto Linux version 4.3.0-sunxi (root@server1404) (gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-16ubuntu4) ) #8 SMP Sat Nov 7 16:55:14 CET 2015 name : ecb(des3_ede) driver : ecb-des3-sun4i-ss module : sun4i_ss selftest : passed internal : no driver : cbc-des3-sun4i-ss driver : ecb-des-sun4i-ss driver : cbc-des-sun4i-ss driver : ecb-aes-sun4i-ss driver : cbc-aes-sun4i-ss driver : sha1-sun4i-ss driver : md5-sun4i-ss I am unsure about "just" a ./compile.sh mainline as one need to be careful with patch management & kernel config in Igor's Armbian tools
wildcat_paris Posted November 8, 2015 Posted November 8, 2015 ok testing A20 prng BW is 4MB/s will give results from dieharder later FYIremade a patch for 4.3.0 kernel with last bug fix + http://sunxi.montjoie.ovh/patch for the "prng"including a "huge" .config file for 4.3.0
wildcat_paris Posted November 8, 2015 Posted November 8, 2015 ok testing A20 prng BW is 4MB/s just a quick "diehard" on a 100 MB search "Allwinners" in the table dieharder running currently for 10 hours and pending looks ok (125 GB of /dev/hwrng and running)
wildcat_paris Posted November 9, 2015 Posted November 9, 2015 Partial dieharder testing see attachment
wildcat_paris Posted November 18, 2015 Posted November 18, 2015 it is a decent prng, impossible to assess anything about being a csprng
ytn Posted November 18, 2015 Author Posted November 18, 2015 Thanks for the feedback on the testing. Any plans to test the other stuff like AES, SHA1 etc? it is a decent prng, impossible to assess anything about being a csprng 1
wildcat_paris Posted November 19, 2015 Posted November 19, 2015 ytn, Thanks for the feedback on the testing. Any plans to test the other stuff like AES, SHA1 etc? good question, I need to read soon or later the details of the crypto tests included in the kernel, I only see the following logs (the one with higher priorities for the kernel) gr@bpi:~$ dmesg | grep test [ 0.410187] prandom: seed boundary self test passed [ 0.413319] prandom: 100 self tests passed [ 3.749688] alg: rsa: test failed on vector 4, err=-74 [ 3.770417] alg: No test for 842 (842-generic) [ 3.809805] crc32: self tests passed, processed 225944 bytes in 1094875 nsec [ 3.810947] crc32c: self tests passed, processed 225944 bytes in 555042 nsec [ 3.877363] crc32_combine: 8373 self tests passed [ 3.945251] crc32c_combine: 8373 self tests passed [ 7.586234] xz_dec_test: module loaded [ 7.586260] xz_dec_test: Create a device node with 'mknod xz_dec_test c 248 0' and write .xz files to it. as well as the tests marked as "passed" for sun4i_ss/arm/neon gr@bpi:~$ cat /proc/crypto name : ecb(des3_ede) driver : ecb-des3-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 8 min keysize : 24 max keysize : 24 ivsize : 8 geniv : <default> name : cbc(des3_ede) driver : cbc-des3-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 8 min keysize : 24 max keysize : 24 ivsize : 8 geniv : <default> name : ecb(des) driver : ecb-des-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 8 min keysize : 8 max keysize : 8 ivsize : 0 geniv : <default> name : cbc(des) driver : cbc-des-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 8 min keysize : 8 max keysize : 8 ivsize : 8 geniv : <default> name : ecb(aes) driver : ecb-aes-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : <default> name : cbc(aes) driver : cbc-aes-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : no blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : <default> name : sha1 driver : sha1-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ahash async : no blocksize : 64 digestsize : 20 name : md5 driver : md5-sun4i-ss module : sun4i_ss priority : 300 refcnt : 1 selftest : passed internal : no type : ahash async : no blocksize : 64 digestsize : 16 name : hmac(sha256) driver : hmac(sha256-neon) module : kernel priority : 250 refcnt : 3 selftest : passed internal : no type : shash blocksize : 64 digestsize : 32 name : sha512 driver : sha512-neon module : kernel priority : 300 refcnt : 1 selftest : passed internal : no type : shash blocksize : 128 digestsize : 64 name : sha384 driver : sha384-neon module : kernel priority : 300 refcnt : 1 selftest : passed internal : no type : shash blocksize : 128 digestsize : 48 name : sha512 driver : sha512-arm module : kernel priority : 250 refcnt : 1 selftest : passed internal : no type : shash blocksize : 128 digestsize : 64 name : sha384 driver : sha384-arm module : kernel priority : 250 refcnt : 1 selftest : passed internal : no type : shash blocksize : 128 digestsize : 48 name : sha224 driver : sha224-neon module : kernel priority : 250 refcnt : 1 selftest : passed internal : no type : shash blocksize : 64 digestsize : 28 name : sha256 driver : sha256-neon module : kernel priority : 250 refcnt : 4 selftest : passed internal : no type : shash blocksize : 64 digestsize : 32 name : sha224 driver : sha224-asm module : kernel priority : 150 refcnt : 1 selftest : passed internal : no type : shash blocksize : 64 digestsize : 28 name : sha256 driver : sha256-asm module : kernel priority : 150 refcnt : 1 selftest : passed internal : no type : shash blocksize : 64 digestsize : 32 name : sha1 driver : sha1-neon module : kernel priority : 250 refcnt : 1 selftest : passed internal : no type : shash blocksize : 64 digestsize : 20 name : sha1 driver : sha1-asm module : kernel priority : 150 refcnt : 1 selftest : passed internal : no type : shash blocksize : 64 digestsize : 20 name : xts(aes) driver : xts-aes-neonbs module : kernel priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : yes blocksize : 16 min keysize : 32 max keysize : 64 ivsize : 16 geniv : <default> name : ctr(aes) driver : ctr-aes-neonbs module : kernel priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : yes blocksize : 1 min keysize : 16 max keysize : 32 ivsize : 16 geniv : <default> name : cbc(aes) driver : cbc-aes-neonbs module : kernel priority : 300 refcnt : 1 selftest : passed internal : no type : ablkcipher async : yes blocksize : 16 min keysize : 16 max keysize : 32 ivsize : 16 geniv : <default> name : aes driver : aes-asm module : kernel priority : 200 refcnt : 5 selftest : passed internal : no type : cipher blocksize : 16 min keysize : 16 max keysize : 32
wildcat_paris Posted November 19, 2015 Posted November 19, 2015 I haven't used the user-mode of sunxi-ss Patch applied to cryptodev sun4i-ss implementaton of md5/sha1 is via ahash algorithms. https://lkml.org/lkml/2015/11/17/408
martijn Posted December 10, 2015 Posted December 10, 2015 Im trying to build the mainline kernel instead of the stable branch. In this topic i read that i need to change stable to mainline in configuration.sh, however i can not find where i need to do this. Is it this line: LINUXKERNEL="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git" ? Could someone point me into the right direction ?
Igor Posted December 10, 2015 Posted December 10, 2015 To achieve this in current script is a bit hard but you are welcome to jump into testing branch, where this is possible out of the box. This was also one of the core reasons to rework the script. Use this branch: https://github.com/igorpecovnik/lib -b master Remember to alter branch in this line before start and start from clean dir. https://github.com/igorpecovnik/lib/blob/master/compile.sh#L78 It's a dev branch so please be patient ... and report if you encounter strange behavior.
martijn Posted December 10, 2015 Posted December 10, 2015 To achieve this in current script is a bit hard but you are welcome to jump into testing branch, where this is possible out of the box. This was also one of the core reasons to rework the script. Use this branch: https://github.com/igorpecovnik/lib -b master Remember to alter branch in this line before start and start from clean dir. https://github.com/igorpecovnik/lib/blob/master/compile.sh#L78 It's a dev branch so please be patient ... and report if you encounter strange behavior. Thanks Igor, i will post my progress here.
wildcat_paris Posted January 3, 2016 Posted January 3, 2016 FYI @all also @ytn Corentin Labbe http://sunxi.montjoie.ovh/ He has made a very convenient meta tool for testing "AES, SHA1 etc" https://github.com/montjoie/cryptotest also needed: https://github.com/cryptodev-linux/cryptodev-linux
Recommended Posts