天天看點

linux非root使用者添加rzsz,嵌入式linuxbusybox檔案系統的移植和rzsz指令的添加

-----------------建立rootfs檔案夾-------------------mkdir my_rootfs

cd my_rootfs

mkdir bin dev etc home lib mnt proc sbin sys tmp root usr var mnt/etc usr/bin usr/lib usr/sbin

touch linuxrc使用mknod來自己建所需要的device,舉例:# mknod -m 600 dev/console c 5 1

# mknod -m 666 dev/null c 1 3

BusyBox-1.9.2版本------------------修改編譯配置選項--------------------開始移植

1.下載下傳busybox1.9.2,并解壓縮。

下載下傳busybox源代碼:http://busybox.net/downloads/busybox-1.9.2.tar.bz2

交叉編譯工具:arm-linux-gcc-3.4.1

解壓源碼:tar -jxvf busybox-1.9.2.tar.bz2

2.修改Makefile中的174行的arch和編譯工具鍊頭。

ARCH                 ?= arm

CROSS_COMPILE       ?= /usr/local/arm/3.4.1/bin/arm-linux-

3.       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

shell -à

[*]alias support

其他的用預設值

-----------------------編譯busybox-----------------------

makemake install在busybox/_install目錄下會生成我們需要的檔案。修改_install/bin/busybox的屬性。為4755

chmod 4755 ./_install/bin/busybox必須要修改屬性,否則在busybox中很多指令會受限将編譯好的busybox拷貝到my_roofs下面。

【_install】cp -Rfv * /my_roofs-----------------------/lib檔案--------------------------------/lib的庫其實就是進行busybox編譯的庫,即交叉編譯器的庫,我們這裡使用的是3.4.1(位置/usr/local/arm/3.4.1)。# cd  /usr/local/arm/3.4.1/arm-linux/lib

# for file in libc libcrypt libdl libm libpthread libresolv libutil

> do

> cp $file-*.so  /my_rootfs/lib (複制到你做的檔案系統的/lib目錄下)

> cp -d $file.so.[*0-9]  /my_rootfs/lib (同上)

> done

# cp -d ld*.so*  /my_rootfs/lib   (同上)

-----------------系統配置檔案的建立-----------------------========/etc目錄============

(1)profile檔案#Set search library path

export LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH

#Set user path

PATH="/bin:/sbin:/usr/bin:/usr/sbin:"$PATH

alias ll='ls -l'

#Set PS1

USER="`id -un`"

LOGNAME=$USER

PS1='[/[email protected]/h /W]/$ '

PATH=$PATH

export USER LOGNAME PS1 PATH

(2)fstab檔案proc  /proc proc  defaults  0 0

none  /tmp  ramfs defaults  0 0

mdev  /dev  ramfs defaults  0 0

sysfs /sys  sysfs defaults  0 0

(3)inittab檔案::sysinit:-/etc/init.d/rcS

::respawn:-/bin/sh

::ctrlaltdel:/bin/umount -a -r

::shutdown:/bin/umount -a -r

::shutdown:/sbin/swapoff -a

(4)建立/etc/init.d檔案夾和rcS,在rcS中添加#! /bin/sh

echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

echo "^     Welcome to YAFFS root filesystem!   ^"

echo "^                    soso                  ^"

echo "^^^^^^^^^^^^^^^^09-3-18^^^^^^^^^^^^^^^^^^^^"

/bin/hostname -F /etc/host

# mount all filesystem defined in "fstab"

ln -s /dev/vc/0 /dev/tty1

echo "# mount all..........."

/bin/mount -a

echo "# Starting mdev........."

#/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s

/sbin/ifconfig lo 127.0.0.1

/sbin/ifconfig eth0 192.168.0.55

/sbin/route add default gw 192.168.0.1

(5)建立host檔案soso

(6)建立mdev.conf檔案(空檔案)

(7)複制主機/etc/下面的檔案passwd, group, shadow檔案到/etc# cp /etc/group .

# cp /etc/passwd .

# cp /etc/shadow .

修改passwd中使用者使用的shell名稱。FC6上預設的為bash,而vivi隻支援ash。root:x:0:0:root:/root:/bin/bash ----> root:x:0:0:root:/root:/bin/ash

(8)修改各檔案和檔案夾的權限# chmod 755 /my_roofs/etc/init.d/rcS

# chmod 755 /my_roofs/etc/host

-------------yaffs檔案系統映像的制作---------使用mkyaffsimg程式可以把一個目錄做成一個yaffs映像檔案,然後使用usb下載下傳到闆子上。進入檔案系統目錄層,使用以下指令。#./mkyaffsimg my_roofs rootfs.img(改名filesystem.yaffs)這樣就會在該目錄下生成roofs.img映像檔案,下載下傳到開發闆運作即可。

--------------cramfs檔案系統映像的制作(cramfs壓縮率比較高)------------在FTP中下載下傳cramfs-1.1.tar.gz,解壓到自己設定的目錄下,如:tar xzvf cramfs-1.1.tar.gz –C /home/進入生成有mkcramfs檔案的目錄下(一定要進入此目錄,否則會提示找不到該指令)輸入指令:#./mkcramfs / rootfs rootfs.cramfs在目前目錄下即生成rootfs.cramfs映像檔案。到此Linux作業系統移植完畢。

下載下傳源碼

移植新下載下傳的linux源碼中是沒有超級終端的指令的,需要自己添加。添加完了,就開發闆就可以PC通過序列槽傳輸檔案了。

步驟:

2、解壓tar zxvf  rzsz-3.48.tar.gz

3、安裝cd src

vi Makefile

修改CC=arm-linux-gcc

儲存退出

make posix。

注意:這個軟體安裝與正常的GNU軟體不同—沒有configure(配置)及make install (安裝過程)。

我的是S3C2410的交叉編譯器,不同的平台隻是交叉編譯器不一樣而已。

輸入指令make posix後,如果編譯成功,在輸入 ls指令,你将發現,多了很多檔案

COPYING   gz         minirb.c    rc      rz.c    sz       undos.doc  zmodem.h

crc.c     mailer.rz  minirb.doc  README  rz.doc  sz.c     zcommand   zmr.c

crc.doc   Makefile   rb          rx      sb      sz.doc   zcommandi  zupl.t

crctab.c  Makefile~  rbsb.c      rz      sx      undos.c  zm.c

将rb,rx,rc,rz,sb,sx,sz,zcommand

zcommandi拷貝到你制作的根檔案系統的bin目錄下,然後在将交叉編譯器下的ld-2.5.so      libc-2.5.so

libcrypt.so.1  libgcc_s.so.1  libm.so.6 ld-linux.so.3  libcrypt-2.5.so

libc.so.6

libm-2.5.so等庫(可能版本不同,相應的數字,但隻要是這幾個檔案即可)拷貝到根檔案系統的lib目錄下,然後再重新制作該根檔案系統,下載下傳到

開發闆,重新啟動,可以試一下rz和sz