jslinuxのケネルの再コンパイル
もっと読む
ここはオリジナルですよ
引用された
http://www.programering.com/a/MTM2gzNwATc.html
写真は全部木です
ハードディスクのマウントと修正の参考
http://haoningabc.iteye.com/blog/2142532
今日はjslinuxカーネルのコンパイルについて話します.
環境:更にlinodeの64位のcentos 7の下で
gccバージョン
気をつけます
make ARCH=i 386-C$(KERNEL PATH)-j 4>log.txt 2>error.txt
ここはオリジナルですよ
引用された
http://www.programering.com/a/MTM2gzNwATc.html
写真は全部木です
ハードディスクのマウントと修正の参考
http://haoningabc.iteye.com/blog/2142532
今日はjslinuxカーネルのコンパイルについて話します.
環境:更にlinodeの64位のcentos 7の下で
gccバージョン
[root@#localhost linux-2.6.20]# gcc --version
gcc (GCC) 4.8.2 20140120 (Red Hat 4.8.2-16)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
自分のMakefileを修正します.気をつけます
make ARCH=i 386-C$(KERNEL PATH)-j 4>log.txt 2>error.txt
root@#localhost linuxstart-20120111]# pwd
/data/qemu/linuxstart-20120111
[root@#localhost linuxstart-20120111]# cat Makefile
LD=ld -m elf_i386
CC=gcc -m32
CFLAGS= -O2 -Wall -fno-builtin -fno-stack-protector #-march=i386
HOST_CFLAGS=-O2 -Wall
# modify to set the kernel path
KERNEL_PATH=../linux-2.6.20
all: linuxstart.bin
linuxstart.out: linuxstart_head.o linuxstart.o libc.o
$(LD) -o $@ -N -Ttext 0x00010000 $^
linuxstart.bin: linuxstart.out
objcopy -O binary $< $@
cp /data/qemu/linuxstart-20120111/linuxstart.bin /data/qemu/backup/jslinux_debug/jslinux
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
%.o: %.S
$(CC) -m32 -D__ASSEMBLY__ -c -o $@ $<
# target to generate kernel
kernel:
#make ARCH=i386 -C $(KERNEL_PATH) -j4
make ARCH=i386 -C $(KERNEL_PATH) -j4 >log.txt 2>error.txt
objcopy -O binary $(KERNEL_PATH)/vmlinux vmlinux26.bin
clean:
rm -f linuxstart.bin linuxstart.out *.o *~
[root@#localhost linuxstart-20120111]#
[root@#localhost linux-2.6.20]# pwd
/data/qemu/linux-2.6.20
cp ../linuxstart-20120111/config* .config
patch -p1 <..>
---------------------------------------------
0:
Makefile:1442: *** mixed implicit and normal rules.
http://blog.csdn.net/fengyaqi123/article/details/7873940
:
Makefile
420 :
config %config: scripts_basic outputmakefile FORCE
:
%config: scripts_basic outputmakefile FORCE
1268 :
/ %/: prepare scripts FORCE
:
%/: prepare scripts FORCE
コンパイルできます.
--------------------------
エラー1scripts/mod/sumversion.c:384: error: ‘PATH_MAX’ undeclared
scripts/mod/sumversion.c, and adding #include
http://blog.csdn.net/livingpark/article/details/3732679
modifying linux-2.6.x/scripts/mod/sumversion.cn,and adding include
------------------------------
エラー2:
gcc: error: elf_i386: No such file or directory
gcc: error: unrecognized command line option ‘-m’
この はgcc 4.6がもうlinker-styleアーキテクチャをサポートしないからです.
gcc-m elf_が ですi 386をgccに する -m 32
しかし、ldは わらない
http://blog.sina.com.cn/s/blog_8 f 9 cdbd 0114 lxj.
:
すべてのファイルを するgrep-nR"\-m elfui 386"*
はこうしたいですが、この はだめです.
ファイルの を
ヽoo sed-i"s/\-m elf i 386\-m elf i 386/\-m elf i 386/g"`grep"\-m elf i 386"-l .`
ヽoo sed-i″s/m elfui 386/m 32/g″grep“m elf i 386”-rl .`
vim arch/i 386/kenel/Makefileの の-m elf_だけを します.i 386 -m 32 gccの ろだけにするように してください.ldの はしません.
エラー3:
mutexに するエラーなら
muttexのロックやロック は されていません.
ケネル/mutex.c
これは いやすくて、その のはすべて け で、 がconfigパラメーターをプラスするべきですか?usedは だめです.staticを り いて、ロックとロックを する があります.
https://github.com/socketpair/jslinux_reversed/blob/master/contrib/patch/2.6.20_commonfixes.patch
mutexロックslowpathの つの のstaticを します.
mutexロックslowpathの つの のstaticを します.
が わったらメイカーnelに きます.
linux-2.60とlinuxstart-120111と じクラスのディレクトリです.
vmlinux 26.binをindex.と じ に します.
そしてjslinux.jsを します.
//pc.load_binary("vmlinux-2.6.20.bin", 0x00100000, start2);
pc.load_binary("vmlinux26.bin", 0x00100000, start2);
jslinux.js start 3
block_list = [ 0, 7, 3, 643, 720, 256, 336, 644, 781, 387, 464, 475, 131, 589, 468, 472, 474, 776, 777, 778, 779, 465, 466, 473, 467, 469, 470, 512, 592, 471, 691, 697, 708, 792, 775, 769 ];
なぜこれらの を ぶのですか?
emeditorで「Welcome to JS/Linux」を します.
grepはだめです.hda 000781.binの にechoがあります.「Welcome to JS/linux」
の を かしますか?why、システムファイルの でどうやってこれを しますか?
ファイルはランダムに きますが、あるファイルを く は しますよね?
えないでください. したら きられなくなります. えば、JS/linuxをJJ/linuxに えたらどうなりますか?
なるほど/sbin/initに がありました.
ファイルを した
vi/sbin/init
やっぱりここですね
cat/dev/clipboard
#!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
export HOME=/var/root
export TERM=vt100
mount -a
mkdir /var/tmp
mkdir /var/root
ifconfig lo 127.0.0.1
# allow running DOS .COM executables with the small 'runcom' utility
echo ':DOSCOM:E::com::/usr/bin/runcom:' > /proc/sys/fs/binfmt_misc/register
stty -F /dev/ttyS0 rows 30
show_boot_time
cd $HOME
cp /root/hello.c $HOME
ln -sf /root/dos $HOME
echo "Welcome to JS/Linux"
while /bin/true; do
setsid sh -c 'exec sh /dev/ttyS0 2>&1'
done
サイズ:7 KB サイズ:9.1 KB ファイル を してください.