forked from chenall/grub4dos
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
9151 lines (7320 loc) · 326 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2005-05-11
From Tinybit <[email protected]>:
For splashimage support:
* configure.ac: splashimage
* stage2/asm.S: splashimage
* stage2/builtins.c: splashimage
* stage2/char_io.c: splashimage
* stage2/graphics.c: (new file) splashimage
* stage2/graphics.h: (new file) splashimage
* stage2/Makefile.am: splashimage
* stage2/shared.h: splashimage
* stage2/stage2.c: splashimage
* stage2/term.h: splashimage
From Tinybit <[email protected]>:
For disk drive emulation:
* stage2/asm.S (int13_handler, etc): floppy and harddisk emulation
* grub/asmstub.c: floppy and harddisk emulation
* stage2/builtins.c: floppy and harddisk emulation
* stage2/common.c: floppy and harddisk emulation
* stage2/disk_io.c: floppy and harddisk emulation
* stage2/shared.h: floppy and harddisk emulation
From Gandalf <[email protected]>:
NTFS support
From Chris Semler <[email protected]>:
* stage2/builtins.c (find_func): added an option --set-root
(fallback_func): enable the use as a menu item.
(commandline_func): New function
* stage2/cmdline.c (enter_cmdline): changed arg for commandline_func
to use HEAP.
(run_script): changed arg for commandline_func to use HEAP.
* stage2/stage2.c (cmain): changed arg for commandline_func to use
CMDLINE.
* preset_menu.lst: New file
* preset_menu_os_setup.lst: New file
From Tinybit <[email protected]>:
For booting via DOS/NTLDR:
* stage2/Makefile.am: added items for GRLDR, GRUB.EXE and GRUB4LIN
* stage2/grldrstart.S: (new file) startup code for GRLDR(boot via NT)
* stage2/dosstart.S: (new file) startup code for GRUB.EXE(boot via DOS)
* stage2/bootlacestart.S: (new file) startup code for BOOTLACE.COM
* stage2/edd.S: (new file) for being included by dosstart.S
* stage2/video.S: (new file) for being included by dosstart.S
* stage2/asm: (new dir) contains header files for dosstart.S
* stage2/linux: (new dir) contains header files for dosstart.S
2005-05-08 Yoshinori K. Okuji <[email protected]>
* configure.ac (AC_INIT): Upgraded to 0.97.
* compile: Copied from Automake 1.9.4.
* config.guess: Likewise.
* config.sub: Likewise.
* depcomp: Likewise.
* install-sh: Likewise.
* missing: Likewise.
* mkinstalldirs: Likewise.
* mdate-sh: Likewise.
* docs/texinfo.tex: Likewise.
2005-05-08 Yoshinori K. Okuji <[email protected]>
* stage2/fsys_xfs.c (next_dentry): Use arrays of arrays instead of
arrays of pointers for USUAL, to avoid read-only strings. Reported
by Sven Wegener <[email protected]>.
2005-03-28 Yoshinori K. Okuji <[email protected]>
* lib/device.c (get_drive_geometry): Use ST.ST_SIZE instead of
ST.ST_BLOCKS to get the total number of sectors, because st_blocks
is not the same if it is a sparse file.
2005-03-19 Yoshinori K. Okuji <[email protected]>
* stage2/stage2.c (cmain): Initialize DEFAULT_FILE to an empty
string. Reported by NATORI Shin <[email protected]>.
2005-03-15 Yoshinori K. Okuji <[email protected]>
* stage2/fsys_fat.c (fat_mount): Ignore the 3rd bit of a media
descriptor, because some BIOSes overwrite this value, according
to the storage mode (e.g. USB Floppy or USB HDD).
2005-02-16 Yoshinori K. Okuji <[email protected]>
* grub/asmstub.c (grub_stage2): Remove the attribute `volatile'
from doit. I hope this change is safe for all compilers.
2005-02-15 Yoshinori K. Okuji <[email protected]>
* stage2/builtins.c (install_func): If DEST_DRIVE is a hard
disk, enable the workaround in Stage 1 by replacing the jmp
with double nop's.
* stage1/stage1.h (STAGE1_BOOT_DRIVE_CHECK): New macro.
(STAGE1_BOOT_DRIVE_MASK): Removed.
* stage1/stage1.S (boot_drive_check): New label. This implements
a different workaround for buggy BIOSes which don't pass boot
drive correctly. This is effective for BIOSes which pass a value
without the seventh bit (0x80).
(boot_drive_mask): Removed.
2005-02-03 Yoshinori K. Okuji <[email protected]>
* grub/asmstub.c (console_current_color): Make it global as
declared.
(grub_stage2): Tweak the declaration and the definition of the
nested function doit.
2005-02-02 Yoshinori K. Okuji <[email protected]>
* stage2/smp-imps.h (imps_any_new_apics): Removed.
(imps_enabled): Likewise.
(imps_lapic_addr): Likewise.
(imps_num_cpus): Likewise.
(imps_cpu_apic_map): Likewise.
(imps_apic_cpu_map): Likewise.
* stage2/Makefile.am (libgrub_a_CFLAGS): Remove
-fwritable-strings. Not required for the grub shell actually.
* grub/Makefile.am (AM_CFLAGS): Likewise.
2005-02-01 Yoshinori K. Okuji <[email protected]>
* grub/asmstub.c (grub_stage2): Use auto instead of static for
nested functions.
* stage2/char_io.c (memcheck) [GRUB_UTIL]: Likewise.
* stage2/builtins.c (blocklist_func): Likewise.
(color_func): Likewise.
(install_func): Likewise.
(setkey_func): Likewise.
* lib/device.c (read_device_map): Likewise.
2005-01-30 Yoshinori K. Okuji <[email protected]>
* configure.ac (AC_INIT): Upgraded to 0.96.
2004-10-11 Jason Thomas <[email protected]>
Patch from Stefanus Du Toit <[email protected]>
* docs/kernel.c.texi (cmain): Incremement mod by one, instead of
sizeof(module_t), since it's already a pointer of type module_t.
* docs/kernel.c (cmain): Do the same.
2004-09-20 Yoshinori K. Okuji <[email protected]>
* docs/internals.texi (Internals): Changed to an appendix.
* docs/grub.texi (@setchapternewpage): Changed to odd from off.
(@contents): Moved to the beginning.
(Future): Changed to an appendix.
2004-08-17 Yoshinori K. Okuji <[email protected]>
* stage2/cmdline.c (run_script): Fix a reversed conditional.
Reported by Alban Crequy <[email protected]>.
2004-08-07 Jason Thomas <[email protected]>
From Michael Hohnbaum <[email protected]>:
* stage2/fsys_ext2fs.c (ext2fs_read): Handle sparse files.
2004-07-24 Yoshinori K. Okuji <[email protected]>
* stage2/stage2.c (cmain): Terminate DEFAULT_FILE with NUL
correctly. Reported by Alban Crequy <[email protected]>.
2004-07-21 Robert Millan <[email protected]>
Patch from David Weinehall <[email protected]>
* util/mkbimage: Fix XSI-isms (for supporting POSIX-only shells).
2004-07-20 Robert Millan <[email protected]>
* util/grub-install.in: Detect GNU/k*BSD systems as well.
2004-07-16 Yoshinori K. Okuji <[email protected]>
* util/grub-install.in (convert): Fix the sed statement for
Linux. The expression was ambigious in some cases.
2004-06-29 Robert Millan <[email protected]>
* util/grub-set-default.in: Fix minor syntax error (non-escaped
characters).
2004-06-24 Robert Millan <[email protected]>
Fixes for FHS compliance. (/usr/share is for arch-independant data)
* stage1/Makefile.am: Move stage files to pkglibdir.
* stage2/Makefile.am: Likewise.
* docs/grub.texi: s,/usr/share,/usr/lib,g.
* util/grub-image.in: Look for stage files in pkglibdir.
* util/grub-install.in: Likewise.
* util/grub-install.in: Improve usage message.
2004-06-20 Yoshinori K. Okuji <[email protected]>
This is a big change on saving a default entry. This change
makes it possible to set up a quite robust system using GRUB.
Now we do not use the second sector of Stage 2 to store an
entry number but use the file /boot/grub/default. This file
must be generated by grub-set-default, although this file is
plain-text.
* util/grub-set-default.in: New file.
* util/grub-install.in (grub_set_default): New variable.
Use /grub instead of /boot/grub on OpenBSD as well as NetBSD.
Run grub-set-default to make a default file.
* util/Makefile.am (sbin_SCRIPTS): Added grub-set-default.
* stage2/stage2.c (run_menu): Change the fallback handling to
support multiple fallback entries.
(cmain): Likewise. Also, get a saved entry from a default file
if possible, before reading a config file.
* stage2/shared.h (DEFAULT_FILE_BUF): New macro.
(DEFAULT_FILE_BUFLEN): Likewise.
(CMDLINE_BUF): Set to DEFAULT_FILE_BUF + DEFAULT_FILE_BUFLEN.
(MENU_BUFLEN): Set to 0x8000 + PASSWORD_BUF - MENU_BUF.
(fallback_entry): Removed.
(fallback_entries): Declared.
(fallback_entryno): Likewise.
(MAX_FALLBACK_ENTRIES): New macro.
* stage2/cmdline.c (run_script): Use FALLBACK_ENTRYNO instead of
FALLBACK_ENTRY.
* stage2/builtins.c (fallback_entry): Removed.
(fallback_entryno): New variable.
(fallback_entries): Likewise.
(init_config): Initialize FALLBACK_ENTRYNO and FALLBACK_ENTRIES.
(fallback_func): Rewritten completely.
(savedefault_func): Likewise.
* docs/grub.texi (grub-set-default): New direntry.
(Installation): Describe grub-set-default for manual
installations.
(Making your system robust): New section.
(Booting once-only): New subsection.
(Booting fallback systems): Likewise.
(fallback): Describe multiple fallback entries.
(savedefault): Describe an optional argument.
(Invoking grub-set-default): New chapter.
(Future): Replaced with a description about GRUB 2.
* configure.ac (AC_CONFIG_FILES): Added util/grub-set-default.
2004-06-19 Yoshinori K. Okuji <[email protected]>
* stage2/ufs2.h (int8_t): Renamed to ...
(grub_uint8_t): ... this.
(int16_t): Renamed to ...
(grub_int16_t): ... this.
(int32_t): Renamed to ...
(grub_int32_t): ... this.
(int64_t): Renamed to ...
(grub_int64_t): ... this.
(uint8_t): Renamed to ...
(grub_uint8_t): ... this.
(uint16_t): Renamed to ...
(grub_uint16_t): ... this.
(uint32_t): Renamed to ...
(grub_uint32_t): ... this.
(uint64_t): Renamed to ...
(grub_uint64_t): ... this.
(u_char): Renamed to ...
(grub_u_char): ... this.
(u_int): Renamed to ...
(grub_u_int): ... this.
(u_int8_t): Renamed to ...
(grub_u_int8_t): ... this.
(u_int16_t): Renamed to ...
(grub_u_int16_t): ... this.
(u_int32_t): Renamed to ...
(grub_u_int32_t): ... this.
(u_int64_t): Renamed to ...
(grub_u_int64_t): ... this.
(ino_t): Renamed to ...
(grub_ino_t): ... this.
All callers are changed.
2004-06-14 Jeroen Dekkers <[email protected]>
* stage2/ufs2.h (__uint8_t): Remove.
(__uint16_t): Likewise.
(__uint32_t): Likewise.
(__uint64_t): Likewise.
(ino_t): Typedef to uint32_t.
2004-06-13 Yoshinori K. Okuji <[email protected]>
* stage2/Makefile.am (noinst_HEADERS): Added ufs2.h.
2004-06-13 Yoshinori K. Okuji <[email protected]>
* configure.ac (AC_INIT): Upgraded to 0.95.
2004-05-23 Yoshinori K. Okuji <[email protected]>
* stage2/char_io.c (grub_isspace): Use a switch sentense instead
of an if sentense, because that reduces the size.
* lib/device.c (read_device_map): Change the max number of DRIVE
to 127 from 8. This was too strict.
* stage2/asm.S (stop_floppy): Call pusha and popa outside the
block of real mode code. Reported by Guillem Jover
2004-05-20 Damian Ivereigh <[email protected]>
* netboot/main.c: Fixed bootp only code so that options
work properly. This fix is obvious when compared with the
DHCP code.
2004-05-17 Pavel Roskin <[email protected]>
* stage2/char_io.c (safe_parse_maxint): Disable for stage 1.5.
(grub_tolower): Disable for stage 1.5 except fat_stage1_5.
(grub_memcmp): Disable for stage 1.5 except iso9660_stage1_5.
2004-05-14 Yoshinori K. Okuji <[email protected]>
From Sergey Matveychuk <[email protected]>:
* stage2/size_test: Added a check for ufs2_stage1_5.
* stage2/shared.h (STAGE2_ID_UFS2_STAGE1_5): New macro.
[FSYS_UFS2] (STAGE2_ID): Set to STAGE2_ID_UFS2_STAGE1_5.
* stage2/filesys.h (FSYS_UFS2_NUM): New macro.
[FSYS_UFS2] (ufs2_mount): New prototype.
[FSYS_UFS2] (ufs2_read): Likewise.
[FSYS_UFS2] (ufs2_dir): Likewise.
[FSYS_UFS2] (ufs2_embed): Likewise.
(NUM_FSYS): Added FSYS_UFS2_NUM.
* stage2/disk_io.c (fsys_table): Added an ufs2 entry.
* stage2/builtins.c (setup_func): Added ufs2 into the
STAGE1_5_MAP.
* stage2/Makefile.am (libgrub_a_SOURCES): Added fsys_ufs2.c.
(libgrub_a_CFLAGS): Added -DFSYS_UFS2=1.
(pkgdata_DATA): Added ufs2_stage1_5.
(noinst_PROGRAMS): Added ufs2_stage1_5.exec.
(ufs2_stage1_5_exec_SOURCES): New variable.
(ufs2_stage1_5_exec_CFLAGS): Likewise.
(ufs2_stage1_5_exec_CCASFLAGS): Likewise.
(ufs2_stage1_5_exec_LDFLAGS): Likewise.
* grub/Makefile.am (AM_CPPFLAGS): Added -DFSYS_ISO9660=1,
-DFSYS_JFS=1, -DFSYS_REISERFS=1, -DFSYS_UFS2=1, -DFSYS_VSTAFS=1,
-DFSYS_XFS=1, and -DUSE_MD5_PASSWORDS=1.
* configure.ac (--disable-ufs2): New option.
* stage2/fsys_ufs2.c: New file.
* stage2/ufs2.h: Likewise.
2004-05-10 Robert Millan <[email protected]>
* lib/device.c: Mangle __FreeBSD_* macro usage to support
kFreeBSD-based non-FreeBSD systems (i.e. GNU/kFreeBSD).
Implement runtime detection of version of kFreeBSD. Now if
we build against kFreeBSD 5.x headers the GRUB shell will work on
both 4.x and 5.x.
Replace `u_int_t' types with portable `unsigned int' and old
reference to `geometry' structure to new `geom' one.
* docs/menu.lst: Split GNU/kFreeBSD and GNU/kNetBSD as separate
options than FreeBSD and NetBSD, respectively. There are minor
differences now (different paths).
2004-05-03 Pavel Roskin <[email protected]>
* stage2/char_io.c (convert_to_ascii): Remove "%b" support.
It's non-standard and is not used anymore.
(grub_printf): Likewise.
2004-04-29 Robert Millan <[email protected]>
From Yann Dirson <[email protected]>:
* util/mkbimage: Misc syntax fixes.
2004-04-29 Jeroen Dekkers <[email protected]>
* stage2/char_io.c (grub_memcmp): Define for stage1.5 too.
* stage2/fsys_iso9660.c (iso9660_mount): Use memcmp() instead of
__builtin_memcmp().
(iso9660_dir): Likewise.
2004-04-26 Christian Jones <[email protected]>
* docs/grub.texi (Making a GRUB bootable CD-ROM): minor edits,
including a few compatibility notes and a change to
-boot-load-size 4 for the mkisofs command.
2004-04-22 Jeroen Dekkers <[email protected]>
* Makefile.am (AUTOMAKE_OPTIONS): Add "gnu".
* configure.ac: Update to work with automake 1.8, quote all
AC_DEFUN's correctly and provide descriptions for AC_DEFINE's.
* acinclude.m4: Likewise.
* acconfig.h: Removed.
* stage1/Makefile.am (.exec): Use suffix rules instead of pattern
rules.
* stage2/Makefile.am (.exec): Likewise.
2004-04-18 Yoshinori K. Okuji <[email protected]>
* docs/grub.texi (Making a GRUB bootable CD-ROM): New section.
* stage2/disk_io.c (set_device): Use CH instead of *DEVICE to
test the first character of DEVICE, because DEVICE is
incremented.
Reported by Bernhard Treutwein.
2004-04-15 Yoshinori K. Okuji <[email protected]>
* netboot/fsys_tftp.c (buf_fill): Cast 1 to unsigned short
explicitly so that the constant doesn't extend unsigned short
to int automatically.
Reported by Eduard Guzovsky <[email protected]>.
* docs/grub.texi (Invoking grub-md5-crypt): Fixed the chapter
name.
Reported by Martin Pool <[email protected]>.
2004-04-04 Yoshinori K. Okuji <[email protected]>
* configure.ac (STAGE2_CFLAGS): Check if -fno-stack-protector is
supported by GCC. If yes, added the option. This is necessary
for OpenBSD, because the stack protector defines additional
symbols. Reported by uc.sheda <[email protected]>.
2004-03-28 Pavel Roskin <[email protected]>
* stage2/boot.c: Imply --no-mem-option for Linux kernels with
protocol version 2.03 and above (Linux 2.4.18 and newer).
2004-03-27 Yoshinori K. Okuji <[email protected]>
* stage2/char_io.c [!GRUB_UTIL] (memcpy): New function. It is
defined as an alias of grub_memmove. This is copied from GRUB 2.
* stage2/disk_io.c (print_completions): Simplified conditionals
to make it easier to edit the file with Emacs.
Added support for (cd).
(set_device): Likewise.
* stage2/common.c (init_bios_info): Check if BOOT_DRIVE is a
CDROM drive. If it is true, set CDROM_DRIVE to BOOT_DRIVE.
(cdrom_drive): New variable.
From Leonid Lisovskiy <[email protected]>:
* stage2/start_eltorito.S: New file.
* stage2/stage2.c (run_menu): Use GRUB_INVALID_DRIVE instead of
0xFF.
* stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
[FSYS_ISO9660] (STAGE2_ID): Set to STAGE2_ID_ISO9660_STAGE1_5.
(struct geometry): Added a new member ``sector_size''.
(BIOSDISK_FLAG_CDROM): New macro.
(cdrom_drive): Declared.
* stage2/fsys_iso9660.c: New file.
* stage2/iso9660.h: Likewise.
* stage2/filesys.h (FSYS_ISO9660_NUM): New macro.
[FSYS_ISO9660] (iso9660_mount): Declared.
[FSYS_ISO9660] (iso9660_read): Likewise.
[FSYS_ISO9660] (iso9660_dir): Likewise.
(NUM_FSYS): Added FSYS_ISO9660_NUM.
* stage2/disk_io.c (fsys_table) [FSYS_ISO9660]: Added iso9660.
(current_drive): Use GRUB_INVALID_DRIVE.
(log2): New function.
(rawread): Use BUF_GEOM.SECTOR_SIZE instead of SECTOR_SIZE.
Change the type of BUFADDR from int to char *.
Use a virtual track to make sure that one track fits in the
buffer.
(sane_partition): Allow CURRENT_DRIVE to be CDROM_DRIVE, because
a bios drive for a CD-ROM is often assigned to greater than
0x88.
(set_device): Use GRUB_INVALID_DRIVE instead of 0xFF.
(setup_part): Likewise.
* stage2/cmdline.c (init_cmdline): Use GRUB_INVALID_DRIVE.
* stage2/builtins.c (install_func): Use GRUB_INVALID_DRIVE.
(setup_func): Added iso9660_stage1_5.
* stage2/bios.c (biosdisk): Don't fall back to the CHS mode
if the drive is a CDROM.
(get_cdinfo): New function.
(get_diskinfo): Call get_cdinfo if the drive is greater than or
equal to 0x88 or the drive supports LBA.
Set the sector size to SECTOR_SIZE if it is not a CD-ROM.
* stage2/asm.S (biosdisk_int13_extensions): Take a word
argument AX instead of a byte argument AH.
(get_diskinfo_int13_extensions): Removed.
* stage2/Makefile.am (noinst_HEADERS): Added iso9660.h.
(libgrub_a_SOURCES): Added fsys_iso9660.c.
(libgrub_a_CFLAGS): Added -DFSYS_ISO9660=1.
(pkgdata_DATA): Added iso9660_stage1_5 and stage2_eltorito.
(noinst_PROGRAMS): Added iso9660_stage1_5.exec and
start_eltorito.exec.
(noinst_DATA): Added start_eltorito.
(pre_stage2_exec_SOURCES): Added fsys_iso9660.c.
(START_ELTORITO_LINK): New variable.
(start_eltorito_exec_SOURCES): Likewise.
(start_eltorito_exec_CCASFLAGS): Likewise.
(start_eltorito_exec_LDFLAGS): Likewise.
(start_eltorito_exec-start.$(OBJEXT)): New dependency.
(stage2_eltorito): New target.
(iso9660_stage1_5_exec_SOURCES): New variable.
(iso9660_stage1_5_exec_CFLAGS): Likewise.
(iso9660_stage1_5_exec_CCASFLAGS): Likewise.
(iso9660_stage1_5_exec_LDFLAGS): Likewise.
* stage1/stage1.h (GRUB_INVALID_DRIVE): New macro.
* stage1/stage1.S (boot_drive): Use the macro GRUB_INVALID_DRIVE.
(real_start): Likewise.
* lib/device.c (get_drive_geometry): Set GEOM->SECTOR_SIZE to
SECTOR_SIZE by default.
* configure.ac (--disable-iso9660): New option.
2004-03-13 Yoshinori K. Okuji <[email protected]>
From Daniele Zelante <[email protected]>:
* stage2/asm.S (stop_floppy): Use INT 13, AH=00h to stop the
floppy controller instead of a direct I/O.
2004-03-12 Yoshinori K. Okuji <[email protected]>
* stage2/serial.c (serial_putchar): Handle the character code
127 as a backspace. Reported by Florian Engelhardt
2004-03-12 Yoshinori K. Okuji <[email protected]>
From Boji Tony Kannanthanam <[email protected]>:
* util/grub-install.in (convert): Add support for ATARAID
device names.
* lib/device.c (get_ataraid_disk_name) [__linux__]: New
function.
(init_device_map) [__linux__]: Probe ATARAID disks.
* stage2/size_test (check): Don't use the local statement any
longer. It was unneeded actually. Reported by Paul Jarc.
2004-03-12 Yoshinori K. Okuji <[email protected]>
From Sergey Matveychuk <[email protected]>:
* lib/device.c (get_drive_geometry): Do not open the same device
more than once unnecessarily.
(get_drive_geometry) [__FreeBSD_version >= 500040]: Use new
ioctl methods.
(get_floppy_disk_name) [__FreeBSD__ >= 4]: Use /dev/fd%d rather
than /dev/rfd%d.
(get_ide_disk_name) [__FreeBSD__ >= 4]: Use /dev/ad%d rather
than /dev/rad%d.
(get_scsi_disk_name) [__FreeBSD__ >= 4]: Use /dev/da%d rather
than /dev/rda%d.
* grub/asmstub.c (get_diskinfo): Check if ERRNO is EPERM as
well.
2004-02-28 Jeroen Dekkers <[email protected]>
* docs/grub.texi (partnew): Change @var{to} to @var{len}.
2004-02-18 Yoshinori K. Okuji <[email protected]>
From Yury V. Umanets <[email protected]>:
* stage2/fsys_reiserfs.c (REISER3FS_SUPER_MAGIC_STRING): New
macro.
(reiserfs_mount): Added checks for ReiserFS 3.
(reiserfs_embed): Likewise.
2004-01-25 Yoshinori K. Okuji <[email protected]>
* docs/grub.texi (Obtaining and Building GRUB): Instead of
describing how to use the anoncvs method, specify the URL of
the description page on Savannah.
Reported by Bernhard Treutwein.
2004-01-18 Yoshinori K. Okuji <[email protected]>
From Thomas Schwinge <[email protected]>:
* grub/Makefile.am (AM_CPPFLAGS): New variable.
(AM_CFLAGS): Removed all cpp flags.
* stage2/xfs.h (__int8_t): Renamed to ...
(xfs_int8_t): ... this.
(__uint8_t): Renamed to ...
(xfs_uint8_t): ... this.
(__int16_t): Renamed to ...
(xfs_int16_t): ... this.
(__uint16_t): Renamed to ...
(xfs_uint16_t): ... this.
(__int32_t): Renamed to ...
(xfs_int32_t): ... this.
(__uint32_t): Renamed to ...
(xfs_uint32_t): ... this.
(__int64_t): Renamed to ...
(xfs_int64_t): ... this.
(__uint64_t): Renamed to ...
(xfs_uint64_t): ... this.
All callers are changed.x
From Egmont Koblinger <[email protected]>:
* util/grub-install.in: Support an install devices in GRUB's
notation without parentheses.
* docs/grub.texi (Installing GRUB using grub-install): Added an
example of using grub-install without parentheses.
2004-01-18 Yoshinori K. Okuji <[email protected]>
* util/grub-install.in: Use the first word of GRUB_SHELL when
checking if the grub shell is present. This is necessary to
support options to the grub shell (e.g. grub --read-only).
From Eric Kvaalen <[email protected]>:
* docs/grub.texi: Many bug fixes.
2004-01-17 Yoshinori K. Okuji <[email protected]>
* lib/device.c [__linux__] (MAJOR): Support 32 bit and 64 bit
dev_t. This code is stolen from glibc.
Suggested by Shen Feng <[email protected]>.
2004-01-11 Yoshinori K. Okuji <[email protected]>
* stage2/terminfo.c (ti_set_term): Use a pointer to struct
terminfo instead to avoid GCC's bug, which inserts a reference
to memcpy implicitly.
(ti_get_term): Likewise.
All callers are fixed.
* stage2/terminfo.h (ti_set_term): Updated.
(ti_get_term): Likewise.
* stage2/shared.h (struct linux_kernel_header): New member,
initrd_max_address. Defined in the boot protocol 2.03 or higher.
* stage2/boot.c (load_initrd): If the boot protocol is greater
than or equal to 2.03, use the field ``initrd_max_address''
instead of LINUX_INITRD_MAX_ADDRESS.
2003-12-30 Yoshinori K. Okuji <[email protected]>
* stage2/fsys_ext2fs.c (ext2_is_fast_symlink): New function.
(ext2fs_dir): Use ext2_is_fast_symlink to check if the current
inode is a fast or slow symlink. This change was required
because Linux now uses acl seriously (i.e. incompatibility).
Reported by Chris PeBenito <[email protected]> and Seemant
Kulleen <[email protected]>
2003-11-30 Yoshinori K. Okuji <[email protected]>
* lib/device.c (read_device_map) (sho_warning): New internal
function.
(read_device_map): If DRIVE is greater than 8, emit a warning
and ignore the drive, rather than exiting abnormally.
Reported by Greg Newby <[email protected]>.
2003-10-19 Yoshinori K. Okuji <[email protected]>
Migrated to newer autotools. Also, don't install mkbimage
because its name is too general and it does not conform to the
GNU Coding Standards in some points.
* util/Makefile.am (EXTRA_DIST): New variable.
(sbin_SCRIPTS): Removed mkbimage.
(noinst_SCRIPTS): Added mkbimage.
* stage1/Makefile.am (AM_ASFLAGS): Renamed to ...
(AM_CCASFLAGS): ... this.
* stage2/Makefile.am (pre_stage2_exec_ASFLAGS): Renamed to ...
(pre_stage2_exec_CCASFLAGS): ... this.
(start_exec_ASFLAGS): Renamed to ...
(start_exec_CCASFLAGS): ... this.
(e2fs_stage1_5_exec_ASFLAGS): Renamed to ...
(e2fs_stage1_5_exec_CCASFLAGS): ... this.
(fat_stage1_5_exec_ASFLAGS): Renamed to ...
(fat_stage1_5_exec_CCASFLAGS): ... this.
(ffs_stage1_5_exec_ASFLAGS): Renamed to ...
(ffs_stage1_5_exec_CCASFLAGS): ... this.
(minix_stage1_5_exec_ASFLAGS): Renamed to ...
(minix_stage1_5_exec_CCASFLAGS): ... this.
(reiserfs_stage1_5_exec_ASFLAGS): Renamed to ...
(reiserfs_stage1_5_exec_CCASFLAGS): ... this.
(vstafs_stage1_5_exec_ASFLAGS): Renamed to ...
(vstafs_stage1_5_exec_CCASFLAGS): ... this.
(jfs_stage1_5_exec_ASFLAGS): Renamed to ...
(jfs_stage1_5_exec_CCASFLAGS): ... this.
(xfs_stage1_5_exec_ASFLAGS): Renamed to ...
(xfs_stage1_5_exec_CCASFLAGS): ... this.
(diskless_exec_ASFLAGS): Renamed to ...
(diskless_exec_CCASFLAGS): ... this.
(nbloader_exec_ASFLAGS): Renamed to ...
(nbloader_exec_CCASFLAGS): ... this.
(pxeloader_exec_ASFLAGS): Renamed to ...
(pxeloader_exec_CCASFLAGS): ... this.
* configure.in: Removed.
* configure.ac: New file. Mostly derived from configure.in.
2003-10-19 Yoshinori OKUJI <[email protected]>
From KB Sriram <[email protected]>:
* stage2/disk_io.c (set_device) [SUPPORT_NETBOOT]: Added support
for a completion of a network device.
(print_completions): Likewise.
2003-10-10 Robert Millan <[email protected]>
* config.guess: Update from official source (CVS).
* config.sub: Likewise.
2003-09-18 Robert Millan <[email protected]>
* docs/texinfo.tex: Update from ftp.gnu.org.
2003-09-05 KB Sriram <[email protected]>
* stage2/fsys_fat.c: Fix missdetection of ext2fs as fatfs.
2003-09-05 Robert Millan <[email protected]>
* docs/menu.lst (GNU/Linux): Add commented initrd command, which
is consistent with documentation.
2003-09-01 Robert Millan <[email protected]>
* docs/menu.lst: Add NetBSD, OpenBSD, GNU/KFreeBSD and
GNU/KNetBSD.
2003-08-13 Jason Thomas <[email protected]>
* util/grub-install.in (resolve_symlink): New function to
resolve symlinks.
(find_device): Moved symlink code to new function.
Before we convert the install_device we attempt to resolve it if
its a symlink using the new function.
* util/mbchk.c (check_multiboot): The sense of an error message
was inverted.
Reported by Timothy Baldwin <[email protected]>.
2003-08-12 Jochen Hoenicke <[email protected]>
* stage2/fsys_reiserfs.c (read_tree_node): Fixed a typo; only
matters for very large fs when tree doesn't fit in cache.
(IH_KEY_OFFSET): Don't check for INFO->version. There are
actually old version file systems that use new version items.
(IH_KEY_ISTYPE): Likewise.
(reiserfs_dir): Likewise.
2003-08-09 Thierry Laronde <[email protected]>
* util/mkbimage: New File. `mkbimage' depends on GRUB and
existed elsewhere. It is now part of GRUB so that people can
fix/contribute.
* util/Makefile.am (sbin_SCRIPTS): Added script `mkbimage'
2003-08-01 Jason Thomas <[email protected]>
* util/grub-install.in: support --no-floppy
This allow users to specify the --no-floppy option which
is passed onto the grub shell, so it does not probe the floppy
drive.
Patch from [email protected]
2003-06-17 Jochen Hoenicke <[email protected]>
* stage2/fsys_reiserfs.c (reiserfs_mount): Clear the node cache.
This fixes a problem where files from other partitions appear at
the wrong partition. Problem reported by Johan Regin.
2003-05-04 Yoshinori K. Okuji <[email protected]>
* docs/grub.texi (partnew): Fixed the inconsistency between the
implementation and the documentation. The last argument is the
length instead of the ending address.
Reported by Daniel Farrell <[email protected]>.
2003-03-19 Yoshinori K. Okuji <[email protected]>
From Adam Lackorzynski <[email protected]>:
* stage2/shared.h (KEY_NPAGE): Changed to 0x5100.
(KEY_PPAGE): Changed to 0x4900.
2003-03-19 Yoshinori K. Okuji <[email protected]>
* stage2/boot.c (load_image): Check if DATA_LEN plus SECTOR_SIZE
is less than or equal to MULTIBOOT_SEARCH, instead of if
DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
Reported by Neelkanth Natu <[email protected]>.
2003-03-10 Yoshinori K. Okuji <[email protected]>
From Andrew Walrond <[email protected]>:
* stage2/fsys_reiserfs.c (struct reiserfs_journal_header):
Remove an unnecessary ``long''.
2003-03-10 Yoshinori K. Okuji <[email protected]>
From Tilmann Bubeck:
* stage2/builtins.c [SUPPORT_SERIAL] (terminfo_func): Unescape
arguments before copying them, and escape sequences before
printing them.
* stage2/terminfo.h (TERMINFO_LEN): Changed to 40.
2003-02-20 Yoshinori K. Okuji <[email protected]>
* util/grub-install.in (find_device): Fix the sed script.
2003-02-17 Yoshinori K. Okuji <[email protected]>
* lib/device.c (check_device): If DEVICE is empty, just return
1.
(get_scsi_disk_name) [__QNXNTO__]: Make NAME empty, because SCSI
disks are detected as IDE disks on QNX RTP.
From Taketo Kabe <[email protected]>:
* lib/device.c (get_ide_disk_name) [__QNXNTO__]: Set NAME to
"/dev/hdX".
(get_floppy_disk_name) [__QNXNTO__]: Set NAME to "/dev/fdX".
* stage2/mb_info.h (struct AddrRangeDesc): Specified with the
attribute packed.
* stage2/shared.h (struct mmar_desc): Likewise.
2003-01-29 Yoshinori K. Okuji <[email protected]>
From Ilguiz Latypov:
* configure.in: Fix a syntax error in a sed script.
* stage2/bios.c (get_diskinfo): PhoenixBIOS 4.0 Revision 6.0
for ZF Micro might understand the greater buffer size for the
"get drive parameters" int 0x13 call in its own way.
Supposedly the BIOS assumes even bigger space is available and
thus corrupts the stack. This is why we specify the exactly
necessary size of 0x42 bytes.
2003-01-25 Yoshinori K. Okuji <[email protected]>
From Steven Dick <[email protected]>:
* stage2/pc_slice.h (PC_SLICE_TYPE_DELL_UTIL): New macro.
(IS_PC_SLICE_TYPE_FAT): Recognize PC_SLIDE_TYPE_DELL_UTIL as
well.
2003-01-25 Yoshinori K. Okuji <[email protected]>
From Karsten Scheibler <[email protected]>:
* stage2/terminfo.c (term): Don't use a C99-style initializer.
2003-01-16 Yoshinori K. Okuji <[email protected]>
From H.J. Lu <[email protected]>:
* stage2/disk_io.c (part_start): Use unsigned long to support
large disks.
(part_length): Likewise.
* stage2/shared.h (part_start): Likewise.
(part_length): Likewise.
2003-01-05 Yoshinori K. Okuji <[email protected]>
* configure.in (CFLAGS): When the default CFLAGS is used,
eliminate -O2 and -g from CFLAGS, because Autoconf may
automatically set CFLAGS to them.
2003-01-02 Yoshinori K. Okuji <[email protected]>
From Jeremy Katz:
* configure.in: Support building on x86_64 with gcc -m32.
2003-01-02 Yoshinori K. Okuji <[email protected]>
From Jeremy Katz:
* stage2/fsys_ext2fs.c (ext2fs_dir): Initialize STR_CHK to shut
up GCC.
* stage2/fsys_minix.c (minix_dir): Likewise.
2002-12-21 Yoshinori K. Okuji <[email protected]>
* stage2/asm.S (gateA20): First, try a BIOS call (INT 15H,
AX=2400/2401). Use the keyboard controller, only if that failed.
2002-12-11 Yoshinori K. Okuji <[email protected]>
Add a workaround for buggy BIOSes which don't pass boot drive
correctly. The idea is that GRUB forces the fixed disk flag
when booted from a hard disk. When BIOS loads GRUB directly,
the boot drive must be either of 0x00 and 0x80, so this should
work, if those BIOSes always pass zero to %dl. AFAIK, this
assumption is always correct.
* stage2/builtins.c (install_func): Store the fixed disk flag of
the destination drive in BOOT_DRIVE_MASK in Stage 1.
* stage1/stage1.h (STAGE1_BOOT_DRIVE_MASK): New macro.
* stage1/stage1.S (boot_drive_mask): New variable. It is or'ed
to %dl.
2002-12-09 Yoshinori K. Okuji <[email protected]>
* stage2/char_io.c (init_page): Change the software name from
"GRUB" to "GNU GRUB". This was inaccurate. Reported by Ciaran
O'Riordan <[email protected]>.
2002-12-04 Yoshinori K. Okuji <[email protected]>
* stage2/builtins.c (embed_func): When checking if the disk can
store Stage 1.5, check every partition, if it isn't empty.
2002-12-04 Yoshinori K. Okuji <[email protected]>
* stage2/stage2.c (print_entry): Put a right arrow, if the entry
is longer than 71 characters. Reported by Pavel Roskin.
2002-12-04 Yoshinori K. Okuji <[email protected]>
* stage2/disk_io.c (set_device): If '(n' is given, add 'd' into
DEVICE. Reported by Pavel Roskin.
2002-12-03 Yoshinori K. Okuji <[email protected]>
Change the terminal structure a bit, to turn the cursor state
explicitly. Suggested by Pavel Roskin.
* stage2/term.h (struct term_entry): Remove the member
`nocursor' and add `setcursor'.
[!STAGE1_5] (console_setcursor): New prototype.
[SUPPORT_HERCULES] (hercules_setcursor): Likewise.
[!STAGE1_5] (console_nocursor): Removed.
[SUPPORT_HERCULES] (hercules_nocursor): Likewise.
* stage2/stage2.c (run_menu): Call setcursor instead of
nocursor.
Call setcursor with 1 before starting a boot entry.
* stage2/shared.h (nocursor): Removed.
(setcursor): New prototype.
* stage2/hercules.c (herc_cursor_state): New variable.
(herc_turn_cursor): Removed.
(hercules_nocursor): Likewise.
(hercules_setcursor): New function.