国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
求助映像文件的制作

paradisedell 發(fā)表于 2005-2-1 14:26

求助映像文件的制作。

我從網(wǎng)上下載了 skyeye-binary-testutils-1.0.7的例子。
我從ep7312_with_framebuffer_touchscreen_minigui中得到y(tǒng)wcromfs-minigui.img文件。

我自己編譯了linux-2.4.13的內(nèi)核,打上了所有的補丁之后,生成了vmlinux文件,然后和ywcromfs_minigui.img文件放在同一個目錄下面,使用skyeye可以正常工作。
但是我要加入自己的程序,所以就需要重新制作img文件。但是我不知道該怎樣去做。
所以我就想在ywcromfs-minigui.img文件中加入自己的程序。
做法如下:

  mount -o loop ywcromfs-minigui.img  /mnt/test
   cp  -r /mnt/test  /usr/test
   然后我在/usr/test目錄中加入了自己的程序.
   最后我重新生成一個新的映像文件。
   genromfs -d /usr/test -f my.img
   但是當我使用my.img和vmlinux配合使用的時候,skyeye就會出錯。
  錯誤提示:Kernel panic: No init found.Try passing init= option to kernel.
        at panic.c :103.
    我猜想是kernel沒有找到init程序。但是init程序就在/bin /sbin目錄中。
   應該是我創(chuàng)建img的方法不對。
   請斑竹及各位高手幫我看看。我暫時還是一個初學者。多謝了??!
   希望春節(jié)前解決這個問題,然后就可以移植minigui了。

halfyear 發(fā)表于 2005-2-1 16:08

修改skyeye.conf
用my.img 替換文件中的ywcromfs-minigui.img

halfyear 發(fā)表于 2005-2-1 16:33

我做過minigui 2 ep7312 lubbock的移植,碰到問題可以到minigui的論壇www.minigui.org上發(fā)帖子,或者給我發(fā)郵件ywc02@mails.tsinghua.edu.cn

paradisedell 發(fā)表于 2005-2-1 16:46

我已經(jīng)在skyeye.conf里面修改了。但是還是不行。
我察看了my.img和 ywcromfs-minigui.img文件,好像他們的格式不一樣。
我不知道生成img文件的正確方法是啥?
請各位高手指點指點。

halfyear 發(fā)表于 2005-2-1 16:58

[quote]
cp -r /mnt/test /usr/test
[/quote]
用cp -dpR /mnt/test /usr/test 試試

paradisedell 發(fā)表于 2005-2-2 09:35

多謝各位朋友。
我試了。但是還是不行。
不知道你們用的genromfs的版本。
我是從網(wǎng)上下載的genromfs-0.5.1-1.i386.rpm.
真是弄不明白了。

paradisedell 發(fā)表于 2005-2-3 11:55

經(jīng)過幾天的努力,這個問題解決了。下面是我的做法。
可能有些理解不是很對,但是確實可行。希望能夠?qū)Υ蠹矣行椭?br>
如何制作根文件系統(tǒng)?
建立如下的script腳本文件
#!/bin/sh
dd if=/dev/zero of=/dev/ram bs=1k count=2048
// 2048表示2M.用戶可以自己設定實際的數(shù)值。申請內(nèi)存空間
mke2fs -vm0 /dev/ram 2048
//將內(nèi)存空間轉(zhuǎn)換成ext2文件系統(tǒng)
mount -t ext2 /dev/ram /mnt/ramdisk
//mount文件系統(tǒng)
cp -avUserDir /mnt/ramdisk
//向文件系統(tǒng)中寫入用戶的各種文件
genromfs –v –V “ROMdisk” –d /mnt/ramdisk –f my.img
//制作根文件系統(tǒng)的映像文件
umount /mnt/ramdisk
//umount文件系統(tǒng)
dd if=/dev/ram bs=1k count=2048
//釋放內(nèi)存空間

my.img就是根文件系統(tǒng)??梢耘浜蟬kyeye使用了。

asenter 發(fā)表于 2005-2-4 15:02

樓主,很感謝你的經(jīng)驗共享

我想請教一個問題:就是uclinux 啟動時,他怎么知道根文件系統(tǒng)在哪里的?
:oops: ,疑惑很長時間了

halfyear 發(fā)表于 2005-2-4 15:49

在編譯內(nèi)核時,可以配置
CONFIG_CMDLINE="root=/dev/rom"  //ROMDisk
或root=/dev/ram                                 //RAMDisk
或root=/dev/mtdblock*                       //基于mtd驅(qū)動的文件系統(tǒng),例如JFFS2
或root=/dev/nfs                                  //NFS文件系統(tǒng)


