-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMake.amd64-bootstrap
55 lines (52 loc) · 1.96 KB
/
Make.amd64-bootstrap
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
## Make.amd64-bootstrap
#
amd64-bootstrap: amd64-toolchain
$(MAKE) JTL_CROSS=x86_64 JTL_CROSSCFLAGS="-O2" \
JTL_CROSSGCCFLAGS="--disable-multilib" \
x86_64-do-bootstrap
@touch $(MADE)/amd64-bootstrap
AMD64_ROOT:=$(JTL_DIR)/amd64-root
amd64-cd:
@echo Making bootdisk
@#
@# 1. Create empty dosfs image
@#
mkdir -p $(AMD64_ROOT)/boot
dd if=/dev/zero of=$(AMD64_ROOT)/boot/disk bs=1024 count=2880
mkdosfs $(AMD64_ROOT)/boot/disk
@#
@# 2. Set up mtools to treat it as j:, and copy in the syslinux 2ndary
@# bootloader
@#
echo "drive j: file=\"$(AMD64_ROOT)/boot/disk\"" > $(BUILD)/mtools.cfg
mkdir -p $(BUILD)/syslinux
tar xzf $(ARCHIVE)/syslinux-* -C $(BUILD)/syslinux
MTOOLSRC=$(BUILD)/mtools.cfg mcopy $(BUILD)/syslinux/*/ldlinux.sys j:ldlinux.sys
@#
@# 3. Copy over superblock (see syslinux.c)
@#
dd if=$(AMD64_ROOT)/boot/disk of=$(BUILD)/bootsect.tmp bs=512 count=1
cp $(BUILD)/syslinux/*/ldlinux.bin $(BUILD)/bootsect.new
dd if=$(BUILD)/bootsect.new of=$(AMD64_ROOT)/boot/disk bs=512 count=1 conv=notrunc
dd if=$(BUILD)/bootsect.tmp of=$(AMD64_ROOT)/boot/disk bs=1 skip=11 seek=11 count=51 conv=notrunc
@#
@# 4. Set up the file that tells the 2ndary loader what to boot
@#
echo "DEFAULT JTL" > $(BUILD)/syslinux.cfg
echo "PROMPT 1" >> $(BUILD)/syslinux.cfg
echo "LABEL JTL" >> $(BUILD)/syslinux.cfg
echo "KERNEL vmlinux" >> $(BUILD)/syslinux.cfg
#echo "APPEND root=/dev/hda irqpoll" >> $(BUILD)/syslinux.cfg
echo "APPEND root=/dev/nfs nfsroot=192.168.168.1:/tftpboot/amd64 ip=192.168.168.15:192.168.168.1:::::" >> $(BUILD)/syslinux.cfg
echo "TIMEOUT 100" >> $(BUILD)/syslinux.cfg
MTOOLSRC=$(BUILD)/mtools.cfg mcopy $(BUILD)/syslinux.cfg j:syslinux.cfg
@#
@# 5. Copy in the kernel
@#
MTOOLSRC=$(BUILD)/mtools.cfg mcopy $(AMD64_ROOT)/boot/vmlinux j:vmlinux
@#
@# 6. Tidy up
@#
rm -rf $(BUILD)/syslinux $(BUILD)/syslinux.cfg $(BUILD)/mtools.cfg \
$(BUILD)/bootsect.*
touch $(MADE)/sub-bootdisk