{"id":17965178,"url":"https://github.com/tokenrove/strap","last_synced_at":"2025-04-03T19:43:48.214Z","repository":{"id":11580581,"uuid":"14070049","full_name":"tokenrove/strap","owner":"tokenrove","description":"Personal archaeology: tool for \"unbooting\" a machine (obsolete)","archived":false,"fork":false,"pushed_at":"2013-11-02T17:05:15.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T08:16:36.488Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Assembly","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tokenrove.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-11-02T17:04:58.000Z","updated_at":"2013-11-02T17:05:18.000Z","dependencies_parsed_at":"2022-09-23T00:11:37.139Z","dependency_job_id":null,"html_url":"https://github.com/tokenrove/strap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokenrove%2Fstrap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokenrove%2Fstrap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokenrove%2Fstrap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tokenrove%2Fstrap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tokenrove","download_url":"https://codeload.github.com/tokenrove/strap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247070779,"owners_count":20878581,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-29T12:10:24.377Z","updated_at":"2025-04-03T19:43:48.180Z","avatar_url":"https://github.com/tokenrove.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nWHO TO BLAME\n\nJulian Squires \u003ctek@wiw.org\u003e\n\n\nCONTENTS\n\ncode overview\nmagic overview\nsample script\n\n\nOVERVIEW\n\nstrap.c contains the code for the loadable module which registers the\nbootstrap device, /dev/strap, char major 60, minor 0. (in the\nlocal/experimental section, as I doubt this code will be widely\ndistributed) The heart of the code, our_machine_real_restart, is\nlargely copied from arch/i386/process.c in kernel 2.3.99pre9.\n\nribbon.s contains the code which copies the bootblock to 0000:7C00\n_after_ the kernel has dropped out of pmode. It needs to prefix the\nbootblock code before the bootblock code gets written out.\n\nmodeswitch.s contains the assembler code contained in the array\nmode_switch in strap.c.\n\nstraphelper.pl is a simple script I hacked together to allow me to\nshutdown the ethercard properly before rebooting, which was a problem\nfor diskless machines. (And definitely a problem when the NIC wasn't\nbeing shutdown, also)\n\n\nMAGIC OVERVIEW\n\n/dev/strap - character device, major 60, minor 0\nafter writing STRAP_CODELEN bytes, it will restart the machine running\nthose bytes. STARP_CODELEN is currently defined to be 1024 bytes,\nso ribbon should not exceed 512 bytes.\n\n\nSAMPLE SCRIPT\n\nSomething almost like a sample script for using bootstrap:\n\n## SOF\nif [ ! -e /dev/strap ] then; mknod /dev/strap c 60 0; done\nif [ \"x\"`grep strap /proc/modules` eq \"x\" ] then;insmod ./strap.o;done\ncat ribbon.bin /dev/hda1 \u003e /dev/strap\n## EOF\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokenrove%2Fstrap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftokenrove%2Fstrap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftokenrove%2Fstrap/lists"}