嵌入式Linux系統移植
海思35xx系統移植
製作根文件系統
-
編譯和安裝 busybox
下載busybox源碼,依次運行
make
和make install
默認會在 _install 目錄下生成系統基本的文件。 -
製作根文件系統的相關文件
在
/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
下的文件。其中最主要的文件包括inittab
、fstab
、init.d/rcS
文件等,這些文件最好從 busybox 的 examples 目錄下拷貝過來,根據需要自行修改。
b) dev 目錄下的設備文件,可以直接從系統中拷貝過來或者使用 mknod 命令生成需
要的設備文件。拷貝文件時請使用 cp –R file。(注:海思提供了udev的源碼,可以使用udev自動檢測設備)
c) lib 目錄是存放應用程序所需要的庫文件,請根據應用程序需要拷貝相應的庫文
件。(關於海思的一些庫直接從長沙3531D開發板複製出來的) -
修改
/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
-
修改
/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
-
關於海思設備節點自動添加的問題
在海思
/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'