掛載根文件系統(tǒng)的源代碼在linux/init/do_mounts.c中
/*
* Prepare the namespace - decide what/where to mount, load ramdisks, etc.
*/
void __init prepare_namespace(void)
{
        int is_floppy;

        mount_devfs();

        md_run_setup();

        if (saved_root_name[0]) {
                root_device_name = saved_root_name;
                ROOT_DEV = name_to_dev_t(root_device_name);
                if (strncmp(root_device_name, "/dev/", 5) == 0)
                        root_device_name += 5;
        }

        is_floppy = MAJOR(ROOT_DEV) == FLOPPY_MAJOR;

        if (initrd_load())
                goto out;

        if (is_floppy && rd_doload && rd_load_disk(0))
                ROOT_DEV = Root_RAM0;

        mount_root();
out:
        umount_devfs("/dev");
        sys_mount(".", "/", NULL, MS_MOVE, NULL);
        sys_chroot(".");
        security_sb_post_mountroot();
        mount_devfs_fs ();
}

void __init mount_root(void)
{
#ifdef CONFIG_ROOT_NFS
        if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {
                if (mount_nfs_root())
                        return;

                printk(KERN_ERR "VFS: Unable to mount root fs via NFS, trying floppy.\n");
                ROOT_DEV = Root_FD0;
        }
#endif
#ifdef CONFIG_BLK_DEV_FD
        if (MAJOR(ROOT_DEV) == FLOPPY_MAJOR) {
                /* rd_doload is 2 for a dual initrd/ramload setup */
                if (rd_doload==2) {
                        if (rd_load_disk(1)) {
                                ROOT_DEV = Root_RAM1;
                                root_device_name = NULL;
                        }
                } else
                        change_floppy("root floppy");
        }
#endif
        create_dev("/dev/root", ROOT_DEV, root_device_name);
        mount_block_root("/dev/root", root_mountflags);
}

asenter 發(fā)表于 2005-2-4 16:16

謝謝你
:arrow:
我說的不是這些

我所指的是,在uclinux中生成的romfs.img,它保存在FLASH上的地址應該不是隨意的吧,我 想問的就是,內(nèi)核怎么知道這個romfs.img在哪里的? :!:

asenter 發(fā)表于 2005-2-5 09:40

:!:
頂一下了
  是說 那個文件系統(tǒng)的鏡像,內(nèi)核怎么知道那個鏡像在哪的? :idea:

謝謝

halfyear 發(fā)表于 2005-2-5 11:09

我說一下我熟悉的Lubbock開發(fā)板的Flash分區(qū)在內(nèi)核中的設置:
static struct map_info lubbock_maps[2] = { {
        .size =                WINDOW_SIZE,
        .phys =                0x00000000,
        .inval_cache =         lubbock_map_inval_cache,
}, {
        .size =                WINDOW_SIZE,
        .phys =                0x04000000,
        .inval_cache =         lubbock_map_inval_cache,
} };

static struct mtd_partition lubbock_partitions[] = {
        {
                .name =                "Bootloader",
                .size =                0x00040000,
                .offset =        0,
                .mask_flags =        MTD_WRITEABLE  /* force read-only */
        },{
                .name =                "Kernel",
                .size =                0x00100000,
                .offset =        0x00040000,
        },{
                .name =                "Filesystem",
                .size =                MTDPART_SIZ_FULL,
                .offset =        0x00140000
        }
};
如果采用的是RAMdisk則設置
CONGIG_CMDLINE="root=/dev/ram rw initrd=0xa1000000,0x00800000 console=ttyS0,115200 mem=64M"
其中initrd=0xa1000000就是內(nèi)核啟動時掛載根文件系統(tǒng)的位置,事先在skyeye.conf中配置
mem_bank: map=M, type=RW, addr=0xa1000000, size=0x00800000, file=./initrd4M.img
這樣SkyEye運行target sim時就將鏡像裝入模擬的RAM中的0xa1000000開始的空間

不知道我目前了解的這點信息對你到uClinux源碼中尋找答案是否有幫助。

asenter 發(fā)表于 2005-2-5 13:42

:arrow:
很是感謝你


initrd=0xa1000000  可這個參數(shù)內(nèi)核是怎么知道的?
否則內(nèi)核也沒法把位于這個地方的RAMDISK鏡像弄到內(nèi)存

是不是由引導文件告訴內(nèi)核的?
可又不怎么對,因為有的uclinux編譯后直接把roomfs.img和內(nèi)核連接在一起了
那連在一起的時候roomfs.img的地址又怎么確定?

問題多多,現(xiàn)在自己的電腦又不在邊上。唉,更慘的是,昨天買了本垃圾書,關于uclinux的,內(nèi)容提要里說的好聽,真正的內(nèi)容都是網(wǎng)上摘的,氣死了
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Ubuntu12.04LTS下安裝skyeye1.3.3全程記錄(軟件模擬ARM Linu...
安卓手機怎么刷入Recovery
BabyLinux制作過程詳解
Android手機ROOT權限
黑群暉6.1.3 本地SSD寫入啟動
Grub2引導efi
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服