From 65bee722df070f315385518a73d91c73fc16d19b Mon Sep 17 00:00:00 2001 From: GHA Date: Wed, 18 Sep 2024 00:46:15 +0000 Subject: [PATCH] update ebc9984dc7b7341b63b90577d6074c43cbc47ad5 --- .buildinfo | 4 + .nojekyll | 0 _sources/index.md.txt | 11 + _sources/introduction.md.txt | 8 + _sources/protoplaster.md.txt | 62 ++ _sources/readme.md.txt | 258 ++++++ _sources/report.md.txt | 13 + _sources/system_report.md.txt | 7 + _static/dmesg.out | 611 +++++++++++++ .../0053ba6958e79f26751eabb555bd73d0.woff2 | Bin 0 -> 4728 bytes .../029e176ad602329b4434892101db9cf3.woff2 | Bin 0 -> 6044 bytes .../07ff82964967feebb9c96288e0e0df05.woff2 | Bin 0 -> 13588 bytes .../0948409a22b5979aa7e1ec20da9e61f1.woff2 | Bin 0 -> 5604 bytes .../0a0ad0eae50e549ecd713b9ad417f1a1.woff2 | Bin 0 -> 4888 bytes .../0b68e8634c96265eb32a0c769416b5b0.woff2 | Bin 0 -> 5928 bytes .../0d1b73eee266eabb2cff35dfa4ce25a3.woff2 | Bin 0 -> 16812 bytes .../0e1f73c6737cdf273efb4b79504e4c0a.woff2 | Bin 0 -> 13076 bytes .../0e326670106c8eb6a11a8c30734ecfc8.ttf | Bin 0 -> 23124 bytes .../0ec3cc19652785204ea2e322330f0f1b.woff2 | Bin 0 -> 16164 bytes .../0f303f31706d39866cced9dcc17b61fb.woff2 | Bin 0 -> 15764 bytes .../101522bafe9c61c68698ecc784607772.woff2 | Bin 0 -> 9712 bytes .../10b31f4cad9ea78d43449886bfbb88ac.woff2 | Bin 0 -> 11804 bytes .../1181a8e619707033241139715eca64c6.woff2 | Bin 0 -> 9672 bytes .../122802d03aed4bf8cd6a03997a97aca4.woff2 | Bin 0 -> 6020 bytes .../1383417807f7965daaf94e7c497dcddb.woff2 | Bin 0 -> 7704 bytes .../144860ed1e48e186f08997e6388a9c3f.woff2 | Bin 0 -> 1512 bytes .../1488146d8b2e9859d6c90e6c2b48f7ef.woff2 | Bin 0 -> 6340 bytes .../1512b579343c6b61c7523cdd838d8328.ttf | Bin 0 -> 23416 bytes .../1c9cc76fd52238330f0aabac35acd2ca.woff2 | Bin 0 -> 6936 bytes .../1f1481679a64a39f3427547aa1b13f0f.woff2 | Bin 0 -> 5032 bytes .../2096d27efc16cbdd79183bf295c8ebde.ttf | Bin 0 -> 21352 bytes .../20dc200cc43ab904876fb0c1697ebe39.woff2 | Bin 0 -> 1480 bytes .../214adfc289a2f2af8b0008c59ed0c7f2.woff2 | Bin 0 -> 4652 bytes .../21953b998bab09c1f60c599caee56378.woff2 | Bin 0 -> 7696 bytes .../22aadc77cafa07b2db9ed560d0320616.woff2 | Bin 0 -> 13200 bytes .../2325b97b584755067ea4f7f56ee05430.woff2 | Bin 0 -> 8348 bytes .../2550c2e2d8495c3ed2d4d52f824374f1.woff2 | Bin 0 -> 7040 bytes .../255cf41e0317d95e3992683a76ef28a8.woff2 | Bin 0 -> 4976 bytes .../25c52b9af13f0d1b10719f5289e8c803.woff2 | Bin 0 -> 7476 bytes .../2781e9e7c3f369b8fc7965e679b17b60.woff2 | Bin 0 -> 11756 bytes .../28e6b81b1bc1964707edd4179e4268f5.ttf | Bin 0 -> 23416 bytes .../2a8c422bef4a7099e99dbf0e61ed5e49.woff2 | Bin 0 -> 7460 bytes .../2aadfad5aee7ceeaf4eb0924efabe5b4.ttf | Bin 0 -> 21772 bytes .../2c0f74be498d2da814c0a84dd6833f70.woff2 | Bin 0 -> 15092 bytes .../2e10480d4154762bc7c8fbb40877e104.woff2 | Bin 0 -> 5928 bytes .../2ea7a97b7c976b121112a088eb398561.woff2 | Bin 0 -> 7700 bytes .../2f5c32f094829c0278bce28fe2bbe074.ttf | Bin 0 -> 23204 bytes .../2f7c3c315334a99574ee4ceb21af654d.woff2 | Bin 0 -> 7544 bytes .../302b0425bf5ea66f37a822a61d723adc.ttf | Bin 0 -> 25112 bytes .../3177dacffeac1eb4102852811ae4a2c7.woff2 | Bin 0 -> 6236 bytes .../3254c528e2ab56454a9f22191035c5fe.ttf | Bin 0 -> 21356 bytes .../32c8a74ac0816253d69a7cc68a60986d.woff2 | Bin 0 -> 12764 bytes .../33c5d27ca0eaeb12ebe728ae2fc7106d.woff2 | Bin 0 -> 15360 bytes .../36e39c6463ae1c71c71e69c05e593e1b.woff2 | Bin 0 -> 4588 bytes .../3728fbdd191d75bad5b83a838dfe2fc1.woff2 | Bin 0 -> 9840 bytes .../38f3ee1f96b758f95672c632d8759594.ttf | Bin 0 -> 23172 bytes .../392ff374142585f7b886ee1fe66e686e.woff2 | Bin 0 -> 6560 bytes .../3a38c967413f7bce36d3baefc321aade.woff2 | Bin 0 -> 5468 bytes .../3c23eb02de6b34e30f18cfb7167abd81.woff2 | Bin 0 -> 11872 bytes .../3c505383d37d2078648e37868bbd1fad.woff2 | Bin 0 -> 14684 bytes .../3cf78ad3bcd1324e10a4acdc34bfc4a1.woff2 | Bin 0 -> 17552 bytes .../3f1918538864f9681d47a4538d48289c.woff2 | Bin 0 -> 5876 bytes .../4039566f251699c4b421ed1a38a59b24.woff2 | Bin 0 -> 4688 bytes .../4207cbc8cb7bc2cbd0bcce565298cbbc.woff2 | Bin 0 -> 9768 bytes .../43358c04243de546caddd0898dbf0757.woff2 | Bin 0 -> 14004 bytes .../435e4b7f9f250d9d9243d4754799fc96.woff2 | Bin 0 -> 15000 bytes .../437939342255944b82a49f916404c5fc.woff2 | Bin 0 -> 6516 bytes .../455c2c1af0a2bf20047a1864d7d7c174.woff2 | Bin 0 -> 7120 bytes .../47aa3bfad6cb9e2d63abdd58f4e6ce4f.woff2 | Bin 0 -> 9576 bytes .../495d38d4b9741e8aa4204002414069e2.woff2 | Bin 0 -> 9628 bytes .../4c815fdc869f885520f7c8eae6730edf.woff2 | Bin 0 -> 16608 bytes .../4ec57f2a80b91090971b83970230ca09.woff2 | Bin 0 -> 5548 bytes .../4f17f22fc6bff4f3333ccf7ed7126e6d.woff2 | Bin 0 -> 1464 bytes .../4f93c2808e3b69e525c118074e5de31f.woff2 | Bin 0 -> 14184 bytes .../50aacf068f685be0dd903a91d5bab7d8.woff2 | Bin 0 -> 1508 bytes .../51f3f41805329fb8341beb56ded833ea.woff2 | Bin 0 -> 5468 bytes .../52f28cb4d065b4adfa78df4f9559c639.woff2 | Bin 0 -> 7392 bytes .../555ceea3a65ffbbecf8b7e6d04966c7f.woff2 | Bin 0 -> 14128 bytes .../5989ef3a21d7f252337ab3326f78bde7.woff2 | Bin 0 -> 4780 bytes .../5b6377da4c959db6d4b22738a27f1bee.woff2 | Bin 0 -> 1432 bytes .../5ce47d5195e59af38114d0b70217baf2.woff2 | Bin 0 -> 14024 bytes .../5d7ff31ac7bf945e8d61878f8a941239.woff2 | Bin 0 -> 1460 bytes .../5dc0e4b14e903ba7f45c581df7402b3f.woff2 | Bin 0 -> 14072 bytes .../60eb682678bbea5e8ad71f66f2f65536.woff2 | Bin 0 -> 10284 bytes .../63111d307c01b52ffccf7b0319cb7917.woff2 | Bin 0 -> 1540 bytes .../638764dc2513deb09c55fc025f6dd36c.woff2 | Bin 0 -> 9180 bytes .../63f4b74ebf127dbeb033126ea988f54e.woff2 | Bin 0 -> 7520 bytes .../64a6b4e954cf84685cbf8de77eb47344.woff2 | Bin 0 -> 12572 bytes .../661d4b208656c006e7aab58acf778485.woff2 | Bin 0 -> 17336 bytes .../6725a7e91680edd1cdc9ed5c26ac05fd.woff2 | Bin 0 -> 14224 bytes .../6a84eeee6a25e7c9a8a03191007a6720.woff2 | Bin 0 -> 9644 bytes .../6ac1ee292434fac2313c42b0dfb7897c.ttf | Bin 0 -> 23488 bytes .../6ad3f6bbe6220cc476a0d3c731d3fb04.ttf | Bin 0 -> 23672 bytes .../6be97ca17228a69c406231d89c003194.woff2 | Bin 0 -> 17032 bytes .../6de03a64aa8100032abc6e836b3ed803.ttf | Bin 0 -> 23520 bytes .../6deb20301c65a96db17c433ad0cf8158.woff2 | Bin 0 -> 10640 bytes .../6f8d857c5a8545e67de6b60aa0fe5c33.woff2 | Bin 0 -> 12740 bytes .../713780d8b30bda5583052ea847cdcb4f.woff2 | Bin 0 -> 7016 bytes .../71e06579279fba7436d58a1c49288909.ttf | Bin 0 -> 25364 bytes .../765bd4a97597a4d7781193793477a6cd.ttf | Bin 0 -> 25224 bytes .../76945c7494c20515bb45d1dedab8f706.woff2 | Bin 0 -> 10428 bytes .../76da333ab59c6d625cabfb0768f82b4a.woff2 | Bin 0 -> 1464 bytes .../770518db51bed1e082feecc532cfcbf8.woff2 | Bin 0 -> 7404 bytes .../77b24796a3d4ab521f66765651875338.woff2 | Bin 0 -> 5560 bytes .../77ff81100e5a1db3d925f713660700ad.woff2 | Bin 0 -> 4748 bytes .../78a9265759e7b861a1639a36f4c01d04.woff2 | Bin 0 -> 13860 bytes .../7af61b2367eba2b1852e837c46a75696.woff2 | Bin 0 -> 12848 bytes .../7b63598dcc2a26583b82594bd0e36d5b.woff2 | Bin 0 -> 5760 bytes .../7b8c2179b6b778308d2ff39bdb82e926.woff2 | Bin 0 -> 6012 bytes .../7e262106f82cc52663e403f5b73795bb.woff2 | Bin 0 -> 15752 bytes .../7f1c829b0c90fd664a03bb714a74f7d3.woff2 | Bin 0 -> 11800 bytes .../7fa86b886bee5d6ab420a8e89b9f3052.ttf | Bin 0 -> 23724 bytes .../8007dfe835cfb201b8caaa9651098588.woff2 | Bin 0 -> 1428 bytes .../83614c36460a4a9734968789cb535de7.woff2 | Bin 0 -> 5020 bytes .../84e959dd07f302392f0ffd86f87db888.ttf | Bin 0 -> 21452 bytes .../85a41b80c5fdc14e3dc48636a30d87dd.woff2 | Bin 0 -> 5884 bytes .../870e5928dd14fcfe0ce9386107666774.woff2 | Bin 0 -> 6040 bytes .../8898c4b754d5d96c1a5e1b1d54100554.woff2 | Bin 0 -> 6404 bytes .../89b4f174a5a728d2d8c85b87990c9ab4.ttf | Bin 0 -> 23420 bytes .../8a8dca39f24b52e89e6fd6dcd8b6dd32.woff2 | Bin 0 -> 7476 bytes .../8aa562790559d61dd5178a88a296d70f.ttf | Bin 0 -> 23252 bytes .../8c3798e37724f71bc0c63c44a5307413.woff2 | Bin 0 -> 7012 bytes .../8c49ed8b472d38d3985ec9bbbccea601.ttf | Bin 0 -> 21560 bytes .../8e48cf20cf9f9e5feb7197c79028132b.woff2 | Bin 0 -> 14688 bytes .../9095d663e4d450059bcc2260bb75cd62.woff2 | Bin 0 -> 4696 bytes .../90ebb29b5cffa197b184773983ba7e91.woff2 | Bin 0 -> 13188 bytes .../93b6c99d936df38895a0d95e3ffea2fd.woff2 | Bin 0 -> 9556 bytes .../9582ced8a675bf267cc7ac392a86413e.woff2 | Bin 0 -> 12704 bytes .../99be4d68845d66c27c7f7d3a48687b66.woff2 | Bin 0 -> 7616 bytes .../99cf36e763be9cce7b4c59b91841af58.woff2 | Bin 0 -> 8280 bytes .../9a9bf2d91ebbb1b96eab8eb0b0514bcc.woff2 | Bin 0 -> 4896 bytes .../9bcbc88b33b2efc2aee821b831499f1c.woff2 | Bin 0 -> 8320 bytes .../9c9be791a58af8a04c611ca1d13f51c6.woff2 | Bin 0 -> 5088 bytes .../9fdb12ceee3a402d3a54afe354552459.woff2 | Bin 0 -> 9700 bytes .../a6933e678530b263486fa7b185a449ca.woff2 | Bin 0 -> 10292 bytes .../a6caf7b9888eb0c382948c1ca5e8bebb.woff2 | Bin 0 -> 16676 bytes .../a70ff2592da5e3453943f727633aff54.woff2 | Bin 0 -> 6344 bytes .../aa28d99c7db60ad23f96a5c317615c42.woff2 | Bin 0 -> 13696 bytes .../aab05142e0e2dadf7df633e061e612ad.woff2 | Bin 0 -> 14136 bytes .../ab03beb9091fa15ce4e783199e076bc6.woff2 | Bin 0 -> 8300 bytes .../ac848474638236e67a64bc654fb18de0.ttf | Bin 0 -> 21464 bytes .../acaac043ca238f0e56e61864456777fa.woff2 | Bin 0 -> 12620 bytes .../aeed0e51b0bac7c89e5c7e6cf086d7e0.woff2 | Bin 0 -> 14968 bytes .../b019538234514166ec7665359d097403.woff2 | Bin 0 -> 15920 bytes .../b076e86301cbee8c5c9aef51863a9c0a.woff2 | Bin 0 -> 11796 bytes .../b19ac4e57f2a56639eebd1c35319e5a7.woff2 | Bin 0 -> 17060 bytes .../b4d3c40a77fd9e35a881a79077957055.woff2 | Bin 0 -> 14172 bytes .../b4e42731e8d667ae87c3450c345754ae.woff2 | Bin 0 -> 5996 bytes .../b57a5ada789f195d5d42f4073a6cf313.woff2 | Bin 0 -> 9960 bytes .../b5b4146d87e5d22d0a4e0d04f3ee5626.woff2 | Bin 0 -> 1512 bytes .../b7ef2cd1159a8cbfd271ff2abe07f237.woff2 | Bin 0 -> 15344 bytes .../b93199bb6f964f190f4da04ecdbaf5a4.woff2 | Bin 0 -> 15076 bytes .../bb8007225d94a099cddbade7ea904667.woff2 | Bin 0 -> 17508 bytes .../bc67bba106323289ea3eda0826de1912.ttf | Bin 0 -> 25404 bytes .../bcd47c2f3649cfcaa86a08fb741255d6.woff2 | Bin 0 -> 13944 bytes .../bd0efe13f0d9d591b337ddc7f289f494.woff2 | Bin 0 -> 15204 bytes .../bd51fb0ca67e64c809ffcf7e1370f969.woff2 | Bin 0 -> 8420 bytes .../bdbb6b52604c2451fdcba9cdfd44f4e1.woff2 | Bin 0 -> 5972 bytes .../bf2ad3287f13eb7076cccb516ec2986f.ttf | Bin 0 -> 23456 bytes .../bfd1a0c9c783e84595589f33e1828a57.woff2 | Bin 0 -> 12832 bytes .../c13b34dd5b6a35b309944b61c91b2ace.woff2 | Bin 0 -> 8408 bytes .../c22066c14662d6c80415ae04c5dd9d51.woff2 | Bin 0 -> 14780 bytes .../c28a41f656599f6694528b5463c6a445.woff2 | Bin 0 -> 12980 bytes .../c6dc61b627bbc5af9130518297bd4f17.ttf | Bin 0 -> 23720 bytes .../c8a9fd4eab4e83382cc66fde70911b41.woff2 | Bin 0 -> 10076 bytes .../ca7eea0cf248d6e8442c01074765bd33.woff2 | Bin 0 -> 5388 bytes .../cadfb311297a9362b07fab73934b432a.ttf | Bin 0 -> 25380 bytes .../cbfd26d5bcf084ee407a0b2b7599e84b.woff2 | Bin 0 -> 9524 bytes .../ccdebed88064e470c15f37c432922e57.woff2 | Bin 0 -> 16024 bytes .../cce2217cc8323fe49789adefb3596291.woff2 | Bin 0 -> 12980 bytes .../cd3d1f17e048e2116f438bd7157baccf.woff2 | Bin 0 -> 9504 bytes .../d07f561ba87d93460742b060727d9e0d.woff2 | Bin 0 -> 10276 bytes .../d368cf5bed7856dbafa2af36b51acb9c.woff2 | Bin 0 -> 1484 bytes .../d422317033deb87342a5e56c7be67458.ttf | Bin 0 -> 25444 bytes .../d6f9cdf1a40893111566fcdee3bbe5a9.woff2 | Bin 0 -> 14060 bytes .../d98f35e926c11f3d5c0c8e3205d43907.ttf | Bin 0 -> 25360 bytes .../d9e6a498dac7e9e91f6e0b4f8930eba0.woff2 | Bin 0 -> 10532 bytes .../da6cd48e6dad1888fccc91735e7522f7.woff2 | Bin 0 -> 10652 bytes .../daf12b5f1889502004bba85ad71f9fa4.woff2 | Bin 0 -> 7540 bytes .../daf51ab540602b2d0b87646621637bac.woff2 | Bin 0 -> 7112 bytes .../db0424fb67fb52e7e538490240cc7fb9.woff2 | Bin 0 -> 17368 bytes .../dc25cbf4baaf778bd8ae78fbc0e79479.woff2 | Bin 0 -> 14052 bytes .../dd719f1662079ce6a61260f9af972379.woff2 | Bin 0 -> 9876 bytes .../de018865c95896bb57265fc97c48ebd7.woff2 | Bin 0 -> 8108 bytes .../e33716333704ab19fdf9989e072ad49a.woff2 | Bin 0 -> 5928 bytes .../e56cc9fb5272752b78f144b4be43175d.woff2 | Bin 0 -> 7608 bytes .../e704ef18719c08839bc99a32437ef0f8.woff2 | Bin 0 -> 16700 bytes .../e99627cd27de169d23ece4573006af2a.woff2 | Bin 0 -> 15304 bytes .../ef8f0236a7e8b46bc9d642ecf4ab0cb7.woff2 | Bin 0 -> 1500 bytes .../f154d62b4879af7a22895af7a4ef03f0.woff2 | Bin 0 -> 10276 bytes .../f17ee050ada0453f3bd07bc466c2dde2.woff2 | Bin 0 -> 10564 bytes .../f265cee675c0e5b2d6ab263d0edcc754.woff2 | Bin 0 -> 14856 bytes .../f2f69e8cd15fdd15a4244c95ec8a8514.woff2 | Bin 0 -> 10344 bytes .../f534242dea2255c25b9d05c2371986e3.woff2 | Bin 0 -> 6380 bytes .../f53f3b5a15d717b6d21d7885285e90ed.woff2 | Bin 0 -> 12864 bytes .../f55dac651a40fce74a5cf5728d9f8ffc.woff2 | Bin 0 -> 9784 bytes .../f5aebdfea35d1e7656ef4acc5db1f243.woff2 | Bin 0 -> 15860 bytes .../f5f971e9640a9eb86ef553a7e7e999c7.woff2 | Bin 0 -> 6048 bytes .../f6734f8177112c0839b961f96d813fcb.woff2 | Bin 0 -> 15744 bytes .../f75911313e1c7802c23345ab57e754d8.woff2 | Bin 0 -> 15740 bytes .../fb17f56622e45dd4ecee00bb5c63cd2b.woff2 | Bin 0 -> 4580 bytes .../fb1aaa90783b8cb9375265abeb91b153.woff2 | Bin 0 -> 15336 bytes .../fc66f942651a9fe1a598770d3d896529.woff2 | Bin 0 -> 11824 bytes _static/ip.out | 22 + _static/language_data.js | 199 +++++ ..._immaterial_theme.1b5b7a2d5891aec19.min.js | 27 + ...immaterial_theme.af531f03affe68837.min.css | 4 + _static/static/logo.svg | 54 ++ _static/static/summary_downtriangle.svg | 3 + _static/static/summary_x_backslash.svg | 3 + _static/static/summary_x_slash.svg | 3 + _static/style.css | 251 ++++++ _static/system_report_summary.html | 263 ++++++ _static/uname.out | 1 + _static/white.svg | 54 ++ genindex.html | 408 +++++++++ index.html | 450 ++++++++++ introduction.html | 455 ++++++++++ objects.inv | 6 + protoplaster--docs-example.pdf | Bin 0 -> 188868 bytes protoplaster.html | 542 ++++++++++++ readme.html | 825 ++++++++++++++++++ report.html | 527 +++++++++++ searchindex.js | 1 + system_report.html | 467 ++++++++++ 225 files changed, 5539 insertions(+) create mode 100644 .buildinfo create mode 100644 .nojekyll create mode 100644 _sources/index.md.txt create mode 100644 _sources/introduction.md.txt create mode 100644 _sources/protoplaster.md.txt create mode 100644 _sources/readme.md.txt create mode 100644 _sources/report.md.txt create mode 100644 _sources/system_report.md.txt create mode 100644 _static/dmesg.out create mode 100644 _static/fonts/0053ba6958e79f26751eabb555bd73d0.woff2 create mode 100644 _static/fonts/029e176ad602329b4434892101db9cf3.woff2 create mode 100644 _static/fonts/07ff82964967feebb9c96288e0e0df05.woff2 create mode 100644 _static/fonts/0948409a22b5979aa7e1ec20da9e61f1.woff2 create mode 100644 _static/fonts/0a0ad0eae50e549ecd713b9ad417f1a1.woff2 create mode 100644 _static/fonts/0b68e8634c96265eb32a0c769416b5b0.woff2 create mode 100644 _static/fonts/0d1b73eee266eabb2cff35dfa4ce25a3.woff2 create mode 100644 _static/fonts/0e1f73c6737cdf273efb4b79504e4c0a.woff2 create mode 100644 _static/fonts/0e326670106c8eb6a11a8c30734ecfc8.ttf create mode 100644 _static/fonts/0ec3cc19652785204ea2e322330f0f1b.woff2 create mode 100644 _static/fonts/0f303f31706d39866cced9dcc17b61fb.woff2 create mode 100644 _static/fonts/101522bafe9c61c68698ecc784607772.woff2 create mode 100644 _static/fonts/10b31f4cad9ea78d43449886bfbb88ac.woff2 create mode 100644 _static/fonts/1181a8e619707033241139715eca64c6.woff2 create mode 100644 _static/fonts/122802d03aed4bf8cd6a03997a97aca4.woff2 create mode 100644 _static/fonts/1383417807f7965daaf94e7c497dcddb.woff2 create mode 100644 _static/fonts/144860ed1e48e186f08997e6388a9c3f.woff2 create mode 100644 _static/fonts/1488146d8b2e9859d6c90e6c2b48f7ef.woff2 create mode 100644 _static/fonts/1512b579343c6b61c7523cdd838d8328.ttf create mode 100644 _static/fonts/1c9cc76fd52238330f0aabac35acd2ca.woff2 create mode 100644 _static/fonts/1f1481679a64a39f3427547aa1b13f0f.woff2 create mode 100644 _static/fonts/2096d27efc16cbdd79183bf295c8ebde.ttf create mode 100644 _static/fonts/20dc200cc43ab904876fb0c1697ebe39.woff2 create mode 100644 _static/fonts/214adfc289a2f2af8b0008c59ed0c7f2.woff2 create mode 100644 _static/fonts/21953b998bab09c1f60c599caee56378.woff2 create mode 100644 _static/fonts/22aadc77cafa07b2db9ed560d0320616.woff2 create mode 100644 _static/fonts/2325b97b584755067ea4f7f56ee05430.woff2 create mode 100644 _static/fonts/2550c2e2d8495c3ed2d4d52f824374f1.woff2 create mode 100644 _static/fonts/255cf41e0317d95e3992683a76ef28a8.woff2 create mode 100644 _static/fonts/25c52b9af13f0d1b10719f5289e8c803.woff2 create mode 100644 _static/fonts/2781e9e7c3f369b8fc7965e679b17b60.woff2 create mode 100644 _static/fonts/28e6b81b1bc1964707edd4179e4268f5.ttf create mode 100644 _static/fonts/2a8c422bef4a7099e99dbf0e61ed5e49.woff2 create mode 100644 _static/fonts/2aadfad5aee7ceeaf4eb0924efabe5b4.ttf create mode 100644 _static/fonts/2c0f74be498d2da814c0a84dd6833f70.woff2 create mode 100644 _static/fonts/2e10480d4154762bc7c8fbb40877e104.woff2 create mode 100644 _static/fonts/2ea7a97b7c976b121112a088eb398561.woff2 create mode 100644 _static/fonts/2f5c32f094829c0278bce28fe2bbe074.ttf create mode 100644 _static/fonts/2f7c3c315334a99574ee4ceb21af654d.woff2 create mode 100644 _static/fonts/302b0425bf5ea66f37a822a61d723adc.ttf create mode 100644 _static/fonts/3177dacffeac1eb4102852811ae4a2c7.woff2 create mode 100644 _static/fonts/3254c528e2ab56454a9f22191035c5fe.ttf create mode 100644 _static/fonts/32c8a74ac0816253d69a7cc68a60986d.woff2 create mode 100644 _static/fonts/33c5d27ca0eaeb12ebe728ae2fc7106d.woff2 create mode 100644 _static/fonts/36e39c6463ae1c71c71e69c05e593e1b.woff2 create mode 100644 _static/fonts/3728fbdd191d75bad5b83a838dfe2fc1.woff2 create mode 100644 _static/fonts/38f3ee1f96b758f95672c632d8759594.ttf create mode 100644 _static/fonts/392ff374142585f7b886ee1fe66e686e.woff2 create mode 100644 _static/fonts/3a38c967413f7bce36d3baefc321aade.woff2 create mode 100644 _static/fonts/3c23eb02de6b34e30f18cfb7167abd81.woff2 create mode 100644 _static/fonts/3c505383d37d2078648e37868bbd1fad.woff2 create mode 100644 _static/fonts/3cf78ad3bcd1324e10a4acdc34bfc4a1.woff2 create mode 100644 _static/fonts/3f1918538864f9681d47a4538d48289c.woff2 create mode 100644 _static/fonts/4039566f251699c4b421ed1a38a59b24.woff2 create mode 100644 _static/fonts/4207cbc8cb7bc2cbd0bcce565298cbbc.woff2 create mode 100644 _static/fonts/43358c04243de546caddd0898dbf0757.woff2 create mode 100644 _static/fonts/435e4b7f9f250d9d9243d4754799fc96.woff2 create mode 100644 _static/fonts/437939342255944b82a49f916404c5fc.woff2 create mode 100644 _static/fonts/455c2c1af0a2bf20047a1864d7d7c174.woff2 create mode 100644 _static/fonts/47aa3bfad6cb9e2d63abdd58f4e6ce4f.woff2 create mode 100644 _static/fonts/495d38d4b9741e8aa4204002414069e2.woff2 create mode 100644 _static/fonts/4c815fdc869f885520f7c8eae6730edf.woff2 create mode 100644 _static/fonts/4ec57f2a80b91090971b83970230ca09.woff2 create mode 100644 _static/fonts/4f17f22fc6bff4f3333ccf7ed7126e6d.woff2 create mode 100644 _static/fonts/4f93c2808e3b69e525c118074e5de31f.woff2 create mode 100644 _static/fonts/50aacf068f685be0dd903a91d5bab7d8.woff2 create mode 100644 _static/fonts/51f3f41805329fb8341beb56ded833ea.woff2 create mode 100644 _static/fonts/52f28cb4d065b4adfa78df4f9559c639.woff2 create mode 100644 _static/fonts/555ceea3a65ffbbecf8b7e6d04966c7f.woff2 create mode 100644 _static/fonts/5989ef3a21d7f252337ab3326f78bde7.woff2 create mode 100644 _static/fonts/5b6377da4c959db6d4b22738a27f1bee.woff2 create mode 100644 _static/fonts/5ce47d5195e59af38114d0b70217baf2.woff2 create mode 100644 _static/fonts/5d7ff31ac7bf945e8d61878f8a941239.woff2 create mode 100644 _static/fonts/5dc0e4b14e903ba7f45c581df7402b3f.woff2 create mode 100644 _static/fonts/60eb682678bbea5e8ad71f66f2f65536.woff2 create mode 100644 _static/fonts/63111d307c01b52ffccf7b0319cb7917.woff2 create mode 100644 _static/fonts/638764dc2513deb09c55fc025f6dd36c.woff2 create mode 100644 _static/fonts/63f4b74ebf127dbeb033126ea988f54e.woff2 create mode 100644 _static/fonts/64a6b4e954cf84685cbf8de77eb47344.woff2 create mode 100644 _static/fonts/661d4b208656c006e7aab58acf778485.woff2 create mode 100644 _static/fonts/6725a7e91680edd1cdc9ed5c26ac05fd.woff2 create mode 100644 _static/fonts/6a84eeee6a25e7c9a8a03191007a6720.woff2 create mode 100644 _static/fonts/6ac1ee292434fac2313c42b0dfb7897c.ttf create mode 100644 _static/fonts/6ad3f6bbe6220cc476a0d3c731d3fb04.ttf create mode 100644 _static/fonts/6be97ca17228a69c406231d89c003194.woff2 create mode 100644 _static/fonts/6de03a64aa8100032abc6e836b3ed803.ttf create mode 100644 _static/fonts/6deb20301c65a96db17c433ad0cf8158.woff2 create mode 100644 _static/fonts/6f8d857c5a8545e67de6b60aa0fe5c33.woff2 create mode 100644 _static/fonts/713780d8b30bda5583052ea847cdcb4f.woff2 create mode 100644 _static/fonts/71e06579279fba7436d58a1c49288909.ttf create mode 100644 _static/fonts/765bd4a97597a4d7781193793477a6cd.ttf create mode 100644 _static/fonts/76945c7494c20515bb45d1dedab8f706.woff2 create mode 100644 _static/fonts/76da333ab59c6d625cabfb0768f82b4a.woff2 create mode 100644 _static/fonts/770518db51bed1e082feecc532cfcbf8.woff2 create mode 100644 _static/fonts/77b24796a3d4ab521f66765651875338.woff2 create mode 100644 _static/fonts/77ff81100e5a1db3d925f713660700ad.woff2 create mode 100644 _static/fonts/78a9265759e7b861a1639a36f4c01d04.woff2 create mode 100644 _static/fonts/7af61b2367eba2b1852e837c46a75696.woff2 create mode 100644 _static/fonts/7b63598dcc2a26583b82594bd0e36d5b.woff2 create mode 100644 _static/fonts/7b8c2179b6b778308d2ff39bdb82e926.woff2 create mode 100644 _static/fonts/7e262106f82cc52663e403f5b73795bb.woff2 create mode 100644 _static/fonts/7f1c829b0c90fd664a03bb714a74f7d3.woff2 create mode 100644 _static/fonts/7fa86b886bee5d6ab420a8e89b9f3052.ttf create mode 100644 _static/fonts/8007dfe835cfb201b8caaa9651098588.woff2 create mode 100644 _static/fonts/83614c36460a4a9734968789cb535de7.woff2 create mode 100644 _static/fonts/84e959dd07f302392f0ffd86f87db888.ttf create mode 100644 _static/fonts/85a41b80c5fdc14e3dc48636a30d87dd.woff2 create mode 100644 _static/fonts/870e5928dd14fcfe0ce9386107666774.woff2 create mode 100644 _static/fonts/8898c4b754d5d96c1a5e1b1d54100554.woff2 create mode 100644 _static/fonts/89b4f174a5a728d2d8c85b87990c9ab4.ttf create mode 100644 _static/fonts/8a8dca39f24b52e89e6fd6dcd8b6dd32.woff2 create mode 100644 _static/fonts/8aa562790559d61dd5178a88a296d70f.ttf create mode 100644 _static/fonts/8c3798e37724f71bc0c63c44a5307413.woff2 create mode 100644 _static/fonts/8c49ed8b472d38d3985ec9bbbccea601.ttf create mode 100644 _static/fonts/8e48cf20cf9f9e5feb7197c79028132b.woff2 create mode 100644 _static/fonts/9095d663e4d450059bcc2260bb75cd62.woff2 create mode 100644 _static/fonts/90ebb29b5cffa197b184773983ba7e91.woff2 create mode 100644 _static/fonts/93b6c99d936df38895a0d95e3ffea2fd.woff2 create mode 100644 _static/fonts/9582ced8a675bf267cc7ac392a86413e.woff2 create mode 100644 _static/fonts/99be4d68845d66c27c7f7d3a48687b66.woff2 create mode 100644 _static/fonts/99cf36e763be9cce7b4c59b91841af58.woff2 create mode 100644 _static/fonts/9a9bf2d91ebbb1b96eab8eb0b0514bcc.woff2 create mode 100644 _static/fonts/9bcbc88b33b2efc2aee821b831499f1c.woff2 create mode 100644 _static/fonts/9c9be791a58af8a04c611ca1d13f51c6.woff2 create mode 100644 _static/fonts/9fdb12ceee3a402d3a54afe354552459.woff2 create mode 100644 _static/fonts/a6933e678530b263486fa7b185a449ca.woff2 create mode 100644 _static/fonts/a6caf7b9888eb0c382948c1ca5e8bebb.woff2 create mode 100644 _static/fonts/a70ff2592da5e3453943f727633aff54.woff2 create mode 100644 _static/fonts/aa28d99c7db60ad23f96a5c317615c42.woff2 create mode 100644 _static/fonts/aab05142e0e2dadf7df633e061e612ad.woff2 create mode 100644 _static/fonts/ab03beb9091fa15ce4e783199e076bc6.woff2 create mode 100644 _static/fonts/ac848474638236e67a64bc654fb18de0.ttf create mode 100644 _static/fonts/acaac043ca238f0e56e61864456777fa.woff2 create mode 100644 _static/fonts/aeed0e51b0bac7c89e5c7e6cf086d7e0.woff2 create mode 100644 _static/fonts/b019538234514166ec7665359d097403.woff2 create mode 100644 _static/fonts/b076e86301cbee8c5c9aef51863a9c0a.woff2 create mode 100644 _static/fonts/b19ac4e57f2a56639eebd1c35319e5a7.woff2 create mode 100644 _static/fonts/b4d3c40a77fd9e35a881a79077957055.woff2 create mode 100644 _static/fonts/b4e42731e8d667ae87c3450c345754ae.woff2 create mode 100644 _static/fonts/b57a5ada789f195d5d42f4073a6cf313.woff2 create mode 100644 _static/fonts/b5b4146d87e5d22d0a4e0d04f3ee5626.woff2 create mode 100644 _static/fonts/b7ef2cd1159a8cbfd271ff2abe07f237.woff2 create mode 100644 _static/fonts/b93199bb6f964f190f4da04ecdbaf5a4.woff2 create mode 100644 _static/fonts/bb8007225d94a099cddbade7ea904667.woff2 create mode 100644 _static/fonts/bc67bba106323289ea3eda0826de1912.ttf create mode 100644 _static/fonts/bcd47c2f3649cfcaa86a08fb741255d6.woff2 create mode 100644 _static/fonts/bd0efe13f0d9d591b337ddc7f289f494.woff2 create mode 100644 _static/fonts/bd51fb0ca67e64c809ffcf7e1370f969.woff2 create mode 100644 _static/fonts/bdbb6b52604c2451fdcba9cdfd44f4e1.woff2 create mode 100644 _static/fonts/bf2ad3287f13eb7076cccb516ec2986f.ttf create mode 100644 _static/fonts/bfd1a0c9c783e84595589f33e1828a57.woff2 create mode 100644 _static/fonts/c13b34dd5b6a35b309944b61c91b2ace.woff2 create mode 100644 _static/fonts/c22066c14662d6c80415ae04c5dd9d51.woff2 create mode 100644 _static/fonts/c28a41f656599f6694528b5463c6a445.woff2 create mode 100644 _static/fonts/c6dc61b627bbc5af9130518297bd4f17.ttf create mode 100644 _static/fonts/c8a9fd4eab4e83382cc66fde70911b41.woff2 create mode 100644 _static/fonts/ca7eea0cf248d6e8442c01074765bd33.woff2 create mode 100644 _static/fonts/cadfb311297a9362b07fab73934b432a.ttf create mode 100644 _static/fonts/cbfd26d5bcf084ee407a0b2b7599e84b.woff2 create mode 100644 _static/fonts/ccdebed88064e470c15f37c432922e57.woff2 create mode 100644 _static/fonts/cce2217cc8323fe49789adefb3596291.woff2 create mode 100644 _static/fonts/cd3d1f17e048e2116f438bd7157baccf.woff2 create mode 100644 _static/fonts/d07f561ba87d93460742b060727d9e0d.woff2 create mode 100644 _static/fonts/d368cf5bed7856dbafa2af36b51acb9c.woff2 create mode 100644 _static/fonts/d422317033deb87342a5e56c7be67458.ttf create mode 100644 _static/fonts/d6f9cdf1a40893111566fcdee3bbe5a9.woff2 create mode 100644 _static/fonts/d98f35e926c11f3d5c0c8e3205d43907.ttf create mode 100644 _static/fonts/d9e6a498dac7e9e91f6e0b4f8930eba0.woff2 create mode 100644 _static/fonts/da6cd48e6dad1888fccc91735e7522f7.woff2 create mode 100644 _static/fonts/daf12b5f1889502004bba85ad71f9fa4.woff2 create mode 100644 _static/fonts/daf51ab540602b2d0b87646621637bac.woff2 create mode 100644 _static/fonts/db0424fb67fb52e7e538490240cc7fb9.woff2 create mode 100644 _static/fonts/dc25cbf4baaf778bd8ae78fbc0e79479.woff2 create mode 100644 _static/fonts/dd719f1662079ce6a61260f9af972379.woff2 create mode 100644 _static/fonts/de018865c95896bb57265fc97c48ebd7.woff2 create mode 100644 _static/fonts/e33716333704ab19fdf9989e072ad49a.woff2 create mode 100644 _static/fonts/e56cc9fb5272752b78f144b4be43175d.woff2 create mode 100644 _static/fonts/e704ef18719c08839bc99a32437ef0f8.woff2 create mode 100644 _static/fonts/e99627cd27de169d23ece4573006af2a.woff2 create mode 100644 _static/fonts/ef8f0236a7e8b46bc9d642ecf4ab0cb7.woff2 create mode 100644 _static/fonts/f154d62b4879af7a22895af7a4ef03f0.woff2 create mode 100644 _static/fonts/f17ee050ada0453f3bd07bc466c2dde2.woff2 create mode 100644 _static/fonts/f265cee675c0e5b2d6ab263d0edcc754.woff2 create mode 100644 _static/fonts/f2f69e8cd15fdd15a4244c95ec8a8514.woff2 create mode 100644 _static/fonts/f534242dea2255c25b9d05c2371986e3.woff2 create mode 100644 _static/fonts/f53f3b5a15d717b6d21d7885285e90ed.woff2 create mode 100644 _static/fonts/f55dac651a40fce74a5cf5728d9f8ffc.woff2 create mode 100644 _static/fonts/f5aebdfea35d1e7656ef4acc5db1f243.woff2 create mode 100644 _static/fonts/f5f971e9640a9eb86ef553a7e7e999c7.woff2 create mode 100644 _static/fonts/f6734f8177112c0839b961f96d813fcb.woff2 create mode 100644 _static/fonts/f75911313e1c7802c23345ab57e754d8.woff2 create mode 100644 _static/fonts/fb17f56622e45dd4ecee00bb5c63cd2b.woff2 create mode 100644 _static/fonts/fb1aaa90783b8cb9375265abeb91b153.woff2 create mode 100644 _static/fonts/fc66f942651a9fe1a598770d3d896529.woff2 create mode 100644 _static/ip.out create mode 100644 _static/language_data.js create mode 100644 _static/sphinx_immaterial_theme.1b5b7a2d5891aec19.min.js create mode 100644 _static/sphinx_immaterial_theme.af531f03affe68837.min.css create mode 100644 _static/static/logo.svg create mode 100644 _static/static/summary_downtriangle.svg create mode 100644 _static/static/summary_x_backslash.svg create mode 100644 _static/static/summary_x_slash.svg create mode 100644 _static/style.css create mode 100644 _static/system_report_summary.html create mode 100644 _static/uname.out create mode 100644 _static/white.svg create mode 100644 genindex.html create mode 100644 index.html create mode 100644 introduction.html create mode 100644 objects.inv create mode 100644 protoplaster--docs-example.pdf create mode 100644 protoplaster.html create mode 100644 readme.html create mode 100644 report.html create mode 100644 searchindex.js create mode 100644 system_report.html diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..4536331 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. +config: bdc9fe5f9af8f48270429efb5837bccc +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/_sources/index.md.txt b/_sources/index.md.txt new file mode 100644 index 0000000..80322af --- /dev/null +++ b/_sources/index.md.txt @@ -0,0 +1,11 @@ +# {{project}} + +```{toctree} +:maxdepth: 2 + +introduction +readme +protoplaster +report +system_report +``` diff --git a/_sources/introduction.md.txt b/_sources/introduction.md.txt new file mode 100644 index 0000000..5bc41c1 --- /dev/null +++ b/_sources/introduction.md.txt @@ -0,0 +1,8 @@ +# Introduction + +This documentation serves as an example of how individual projects documentation can look like. + +The second chapter contains information from the README file. + +The last chapter is generated from the sample ``test.yml`` file which can be found in the README. +Its purpose is to demonstrate the documentation generated to describe test procedures used in a project. diff --git a/_sources/protoplaster.md.txt b/_sources/protoplaster.md.txt new file mode 100644 index 0000000..28994a2 --- /dev/null +++ b/_sources/protoplaster.md.txt @@ -0,0 +1,62 @@ +Protoplaster tests +================== + +```{note} + This page has been autogenerated from a Protoplaster tests definition file. +``` + +To perform hardware/BSP tests and open-source [Protoplaster](https://github.com/antmicro/protoplaster) framework has been used. + +Running Protoplaster runs the tests described in the following chapters: + +I2C devices tests +----------------- + +This module provides tests dedicated to i2c devices on specific buses: + +* /dev/i2c-0: + + * detection test for *Sensor name* on address: `0x3c` + + +* /dev/i2c-0: + + * detection test for *I2C-bus multiplexer* on address: `0x70` + + + +Camera sensor tests +------------------- + +This module provides tests dedicated to V4L devices on specific video node: + +* /dev/video0: + + * try to capture frame + + * check if the camera sensor name is `vivid` + + * check if the camera sensor driver name is `vivid` + + +* /dev/video2: + + * try to capture frameand store it to `frame.raw` file + + * check if the camera sensor name is `vivid` + + * check if the camera sensor driver name is `vivid` + + + +GPIOs tests +----------- + +This module provides tests dedicated to GPIO on specific pin number + +* /sys/class/gpio/gpio20: + + * write `1` and read back to confirm + + + diff --git a/_sources/readme.md.txt b/_sources/readme.md.txt new file mode 100644 index 0000000..dffcab0 --- /dev/null +++ b/_sources/readme.md.txt @@ -0,0 +1,258 @@ +# Protoplaster + +Copyright (c) 2022-2024 [Antmicro](https://www.antmicro.com) + +An automated framework for platform testing (Hardware and BSPs). + +Currently includes tests for: + +* I2C +* GPIO +* Camera +* FPGA + +## Installation +```bash +pip install git+https://github.com/antmicro/protoplaster.git +``` + +## Usage + +``` +usage: protoplaster [-h] [-t TEST_FILE] [-g GROUP] [--list-groups] [-o OUTPUT] [--csv CSV] [--csv-columns CSV_COLUMNS] [--generate-docs] [-c CUSTOM_TESTS] + +options: + -h, --help show this help message and exit + -t TEST_FILE, --test-file TEST_FILE + Path to the test yaml description + -g GROUP, --group GROUP + Group to execute + --list-groups List possible groups to execute + -o OUTPUT, --output OUTPUT + A junit-xml style report of the tests results + --csv CSV Generate a CSV report of the tests results + --csv-columns CSV_COLUMNS + Comma-separated list of columns to be included in generated CSV + --generate-docs Generate documentation + -c CUSTOM_TESTS, --custom-tests CUSTOM_TESTS + Path to the custom tests sources + --report-output REPORT_OUTPUT + Proplaster report archive + --system-report-config SYSTEM_REPORT_CONFIG + Path to the system report yaml config file + --sudo Run as sudo +``` + +Protoplaster expects a yaml file describing tests as an input. The yaml file should have a structure specified as follows: + + +```yaml +base: # A group specifier + i2c: # A module specifier + - bus: 0 # An interface specifier + devices: # Multiple instances of devices can be defined in one module + - name: "Sensor name" + address: 0x3c # The given device parameters determine which tests will be run for the module + - bus: 0 + devices: + - name: "I2C-bus multiplexer" + address: 0x70 + camera: + - device: "/dev/video0" + camera_name: "vivid" + driver_name: "vivid" + - device: "/dev/video2" + camera_name: "vivid" + driver_name: "vivid" + save_file: "frame.raw" +additional: + gpio: + - number: 20 + value: 1 +``` + +### Groups +In the YAML file, you can define different groups of tests to run them for different use cases. +In the YAML file example, there are two groups defined: base and additional. +Protoplaster, when run without a defined group, will execute every test in each group. +When the group is specified with the parameter `-g` or `--group`, only the tests in the specified group are going to be run. +You can also list existing groups in the YAML file, simply run `protoplaster --list-groups test.yaml`. + +## Base modules parameters +Each base module requires parameters for test initialization. +These parameters describe the tests and are passed to the test class as its attributes. + +### I2C +Required parameters: + +* `bus` - i2c bus to be checked +* `name` - name of device to be detected +* `address` - address of the device to be detected on the indicated bus + +### GPIO +Required parameters: + +* `number` - GPIO pin number +* `value` - value written to that pin + +Optional parameters: + +* `gpio_name` - name of the sysfs GPIO interface after exporting + +### Cameras +Required parameters: + +* `device` - path to the camera device (eg. /dev/video0) +* `camera_name` - expected camera name +* `driver_name` - expected driver name + +Optional parameters: + +* `save_file` - a path which the tested frame is saved to (the frame is saved only if this parameter is present) + +### FPGA +Required parameters: + +* `sysfs_interface` - path to a sysfs interface for flashing the bitstream to the FPGA +* `bitstream_path` - path to a test bitstream that is going to be flashed + +## Writing additional modules +Apart from base modules available in Protoplaster, you can provide your own extended modules. +The module should contain a `test.py` file in the root path. +This file should contain a test class that is decorated with `ModuleName("")` from the `protoplaster.conf.module` package. +This decorator tells Protoplaster what the name of the module is. +With this information, Protoplaster can correctly initialize the test parameters. +The test class should contain a `name()` method. Its return value is used for the `device_name` field in CSV output. + +The description of the external module should be added to the YAML file as for other tests. +By default, external modules are expected in the `/etc/protoplaster` directory. +If you want to store them in a different path, use the `--custom-tests` argument to set your own path. +Individual tests run by Protoplaster should be present in the main class in the `test.py` file. +The class's name should start with `Test`, and every test's name in this class should also start with `test`. +An example of an extended module test: + +```python +from protoplaster.conf.module import ModuleName + +@ModuleName("additional_camera") +class TestAdditionalCamera: + """ + {% macro TestAdditionalCamera(prefix) -%} + Additional camera tests + ----------------------- + {% do prefix.append('') %} + This module provides tests dedicated to camera sensors on specific video node: + {%- endmacro %} + """ + + def test_exists(self): + """ + {% macro test_exists(device) -%} + check if the path exists + {%- endmacro %} + """ + assert self.path == "/dev/video0" +``` + +And a YAML definition: + +```yaml +--- +base: + additional_camera: + - path: "/dev/video0" + - path: "/dev/video1" +``` + +## Protoplaster test report +Protoplaster provides `protoplaster-test-report`, a tool to convert test CSV output into a HTML or Markdown table. +``` +usage: protoplaster-test-report [-h] [-i INPUT_FILE] -t {md,html} [-o OUTPUT_FILE] + +options: + -h, --help show this help message and exit + -i INPUT_FILE, --input-file INPUT_FILE + Path to the csv file + -t {md,html}, --type {md,html} + Output type + -o OUTPUT_FILE, --output-file OUTPUT_FILE + Path to the output file +``` + + +## System report +Protoplaster provides `protoplaster-system-report`, a tool for obtaining information about system state and configuration. +It executes a list of commands and saves their outputs. +The outputs are stored in a single zip archive along with an HTML summary. + +### Usage +``` +usage: protoplaster-system-report [-h] [-o OUTPUT_FILE] [-c CONFIG] [--sudo] + +options: + -h, --help show this help message and exit + -o OUTPUT_FILE, --output-file OUTPUT_FILE + Path to the output file + -c CONFIG, --config CONFIG + Path to the YAML config file + --sudo Run as sudo +``` + +The YAML config contains a list of actions to perform. A single action is described as follows: + +```yaml +report_item_name: + run: script + summary: + - title: summary_title + run: summary_script + output: script_output_file + superuser: required | preferred + on-fail: ... +``` + +* `run` - command to be run +* `summary` – a list of summary generators, each one with fields: + * `title` – summary title + * `run` – command that generates the summary. This command gets the output of the original command as stdin. This field is optional; if not specified, the output is placed in the report as-is. +* `output` - output file for the output of `run`. +* `superuser` – optional, should be specified if the command requires elevated privileges to run. Possible values: + * `required` – `protoplaster-system-report` will terminate if the privilege requirement is not met + * `preferred` – if the privilege requirement is not met, a warning will be issued and this particular item won't be included in the report +* `on-fail` – optional description of an item to run in case of failure. It can be used to run an alternative command when the original one fails or is not available. + +Example config file: + +```yaml +uname: + run: uname -a + summary: + - title: os info + run: cat + output: uname.out +dmesg: + run: dmesg + summary: + - title: usb + run: grep usb + - title: v4l + run: grep v4l + output: dmesg.out + superuser: required +ip: + run: ip a + summary: + - title: Network interfaces state + run: python3 $PROTOPLASTER_SCRIPTS/generate_ip_table.py "$(cat)" + output: ip.out + on-fail: + run: ifconfig -a + summary: + - title: Network interfaces state + run: python3 $PROTOPLASTER_SCRIPTS/generate_ifconfig_table.py "$(cat)" + output: ifconfig.out +``` + +### Running as root +By default, `sudo` doesn't preserve `PATH`. +To run `protoplaster-system-report` installed by a non-root user as root, invoke `protoplaster-system-report --sudo` \ No newline at end of file diff --git a/_sources/report.md.txt b/_sources/report.md.txt new file mode 100644 index 0000000..3794286 --- /dev/null +++ b/_sources/report.md.txt @@ -0,0 +1,13 @@ +Protoplaster tests report +================== +|device name|test name|module|duration|message|status| +|---|---|---|---|---|---| +|/dev/i2c-0|addresses|test.py::TestI2C::test_addresses|8ms 312us||passed| +|/dev/i2c-0|addresses|test.py::TestI2C::test_addresses|7ms 568us||passed| +|/dev/video0|frame|test.py::TestCamera::test_frame|232ms 828us||passed| +|/dev/video0|device_name|test.py::TestCamera::test_device_name|206ms 530us||passed| +|/dev/video0|driver_name|test.py::TestCamera::test_driver_name|221ms 554us||passed| +|/dev/video2|frame|test.py::TestCamera::test_frame|242ms 196us||passed| +|/dev/video2|device_name|test.py::TestCamera::test_device_name|206ms 929us||passed| +|/dev/video2|driver_name|test.py::TestCamera::test_driver_name|204ms 900us||passed| +|/sys/class/gpio/20|read_write|test.py::TestGPIO::test_read_write|12ms 353us||passed| \ No newline at end of file diff --git a/_sources/system_report.md.txt b/_sources/system_report.md.txt new file mode 100644 index 0000000..6ca1c0e --- /dev/null +++ b/_sources/system_report.md.txt @@ -0,0 +1,7 @@ +Protoplaster system report +================== +Protoplaster provides `protoplaster-system-report`, a tool to obtain information about system state and configuration. It executes a list of commands and saves their outputs. The outputs are stored in a single zip archive together with an HTML summary. An example summary can be found here. + +The following config was used to generate the example: +```{include} system-report-example.yml +``` \ No newline at end of file diff --git a/_static/dmesg.out b/_static/dmesg.out new file mode 100644 index 0000000..6b4446b --- /dev/null +++ b/_static/dmesg.out @@ -0,0 +1,611 @@ +[ 0.000000] Linux version 6.8.0-1014-azure (buildd@lcy02-amd64-095) (x86_64-linux-gnu-gcc-11 (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #16~22.04.1-Ubuntu SMP Thu Aug 15 21:31:41 UTC 2024 (Ubuntu 6.8.0-1014.16~22.04.1-azure 6.8.12) +[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-1014-azure root=PARTUUID=e5e7317c-e2db-4382-b3a5-5525c8ec42b3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0 nvme_core.io_timeout=240 panic=-1 +[ 0.000000] KERNEL supported cpus: +[ 0.000000] Intel GenuineIntel +[ 0.000000] AMD AuthenticAMD +[ 0.000000] Hygon HygonGenuine +[ 0.000000] Centaur CentaurHauls +[ 0.000000] zhaoxin Shanghai +[ 0.000000] BIOS-provided physical RAM map: +[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable +[ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved +[ 0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved +[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000003ffeffff] usable +[ 0.000000] BIOS-e820: [mem 0x000000003fff0000-0x000000003fffefff] ACPI data +[ 0.000000] BIOS-e820: [mem 0x000000003ffff000-0x000000003fffffff] ACPI NVS +[ 0.000000] BIOS-e820: [mem 0x0000000100000000-0x00000004bfffffff] usable +[ 0.000000] printk: legacy bootconsole [earlyser0] enabled +[ 0.000000] NX (Execute Disable) protection: active +[ 0.000000] APIC: Static calls initialized +[ 0.000000] SMBIOS 2.3 present. +[ 0.000000] DMI: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS 090008 12/07/2018 +[ 0.000000] Hypervisor detected: Microsoft Hyper-V +[ 0.000000] Hyper-V: privilege flags low 0xae7f, high 0x388030, hints 0x140c2c, misc 0xc0bed7b2 +[ 0.000000] Hyper-V: Host Build 10.0.20348.2867-2-0 +[ 0.000000] Hyper-V: Nested features: 0x4a0000 +[ 0.000000] Hyper-V: LAPIC Timer Frequency: 0x30d40 +[ 0.000000] Hyper-V: Using hypercall for remote TLB flush +[ 0.000000] clocksource: hyperv_clocksource_tsc_page: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns +[ 0.000000] clocksource: hyperv_clocksource_msr: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns +[ 0.000000] tsc: Detected 2445.426 MHz processor +[ 0.000432] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved +[ 0.000436] e820: remove [mem 0x000a0000-0x000fffff] usable +[ 0.000440] last_pfn = 0x4c0000 max_arch_pfn = 0x400000000 +[ 0.003048] MTRR map: 3 entries (1 fixed + 2 variable; max 17), built from 8 variable MTRRs +[ 0.007292] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT +[ 0.010259] e820: update [mem 0x40000000-0xffffffff] usable ==> reserved +[ 0.011671] last_pfn = 0x3fff0 max_arch_pfn = 0x400000000 +[ 0.017646] found SMP MP-table at [mem 0x000ff780-0x000ff78f] +[ 0.020128] Using GB pages for direct mapping +[ 0.022313] ACPI: Early table checksum verification disabled +[ 0.024918] ACPI: RSDP 0x00000000000F5C00 000014 (v00 ACPIAM) +[ 0.027509] ACPI: RSDT 0x000000003FFF0000 000040 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.031437] ACPI: FACP 0x000000003FFF0200 000081 (v02 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.035139] ACPI: DSDT 0x000000003FFF1D24 003CD5 (v01 MSFTVM MSFTVM02 00000002 INTL 02002026) +[ 0.039808] ACPI: FACS 0x000000003FFFF000 000040 +[ 0.042012] ACPI: WAET 0x000000003FFF1A80 000028 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.045893] ACPI: SLIC 0x000000003FFF1AC0 000176 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.049648] ACPI: OEM0 0x000000003FFF1CC0 000064 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.055726] ACPI: SRAT 0x000000003FFF0800 000160 (v02 VRTUAL MICROSFT 00000001 MSFT 00000001) +[ 0.059445] ACPI: APIC 0x000000003FFF0300 000072 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.063481] ACPI: OEMB 0x000000003FFFF040 000064 (v01 VRTUAL MICROSFT 12001807 MSFT 00000097) +[ 0.067171] ACPI: Reserving FACP table memory at [mem 0x3fff0200-0x3fff0280] +[ 0.070625] ACPI: Reserving DSDT table memory at [mem 0x3fff1d24-0x3fff59f8] +[ 0.074017] ACPI: Reserving FACS table memory at [mem 0x3ffff000-0x3ffff03f] +[ 0.077075] ACPI: Reserving WAET table memory at [mem 0x3fff1a80-0x3fff1aa7] +[ 0.080120] ACPI: Reserving SLIC table memory at [mem 0x3fff1ac0-0x3fff1c35] +[ 0.083213] ACPI: Reserving OEM0 table memory at [mem 0x3fff1cc0-0x3fff1d23] +[ 0.086489] ACPI: Reserving SRAT table memory at [mem 0x3fff0800-0x3fff095f] +[ 0.089601] ACPI: Reserving APIC table memory at [mem 0x3fff0300-0x3fff0371] +[ 0.092698] ACPI: Reserving OEMB table memory at [mem 0x3ffff040-0x3ffff0a3] +[ 0.096250] SRAT: PXM 0 -> APIC 0x00 -> Node 0 +[ 0.098502] SRAT: PXM 0 -> APIC 0x01 -> Node 0 +[ 0.100701] SRAT: PXM 0 -> APIC 0x02 -> Node 0 +[ 0.103310] SRAT: PXM 0 -> APIC 0x03 -> Node 0 +[ 0.105510] ACPI: SRAT: Node 0 PXM 0 [mem 0x00000000-0x3fffffff] hotplug +[ 0.108760] ACPI: SRAT: Node 0 PXM 0 [mem 0x100000000-0x4bfffffff] hotplug +[ 0.112089] ACPI: SRAT: Node 0 PXM 0 [mem 0x4c0000000-0xfbfffffff] hotplug +[ 0.115463] ACPI: SRAT: Node 0 PXM 0 [mem 0x1000000000-0xfcffffffff] hotplug +[ 0.119420] ACPI: SRAT: Node 0 PXM 0 [mem 0x10000000000-0x1ffffffffff] hotplug +[ 0.122787] ACPI: SRAT: Node 0 PXM 0 [mem 0x20000000000-0x3ffffffffff] hotplug +[ 0.127509] NUMA: Node 0 [mem 0x00000000-0x3fffffff] + [mem 0x100000000-0x4bfffffff] -> [mem 0x00000000-0x4bfffffff] +[ 0.132954] NODE_DATA(0) allocated [mem 0x4bffd5000-0x4bfffffff] +[ 0.136185] Zone ranges: +[ 0.137371] DMA [mem 0x0000000000001000-0x0000000000ffffff] +[ 0.140407] DMA32 [mem 0x0000000001000000-0x00000000ffffffff] +[ 0.143479] Normal [mem 0x0000000100000000-0x00000004bfffffff] +[ 0.146434] Device empty +[ 0.147740] Movable zone start for each node +[ 0.150274] Early memory node ranges +[ 0.152589] node 0: [mem 0x0000000000001000-0x000000000009efff] +[ 0.155594] node 0: [mem 0x0000000000100000-0x000000003ffeffff] +[ 0.158507] node 0: [mem 0x0000000100000000-0x00000004bfffffff] +[ 0.161438] Initmem setup node 0 [mem 0x0000000000001000-0x00000004bfffffff] +[ 0.164565] On node 0, zone DMA: 1 pages in unavailable ranges +[ 0.170615] On node 0, zone DMA: 97 pages in unavailable ranges +[ 0.188286] On node 0, zone Normal: 16 pages in unavailable ranges +[ 0.193038] ACPI: PM-Timer IO Port: 0x408 +[ 0.194951] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1]) +[ 0.197994] IOAPIC[0]: apic_id 0, version 17, address 0xfec00000, GSI 0-23 +[ 0.201147] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) +[ 0.204111] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) +[ 0.207038] ACPI: Using ACPI (MADT) for SMP configuration information +[ 0.209912] smpboot: Allowing 4 CPUs, 0 hotplug CPUs +[ 0.212393] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff] +[ 0.216126] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x0009ffff] +[ 0.219420] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000dffff] +[ 0.222914] PM: hibernation: Registered nosave memory: [mem 0x000e0000-0x000fffff] +[ 0.226219] PM: hibernation: Registered nosave memory: [mem 0x3fff0000-0x3fffefff] +[ 0.229497] PM: hibernation: Registered nosave memory: [mem 0x3ffff000-0x3fffffff] +[ 0.233333] PM: hibernation: Registered nosave memory: [mem 0x40000000-0xffffffff] +[ 0.236649] [mem 0x40000000-0xffffffff] available for PCI devices +[ 0.239283] Booting paravirtualized kernel on Hyper-V +[ 0.241457] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns +[ 0.246352] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:4 nr_cpu_ids:4 nr_node_ids:1 +[ 0.250502] percpu: Embedded 84 pages/cpu s221184 r8192 d114688 u524288 +[ 0.253794] pcpu-alloc: s221184 r8192 d114688 u524288 alloc=1*2097152 +[ 0.253797] pcpu-alloc: [0] 0 1 2 3 +[ 0.253808] Hyper-V: PV spinlocks enabled +[ 0.255863] PV qspinlock hash table entries: 256 (order: 0, 4096 bytes, linear) +[ 0.259525] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.8.0-1014-azure root=PARTUUID=e5e7317c-e2db-4382-b3a5-5525c8ec42b3 ro console=tty1 console=ttyS0 earlyprintk=ttyS0 nvme_core.io_timeout=240 panic=-1 +[ 0.269165] Unknown kernel command line parameters "BOOT_IMAGE=/boot/vmlinuz-6.8.0-1014-azure", will be passed to user space. +[ 0.274493] random: crng init done +[ 0.276936] Dentry cache hash table entries: 2097152 (order: 12, 16777216 bytes, linear) +[ 0.284804] Inode-cache hash table entries: 1048576 (order: 11, 8388608 bytes, linear) +[ 0.288713] Fallback order for Node 0: 0 +[ 0.288716] Built 1 zonelists, mobility grouping on. Total pages: 4128496 +[ 0.294516] Policy zone: Normal +[ 0.296082] mem auto-init: stack:off, heap alloc:on, heap free:off +[ 0.298850] software IO TLB: area num 4. +[ 0.327849] Memory: 16367920K/16776760K available (20480K kernel code, 4347K rwdata, 13508K rodata, 4744K init, 8192K bss, 408580K reserved, 0K cma-reserved) +[ 0.335768] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 +[ 0.340750] ftrace: allocating 56740 entries in 222 pages +[ 0.355435] ftrace: allocated 222 pages with 6 groups +[ 0.357886] rcu: Hierarchical RCU implementation. +[ 0.360137] rcu: RCU restricting CPUs from NR_CPUS=8192 to nr_cpu_ids=4. +[ 0.363293] Rude variant of Tasks RCU enabled. +[ 0.365306] Tracing variant of Tasks RCU enabled. +[ 0.367455] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. +[ 0.370944] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 +[ 0.376375] NR_IRQS: 524544, nr_irqs: 456, preallocated irqs: 16 +[ 0.379442] rcu: srcu_init: Setting srcu_struct sizes based on contention. +[ 0.386700] Console: colour VGA+ 80x25 +[ 0.388456] printk: legacy console [tty1] enabled +[ 0.447128] printk: legacy console [ttyS0] enabled +[ 0.451898] printk: legacy bootconsole [earlyser0] disabled +[ 0.458230] ACPI: Core revision 20230628 +[ 0.460559] APIC: Switch to symmetric I/O mode setup +[ 0.466255] Hyper-V: enabling crash_kexec_post_notifiers +[ 0.469831] Hyper-V: Using IPI hypercalls +[ 0.472838] APIC: send_IPI() replaced with hv_send_ipi() +[ 0.475950] APIC: send_IPI_mask() replaced with hv_send_ipi_mask() +[ 0.479189] APIC: send_IPI_mask_allbutself() replaced with hv_send_ipi_mask_allbutself() +[ 0.483292] APIC: send_IPI_allbutself() replaced with hv_send_ipi_allbutself() +[ 0.487838] APIC: send_IPI_all() replaced with hv_send_ipi_all() +[ 0.491480] APIC: send_IPI_self() replaced with hv_send_ipi_self() +[ 0.495077] Hyper-V: Using enlightened APIC (xapic mode) +[ 0.495086] APIC: eoi() replaced with hv_apic_eoi_write() +[ 0.501644] APIC: read() replaced with hv_apic_read() +[ 0.507801] APIC: write() replaced with hv_apic_write() +[ 0.510872] APIC: icr_write() replaced with hv_apic_icr_write() +[ 0.514322] APIC: icr_read() replaced with hv_apic_icr_read() +[ 0.529764] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 +[ 0.533391] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x233fd7ba1b0, max_idle_ns: 440795295779 ns +[ 0.539209] Calibrating delay loop (skipped), value calculated using timer frequency.. 4890.85 BogoMIPS (lpj=2445426) +[ 0.542242] x86/cpu: User Mode Instruction Prevention (UMIP) activated +[ 0.543616] Last level iTLB entries: 4KB 512, 2MB 512, 4MB 256 +[ 0.545206] Last level dTLB entries: 4KB 2048, 2MB 2048, 4MB 1024, 1GB 0 +[ 0.546620] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization +[ 0.547684] Spectre V2 : Mitigation: Retpolines +[ 0.549206] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch +[ 0.550604] Spectre V2 : Spectre v2 / SpectreRSB : Filling RSB on VMEXIT +[ 0.552206] Speculative Store Bypass: Vulnerable +[ 0.553596] Speculative Return Stack Overflow: IBPB-extending microcode not applied! +[ 0.555206] Speculative Return Stack Overflow: WARNING: See https://kernel.org/doc/html/latest/admin-guide/hw-vuln/srso.html for mitigation options. +[ 0.555207] Speculative Return Stack Overflow: Vulnerable: Safe RET, no microcode +[ 0.558221] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers' +[ 0.560206] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers' +[ 0.561566] x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers' +[ 0.563206] x86/fpu: Supporting XSAVE feature 0x800: 'Control-flow User registers' +[ 0.565206] x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256 +[ 0.566601] x86/fpu: xstate_offset[11]: 832, xstate_sizes[11]: 16 +[ 0.567620] x86/fpu: Enabled xstate features 0x807, context size is 848 bytes, using 'compacted' format. +[ 0.651822] Freeing SMP alternatives memory: 48K +[ 0.652596] pid_max: default: 32768 minimum: 301 +[ 0.654277] LSM: initializing lsm=lockdown,capability,landlock,yama,apparmor,integrity +[ 0.655648] landlock: Up and running. +[ 0.657207] Yama: becoming mindful. +[ 0.658612] AppArmor: AppArmor initialized +[ 0.659649] Mount-cache hash table entries: 32768 (order: 6, 262144 bytes, linear) +[ 0.660614] Mountpoint-cache hash table entries: 32768 (order: 6, 262144 bytes, linear) +[ 0.679391] smpboot: CPU0: AMD EPYC 7763 64-Core Processor (family: 0x19, model: 0x1, stepping: 0x1) +[ 0.681520] RCU Tasks Rude: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1. +[ 0.682669] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1. +[ 0.683761] Performance Events: PMU not available due to virtualization, using software events only. +[ 0.684864] signal: max sigframe size: 1776 +[ 0.685781] rcu: Hierarchical SRCU implementation. +[ 0.686613] rcu: Max phase no-delay instances is 400. +[ 0.688994] NMI watchdog: Perf NMI watchdog permanently disabled +[ 0.689686] smp: Bringing up secondary CPUs ... +[ 0.690818] smpboot: x86: Booting SMP configuration: +[ 0.691800] .... node #0, CPUs: #2 #1 #3 +[ 0.693298] smp: Brought up 1 node, 4 CPUs +[ 0.695609] smpboot: Max logical packages: 1 +[ 0.696660] smpboot: Total of 4 processors activated (19563.40 BogoMIPS) +[ 0.698716] devtmpfs: initialized +[ 0.699683] x86/mm: Memory block size: 128MB +[ 0.703320] ACPI: PM: Registering ACPI NVS region [mem 0x3ffff000-0x3fffffff] (4096 bytes) +[ 0.704822] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns +[ 0.705630] futex hash table entries: 1024 (order: 4, 65536 bytes, linear) +[ 0.706895] pinctrl core: initialized pinctrl subsystem +[ 0.708208] PM: RTC time: 00:20:58, date: 2024-09-18 +[ 0.710184] NET: Registered PF_NETLINK/PF_ROUTE protocol family +[ 0.710938] DMA: preallocated 2048 KiB GFP_KERNEL pool for atomic allocations +[ 0.711993] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations +[ 0.712832] DMA: preallocated 2048 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations +[ 0.713684] audit: initializing netlink subsys (disabled) +[ 0.714685] audit: type=2000 audit(1726618858.181:1): state=initialized audit_enabled=0 res=1 +[ 0.714685] thermal_sys: Registered thermal governor 'fair_share' +[ 0.715694] thermal_sys: Registered thermal governor 'bang_bang' +[ 0.716612] thermal_sys: Registered thermal governor 'step_wise' +[ 0.717638] thermal_sys: Registered thermal governor 'user_space' +[ 0.718865] thermal_sys: Registered thermal governor 'power_allocator' +[ 0.719739] EISA bus registered +[ 0.721681] cpuidle: using governor ladder +[ 0.722618] cpuidle: using governor menu +[ 0.727346] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 +[ 0.729006] PCI: Using configuration type 1 for base access +[ 0.729610] PCI: Using configuration type 1 for extended access +[ 0.730834] mtrr: your CPUs had inconsistent variable MTRR settings +[ 0.731611] mtrr: probably your BIOS does not setup all CPUs. +[ 0.732611] mtrr: corrected configuration. +[ 0.734058] kprobes: kprobe jump-optimization is enabled. All kprobes are optimized if possible. +[ 0.735263] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages +[ 0.741768] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page +[ 0.748794] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages +[ 0.755136] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page +[ 0.766371] ACPI: Added _OSI(Module Device) +[ 0.767687] ACPI: Added _OSI(Processor Device) +[ 0.768739] ACPI: Added _OSI(3.0 _SCP Extensions) +[ 0.769582] ACPI: Added _OSI(Processor Aggregator Device) +[ 0.775402] ACPI: 1 ACPI AML tables successfully acquired and loaded +[ 0.780255] ACPI: _OSC evaluation for CPUs failed, trying _PDC +[ 0.782318] ACPI: Interpreter enabled +[ 0.783676] ACPI: PM: (supports S0 S5) +[ 0.784668] ACPI: Using IOAPIC for interrupt routing +[ 0.786127] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug +[ 0.786641] PCI: Using E820 reservations for host bridge windows +[ 0.788093] ACPI: Enabled 1 GPEs in block 00 to 0F +[ 0.816672] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) +[ 0.817604] acpi PNP0A03:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI HPX-Type3] +[ 0.818832] PCI host bridge to bus 0000:00 +[ 0.819575] pci_bus 0000:00: root bus resource [mem 0xfc0000000-0xfffffffff window] +[ 0.820602] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] +[ 0.821568] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] +[ 0.822573] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] +[ 0.823598] pci_bus 0000:00: root bus resource [mem 0x40000000-0xfffbffff window] +[ 0.824598] pci_bus 0000:00: root bus resource [bus 00-ff] +[ 0.826304] pci 0000:00:00.0: [8086:7192] type 00 class 0x060000 conventional PCI endpoint +[ 0.830651] pci 0000:00:07.0: [8086:7110] type 00 class 0x060100 conventional PCI endpoint +[ 0.834013] pci 0000:00:07.1: [8086:7111] type 00 class 0x010180 conventional PCI endpoint +[ 0.836398] pci 0000:00:07.1: BAR 4 [io 0xffa0-0xffaf] +[ 0.838271] pci 0000:00:07.1: BAR 0 [io 0x01f0-0x01f7]: legacy IDE quirk +[ 0.839603] pci 0000:00:07.1: BAR 1 [io 0x03f6]: legacy IDE quirk +[ 0.840567] pci 0000:00:07.1: BAR 2 [io 0x0170-0x0177]: legacy IDE quirk +[ 0.841651] pci 0000:00:07.1: BAR 3 [io 0x0376]: legacy IDE quirk +[ 0.843164] * Found PM-Timer Bug on the chipset. Due to workarounds for a bug, + * this clock source is slow. Consider trying other clock sources +[ 0.843738] pci 0000:00:07.3: [8086:7113] type 00 class 0x068000 conventional PCI endpoint +[ 0.846689] pci 0000:00:07.3: quirk: [io 0x0400-0x043f] claimed by PIIX4 ACPI +[ 0.848400] pci 0000:00:08.0: [1414:5353] type 00 class 0x030000 conventional PCI endpoint +[ 0.850150] pci 0000:00:08.0: BAR 0 [mem 0xf8000000-0xfbffffff] +[ 0.852394] pci 0000:00:08.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] +[ 0.875445] ACPI: PCI: Interrupt link LNKA configured for IRQ 11 +[ 0.876846] ACPI: PCI: Interrupt link LNKB configured for IRQ 0 +[ 0.877595] ACPI: PCI: Interrupt link LNKB disabled +[ 0.878868] ACPI: PCI: Interrupt link LNKC configured for IRQ 0 +[ 0.879692] ACPI: PCI: Interrupt link LNKC disabled +[ 0.880852] ACPI: PCI: Interrupt link LNKD configured for IRQ 0 +[ 0.881583] ACPI: PCI: Interrupt link LNKD disabled +[ 0.882937] iommu: Default domain type: Translated +[ 0.883597] iommu: DMA domain TLB invalidation policy: lazy mode +[ 0.884823] SCSI subsystem initialized +[ 0.885605] libata version 3.00 loaded. +[ 0.885605] ACPI: bus type USB registered +[ 0.886745] usbcore: registered new interface driver usbfs +[ 0.887601] usbcore: registered new interface driver hub +[ 0.888583] usbcore: registered new device driver usb +[ 0.889593] pps_core: LinuxPPS API ver. 1 registered +[ 0.890568] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti +[ 0.891829] PTP clock support registered +[ 0.892666] EDAC MC: Ver: 3.0.0 +[ 0.894231] hv_vmbus: Vmbus version:5.3 +[ 0.895649] NetLabel: Initializing +[ 0.897575] NetLabel: domain hash size = 128 +[ 0.899617] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO +[ 0.903010] NetLabel: unlabeled traffic allowed by default +[ 0.907233] mctp: management component transport protocol core +[ 0.910612] NET: Registered PF_MCTP protocol family +[ 0.913631] PCI: Using ACPI for IRQ routing +[ 0.915590] PCI: pci_cache_line_size set to 64 bytes +[ 0.915959] e820: reserve RAM buffer [mem 0x0009fc00-0x0009ffff] +[ 0.915962] e820: reserve RAM buffer [mem 0x3fff0000-0x3fffffff] +[ 0.916356] pci 0000:00:08.0: vgaarb: setting as boot VGA device +[ 0.917205] pci 0000:00:08.0: vgaarb: bridge control possible +[ 0.917205] pci 0000:00:08.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none +[ 0.929210] vgaarb: loaded +[ 0.931357] clocksource: Switched to clocksource tsc-early +[ 0.935697] VFS: Disk quotas dquot_6.6.0 +[ 0.938119] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) +[ 0.942043] AppArmor: AppArmor Filesystem Enabled +[ 0.944646] pnp: PnP ACPI init +[ 0.947648] pnp 00:03: [dma 0 disabled] +[ 0.948460] pnp 00:04: [dma 0 disabled] +[ 0.949446] pnp 00:05: [dma 2] +[ 0.949555] system 00:06: [io 0x01e0-0x01ef] has been reserved +[ 0.955283] system 00:06: [io 0x0160-0x016f] has been reserved +[ 0.958478] system 00:06: [io 0x0278-0x027f] has been reserved +[ 0.961785] system 00:06: [io 0x0378-0x037f] has been reserved +[ 0.965199] system 00:06: [io 0x0678-0x067f] has been reserved +[ 0.968767] system 00:06: [io 0x0778-0x077f] has been reserved +[ 0.971880] system 00:06: [io 0x04d0-0x04d1] has been reserved +[ 0.975880] system 00:07: [io 0x0400-0x043f] has been reserved +[ 0.979483] system 00:07: [io 0x0370-0x0371] has been reserved +[ 0.982987] system 00:07: [io 0x0440-0x044f] has been reserved +[ 0.986490] system 00:07: [mem 0xfec00000-0xfec00fff] could not be reserved +[ 0.990271] system 00:07: [mem 0xfee00000-0xfee00fff] has been reserved +[ 0.994902] system 00:08: [mem 0x00000000-0x0009ffff] could not be reserved +[ 0.998825] system 00:08: [mem 0x000c0000-0x000dffff] could not be reserved +[ 1.003282] system 00:08: [mem 0x000e0000-0x000fffff] could not be reserved +[ 1.007160] system 00:08: [mem 0x00100000-0x3fffffff] could not be reserved +[ 1.011250] system 00:08: [mem 0xfffc0000-0xffffffff] has been reserved +[ 1.015069] pnp: PnP ACPI: found 9 devices +[ 1.026040] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns +[ 1.031394] NET: Registered PF_INET protocol family +[ 1.034809] IP idents hash table entries: 262144 (order: 9, 2097152 bytes, linear) +[ 1.056063] tcp_listen_portaddr_hash hash table entries: 8192 (order: 5, 131072 bytes, linear) +[ 1.060689] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear) +[ 1.065131] TCP established hash table entries: 131072 (order: 8, 1048576 bytes, linear) +[ 1.069427] TCP bind hash table entries: 65536 (order: 9, 2097152 bytes, linear) +[ 1.073424] TCP: Hash tables configured (established 131072 bind 65536) +[ 1.076882] MPTCP token hash table entries: 16384 (order: 6, 393216 bytes, linear) +[ 1.081180] UDP hash table entries: 8192 (order: 6, 262144 bytes, linear) +[ 1.084969] UDP-Lite hash table entries: 8192 (order: 6, 262144 bytes, linear) +[ 1.088701] NET: Registered PF_UNIX/PF_LOCAL protocol family +[ 1.091798] NET: Registered PF_XDP protocol family +[ 1.094379] pci_bus 0000:00: resource 4 [mem 0xfc0000000-0xfffffffff window] +[ 1.098085] pci_bus 0000:00: resource 5 [io 0x0000-0x0cf7 window] +[ 1.101216] pci_bus 0000:00: resource 6 [io 0x0d00-0xffff window] +[ 1.104470] pci_bus 0000:00: resource 7 [mem 0x000a0000-0x000bffff window] +[ 1.108183] pci_bus 0000:00: resource 8 [mem 0x40000000-0xfffbffff window] +[ 1.111672] pci 0000:00:00.0: Limiting direct PCI/PCI transfers +[ 1.115863] PCI: CLS 0 bytes, default 64 +[ 1.118383] PCI-DMA: Using software bounce buffering for IO (SWIOTLB) +[ 1.121681] software IO TLB: mapped [mem 0x000000003bff0000-0x000000003fff0000] (64MB) +[ 1.126395] Initialise system trusted keyrings +[ 1.129202] Key type blacklist registered +[ 1.131470] workingset: timestamp_bits=36 max_order=22 bucket_order=0 +[ 1.134800] zbud: loaded +[ 1.136764] squashfs: version 4.0 (2009/01/31) Phillip Lougher +[ 1.139944] fuse: init (API version 7.39) +[ 1.142367] integrity: Platform Keyring initialized +[ 1.146387] integrity: Machine keyring initialized +[ 1.160676] Key type asymmetric registered +[ 1.164649] Asymmetric key parser 'x509' registered +[ 1.167294] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244) +[ 1.171264] io scheduler mq-deadline registered +[ 1.174044] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 +[ 1.177926] hv_vmbus: registering driver hv_pci +[ 1.181074] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 +[ 1.185149] ACPI: button: Power Button [PWRF] +[ 1.188186] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled +[ 1.219193] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A +[ 1.250330] 00:04: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A +[ 1.257163] Linux agpgart interface v0.103 +[ 1.261995] loop: module loaded +[ 1.264313] hv_vmbus: registering driver hv_storvsc +[ 1.267543] ata_piix 0000:00:07.1: version 2.13 +[ 1.267769] ata_piix 0000:00:07.1: Hyper-V Virtual Machine detected, ATA device ignore set +[ 1.267846] scsi host1: storvsc_host_t +[ 1.267881] scsi host0: storvsc_host_t +[ 1.267939] scsi host3: storvsc_host_t +[ 1.268138] scsi 0:0:0:0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 +[ 1.268398] scsi host2: storvsc_host_t +[ 1.269745] sd 0:0:0:0: Attached scsi generic sg0 type 0 +[ 1.269799] sd 0:0:0:0: [sda] 157286400 512-byte logical blocks: (80.5 GB/75.0 GiB) +[ 1.269802] sd 0:0:0:0: [sda] 4096-byte physical blocks +[ 1.269898] sd 0:0:0:0: [sda] Write Protect is off +[ 1.269901] sd 0:0:0:0: [sda] Mode Sense: 0f 00 10 00 +[ 1.269982] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA +[ 1.271808] sda: sda1 sda14 sda15 +[ 1.272013] sd 0:0:0:0: [sda] Attached SCSI disk +[ 1.277276] scsi: waiting for bus probes to complete ... +[ 1.278328] scsi host4: ata_piix +[ 1.278503] scsi host5: ata_piix +[ 1.278556] ata1: PATA max UDMA/33 cmd 0x1f0 ctl 0x3f6 bmdma 0xffa0 irq 14 lpm-pol 0 +[ 1.278559] ata2: PATA max UDMA/33 cmd 0x170 ctl 0x376 bmdma 0xffa8 irq 15 lpm-pol 0 +[ 1.278613] ACPI: bus type drm_connector registered +[ 1.278804] tun: Universal TUN/TAP device driver, 1.6 +[ 1.279462] PPP generic driver version 2.4.2 +[ 1.281771] scsi 1:0:1:0: Direct-Access Msft Virtual Disk 1.0 PQ: 0 ANSI: 5 +[ 1.286178] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f03:PS2M] at 0x60,0x64 irq 1,12 +[ 1.288999] sd 1:0:1:0: Attached scsi generic sg1 type 0 +[ 1.289189] sd 1:0:1:0: [sdb] 157286400 512-byte logical blocks: (80.5 GB/75.0 GiB) +[ 1.289359] sd 1:0:1:0: [sdb] Write Protect is off +[ 1.289364] sd 1:0:1:0: [sdb] Mode Sense: 0f 00 10 00 +[ 1.289466] sd 1:0:1:0: [sdb] Write cache: disabled, read cache: enabled, supports DPO and FUA +[ 1.290285] sdb: sdb1 +[ 1.290360] sd 1:0:1:0: [sdb] Attached SCSI disk +[ 1.295049] serio: i8042 KBD port at 0x60,0x64 irq 1 +[ 1.364673] serio: i8042 AUX port at 0x60,0x64 irq 12 +[ 1.367709] mousedev: PS/2 mouse device common for all mice +[ 1.371227] rtc_cmos 00:00: RTC can wake from S4 +[ 1.376829] rtc_cmos 00:00: registered as rtc0 +[ 1.379586] rtc_cmos 00:00: setting system clock to 2024-09-18T00:20:59 UTC (1726618859) +[ 1.384018] rtc_cmos 00:00: alarms up to one month, 114 bytes nvram +[ 1.389744] device-mapper: core: CONFIG_IMA_DISABLE_HTABLE is disabled. Duplicate IMA measurements will not be recorded in the IMA log. +[ 1.395755] device-mapper: uevent: version 1.0.3 +[ 1.398350] device-mapper: ioctl: 4.48.0-ioctl (2023-03-01) initialised: dm-devel@redhat.com +[ 1.404780] platform eisa.0: Probing EISA bus 0 +[ 1.405463] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1 +[ 1.407055] platform eisa.0: EISA: Cannot allocate resource for mainboard +[ 1.415300] platform eisa.0: Cannot allocate resource for EISA slot 1 +[ 1.418998] platform eisa.0: Cannot allocate resource for EISA slot 2 +[ 1.422300] platform eisa.0: Cannot allocate resource for EISA slot 3 +[ 1.425574] platform eisa.0: Cannot allocate resource for EISA slot 4 +[ 1.428936] platform eisa.0: Cannot allocate resource for EISA slot 5 +[ 1.432453] platform eisa.0: Cannot allocate resource for EISA slot 6 +[ 1.435853] platform eisa.0: Cannot allocate resource for EISA slot 7 +[ 1.439404] platform eisa.0: Cannot allocate resource for EISA slot 8 +[ 1.442875] platform eisa.0: EISA: Detected 0 cards +[ 1.445438] amd_pstate: the _CPC object is not present in SBIOS or ACPI disabled +[ 1.449403] hv_utils: Registering HyperV Utility Driver +[ 1.452166] hv_vmbus: registering driver hv_utils +[ 1.454701] hv_vmbus: registering driver hv_balloon +[ 1.455003] hv_utils: Heartbeat IC version 3.0 +[ 1.457146] drop_monitor: Initializing network drop monitor service +[ 1.459091] hv_utils: Shutdown IC version 3.2 +[ 1.462113] NET: Registered PF_INET6 protocol family +[ 1.463994] hv_utils: TimeSync IC version 4.0 +[ 1.467367] Segment Routing with IPv6 +[ 1.469118] hv_balloon: Using Dynamic Memory protocol version 2.0 +[ 1.470735] In-situ OAM (IOAM) with IPv6 +[ 1.478808] NET: Registered PF_PACKET protocol family +[ 1.481704] Key type dns_resolver registered +[ 1.484423] IPI shorthand broadcast: enabled +[ 1.489738] sched_clock: Marking stable (1339008904, 150096202)->(1824993606, -335888500) +[ 1.494052] registered taskstats version 1 +[ 1.496576] Loading compiled-in X.509 certificates +[ 1.502112] Loaded X.509 cert 'Build time autogenerated kernel key: e11683987e4bc84eee6256a8f49bec5df64447ce' +[ 1.507664] Loaded X.509 cert 'Canonical Ltd. Live Patch Signing: 14df34d1a87cf37625abec039ef2bf521249b969' +[ 1.513162] Loaded X.509 cert 'Canonical Ltd. Kernel Module Signing: 88f752e560a1e0737e31163a466ad7b70a850c19' +[ 1.518199] blacklist: Loading compiled-in revocation X.509 certificates +[ 1.521631] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing: 61482aa2830d0ab2ad5af10b7250da9033ddcef0' +[ 1.526685] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2017): 242ade75ac4a15e50d50c84b0d45ff3eae707a03' +[ 1.531891] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (ESM 2018): 365188c1d374d6b07c3c8f240f8ef722433d6a8b' +[ 1.537358] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2019): c0746fd6c5da3ae827864651ad66ae47fe24b3e8' +[ 1.542691] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v1): a8d54bbb3825cfb94fa13c9f8a594a195c107b8d' +[ 1.548427] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v2): 4cf046892d6fd3c9a5b03f98d845f90851dc6a8c' +[ 1.553769] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (2021 v3): 100437bb6de6e469b581e61cd66bce3ef4ed53af' +[ 1.559203] Loaded X.509 cert 'Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019): c1d57b8f6b743f23ee41f4f7ee292f06eecadfb9' +[ 1.571911] Key type .fscrypt registered +[ 1.574346] Key type fscrypt-provisioning registered +[ 1.578813] Key type encrypted registered +[ 1.581533] AppArmor: AppArmor sha256 policy hashing enabled +[ 1.584580] ima: No TPM chip found, activating TPM-bypass! +[ 1.587804] Loading compiled-in module X.509 certificates +[ 1.591135] Loaded X.509 cert 'Build time autogenerated kernel key: e11683987e4bc84eee6256a8f49bec5df64447ce' +[ 1.596370] ima: Allocated hash algorithm: sha256 +[ 1.599017] ima: No architecture policies found +[ 1.601514] evm: Initialising EVM extended attributes: +[ 1.604327] evm: security.selinux +[ 1.606363] evm: security.SMACK64 +[ 1.608412] evm: security.SMACK64EXEC +[ 1.613882] evm: security.SMACK64TRANSMUTE +[ 1.616280] evm: security.SMACK64MMAP +[ 1.618393] evm: security.apparmor +[ 1.620428] evm: security.ima +[ 1.622281] evm: security.capability +[ 1.624344] evm: HMAC attrs: 0x1 +[ 1.626731] PM: Magic number: 8:638:304 +[ 1.629171] tty tty33: hash matches +[ 1.638310] RAS: Correctable Errors collector initialized. +[ 1.641581] clk: Disabling unused clocks +[ 1.644971] md: Waiting for all devices to be available before autodetect +[ 1.647268] md: If you don't use raid, use raid=noautodetect +[ 1.649201] md: Autodetecting RAID arrays. +[ 1.650730] md: autorun ... +[ 1.651972] md: ... autorun DONE. +[ 1.657069] EXT4-fs (sda1): mounted filesystem e9aab13f-e815-4376-abf7-b3191c57a2b9 ro with ordered data mode. Quota mode: none. +[ 1.660995] VFS: Mounted root (ext4 filesystem) readonly on device 8:1. +[ 1.663359] devtmpfs: mounted +[ 1.666111] Freeing unused kernel image (initmem) memory: 4744K +[ 1.668236] Write protecting the kernel read-only data: 34816k +[ 1.670587] Freeing unused kernel image (rodata/data gap) memory: 828K +[ 1.726700] x86/mm: Checked W+X mappings: passed, no W+X pages found. +[ 1.729022] Run /sbin/init as init process +[ 1.730656] with arguments: +[ 1.730659] /sbin/init +[ 1.730661] with environment: +[ 1.730662] HOME=/ +[ 1.730664] TERM=linux +[ 1.730666] BOOT_IMAGE=/boot/vmlinuz-6.8.0-1014-azure +[ 1.777521] systemd[1]: Inserted module 'autofs4' +[ 1.790295] systemd[1]: systemd 249.11-0ubuntu3.12 running in system mode (+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT +GNUTLS +OPENSSL +ACL +BLKID +CURL +ELFUTILS +FIDO2 +IDN2 -IDN +IPTC +KMOD +LIBCRYPTSETUP +LIBFDISK +PCRE2 -PWQUALITY -P11KIT -QRENCODE +BZIP2 +LZ4 +XZ +ZLIB +ZSTD -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified) +[ 1.799684] systemd[1]: Detected virtualization microsoft. +[ 1.801882] systemd[1]: Detected architecture x86-64. +[ 1.806492] systemd[1]: Hostname set to . +[ 1.855043] block sda: the capability attribute has been deprecated. +[ 1.919695] systemd[1]: Configuration file /run/systemd/system/netplan-ovs-cleanup.service is marked world-inaccessible. This has no effect as configuration data is accessible via APIs without restrictions. Proceeding anyway. +[ 1.952174] systemd[1]: /etc/systemd/system/runner-provisioner.service:3: Invalid URL, ignoring: None +[ 2.000995] systemd[1]: Queued start job for default target Graphical Interface. +[ 2.003659] systemd[1]: Unnecessary job was removed for /sys/devices/virtual/misc/vmbus!hv_fcopy. +[ 2.006455] systemd[1]: Unnecessary job was removed for /sys/devices/virtual/misc/vmbus!hv_vss. +[ 2.015875] systemd[1]: Created slice Slice for Azure VM Agent and Extensions. +[ 2.022374] systemd[1]: Created slice Slice /system/modprobe. +[ 2.027836] systemd[1]: Created slice Slice /system/serial-getty. +[ 2.033005] systemd[1]: Created slice Slice /system/systemd-fsck. +[ 2.037992] systemd[1]: Created slice User and Session Slice. +[ 2.042373] systemd[1]: Started Forward Password Requests to Wall Directory Watch. +[ 2.048780] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point. +[ 2.054650] systemd[1]: Reached target Slice Units. +[ 2.061909] systemd[1]: Reached target Mounting snaps. +[ 2.065588] systemd[1]: Reached target Swaps. +[ 2.069580] systemd[1]: Reached target System Time Set. +[ 2.074079] systemd[1]: Reached target Local Verity Protected Volumes. +[ 2.078921] systemd[1]: Listening on Device-mapper event daemon FIFOs. +[ 2.083921] systemd[1]: Listening on LVM2 poll daemon socket. +[ 2.088308] systemd[1]: Listening on multipathd control socket. +[ 2.093333] systemd[1]: Listening on Syslog Socket. +[ 2.097180] systemd[1]: Listening on fsck to fsckd communication Socket. +[ 2.101941] systemd[1]: Listening on initctl Compatibility Named Pipe. +[ 2.106618] systemd[1]: Listening on Journal Audit Socket. +[ 2.110955] systemd[1]: Listening on Journal Socket (/dev/log). +[ 2.115274] systemd[1]: Listening on Journal Socket. +[ 2.118905] systemd[1]: Listening on Network Service Netlink Socket. +[ 2.123788] systemd[1]: Listening on udev Control Socket. +[ 2.127807] systemd[1]: Listening on udev Kernel Socket. +[ 2.142187] systemd[1]: Mounting Huge Pages File System... +[ 2.148202] systemd[1]: Mounting POSIX Message Queue File System... +[ 2.154322] systemd[1]: Mounting Kernel Debug File System... +[ 2.159756] systemd[1]: Mounting Kernel Trace File System... +[ 2.165165] tsc: Refined TSC clocksource calibration: 2445.427 MHz +[ 2.168008] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x233fd8a313f, max_idle_ns: 440795252855 ns +[ 2.174288] clocksource: Switched to clocksource tsc +[ 2.174900] systemd[1]: Starting Journal Service... +[ 2.181777] systemd[1]: Starting Set the console keyboard layout... +[ 2.187322] systemd[1]: Starting Create List of Static Device Nodes... +[ 2.193186] systemd[1]: Starting Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling... +[ 2.199092] systemd[1]: Condition check resulted in LXD - agent being skipped. +[ 2.202846] systemd[1]: Starting Load Kernel Module configfs... +[ 2.208414] systemd[1]: Starting Load Kernel Module drm... +[ 2.213149] systemd[1]: Starting Load Kernel Module efi_pstore... +[ 2.218631] systemd[1]: Starting Load Kernel Module fuse... +[ 2.223670] systemd[1]: Condition check resulted in OpenVSwitch configuration for cleanup being skipped. +[ 2.227907] systemd[1]: Starting File System Check on Root Device... +[ 2.234372] systemd[1]: Starting Load Kernel Modules... +[ 2.239889] systemd[1]: Starting Coldplug All udev Devices... +[ 2.245065] systemd[1]: Starting Setup network rules for WALinuxAgent... +[ 2.252293] systemd[1]: Started Journal Service. +[ 2.345840] EXT4-fs (sda1): re-mounted e9aab13f-e815-4376-abf7-b3191c57a2b9 r/w. Quota mode: none. +[ 2.368285] alua: device handler registered +[ 2.371541] emc: device handler registered +[ 2.374842] systemd-journald[164]: Received client request to flush runtime journal. +[ 2.375847] rdac: device handler registered +[ 2.622769] hv_vmbus: registering driver hyperv_drm +[ 2.623880] hyperv_drm 5620e0c7-8062-4dce-aeb7-520c7ef76171: [drm] Synthvid Version major 3, minor 5 +[ 2.629830] hv_vmbus: registering driver hv_netvsc +[ 2.631166] hv_vmbus: registering driver hyperv_keyboard +[ 2.632705] [drm] Initialized hyperv_drm 1.0.0 2020 for 5620e0c7-8062-4dce-aeb7-520c7ef76171 on minor 0 +[ 2.633524] input: AT Translated Set 2 keyboard as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A03:00/device:07/VMBUS:01/d34b2567-b9b6-42b9-8778-0a4ec0b955bf/serio2/input/input3 +[ 2.643839] hid: raw HID events driver (C) Jiri Kosina +[ 2.711936] cryptd: max_cpu_qlen set to 1000 +[ 3.074279] Console: switching to colour frame buffer device 128x48 +[ 3.159229] hyperv_drm 5620e0c7-8062-4dce-aeb7-520c7ef76171: [drm] fb0: hyperv_drmdrmfb frame buffer device +[ 3.339713] hv_vmbus: registering driver hid_hyperv +[ 3.344410] input: Microsoft Vmbus HID-compliant Mouse as /devices/0006:045E:0621.0001/input/input4 +[ 3.345367] hid 0006:045E:0621.0001: input: VIRTUAL HID v0.01 Mouse [Microsoft Vmbus HID-compliant Mouse] on +[ 3.346709] AVX2 version of gcm_enc/dec engaged. +[ 3.347080] AES CTR mode by8 optimization enabled +[ 3.499730] kvm_amd: TSC scaling supported +[ 3.499740] kvm_amd: Nested Virtualization enabled +[ 3.499742] kvm_amd: Nested Paging enabled +[ 3.499748] kvm_amd: kvm_amd: Hyper-V enlightened NPT TLB flush enabled +[ 3.499749] kvm_amd: kvm_amd: Hyper-V Direct TLB Flush enabled +[ 3.499752] kvm_amd: Virtual VMLOAD VMSAVE supported +[ 3.499753] kvm_amd: PMU virtualization is disabled +[ 3.514109] workqueue: drm_fb_helper_damage_work hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND +[ 4.040416] loop0: detected capacity change from 0 to 130960 +[ 4.044288] loop1: detected capacity change from 0 to 178256 +[ 4.048949] loop2: detected capacity change from 0 to 79520 +[ 4.087831] hv_utils: KVP IC version 4.0 +[ 4.141863] audit: type=1400 audit(1726618865.628:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="lsb_release" pid=388 comm="apparmor_parser" +[ 4.142528] audit: type=1400 audit(1726618865.629:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=389 comm="apparmor_parser" +[ 4.142715] audit: type=1400 audit(1726618865.629:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=389 comm="apparmor_parser" +[ 4.145085] audit: type=1400 audit(1726618865.631:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="ubuntu_pro_apt_news" pid=391 comm="apparmor_parser" +[ 4.148220] audit: type=1400 audit(1726618865.635:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/man" pid=394 comm="apparmor_parser" +[ 4.148227] audit: type=1400 audit(1726618865.635:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_filter" pid=394 comm="apparmor_parser" +[ 4.148232] audit: type=1400 audit(1726618865.635:8): apparmor="STATUS" operation="profile_load" profile="unconfined" name="man_groff" pid=394 comm="apparmor_parser" +[ 4.151457] audit: type=1400 audit(1726618865.638:9): apparmor="STATUS" operation="profile_load" profile="unconfined" name="tcpdump" pid=395 comm="apparmor_parser" +[ 4.152006] audit: type=1400 audit(1726618865.638:10): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=390 comm="apparmor_parser" +[ 4.573385] /dev/sr0: Can't lookup blockdev +[ 6.928350] sdb: sdb1 +[ 8.167451] EXT4-fs (sdb1): mounted filesystem 0d3f65f8-36f5-4cec-8ee9-35375c6bf8e1 r/w with ordered data mode. Quota mode: none. +[ 9.865431] evm: overlay not supported +[ 9.881335] Adding 4194300k swap on /mnt/swapfile. Priority:-2 extents:9 across:4505596k +[ 9.882151] loop3: detected capacity change from 0 to 8 +[ 10.223617] overlayfs: fs on '/home/runner/.local/share/containers/storage/overlay/compat3002700279/lower1' does not support file handles, falling back to xino=off. +[ 10.286395] overlayfs: fs on '/home/runner/.local/share/containers/storage/overlay/metacopy-check2177850270/l1' does not support file handles, falling back to xino=off. +[ 10.294593] overlayfs: fs on '/home/runner/.local/share/containers/storage/overlay/opaque-bug-check4161589518/l2' does not support file handles, falling back to xino=off. +[ 10.448715] kauditd_printk_skb: 35 callbacks suppressed +[ 10.448721] audit: type=1400 audit(1726618871.935:46): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine" pid=880 comm="apparmor_parser" +[ 10.459580] audit: type=1400 audit(1726618871.946:47): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/snapd/snap-confine//mount-namespace-capture-helper" pid=880 comm="apparmor_parser" +[ 10.620349] audit: type=1400 audit(1726618872.107:48): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=1136 comm="apparmor_parser" +[ 10.767003] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this. +[ 10.769820] Bridge firewalling registered +[ 10.830214] Initializing XFRM netlink socket +[ 11.959086] workqueue: drm_fb_helper_damage_work hogged CPU for >10000us 8 times, consider switching to WQ_UNBOUND +[ 49.563943] hv_balloon: Max. dynamic memory size: 16384 MB +[ 1466.666477] loop3: detected capacity change from 0 to 1543429 +[ 1466.691452] EXT4-fs (loop3): recovery complete +[ 1466.691998] EXT4-fs (loop3): mounted filesystem 18ede7c6-525e-4288-9db9-b1e896add495 r/w with ordered data mode. Quota mode: none. diff --git a/_static/fonts/0053ba6958e79f26751eabb555bd73d0.woff2 b/_static/fonts/0053ba6958e79f26751eabb555bd73d0.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ab30100982f087a925abe34641b5909b145516b2 GIT binary patch literal 4728 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 G0%`y>M(+3k literal 0 HcmV?d00001 diff --git a/_static/fonts/029e176ad602329b4434892101db9cf3.woff2 b/_static/fonts/029e176ad602329b4434892101db9cf3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..09e03c952296f0ba1e46dadb0ef38c0ad1950130 GIT binary patch literal 6044 zcmV;N7h~vmPew8T0RR9102iD94gdfE04SUQ02e?20RR9100000000000000000000 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 aZ;p=U&6{>stk@{AqPB76aF%E9h7|z0(@g*X literal 0 HcmV?d00001 diff --git a/_static/fonts/0948409a22b5979aa7e1ec20da9e61f1.woff2 b/_static/fonts/0948409a22b5979aa7e1ec20da9e61f1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6b0b4afef95479fff34683895510f679a5ebd45a GIT binary patch literal 5604 zcmV3CmxKT719J?g1=`;t*omE%DVl-mx!FcDRLO)EiWF%n+<2k; z{z!elnfh#A=$8#;!oA;6mu@pLR*NAVtg+#ALiW^f_ySP*^v)3)`y^K*nwsVo&Xm+~ zQXtm}w{@t54sii7Pz1cVK=4512TJ*thqv4N+ieFDwlzzlR>%WV4EEd^apPH1)UnWjm&>+$*LSaQ!hypx2nQCG zLhtfhOk#69N}~|A+V6@oo&h)=sa=$6+}x!>ZvQJIv~sZo+&sCcwbt$t^Z{`^3im?U zGzV5L7lcE?JmoT2GI(_I)OJU03Sp2nPVKu#I*j4}be8S^GaAA1$oHNPDqaW|ooxlN zOP8jRzIHA0*giz>5qU$T-9tM7gdIV7ZC;utU75B_nj){mF7m#G&0oIiJ(RT-N~x^K zRL1-MvkcA~-9uXWIyi_X*x~g?(J*1ckSeMpaTbHLGXMu=2)=BaC|-QY%QkzXn`Wr*+Hdm{ zHA3A`0ksP*@{k~PC2Od$rkZQ1wYE~E$&iIq%X=EDIQ0SXdb?br?u4G(P14&4$%