Jin LiveCD/Gfx Boot
JinLiveCD/GfxBoot ¶grub ¿¡¼ À̹ÌÁö »ç¿ë È®Àå
static int gfxmenu_func (char *arg, int flags) { memmove(graphics_file, arg, sizeof graphics_file - 1); graphics_file[sizeof graphics_file - 1] = 0; return 0; }
grub stage2 ¶
/* The table of builtin commands. Sorted in dictionary order. */ struct builtin *builtin_table[] = { #ifdef SUPPORT_GRAPHICS &builtin_background, #endif &builtin_blocklist, &builtin_boot, #ifdef SUPPORT_NETBOOT &builtin_bootp, #endif /* SUPPORT_NETBOOT */ &builtin_cat, &builtin_chainloader, &builtin_clear, &builtin_cmp, &builtin_color, &builtin_configfile, &builtin_debug, &builtin_default, : Set the default entry #ifdef GRUB_UTIL &builtin_device, #endif /* GRUB_UTIL */ #ifdef SUPPORT_NETBOOT &builtin_dhcp, #endif /* SUPPORT_NETBOOT */ &builtin_displayapm, &builtin_displaymem, #ifdef GRUB_UTIL &builtin_dump, #endif /* GRUB_UTIL */ &builtin_embed, &builtin_fallback, Set the fallback entry &builtin_find, #ifdef SUPPORT_GRAPHICS &builtin_foreground, #endif &builtin_fstest, &builtin_geometry, &builtin_gfxmenu, &builtin_halt, &builtin_help, &builtin_hiddenmenu, Hide the menu interface &builtin_hide, #ifdef SUPPORT_NETBOOT &builtin_ifconfig, #endif /* SUPPORT_NETBOOT */ &builtin_impsprobe, &builtin_initrd, &builtin_install, &builtin_ioprobe, &builtin_kernel, &builtin_lock, &builtin_makeactive, &builtin_map, #ifdef USE_MD5_PASSWORDS &builtin_md5crypt, #endif /* USE_MD5_PASSWORDS */ &builtin_module, &builtin_modulenounzip, &builtin_pager, &builtin_partnew, &builtin_parttype, &builtin_password, &builtin_pause, #ifdef GRUB_UTIL &builtin_quit, #endif /* GRUB_UTIL */ #ifdef SUPPORT_NETBOOT &builtin_rarp, #endif /* SUPPORT_NETBOOT */ &builtin_read, &builtin_reboot, &builtin_root, &builtin_rootnoverify, &builtin_savedefault, #ifdef SUPPORT_SERIAL &builtin_serial, #endif /* SUPPORT_SERIAL */ &builtin_setkey, &builtin_setup, #ifdef SUPPORT_GRAPHICS &builtin_splashimage, #endif /* SUPPORT_GRAPHICS */ #if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS) &builtin_terminal, #endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */ #ifdef SUPPORT_SERIAL &builtin_terminfo, #endif /* SUPPORT_SERIAL */ &builtin_testload, &builtin_testvbe, #ifdef SUPPORT_NETBOOT &builtin_tftpserver, #endif /* SUPPORT_NETBOOT */ &builtin_timeout, Set the timeout &builtin_title, Start a menu entry &builtin_unhide, &builtin_uppermem, &builtin_vbeprobe, 0 };
grub ¶
korean character ¶
getx11font -v -l 18 -p 2,4 \ -c ISO-8859-15 -c ISO-8859-2 -c koi8-r \ -t help-boot.ko.html \ -t help-install.ko.html \ -f -misc-fixed-medium-r-normal-ko-18-120-100-100-c-180-iso10646-1 \ 16x16.font >16x16.font.log [root@localhost efont-unicode-bdf-0.4.2-src]# make tools/hexmerge taipei10_uni.hex gb10fs_uni.hex gulim10_uni.hex K10-1_uni.hex K10-2_uni.hex > f10_source.hex.tmp && \ mv f10_source.hex.tmp f10_source.hex Died at tools/hexmerge line 9. make: *** [f10_source.hex] ¿À·ù 255
[root@localhost bdfresize-1.5]# make gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -Wunused -Wuninitialized -Wmissing-prototypes -Wmissing-declarations -c bdfresize.c gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -Wunused -Wuninitialized -Wmissing-prototypes -Wmissing-declarations -c charresize.c charresize.c: In function `processChar': charresize.c:49: error: conflicting types for 'malloc' make: *** [charresize.o] ¿À·ù 1 Makefile ¶$(addprefix prefix,names...) The argument names is regarded as a series of names, separated by whitespace; prefix is used as a unit. The value of prefix is prepended to the front of each individual name and the resulting larger names are concatenated with single spaces between them. For example, $(addprefix src/,foo bar) produces the result `src/foo src/bar'. $(suffix names...) Extracts the suffix of each file name in names. If the file name contains a period, the suffix is everything starting with the last period. Otherwise, the suffix is the empty string. This frequently means that the result will be empty when names is not, and if names contains multiple file names, the result may contain fewer file names. For example, $(suffix src/foo.c src-1.0/bar.c hacks) produces the result `.c .c'. $(basename names...) Extracts all but the suffix of each file name in names. If the file name contains a period, the basename is everything starting up to (and not including) the last period. Periods in the directory part are ignored. If there is no period, the basename is the entire file name. For example, $(basename src/foo.c src-1.0/bar hacks) produces the result `src/foo src-1.0/bar hacks'. $(wildcard pattern) The argument pattern is a file name pattern, typically containing wildcard characters (as in shell file name patterns). The result of wildcard is a space-separated list of the names of existing files that match the pattern. See section Using Wildcard Characters in File Names. $(notdir names...) Extracts all but the directory-part of each file name in names. If the file name contains no slash, it is left unchanged. Otherwise, everything through the last slash is removed from it. A file name that ends with a slash becomes an empty string. This is unfortunate, because it means that the result does not always have the same number of whitespace-separated file names as the argument had; but we do not see any other valid alternative. For example, $(notdir src/foo.c hacks) produces the result `foo.c hacks'. gfxboot-grub ¶
edited keytables.inc /.km.locale 0 def /.km.map 1 def % must not be empty /keymaps [ [ "en" .undef ] ] def Makefile diff 6a7 > HELPINST = $(addprefix install/help,$(suffix $(basename $(wildcard help-install.*.html)))) 8a10 > HELPINST_ALL = $(notdir $(HELPINST)) 10c12,16 < DEFAULT_LANG = ko --- > DEFAULT_LANG = en > > FILES_INST = init languages $(TRANSLATIONS) 16x16.font background.pcx \ > splash.pcx kroete.data \ > $(HELPINST_ALL) 18a25 > FILES_INST += lang 24a32,34 > install/help.%: help-install.%.html install > $(HELP2TXT) $< >$@ > 29c39 < boot: po --- > boot install: po 35c45 < themes: bootdir --- > themes: bootdir installdir 46a57,65 > installdir: install.config $(INCLUDES) $(HELPINST) > @cp -a po/texts.* install > @for i in $(FILES_INST) ; do [ -f $$i ] && cp $$i install ; done ; true > $(MKBOOTMSG) $(BFLAGS) -l install/log -c $< install/init > ifdef DEFAULT_LANG > @echo $(DEFAULT_LANG) >install/lang > endif > @sh -c 'cd install; echo $(FILES_INST) | sed -e "s/ /\n/g" | cpio --quiet -o >bootlogo' > 49,51c68,74 < -c ISO-8859-15 \ < -t help-boot.ko.html \ < -t help-install.ko.html \ --- > -c ISO-8859-15 -c ISO-8859-2 -c koi8-r \ > -t help-boot.ja.html \ > -t help-install.ja.html \ > -t po/ja.po \ > -t install/log -t boot/log \ > -f -efont-fixed-medium-r-normal--16-160-75-75-c-80-iso10646-1 \ > -f -efont-fixed-medium-r-normal--16-160-75-75-c-160-iso10646-1 \ 56,57c79,80 < rm -f bootdir *~ < rm -rf boot --- > rm -f bootdir installdir *~ > rm -rf boot install
prime function ¶
/string.print { dup currentpoint currentpoint 5 -1 roll strsize image moveto show } def
boot.config ¶
/grub/stage2/stage2.c ¶; jmp table to interface functions jt_init dw gfx_init jt_done dw gfx_done jt_input dw gfx_input jt_menu_init dw gfx_menu_init jt_infobox_init dw gfx_infobox_init jt_infobox_done dw gfx_infobox_done jt_progress_init dw gfx_progress_init jt_progress_done dw gfx_progress_done jt_progress_update dw gfx_progress_update jt_progress_limit dw gfx_progress_limit jt_password_init dw gfx_password_init jt_password_done dw gfx_password_done
install ºÎºÐ Á¦°Å ¶
6a7 > HELPINST = $(addprefix install/help,$(suffix $(basename $(wildcard help-install.*.html)))) 8a10 > HELPINST_ALL = $(notdir $(HELPINST)) 10c12,16 < DEFAULT_LANG = ko --- > DEFAULT_LANG = en > > FILES_INST = init languages $(TRANSLATIONS) 16x16.font background.pcx \ > splash.pcx kroete.data \ > $(HELPINST_ALL) 18a25 > FILES_INST += lang 24a32,34 > install/help.%: help-install.%.html install > $(HELP2TXT) $< >$@ > 29c39 < boot: po --- > boot install: po 35c45 < themes: bootdir --- > themes: bootdir installdir 46a57,65 > installdir: install.config $(INCLUDES) $(HELPINST) > @cp -a po/texts.* install > @for i in $(FILES_INST) ; do [ -f $$i ] && cp $$i install ; done ; true > $(MKBOOTMSG) $(BFLAGS) -l install/log -c $< install/init > ifdef DEFAULT_LANG > @echo $(DEFAULT_LANG) >install/lang > endif > @sh -c 'cd install; echo $(FILES_INST) | sed -e "s/ /\n/g" | cpio --quiet -o >bootlogo' > 49,50c68,74 font ºÎºÐÀº Áý¿¡¼ Àû¿ëÇÒ °Í 55,56c79,80 < rm -f bootdir *~ < rm -rf boot --- > rm -f bootdir installdir *~ > rm -rf boot install
diff -r ../gfxboot-grub/boot.config ../gfxboot-grub.org/boot.config 20a21 > %% include dia_install.inc diff -r ../gfxboot-grub/common.inc ../gfxboot-grub.org/common.inc 14,16c14,16 < %/is_second_side { < % syslinux usernote 1 and 0 ne and < %} def --- > /is_second_side { > syslinux usernote 1 and 0 ne and > } def 25,27c25,27 < %/do_64bit_check { < % syslinux usernote 2 and 0 ne and < %} def --- > /do_64bit_check { > syslinux usernote 2 and 0 ne and > } def 36,38c36,38 < %/64bit_source { < % syslinux usernote 4 and 0 ne and < %} def --- > /64bit_source { > syslinux usernote 4 and 0 ne and > } def 47,49c47,49 < %/is_dvd { < % syslinux usernote 8 and 0 ne and < %} def --- > /is_dvd { > syslinux usernote 8 and 0 ne and > } def 141,144c141,144 < % window.action actInstallOK eq { < % /window.action actNothing def < % install.ok < % } if --- > window.action actInstallOK eq { > /window.action actNothing def > install.ok > } if 146,149c146,149 < % window.action actInstallCancel eq { < % /window.action actNothing def < % install.cancel < % } if --- > window.action actInstallCancel eq { > /window.action actNothing def > install.cancel > } if 259a260,265 > xmenu.install { > install.option "" ne { > install.option "%s " bc.cmd dup length add sprintf > } if > } if > 293c299 < % is_second_side { --- > is_second_side { 295c301 < % notimeout dvd_popup --- > notimeout dvd_popup 297c303 < % } { --- > } { 299,305c305,311 < % do_64bit_check { < % 64bit { < % 64bit_source not { notimeout 32bit_popup } if < % } { < % 64bit_source { notimeout 64bit_popup } if < % } ifelse < % } if --- > do_64bit_check { > 64bit { > 64bit_source not { notimeout 32bit_popup } if > } { > 64bit_source { notimeout 64bit_popup } if > } ifelse > } if 307c313 < % } ifelse --- > } ifelse 586,609c592,615 < % info.type 2 eq < % is_second_side and { < % txt_dvd_warning info.msg < % over length info.msg length 1 add add "%s%s" exch < % dup string dup /info.msg exch def snprintf < % } if < < % syslinux info.type 3 eq and { < % dup .title txt_change_disk_title put < % 0 getinfo 1 add txt_insert_disk info.tmpmsg sprintf < % /info.msg info.tmpmsg def < % } if < < % syslinux info.type 4 eq and { < % dup .title txt_change_disk_title put < % 1 getinfo 15 not and { < % 0 getinfo 1 add < % txt_insert_disk3 info.tmpmsg sprintf < % } { < % 0 getinfo 1 add 1 getinfo 1 add < % txt_insert_disk2 info.tmpmsg sprintf < % } ifelse < % /info.msg info.tmpmsg def < % } if --- > info.type 2 eq > is_second_side and { > txt_dvd_warning info.msg > over length info.msg length 1 add add "%s%s" exch > dup string dup /info.msg exch def snprintf > } if > > syslinux info.type 3 eq and { > dup .title txt_change_disk_title put > 0 getinfo 1 add txt_insert_disk info.tmpmsg sprintf > /info.msg info.tmpmsg def > } if > > syslinux info.type 4 eq and { > dup .title txt_change_disk_title put > 1 getinfo 15 not and { > 0 getinfo 1 add > txt_insert_disk3 info.tmpmsg sprintf > } { > 0 getinfo 1 add 1 getinfo 1 add > txt_insert_disk2 info.tmpmsg sprintf > } ifelse > /info.msg info.tmpmsg def > } if 859,873c865,874 < % syslinux { < % dup "linux" eq { pop txt_install return } if < % dup "failsafe" eq { pop txt_safe_install return } if < % dup "noacpi" eq { pop txt_noacpi_install return } if < % dup "manual" eq { pop txt_manual_install return } if < % dup "rescue" eq { pop txt_rescue return } if < % dup "hwcheck" eq { pop "Hardware Check" return } if < % dup "harddisk" eq { pop txt_boot_harddisk return } if < % dup "eval" eq { pop "LiveEval" return } if < % } { < % dup "linux" eq { pop "Linux" return } if < % dup "failsafe" eq { pop txt_safe_linux return } if < % dup "windows" eq { pop "Windows" return } if < % } ifelse < { --- > syslinux { > dup "linux" eq { pop txt_install return } if > dup "failsafe" eq { pop txt_safe_install return } if > dup "noacpi" eq { pop txt_noacpi_install return } if > dup "manual" eq { pop txt_manual_install return } if > dup "rescue" eq { pop txt_rescue return } if > dup "hwcheck" eq { pop "Hardware Check" return } if > dup "harddisk" eq { pop txt_boot_harddisk return } if > dup "eval" eq { pop "LiveEval" return } if > } { 877c878 < } --- > } ifelse 1069,1073c1070,1074 < % dup keyF7 eq syslinux and { < % "kroete.data" findfile kroete.dir idle < % /kroete.dir kroete.dir 1 xor def < % pop 0 < % } if --- > dup keyF7 eq syslinux and { > "kroete.data" findfile kroete.dir idle > /kroete.dir kroete.dir 1 xor def > pop 0 > } if 1075,1078c1076,1079 < % dup keyF8 eq syslinux and { < % .undef 0 idle < % pop 0 < % } if --- > dup keyF8 eq syslinux and { > .undef 0 idle > pop 0 > } if 1080,1086c1081,1087 < % dup keyShiftF3 eq syslinux and debug 3 ge and { < % currentcolor black setcolor < % currentpoint 0 0 moveto < % "eject " print bootdrive eject print < % moveto setcolor < % pop 0 < % } if --- > dup keyShiftF3 eq syslinux and debug 3 ge and { > currentcolor black setcolor > currentpoint 0 0 moveto > "eject " print bootdrive eject print > moveto setcolor > pop 0 > } if 1088,1094c1089,1095 < % dup keyShiftF5 eq syslinux and debug 3 ge and { < % currentcolor black setcolor < % currentpoint 100 0 moveto < % bootdrive print < % moveto setcolor < % pop 0 < % } if --- > dup keyShiftF5 eq syslinux and debug 3 ge and { > currentcolor black setcolor > currentpoint 100 0 moveto > bootdrive print > moveto setcolor > pop 0 > } if 1198,1199c1199,1200 < %/32bit_popup { < % window.dialog --- > /32bit_popup { > window.dialog 1201,1207c1202,1208 < % dup .title "Cool computer, but..." put < % dup .text "You are about to install 32-bit software on a 64-bit computer." put < % dup .buttons [ < % button.continue button.default actNothing button.setaction < % ] put < % dup window.init < % window.show --- > dup .title "Cool computer, but..." put > dup .text "You are about to install 32-bit software on a 64-bit computer." put > dup .buttons [ > button.continue button.default actNothing button.setaction > ] put > dup window.init > window.show 1209c1210 < %} def --- > } def 1217,1218c1218,1219 < %/64bit_popup { < % window.dialog --- > /64bit_popup { > window.dialog 1220,1226c1221,1227 < % dup .title "Cool software, but..." put < % dup .text "This is a 32-bit computer. You cannot use 64-bit software on it." put < % dup .buttons [ < % button.reboot button.default actReboot actNoClose or button.setaction < % ] put < % dup window.init < % window.show --- > dup .title "Cool software, but..." put > dup .text "This is a 32-bit computer. You cannot use 64-bit software on it." put > dup .buttons [ > button.reboot button.default actReboot actNoClose or button.setaction > ] put > dup window.init > window.show 1228c1229 < %} def --- > } def diff -r ../gfxboot-grub/help.inc ../gfxboot-grub.org/help.inc 61c61 < % syslinux not { --- > syslinux not { 69c69 < % } if --- > } if Only in ../gfxboot-grub.org/: install.config Only in ../gfxboot-grub.org/: keymap.cs.inc Only in ../gfxboot-grub.org/: keymap.de.inc Only in ../gfxboot-grub.org/: keymap.es.inc Only in ../gfxboot-grub.org/: keymap.fr.inc Only in ../gfxboot-grub.org/: keymap.hu.inc Only in ../gfxboot-grub.org/: keymap.it.inc Only in ../gfxboot-grub.org/: keymap.ja.inc Only in ../gfxboot-grub.org/: keymap.ru.inc Only in ../gfxboot-grub.org/: keymap.sk.inc Only in ../gfxboot-grub.org/: keymap.sl.inc Only in ../gfxboot-grub.org/: keymap.sv.inc diff -r ../gfxboot-grub/keytables.inc ../gfxboot-grub.org/keytables.inc 15a16,27 > %% include keymap.cs.inc > %% include keymap.es.inc > %% include keymap.fr.inc > %% include keymap.de.inc > %% include keymap.it.inc > %% include keymap.ja.inc > %% include keymap.hu.inc > %% include keymap.ru.inc > %% include keymap.sk.inc > %% include keymap.sl.inc > %% include keymap.sv.inc > 17a30 > [ "cs" keymap.cs ] 18a32,41 > [ "es" keymap.es ] > [ "fr" keymap.fr ] > [ "de" keymap.de ] > [ "it" keymap.it ] > [ "ja" keymap.ja ] > [ "hu" keymap.hu ] > [ "ru" keymap.ru ] > [ "sk" keymap.sk ] > [ "sl" keymap.sl ] > [ "sv" keymap.sv ] Only in ../gfxboot-grub.org/po: cs.po Only in ../gfxboot-grub.org/po: de.po Only in ../gfxboot-grub.org/po: es.po Only in ../gfxboot-grub.org/po: fr.po Only in ../gfxboot-grub.org/po: hu.po Only in ../gfxboot-grub.org/po: it.po Only in ../gfxboot-grub.org/po: ja.po Only in ../gfxboot-grub/po: ko.po Only in ../gfxboot-grub.org/po: nl.po Only in ../gfxboot-grub.org/po: ro.po Only in ../gfxboot-grub.org/po: ru.po Only in ../gfxboot-grub.org/po: sk.po Only in ../gfxboot-grub.org/po: sl.po Only in ../gfxboot-grub.org/po: sv.po Only in ../gfxboot-grub.org/: servers.cfg diff -r ../gfxboot-grub/window.inc ../gfxboot-grub.org/window.inc 529,531c529,530 < % dialog.tmp .ed.list get .undef ne syslinux and < % { xsavescreen } { savescreen } ifelse < savescreen --- > dialog.tmp .ed.list get .undef ne syslinux and > { xsavescreen } { savescreen } ifelse 639,642c638,641 < % dup actInstallOK eq { < % install.ok < % exch not exch < % } if --- > dup actInstallOK eq { > install.ok > exch not exch > } if
|
It is better to wear out than to rust out. |