· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Booyo LiveCD/Make Ash

BooyoLiveCD/MakeAsh



modutils-2.4.15 module-init-tools-3.0

292 rm -Rf module* 293 rm -Rf modut* DEFINE _LINUX_SOURCE 필요

dietlibc install

rpm -ivh module-init-tools-4.1-0.pre5.3.src.rpm

need to compare insmod.c in bltin and module-init-tools-3.0

edit Makefile insert CC=diet gcc -O2 -Os edit CFLAGS = $(RPM_OPT_FLAGS) -DSHELL -D_LINUX_SOURCE -I/usr/src/linux/include -I. -DBIT_TYPES_DEFINED

edit mystring.h rm strlen edit bltin/rmmod.c

"Usage: rmmod ?-a | module\n" "Usage: rmmod module\n"

unsigned int flags = O_NONBLOCK|O_EXCL; if(argc<2) return syntax(); if(delete_module(argv1, flags)) { perror(argv0); return -1; } return 0;


cp /home/tcheun/ash-berry-0.2/bltin/losetup.c . cp /home/tcheun/ash-berry-0.2/bltin/loop.h . edit builtins add losetup_main losetup edit Makefile add losetup.c losetuo.o sh 이 만들어 지기는 했지만, 이 방법의 문제를 알게됨. insmod 를 sh 에 builtin 으로 만들경우, insmod 에서 오류가 생기면, sh 에서 빠져 나오므로, 결과적으로 부팅이 되지 않음. 별도의 insmod 를 사용하면, insmod 의 오류를 오류로 처리할 수 있슴. 현재의 모듈 중 fdomain.ko 에서 문제 발생. 이를 방지하기 위해 knopper 가 signal(SIGSEGV, SIG_IGN) 를 사용하였지만, 세그멘테이션 오류 발생하고 정지함. 디스켓을 사용한 부팅을 고려할 경우, insmod 를 sh 에 builtin 하는 것이 필요하지만, udev 로 인해 이미 디스켓을 사용한 부팅은 어려워 진 것이 아닌가?

insmod 에 의해 sh 이 죽을 가능성이 너무 많으므로, insmod.static 를 사용하기로 함.

diff knoppix and berry


Makefile


bltin 에서 insmod 를 빼고, losetup 과 pivot_root 를 추가하였슴. (SRCS, OBJ2)

insmod 는 module-init-tools-3.0 의 insmod.o 를 사용함. MOD_OBJ = ./module-init-tools-3.0/insmod.o

CFLAGS 의 include 부분을 제거함.

all 의 경우 MOD_OBJ 추가

bltin 디렉토리 밑에 knoppix 의 경우는 insmod.c 가 있고, berry 의 경우는 loop.h, losetup.c. pivot_root.c 가 있슴.

bltin/mount.c


/* #include "../builtins.h" const char *pm="/proc/mounts";

char *nargsv3={builtincmkCATCMD.name,pm,NULL}; return catcmd(2,nargv); */

if(argc<2) /* List mounts, use procfs, simple "cat" */
{
char *cat_argv2; cat_argv0=NULL; cat_argv1="/proc/mounts"; return catcmd(2, cat_argv);

}

knoppix 그대로 사용해도 됨. (수정하였슴) 아마 bltin/cat.c 의 수정 또는 bug fix 일 것 같음.

builtins


/* insmodcmd insmod */

insmod_main insmod losetup_main losetup pivot_root_main pivot_root

debian/rules


한번 읽어 보아야 할 것 같음.

make_ash_static


berry 에만 있슴.

mkinit.c


/* for (p = line1 + 6 ; *p != '=' && *p != '/' ; p++); */ for (p = line1 + 6 ; *p != '=' && *p != '/' && *p != '\n' ; p++);

읽어 보아야 할까?

module-init-tools-3.0/Makefile.am


읽어 보아야 할까?

module-init-tools-3.0/Makefile.in


읽어 보아야 할까?

module-init-tools-3.0/backwards_compat.c


읽어 보아야 할까?

module-init-tools-3.0/configure


읽어 보아야 할까?

module-init-tools-3.0/configure.in


읽어 보아야 할까?

module-init-tools-3.0/depmod.c


읽어 보아야 할까?

module-init-tools-3.0/doc/modprobe.sgml


읽어 보아야 할까?

module-init-tools-3.0/generate-modprobe.conf


읽어 보아야 할까?

module-init-tools-3.0/insmod.c


/* return;

int main(int argc, char *argv[])

return(0); return(1); */

exit(1);

int insmod_main(int argc, char *argv[])

exit(0); exit(1);

module-init-tools-3.0/install-with-care


읽어 보아야 하나?

module-init-tools-3.0/modinfo.c


/*
try_old_version("modinfo", argv);
*/

if (!getenv("NEW_MODINFO"))
try_old_version("modinfo", argv);

module-init-tools-3.0/modprobe.c


module-init-tools-3.0/modprobe.devfs


module-init-tools-3.0/testing.h


parser.c


/* putprompt(ps1val()); */

int i, n; char pwd256; if (getcwd(pwd, 256)) {
i=0; while (i < 256 && pwdi != '\0') i++; if (pwdi-1 == '/') pwdi++='/'; /* for / */ pwdi++=']'; n=0; while (*(ps1val()+n) != '\0') { pwdi++=*(ps1val()+n); n++; } pwdi='\0'; while (i >= 0 && pwdi != '/') i--; if (pwdi-1 == '/') i--; /* for / */ pwdi='['; putprompt(&pwdi);
} else {
putprompt(ps1val());
}

읽어 볼 것.

ID
Password
Join
If you make a mistake you right it immediately to the best of your ability.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-02-16 10:35:12
Processing time 0.0200 sec