From owner-freebsd-stable@FreeBSD.ORG Fri Jan 29 15:37:50 2010 Return-Path: Delivered-To: stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 143281065670 for ; Fri, 29 Jan 2010 15:37:50 +0000 (UTC) (envelope-from lists@mawer.org) Received: from mail-pw0-f44.google.com (mail-pw0-f44.google.com [209.85.160.44]) by mx1.freebsd.org (Postfix) with ESMTP id EB6BA8FC0A for ; Fri, 29 Jan 2010 15:37:49 +0000 (UTC) Received: by pwi15 with SMTP id 15so1503621pwi.3 for ; Fri, 29 Jan 2010 07:37:49 -0800 (PST) MIME-Version: 1.0 Received: by 10.140.247.16 with SMTP id u16mr754697rvh.2.1264779467422; Fri, 29 Jan 2010 07:37:47 -0800 (PST) Date: Sat, 30 Jan 2010 02:37:47 +1100 Message-ID: From: Antony Mawer To: stable@freebsd.org Content-Type: multipart/mixed; boundary=000e0cd10562dffc18047e4f6a4a Cc: Subject: [patch] New splash_txt module - support for ASCII splash(4) boot screens X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Jan 2010 15:37:50 -0000 --000e0cd10562dffc18047e4f6a4a Content-Type: text/plain; charset=ISO-8859-1 Hi all, I recently dusted off an old patch I put together years ago which adds a new splash_txt decoder module for the splash(4) boot splash screen. The module allows you to use a binary-format ASCII drawing (80x25) as a boot splash screen rather than the graphical modes offered by splash_bmp and splash_pcx. We have been and still are using it, but I finally got around to adding the relevant changes to the splash(4) man page and putting together some examples for wider testing. If it seems of use to others it would be nice if someone would be interested in committing it at some stage. In case the list eats the patch, you can grab a copy of it here: http://www.mawer.org/freebsd/splash_txt.patch To give you an idea of what it looks like, here is a screenshot of a quick generic FreeBSD splash screen I put together: http://www.mawer.org/freebsd/splash_txt.png If you'd like to try it for yourself then the process to build it should be something like this: 1. Download the attached patch 2. Create the required folders before applying the patch -- cd /usr/src && mkdir sys/modules/splash/txt 3. Apply the patch -- patch < splash_txt.patch 4. Build the module -- cd sys/modules/splash/txt && make && make install Once that's completed, you can configure it by adding the following to loader.conf: splash_txt_load="YES" bitmap_load="YES" bitmap_name="/boot/freebsd.bin" I have uploaded a sample boot splash screen at http://www.mawer.org/freebsd/freebsd.bin . The files can be produced using TheDraw and saving in its Binary file format, which consists of a sequence of 2 byte pairs. The first byte in a pair is the character to draw on the screen, and the second is the colour/display attributes to draw the character with. If anyone else would like to try this out and has any feedback, or if someone thinks it may be of interest to integrate into the tree please let me know ... -- Antony --000e0cd10562dffc18047e4f6a4a Content-Type: application/octet-stream; name="splash_txt.patch" Content-Disposition: attachment; filename="splash_txt.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g514lfl40 LS0tIC9kZXYvbnVsbAkyMDEwLTAxLTMwIDEwOjAwOjAwLjAwMDAwMDAwMCArMTEwMAorKysgc3lz L2Rldi9mYi9zcGxhc2hfdHh0LmMJMjAxMC0wMS0zMCAwOTowNzoyOC4wMDAwMDAwMDAgKzExMDAK QEAgLTAsMCArMSwxMzkgQEAKKy8qLQorICogQ29weXJpZ2h0IChjKSAxOTk5IE1pY2hhZWwgU21p dGggPG1zbWl0aEBmcmVlYnNkLm9yZz4KKyAqIENvcHlyaWdodCAoYykgMTk5OSBLYXp1dGFrYSBZ T0tPVEEgPHlva290YUBmcmVlYnNkLm9yZz4KKyAqIENvcHlyaWdodCAoYykgMjAwNSBBbnRvbnkg TWF3ZXIgPGFudG9ueUBtYXdlci5vcmc+CisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0 aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUlMgQU5EIENP TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JT IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ VFVURSBHT09EUworICogT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pCisgKiBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElB QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ TkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKgorICog JEZyZWVCU0QkCisgKi8KKworI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy9z eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxzeXMva2VybmVsLmg+ CisjaW5jbHVkZSA8c3lzL2NvbnNpby5oPgorI2luY2x1ZGUgPHN5cy9mYmlvLmg+CisKKyNpbmNs dWRlIDxtYWNoaW5lL3BjL2Rpc3BsYXkuaD4KKworI2luY2x1ZGUgPGRldi9mYi9mYnJlZy5oPgor I2luY2x1ZGUgPGRldi9mYi9zcGxhc2hyZWcuaD4KKyNpbmNsdWRlIDxkZXYvc3lzY29ucy9zeXNj b25zLmg+CisKK3N0YXRpYyBpbnQgIHNwbGFzaF9vbiA9IEZBTFNFOworCitzdGF0aWMgaW50IHR4 dF9pbml0KHZpZGVvX2FkYXB0ZXJfdCAqYWRwKTsKK3N0YXRpYyBpbnQgdHh0X2VuZCh2aWRlb19h ZGFwdGVyX3QgKmFkcCk7CitzdGF0aWMgaW50IHR4dF9zcGxhc2godmlkZW9fYWRhcHRlcl90ICph ZHAsIGludCBvbik7CisKKy8qIFRoZXNlIGFyZSByb3dzIGJ5IGNvbHVtbnMgb2YgdGhlIHRleHQt bW9kZSBkaXNwbGF5IGRldmljZSAqLworI2RlZmluZSBCSU5fSU1BR0VfV0lEVEgJCTgwCisjZGVm aW5lIEJJTl9JTUFHRV9IRUlHSFQJMjUKKworc3RhdGljIHNwbGFzaF9kZWNvZGVyX3QgdHh0X2Rl Y29kZXIgPSB7CisgICAgInNwbGFzaF90eHQiLCB0eHRfaW5pdCwgdHh0X2VuZCwgdHh0X3NwbGFz aCwgU1BMQVNIX0lNQUdFLAorfTsKKworU1BMQVNIX0RFQ09ERVIoc3BsYXNoX3R4dCwgdHh0X2Rl Y29kZXIpOworCisKK3N0YXRpYyB2b2lkCitkcmF3X3RleHRfc3BsYXNoKHNjX3NvZnRjX3QgKnNj KQoreworICAgIGludCB4LCB5OworICAgIHVfY2hhciBjaCwgYXR0cjsKKyAgICB1X2NoYXIgKnBk YXRhID0gKHVfY2hhciAqKXR4dF9kZWNvZGVyLmRhdGE7CisKKyAgICAvKiBJbml0IGZhaWxlZCAq LworICAgIGlmICh0eHRfZGVjb2Rlci5kYXRhID09IE5VTEwpCisJcmV0dXJuOworCisgICAgZm9y ICh5PTA7IHkgPCBCSU5fSU1BR0VfSEVJR0hUOyB5KyspIHsKKwlmb3IgKHg9MDsgeCA8IEJJTl9J TUFHRV9XSURUSDsgeCsrKSB7CisJICAgIGNoID0gcGRhdGFbMF07CisJICAgIHBkYXRhKys7CisJ ICAgIGF0dHIgPSBwZGF0YVswXTsKKwkgICAgcGRhdGErKzsKKworCSAgICBzY192dGJfcHV0Yygm c2MtPmN1cl9zY3AtPnNjciwKKwkJKHkgKiBzYy0+Y3VyX3NjcC0+eHNpemUpICsgeCwKKwkJc2Mt PnNjcl9tYXBbY2hdLAorCQkoaW50KWF0dHIgPDwgOCk7CisJfQorICAgIH0KK30KKworc3RhdGlj IGludAordHh0X2luaXQodmlkZW9fYWRhcHRlcl90ICphZHApCit7CisgICAgLy8gRW5zdXJlIHRo YXQgdGhlIGltYWdlIGRhdGEgZXhpc3RzCisgICAgaWYgKCh0eHRfZGVjb2Rlci5kYXRhID09IE5V TEwpIHx8ICh0eHRfZGVjb2Rlci5kYXRhX3NpemUgPD0gMCkpIHsKKwlwcmludGYoInNwbGFzaF90 eHQ6IE5vIEFTQ0lJIGJpdG1hcCBmaWxlIGZvdW5kXG4iKTsKKwlyZXR1cm4gRU5PREVWOworICAg IH0KKworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0eHRfZW5kKHZpZGVvX2FkYXB0 ZXJfdCAqYWRwKQoreworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0eHRfc3BsYXNo KHZpZGVvX2FkYXB0ZXJfdCAqYWRwLCBpbnQgb24pCit7CisgICAgc2Nfc29mdGNfdCAqc2M7Cisg ICAgc2NyX3N0YXQgKnNjcDsKKworICAgIHNjID0gc2NfZmluZF9zb2Z0YyhhZHAsIE5VTEwpOwor ICAgIGlmIChzYyA9PSBOVUxMKQorCXJldHVybiBFQUdBSU47CisgICAgc2NwID0gc2MtPmN1cl9z Y3A7CisKKyAgICBpZiAob24pIHsKKwlpZiAoIXNwbGFzaF9vbikgeworCSAgICBpZiAoYWRwLT52 YV9pbmZvLnZpX2ZsYWdzICYgVl9JTkZPX0dSQVBISUNTKQorCQlyZXR1cm4gRUFHQUlOOworCisJ ICAgIC8qIENsZWFyIHNjcmVlbiBhbmQgc2V0IGJvcmRlciBjb2xvdXIgKi8KKwkgICAgc2NfdnRi X2NsZWFyKCZzY3AtPnNjciwgc2MtPnNjcl9tYXBbMHgyMF0sCisJCShGR19MSUdIVEdSRVkgfCBC R19CTEFDSykgPDwgOCk7CisJICAgICgqdmlkc3dbYWRwLT52YV9pbmRleF0tPnNldF9od19jdXJz b3IpKGFkcCwgLTEsIC0xKTsKKwkgICAgc2Nfc2V0X2JvcmRlcihzY3AsIDApOworCSAgICBzcGxh c2hfb24gPSBUUlVFOworCisJICAgIC8qIERpc3BsYXkgdGhlIHNwbGFzaCBzY3JlZW4gKi8KKwkg ICAgZHJhd190ZXh0X3NwbGFzaChzYyk7CisJfQorCXJldHVybiAwOworICAgIH0gZWxzZSB7CisJ LyogdGhlIHZpZGVvIG1vZGUgd2lsbCBiZSByZXN0b3JlZCBieSB0aGUgY2FsbGVyICovCisJc3Bs YXNoX29uID0gRkFMU0U7CisJcmV0dXJuIDA7CisgICAgfQorfQorCisKZGlmZiAtTnJ1IHN5cy9t b2R1bGVzL3NwbGFzaC5vbGQvTWFrZWZpbGUgc3lzL21vZHVsZXMvc3BsYXNoL01ha2VmaWxlCi0t LSBzeXMvbW9kdWxlcy9zcGxhc2gub2xkL01ha2VmaWxlCTIwMTAtMDEtMzAgMDg6NDE6NDcuMDAw MDAwMDAwICsxMTAwCisrKyBzeXMvbW9kdWxlcy9zcGxhc2gvTWFrZWZpbGUJMjAxMC0wMS0zMCAw ODo0MzowOC4wMDAwMDAwMDAgKzExMDAKQEAgLTEsNSArMSw1IEBACiAjICRGcmVlQlNEOiBzcmMv c3lzL21vZHVsZXMvc3BsYXNoL01ha2VmaWxlLHYgMS4zLjU2LjEuMi4xIDIwMDkvMTAvMjUgMDE6 MTA6Mjkga2Vuc21pdGggRXhwICQKIAotU1VCRElSPQlibXAgcGN4CitTVUJESVI9CWJtcCBwY3gg dHh0CiAKIC5pbmNsdWRlIDxic2Quc3ViZGlyLm1rPgpkaWZmIC1OcnUgc3lzL21vZHVsZXMvc3Bs YXNoLm9sZC90eHQvTWFrZWZpbGUgc3lzL21vZHVsZXMvc3BsYXNoL3R4dC9NYWtlZmlsZQotLS0g c3lzL21vZHVsZXMvc3BsYXNoLm9sZC90eHQvTWFrZWZpbGUJMTk3MC0wMS0wMSAxMDowMDowMC4w MDAwMDAwMDAgKzEwMDAKKysrIHN5cy9tb2R1bGVzL3NwbGFzaC90eHQvTWFrZWZpbGUJMjAxMC0w MS0zMCAwODo0MzozNS4wMDAwMDAwMDAgKzExMDAKQEAgLTAsMCArMSw2IEBACisuUEFUSDoJJHsu Q1VSRElSfS8uLi8uLi8uLi9kZXYvZmIKKworS01PRD0Jc3BsYXNoX3R4dAorU1JDUz0gCXNwbGFz aF90eHQuYworCisuaW5jbHVkZSA8YnNkLmttb2QubWs+Ci0tLSBzaGFyZS9tYW4vbWFuNC9zcGxh c2guNC5vbGQJMjAxMC0wMS0zMCAwODo0NDoyMi4wMDAwMDAwMDAgKzExMDAKKysrIHNoYXJlL21h bi9tYW40L3NwbGFzaC40CTIwMTAtMDEtMzAgMDk6MTI6MjguMDAwMDAwMDAwICsxMTAwCkBAIC0y Niw3ICsyNiw3IEBACiAuXCIKIC5cIiAkRnJlZUJTRDogc3JjL3NoYXJlL21hbi9tYW40L3NwbGFz aC40LHYgMS4yOC4xMC4xLjIuMSAyMDA5LzEwLzI1IDAxOjEwOjI5IGtlbnNtaXRoIEV4cCAkCiAu XCIKLS5EZCBKYW51YXJ5IDE1LCAyMDA2CisuRGQgSmFudWFyeSAzMCwgMjAxMAogLkR0IFNQTEFT SCA0CiAuT3MKIC5TaCBOQU1FCkBAIC03NCw2ICs3NCwxMyBAQAogWlNvZnQgUENYIGRlY29kZXIu CiBUaGlzIGRlY29kZXIgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgdmVyc2lvbiA1IDgtYnBwIHNp bmdsZS1wbGFuZQogaW1hZ2VzLgorLkl0IFBhIHNwbGFzaF90eHQua28KK1RoZURyYXcgYmluYXJ5 IEFTQ0lJIGRyYXdpbmcgZmlsZSBkZWNvZGVyLgorRGlzcGxheXMgYSB0ZXh0LW1vZGUgODB4MjUg QVNDSUkgZHJhd2luZywgc3VjaCBhcyB0aGF0IHByb2R1Y2VkIGJ5Cit0aGUgQmluYXJ5IHNhdmUg Zm9ybWF0IGluIFRoZURyYXcuIFRoaXMgZm9ybWF0IGNvbnNpc3RzIG9mIGEgc2VxdWVuY2UKK29m IHR3byBieXRlIHBhaXJzIHJlcHJlc2VudGluZyB0aGUgODB4MjUgZGlzcGxheSwgd2hlcmUgdGhl IGZpcnN0IGJ5dGUKK2lzIHRoZSBBU0NJSSBjaGFyYWN0ZXIgdG8gZHJhdyBhbmQgdGhlIHNlY29u ZCBieXRlIGluZGljYXRlcyB0aGUKK2NvbG9ycy9hdHRyaWJ1dGVzIHRvIHVzZSB3aGVuIGRyYXdp bmcgdGhlIGNoYXJhY3Rlci4KIC5FbAogLlBwCiBUaGUKQEAgLTIxNCw2ICsyMjEsMTYgQEAKIG5l Y2Vzc2FyeSB0byBsb2FkIHRoZSBWRVNBIG1vZHVsZS4KIEp1c3QgbG9hZCB0aGUgYml0bWFwIGZp bGUgYW5kIHRoZSBzcGxhc2ggZGVjb2RlciBtb2R1bGUgYXMgaW4gdGhlCiBmaXJzdCBleGFtcGxl IGFib3ZlLgorLlBwCitUbyBsb2FkIGEgYmluYXJ5IEFTQ0lJIGRyYXdpbmcgYW5kIGRpc3BsYXkg dGhpcyB3aGlsZSBib290aW5nLCBpbmNsdWRlIHRoZQorZm9sbG93aW5nIGludG8geW91cgorLlBh IC9ib290L2xvYWRlci5jb25mCis6CisuQmQgLWxpdGVyYWwgLW9mZnNldCBpbmRlbnQKK3NwbGFz aF90eHRfbG9hZD0iWUVTIgorYml0bWFwX2xvYWQ9IllFUyIKK2JpdG1hcF9uYW1lPSIvYm9vdC9z cGxhc2guYmluIgorLkVkCiAuXCIuU2ggRElBR05PU1RJQ1MKIC5TaCBDQVZFQVRTCiBCb3RoIHRo ZSBzcGxhc2ggc2NyZWVuIGFuZCB0aGUgc2NyZWVuIHNhdmVyIHdvcmsgd2l0aApAQCAtMjUxLDYg KzI2OCwxNSBAQAogYmFzZWQgb24gdGhlCiAuUGEgc3BsYXNoX2JtcAogY29kZS4KK1RoZQorLlBh IHNwbGFzaF90eHQKK21vZHVsZSB3YXMgd3JpdHRlbiBieQorLkFuIEFudG9ueSBNYXdlciBBcSBh bnRvbnlAbWF3ZXIub3JnCitiYXNlZCBvbiB0aGUKKy5QYSBzcGxhc2hfYm1wCitjb2RlLCB3aXRo IHNvbWUgYWRkaXRpb25hbCBpbnNwaXJhdGlvbiBmcm9tIHRoZQorLlBhIGRhZW1vbl9zYXZlcgor Y29kZS4KIC5TaCBCVUdTCiBJZiB5b3UgbG9hZCBhIHNjcmVlbiBzYXZlciB3aGlsZSBhbm90aGVy IHNjcmVlbiBzYXZlciBoYXMgYWxyZWFkeQogYmVlbiBsb2FkZWQsIHRoZSBmaXJzdCBzY3JlZW4g c2F2ZXIgd2lsbCBub3QgYmUgYXV0b21hdGljYWxseSB1bmxvYWRlZAo= --000e0cd10562dffc18047e4f6a4a--