[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 自己做了一个根文件系统,仍然不能正常引导,why?



我是在QEMU下,没有用串口
弱弱问一下,在QEMU下,怎么吧错误信息复制出来哩?

在 2010年4月22日 下午5:13,dou,peiqi <doupeiqi@gmail.com> 写道:
> 图看不清
> 把文字信息贴出来。
>
> 在 2010年4月22日 上午10:40,Xiangfu Liu <xiangfu.z@gmail.com> 写道:
>> Hi
>>
>> then I guess it's some problem about your FPU configure.
>> kernel configure or CFLAGS.
>>
>>
>> On 04/22/2010 10:32 AM, Hayfeng Lee wrote:
>>>
>>> It doesn't work properly.
>>> Now I just have a thread.
>>>
>>> 在 2010年4月22日 上午10:20,Xiangfu Liu<xiangfu.z@gmail.com>  写道:
>>>>
>>>> Hi
>>>>
>>>> if the SysRq or CTRL-ALT-DEL works after kernel hangs??
>>>>
>>>>
>>>> On 04/22/2010 09:00 AM, Hayfeng Lee wrote:
>>>>>
>>>>> 我用的是2.6.26版本linux,主机是Ubuntu 9.10 .
>>>>> 编译busybox 1.9.1版本
>>>>> 1、更改busybox1.9.1的Makefile
>>>>> ARCH ?=arm
>>>>> CROSS_COMPILE?= 自己的交叉编译环境的位置我的是:
>>>>> 2、make menuconfig
>>>>>
>>>>> Busybox Setting----->
>>>>>        build option-->
>>>>>     [ ] Build BusyBox as a static binary (no shared libs)
>>>>>     [*] Build shared libbusybox
>>>>>     [*]   Produce a binary for each applet, linked against libbusybox
>>>>>     [*]   Produce additional busybox binary linked against libbusybox
>>>>>     [ ] Build with Large File Support (for accessing files>   2 GB)
>>>>>
>>>>> installation option-->
>>>>>     [*] Don't use /usr
>>>>>         Applets links (as soft-links) --->
>>>>>      (./_install) BusyBox installation prefix
>>>>>
>>>>> Busybox Library Tuning --->
>>>>>
>>>>> MD5: Trade Bytes for Speed
>>>>> [*] Faster /proc scanning code (+100 bytes)
>>>>> [*] Support for /etc/networks
>>>>>
>>>>> [*] Support for /etc/networks
>>>>> [*]   Additional editing keys
>>>>> [*]   vi-style line editing commands
>>>>> [*]   History saving
>>>>> [*]   Tab completion
>>>>> [*]   Username completion
>>>>> [*]   Fancy shell prompts
>>>>>
>>>>> Linux Module Utilities --->
>>>>> [*] Support version 2.6.x Linux kernels
>>>>>
>>>>>     [*] insmod
>>>>>     [*]   Enable load map (-m) option
>>>>>     [*]     Symbols in load map
>>>>>     [*] rmmod
>>>>>     [*] lsmod
>>>>>     [*]   lsmod pretty output for 2.6.x Linux kernels
>>>>>     [*] modprobe
>>>>>     [ ]   Multiple options parsing
>>>>>     [ ]   Fancy alias parsing
>>>>>     ---   Options common to multiple modutils
>>>>>     [ ] Support tainted module checking with new kernels
>>>>>     [ ] Support version 2.2.x to 2.4.x Linux kernels
>>>>>
>>>>>     [*] Support version 2.6.x Linux kernels
>>>>>
>>>>> 其他的用默认值
>>>>>
>>>>> 3、make install 开始安装
>>>>> 在busybox的根目录下生成_install文件夹,里面的东西有3项:bin sbin linuxrc
>>>>>
>>>>> 4、修改安装Busybox后的busybox文件属性,具体原因,随后再续。
>>>>> chmod 4755 ./_install/bin/busybox
>>>>> 5、在自己的home目录中,建立rootfs目录
>>>>> 将_install的内容拷贝到rootfs目录中
>>>>>
>>>>> 6、在rootfs目录下,建立空目录:
>>>>>
>>>>> dev home proc tmp var
>>>>> boot etc lib   mnt    root sys   usr
>>>>>  7、此时 rootfs目录下有如下内容:
>>>>> bin   dev home linuxrc proc sbin tmp var
>>>>> boot etc lib   mnt      root sys   usr
>>>>> 8、
>>>>> 以root身份建立节点文件/dev/console, /dev/null
>>>>>  mknod -m 600 dev/console c 5 1
>>>>>  mknod -m 666 dev/null c 1 3
>>>>>
>>>>>  9、进入etc目录,建立profile文件,内容如下:
>>>>> #!/bin/sh
>>>>> #/etc/profile:system-wide .profile file for the Bourne shells
>>>>>
>>>>> echo
>>>>> echo -n "Processing /etc/profile......"
>>>>>
>>>>> # Set search library path
>>>>> export LD_LIBRARY_PATH=/lib:/usr/lib
>>>>>
>>>>> # set user path
>>>>> export PATH=/bin:/sbin:/usr/bin:/usr/sbin
>>>>>
>>>>> #Set PS1
>>>>> USER = "`id -un`"
>>>>> LOGNAME=$USER
>>>>> PS1='[\u@\h\W]\$'
>>>>> PATH=$PATH
>>>>>
>>>>> echo "Done!"
>>>>>  10、
>>>>> 在etc目录下建立init.d目录,然后在init.d目录下建立rcS文件
>>>>> init.d/rcS内容:
>>>>> #!/bin/sh
>>>>>
>>>>> # set hostname, needed host file in /etc directory
>>>>> #./etc/host
>>>>> hostname `cat /etc/host`
>>>>>
>>>>> # mount all filesystem defined in "fstab"
>>>>> echo "#mount all......."
>>>>> /bin/mount -a
>>>>>
>>>>> #+/bin/chmod 0666 /dev/null
>>>>>
>>>>> echo "# starting mdev...."
>>>>> /bin/echo /sbin/mdev>   /proc/sys/kernel/hotplug
>>>>> mdev -s
>>>>>
>>>>> /usr/etc/init
>>>>>
>>>>> echo "******************************************"
>>>>> echo " "
>>>>> echo "   "
>>>>> echo "                         "
>>>>> echo "******************************************"
>>>>>
>>>>> 11、在etc目录下建立fstab文件
>>>>> proc    /proc   proc defaults 0 0
>>>>> none    /tmp    ramfs   defaults 0 0
>>>>> none    /var    ramfs   defaults 0 0
>>>>> mdev    /dev    ramfs   defaults 0 0
>>>>> sysfs   /sys    sysfs   defaults 0 0
>>>>> 12、在etc目录下建立inittab文件
>>>>> ::sysinit:/etc/init.d/rcS
>>>>> ::respawn:-/bin/sh
>>>>>
>>>>> tty2::askfirst:-/bin/sh
>>>>>
>>>>> ::ctrlaltdel:/bin/umount -a -r
>>>>>
>>>>> ::shutdown:/bin umount -a -r
>>>>> ::shutdown:/sbin/swapoff -a
>>>>> 13、在etc目录下建立空文件
>>>>> mdev.conf
>>>>> 14、
>>>>> 复制主机/etc/下面的文件passwd, group, shadow文件到/etc
>>>>> [root@centos etc]# cp /etc/group .
>>>>> [root@centos etc]# cp /etc/passwd .
>>>>> [root@centos etc]# cp /etc/shadow .
>>>>> 15、
>>>>> 因为是编译的时候使用的是动态链接。所以先看看~/busybox/_install/bin/busybox使用了哪些
>>>>> lib,然后从glibc复制相应的lib到~/fsroot/lib中。
>>>>> [root@centos bin]# /usr/local/arm/3.4.1/arm-linux-gnu-readelf -d busybox
>>>>> Dynamic section at offset 0xb8014 contains 22 entries:
>>>>>  Tag        Type                         Name/Value
>>>>>  0x00000001 (NEEDED)                     Shared library:[libcrypt.so.1]
>>>>>  0x00000001 (NEEDED)                     Shared library: [libm.so.6]
>>>>>  0x00000001 (NEEDED)                     Shared library: [libc.so.6]
>>>>>  0x0000000c (INIT)                       0xc04c
>>>>>  0x0000000d (FINI)                       0xa26f0
>>>>>  0x00000004 (HASH)                       0x80e8
>>>>>  0x00000005 (STRTAB)                     0xa384
>>>>>  0x00000006 (SYMTAB)                     0x8b24
>>>>> ......
>>>>> ......
>>>>> ......
>>>>> 复制lib 文件到lib目录下:
>>>>> [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/ld* .
>>>>> [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libc-2.3.2.so .
>>>>> [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libc.so.6 .
>>>>> [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libm * .
>>>>> [root@centos lib]cp /usr/local/arm/3.4.1/arm-linux/lib/libcrypt* .
>>>>> 16、进入busybox根目录下,进入usr目录下,建立etc目录
>>>>> 在该etc目录下建立init文件
>>>>> #!/bin/sh
>>>>> ifconfig eth0 192.168.1.111 up
>>>>> ifconfig lo 127.0.0.1
>>>>>
>>>>> 17、 mkcramfs fsroot fs_2.6.26_busybox.cramfs
>>>>> 18、利用之前编译好的zImage引导操作系统
>>>>>
>>>>> 回复邮件,或者到:
>>>>> http://www.tek-life.org/2010/04/22/%e5%88%b6%e4%bd%9cinitrd/
>>>>> 中跟贴讨论,谢谢各位!
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>> --
>> To UNSUBSCRIBE, email to debian-chinese-gb-REQUEST@lists.debian.org
>> with a subject of "unsubscribe". Trouble? Contact
>> listmaster@lists.debian.org
>> Archive: 4BCFB712.7080504@gmail.com">http://lists.debian.org/4BCFB712.7080504@gmail.com
>>
>>
>



-- 
Laboratory of Service Computing Technology and System

p-web:http://tek-life.org/blog
QQ:150439216


Reply to: