X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fb2hw.git;a=blobdiff_plain;f=main.c;h=3fa14f783294bf226fd92dcf5a5ceab9c0eb079f;hp=b91021723b78eeb2d68c6a817fc61e395915ffa1;hb=761cc3f8784aa54011d64d1ce8df1952ca4ca4da;hpb=a5bb76b2db7b6093cc1f350d75c810d9fab6d993;ds=sidebyside diff --git a/main.c b/main.c index b910217..3fa14f7 100644 --- a/main.c +++ b/main.c @@ -99,6 +99,7 @@ int main(int argc, char **argv) int fd = -1; int i; char *args[] = { "bash", "-l", NULL }; + char demo[2]; r = devmount_setup(); if (r < 0) { fprintf(stderr, "failed to mount devtmpfs, proceeding anyway\n"); @@ -111,7 +112,7 @@ int main(int argc, char **argv) do_write(PREFIX "/idVendor", "04E8"); do_write(PREFIX "/idProduct", "6860"); do_write(PREFIX "/f_acm/acm_transports", "tty"); - do_write(PREFIX "/functions", "acm"); + do_write(PREFIX "/functions", "acm,rndis"); do_write(PREFIX "/enable", "1"); do_mknod("/sys/class/tty", "ttyGS0", 0, 1); fd = open("/dev/ttyGS0", O_RDWR); @@ -119,15 +120,18 @@ int main(int argc, char **argv) write(fd, "Hello World!\n", 13); sleep(1); } + read(fd, demo, 2); write(fd, "G\n", 2); dup2(fd, 0); dup2(fd, 1); dup2(fd, 2); + read(fd, demo, 2); printf("N\n"); r = do_mknod("/sys/block/mmcblk1", "mmcblk1p3", 1, 1); if (r < 0) { fprintf(stderr, "Failed to create mmcblk1p3\n"); } + read(fd, demo, 2); printf("U\n"); printf("Mounting root\n"); r = mkdir("/root", 0755); @@ -141,6 +145,10 @@ int main(int argc, char **argv) if (r) printf("failed chroot\n"); r = chdir("/"); if (r) printf("failed second chdir\n"); + sysfsmount_setup(); + devmount_setup(); + devpts_setup(); + do_mknod("/sys/class/tty", "ttyGS0", 0, 1); execve("/bin/bash", args, NULL); return 0; }