海思35xx系統移植

海思35xx系統移植

製作根文件系統

  1. 編譯和安裝 busybox

    下載busybox源碼,依次運行makemake install 默認會在 _install 目錄下生成系統基本的文件。

  2. 製作根文件系統的相關文件

    /home/luoyang/nfsroot/myrootfs 目錄下建立 rootfs_glibc 目錄,然後將上一步 _install 目錄下所有文件複製進去,再建立一些基本的目錄:

    cd /home/luoyang/nfsroot
    mkdir rootfs_glibc
    cp -R packet/busybox-1.20.2/_install/* . # -R 就是複製所有
    mkdir etc dev lib tmp var mnt home proc
    

    配置 etc、lib、dev 目錄的必需文件。

    a) etc 目錄可參考系統/etc 下的文件。其中最主要的文件包括 inittabfstabinit.d/rcS 文件等,這些文件最好從 busybox 的 examples 目錄下拷貝過來,根據需要自行修改。
    b) dev 目錄下的設備文件,可以直接從系統中拷貝過來或者使用 mknod 命令生成需
    要的設備文件。拷貝文件時請使用 cp –R file。(注:海思提供了udev的源碼,可以使用udev自動檢測設備)
    c) lib 目錄是存放應用程序所需要的庫文件,請根據應用程序需要拷貝相應的庫文
    件。(關於海思的一些庫直接從長沙3531D開發板複製出來的)

  3. 修改 /etc/fstab 文件如下:

proc		/proc		proc	defaults,nodev,nosuid	0	0
sysfs		/sys		sysfs	defaults,nodev,nosuid	0	0
tmpfs		/dev		tmpfs	defaults	0	0
tmpfs		/tmp		tmpfs	defaults	0	0
  1. 修改 /etc/inittab 文件

    # Boot-time system configuration/initialization script.
    # This is run first except when booting in single-user mode.
    #
    ::sysinit:/etc/init.d/rcS
    # Example of how to put a getty on a serial line (for a terminal)
    ::respawn:/sbin/getty -L ttyS000 115200 vt100 -n root -I "Auto login as root ..."
    #::respawn:/sbin/getty -L ttyS1 9600 vt100
    #
    # Example how to put a getty on a modem line.
    #::respawn:/sbin/getty 57600 ttyS2
    
    # Stuff to do when restarting the init process
    ::restart:/sbin/init
    
    # Stuff to do before rebooting
    ::ctrlaltdel:/sbin/reboot
    ::shutdown:/bin/umount -a -r
    ::shutdown:/sbin/swapoff -a
    
  2. 關於海思設備節點自動添加的問題

    在海思 /etc/init.d/S01udev這個文件中有如下命令:

    #!/bin/sh
    
    mkdir /dev/pts
    mount -t devpts devpts /dev/pts
    
    mkdir -p /dev/.udev
    udevd --daemon
    udevadm trigger
    
    

    這個就是用於設備熱拔插設置hotplug(即,設備自動檢測)。

編譯內核指令

make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- uImage

boot from yaffs2

setenv bootargs 'mem=128M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),128M(rootfs)'

boot from nfs:

setenv bootargs 'root=/dev/nfs rw nfsroot=192.168.1.119:/home/luoyang/nfsroot/myrootfs/rootfs_glibc ip=192.168.1.98:192.168.1.119:192.168.1.1:255.255.255.0 console=ttyAMA0,115200 mem=128M'

參考文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章