echo "Create initrd.img"
dd if=/dev/zero of=/tmp/initrd.img bs=1k count=32768
#dd if=/dev/zero of=/tmp/initrd.img bs=1k count=131072
/sbin/mke2fs -F -v -c -i 2048 -m 0 /tmp/initrd.img
/sbin/tune2fs -c 0 /tmp/initrd.img
######################################################
RootfsPath=/AT91SAM9X25/rootfs
ObjPath=/AT91SAM9X25/rootfs/initrd
PkgsPath=/AT91SAM9X25/pkgs
KnlPath=/AT91SAM9X25/kernel
mkdir $ObjPath
mount -o loop /tmp/initrd.img $ObjPath
######################################################
echo "mkdir"
cd $ObjPath
mkdir bin dev etc lib mnt proc sbin tmp usr var jnsec_conf jnsec
mkdir lib/security lib/iptables lib/modules lib/modules/2.6.39
mkdir usr/bin usr/sbin usr/lib usr/local
mkdir usr/prg usr/modules usr/config usr/rsakey usr/reserved usr/userapp usr/hsmprg usr/userconfig
mkdir etc/init.d etc/pam.d etc/xinetd.d etc/boa
mkdir var/lib var/lock var/lock/subsys var/log var/run var/tmp var/www
mkdir var/log/boa
mkdir usr/local/lib usr/local/modules
#mkdir tftpboot-136
#mkdir nfsroot-73
chmod 777 tmp
chmod 777 var/tmp
######################################################
cd $KnlPath/linux-at91-linux-2.6.39-at91
make modules_install INSTALL_MOD_PATH=$ObjPath
######################################################
######################################################
echo "Create /bin & /sbin & /usr"
cd $PkgsPath/busybox/
#make ARCH=arm CROSS_COMPILE=/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-
make install
cd $ObjPath/usr/sbin
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flashcp $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_lock $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_otp_info $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_unlock $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_erase $ObjPath/usr/sbin/
#cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_eraseall $ObjPath/usr/sbin/
#cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/nandwrite $ObjPath/usr/sbin/
#ln -s flash_erase erase
#ln -s flash_eraseall eraseall
#ln -s flashcp fcp
#ln -s flash_lock lock
#ln -s flash_unlock unlock
cp $PkgsPath/xinetd/xinetd/xinetd $ObjPath/usr/sbin/xinetd
cp $PkgsPath/rzsz/rz $ObjPath/usr/sbin/rz
cp $PkgsPath/rzsz/sz $ObjPath/usr/sbin/sz
#cp $PkgsPath/ethtool/ethtool $ObjPath/bin
#cp $PkgsPath/iptables/iptables $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-save $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-restore $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-xml $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/ip6tables $ObjPath/usr/sbin/
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/bin/*
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/sbin/*
######################################################
echo "Create /dev"
cd $ObjPath/dev/
mknod $ObjPath/dev/initrd b 1 250
mknod $ObjPath/dev/root b 253 0
chmod 660 $ObjPath/dev/initrd
mknod -m 600 $ObjPath/dev/fb0 c 29 0
ln -s fb0 fb
mknod -m 640 $ObjPath/dev/kmem c 1 2
mknod -m 600 $ObjPath/dev/psaux c 10 1
mknod -m 666 $ObjPath/dev/ptyp0 c 2 0
mknod -m 666 $ObjPath/dev/ptyp1 c 2 1
mknod -m 666 $ObjPath/dev/ptyp2 c 2 2
mknod -m 666 $ObjPath/dev/ptyp3 c 2 3
mknod -m 666 $ObjPath/dev/ptyp4 c 2 4
mknod -m 666 $ObjPath/dev/ptyp5 c 2 5
mknod -m 666 $ObjPath/dev/ptyp6 c 2 6
mknod -m 666 $ObjPath/dev/ptyp7 c 2 7
mknod -m 666 $ObjPath/dev/ttyp0 c 3 0
mknod -m 666 $ObjPath/dev/ttyp1 c 3 1
mknod -m 666 $ObjPath/dev/ttyp2 c 3 2
mknod -m 666 $ObjPath/dev/ttyp3 c 3 3
mknod -m 666 $ObjPath/dev/ttyp4 c 3 4
mknod -m 666 $ObjPath/dev/ttyp5 c 3 5
mknod -m 666 $ObjPath/dev/ttyp6 c 3 6
mknod -m 666 $ObjPath/dev/ttyp7 c 3 7
cp -dpR /dev/console $ObjPath/dev/console
cp -dpR /dev/fd $ObjPath/dev/fd
cp -dpR /dev/stdin $ObjPath/dev/stdin
cp -dpR /dev/stdout $ObjPath/dev/stdout
cp -dpR /dev/stderr $ObjPath/dev/stderr
cp -dpR /dev/full $ObjPath/dev/full
cp -dpR /dev/core $ObjPath/dev/core
cp -dpR /dev/mem $ObjPath/dev/mem
cp -dpR /dev/null $ObjPath/dev/null
cp -dpR /dev/ptmx $ObjPath/dev/
cp -dpR /dev/pts $ObjPath/dev/
cp -dpR /dev/initctl $ObjPath/dev/
cp -dpR /dev/ram $ObjPath/dev/
cp -dpR /dev/ramdisk $ObjPath/dev/
cp -dpR /dev/ram[0-1] $ObjPath/dev/
cp -dpR /dev/tty $ObjPath/dev/tty
cp -dpR /dev/ttyS[0-3] $ObjPath/dev/
cp -dpR /dev/tty[0-3] $ObjPath/dev/
cp -dpR /dev/zero $ObjPath/dev/zero
cp -dpR /dev/random $ObjPath/dev/random
cp -dpR /dev/urandom $ObjPath/dev/urandom
mknod -m 644 $ObjPath/dev/rtc c 10 135
mknod -m 644 $ObjPath/dev/mtd0 c 90 0
mknod -m 644 $ObjPath/dev/mtd1 c 90 2
mknod -m 644 $ObjPath/dev/mtd2 c 90 4
mknod -m 644 $ObjPath/dev/mtd3 c 90 6
mknod -m 644 $ObjPath/dev/mtd4 c 90 8
mknod -m 644 $ObjPath/dev/mtd5 c 90 10
mknod -m 644 $ObjPath/dev/mtdblock0 b 31 0
mknod -m 644 $ObjPath/dev/mtdblock1 b 31 1
mknod -m 644 $ObjPath/dev/mtdblock2 b 31 2
mknod -m 644 $ObjPath/dev/mtdblock3 b 31 3
mknod -m 644 $ObjPath/dev/mtdblock4 b 31 4
mknod -m 644 $ObjPath/dev/mtdblock5 b 31 5
#ln -s mtd0 Boot
#ln -s mtd1 U-Boot
#ln -s mtd2 Reserved
#ln -s mtd3 UImage
#ln -s mtd4 Ramdisk
#ln -s mtd5 Modules
#ln -s mtdblock0 Boot_b
#ln -s mtdblock1 U-Boot_b
#ln -s mtdblock2 Reserved_b
#ln -s mtdblock3 uImage_b
#ln -s mtdblock4 RamDisk_b
#ln -s mtdblock5 Modules_b
#mknod -m 666 $ObjPath/dev/usb c 228 0
#mknod -m 666 $ObjPath/dev/ECC c 220 0
#mknod -m 666 $ObjPath/dev/keylib c 223 0
#mknod -m 666 $ObjPath/dev/gpio c 224 0
#mknod -m 666 $ObjPath/dev/ssx30f c 227 0
######################################################
echo "Create /etc"
######################################################
cp /etc/mime.types $ObjPath/etc/
cat > $ObjPath/etc/group <<EOF
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
tty:x:5:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
ftp:x:50:
nobody:x:99:
nogroup:x:99:
users:x:100:
EOF
######################################################
cat > $ObjPath/readme_jnsec <<EOF
user init file: /jnsec/jnsec_sysinit.sh
get file: tftp -g -r FileName -l FileName <tftp server IP>
eraseall the mtd disk: flash_erase /dev/mtd2 0 0
EOF
######################################################
cat > $ObjPath/etc/host.conf <<EOF
order hosts,bind
EOF
######################################################
cat > $ObjPath/etc/hosts <<EOF
127.0.0.1 localhost
EOF
######################################################
cat > $ObjPath/etc/prit <<EOF
EOF
######################################################
cat > $ObjPath/etc/inittab <<EOF
#
::sysinit:/etc/init.d/rcS
::restart:/sbin/init
::shutdown:/bin/umount -a -r
#::respawn:/bin/login ttyS0
#::respawn:/bin/login root
ttyS0::respawn:/bin/sh
#::respawn:/usr/sbin/boa
EOF
cp -dpR /etc/localtime $ObjPath/etc/localtime
> $ObjPath/etc/mtab
> $ObjPath/etc/hosts.deny
> $ObjPath/etc/hosts.allow
######################################################
cat > $ObjPath/etc/nsswitch.conf <<EOF
passwd: files
shadow: files
group: files
hosts: files dns
ethers: files
netmasks: files
networks: files
protocols: files
services: files
EOF
######################################################
cat > $ObjPath/etc/passwd <<EOF
root:x:0:0:root:/:/bin/sh
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
halt:x:7:0:halt:/sbin:/sbin/halt
ftp:x:14:50:FTP User:/
nobody:x:99:99:Nobody:/:
EOF
######################################################
> $ObjPath/etc/profile
######################################################
cat > $ObjPath/etc/protocols <<EOF
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group multicast protocol
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # transmission control protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
idp 22 IDP # WhatsThis?
raw 255 RAW # RAW IP interface
EOF
cat > $ObjPath/etc/init.d/rcS <<EOF
#!/bin/sh
/bin/mount -t proc proc /proc
/bin/mount -t devpts devpts /dev/pts
/usr/sys_start.sh
EOF
chmod 755 $ObjPath/etc/init.d/rcS
cat > $ObjPath/usr/sys_start.sh <<EOF
#!/bin/sh
ifconfig eth0 120.4.6.201
ifconfig eth0 netmask 255.255.255.0
ifconfig lo 127.0.0.1
mount -t jffs2 /dev/mtdblock2 /jnsec_conf
mount -t jffs2 /dev/mtdblock3 /jnsec
#telnetd
#/usr/sbin/xinetd -stayalive -reuse -pidfile /tmp/xinetd.pid
#telnetd password: hsm@jn06.china
#telnetd password: 123456
#login
if [ -f /jnsec/jnsec_sysinit.sh ]
then
echo Init JNSEC System
chmod +x /jnsec/jnsec_sysinit.sh
/jnsec/jnsec_sysinit.sh
fi
#login
#date -s 080800002008
EOF
chmod 755 $ObjPath/usr/sys_start.sh
######################################################
cat > $ObjPath/etc/resolv.conf <<EOF
nameserver 192.168.126.1
EOF
######################################################
cat > $ObjPath/etc/securetty <<EOF
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
ttyS0
ttyS1
console
ttyp0
ttyp1
ttyp2
ttyp3
ttyp4
ttyp5
ttyp6
ttyp7
EOF
######################################################
cat > $ObjPath/etc/services <<EOF
#
tcpmux 1/tcp
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname
domain 53/tcp
domain 53/udp
bootps 67/udp
bootpc 68/udp
tftp 69/udp
http 80/tcp
www 80/tcp
hostnames 101/tcp hostname
EOF
######################################################
cat > $ObjPath/etc/shells <<EOF
/bin/sh
/bin/ash
/bin/bash
EOF
######################################################
cat > $ObjPath/etc/xinetd.conf <<EOF
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
EOF
#root passwd: hsm@jn06.china
#root passwd: 123456
######################################################
cat > $ObjPath/etc/shadow <<EOF
root:KJpI/l1Gr9RBQ:16315:0:99999:7:::
#root:\$1\$6zBgZkHS\$hCdfmrAh3xVJliAEzsNrw.:13334:0:99999:7:::
#root:\$1\$D.nfqR83\$IRUzPR5pXqm5LOP/jdEMC.:13334:0:99999:7:::
bin:*:13222:0:99999:7:::
daemon:*:13222:0:99999:7:::
adm:*:13222:0:99999:7:::
lp:*:13222:0:99999:7:::
sync:*:13222:0:99999:7:::
shutdown:*:13222:0:99999:7:::
halt:*:13222:0:99999:7:::
news:*:13222:0:99999:7:::
operator:*:13222:0:99999:7:::
ftp:*:13222:0:99999:7:::
nobody:*:13222:0:99999:7:::
EOF
######################################################
cat > $ObjPath/etc/pam.d/chfn <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/chsh <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/ftp <<EOF
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_shells.so
account required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/kbdrate <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_console.so
account required /lib/security/pam_permit.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/login <<EOF
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/other <<EOF
#%PAM-1.0
auth required /lib/security/pam_deny.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_deny.so
session required /lib/security/pam_deny.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/passwd <<EOF
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rexec <<EOF
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rlogin <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rsh <<EOF
#%PAM-1.0
auth required /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/ssh <<EOF
#%PAM-1.0
auth required pam_nologin.so
auth required pam_unix.so
auth required pam_env.so # [1]
account required pam_unix.so
session required pam_unix.so
session optional pam_lastlog.so # [1]
session optional pam_motd.so # [1]
session optional pam_mail.so standard noenv # [1]
session required pam_limits.so
password required pam_unix.so
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5
EOF
######################################################
cat > $ObjPath/etc/pam.d/su <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/pam_wheel.so use_uid
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_xauth.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/system-auth <<EOF
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth sufficient /lib/security/pam_unix.so likeauth nullok md5
auth required /lib/security/pam_deny.so
account sufficient /lib/security/pam_unix.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_unix.so nullok use_authtok md5
password required /lib/security/pam_deny.so
session required /lib/security/pam_unix.so
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/ftpd <<EOF
# description: The FTP server serves FTP connections.
# It uses normal, unencrypted usernames and passwords for authentication.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/ssh <<EOF
service ssh
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/telnet <<EOF
# default: on
# description: The telnet server serves telnet sessions;
# it uses unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
# server_args = -h
log_on_failure += USERID
}
EOF
chmod 600 $ObjPath/etc/securetty
chmod 600 $ObjPath/etc/shadow
chmod 600 $ObjPath/etc/xinetd.conf
######################################################
echo "Create /lib"
cp -dpR /AT91SAM9X25/arm-2010q1/arm-none-linux-gnueabi/libc/lib/* $ObjPath/lib
mkdir $ObjPath/lib/modules/
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/lib/*.so
#/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/lib/security/*.so
#/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/local/lib/iptables/*.so
######################################################
cd /
umount $ObjPath
rm -f /tmp/initrd.img.gz
echo "Zip initrd.img Begin...."
gzip -v9 /tmp/initrd.img
ls -l /tmp/initrd.img.gz
rm -rf $RootfsPath/initrd
rm $RootfsPath/ramdisk_9x25.gz
mv /tmp/initrd.img.gz $RootfsPath/ramdisk_9x25.gz
ls -l $RootfsPath/ramdisk_9x25.gz
echo "$RootfsPath/ramdisk_9x25.gz OK"
echo ""
echo "Ramdisk for ARM9x25 Create OK."
echo ""
dd if=/dev/zero of=/tmp/initrd.img bs=1k count=32768
#dd if=/dev/zero of=/tmp/initrd.img bs=1k count=131072
/sbin/mke2fs -F -v -c -i 2048 -m 0 /tmp/initrd.img
/sbin/tune2fs -c 0 /tmp/initrd.img
######################################################
RootfsPath=/AT91SAM9X25/rootfs
ObjPath=/AT91SAM9X25/rootfs/initrd
PkgsPath=/AT91SAM9X25/pkgs
KnlPath=/AT91SAM9X25/kernel
mkdir $ObjPath
mount -o loop /tmp/initrd.img $ObjPath
######################################################
echo "mkdir"
cd $ObjPath
mkdir bin dev etc lib mnt proc sbin tmp usr var jnsec_conf jnsec
mkdir lib/security lib/iptables lib/modules lib/modules/2.6.39
mkdir usr/bin usr/sbin usr/lib usr/local
mkdir usr/prg usr/modules usr/config usr/rsakey usr/reserved usr/userapp usr/hsmprg usr/userconfig
mkdir etc/init.d etc/pam.d etc/xinetd.d etc/boa
mkdir var/lib var/lock var/lock/subsys var/log var/run var/tmp var/www
mkdir var/log/boa
mkdir usr/local/lib usr/local/modules
#mkdir tftpboot-136
#mkdir nfsroot-73
chmod 777 tmp
chmod 777 var/tmp
######################################################
cd $KnlPath/linux-at91-linux-2.6.39-at91
make modules_install INSTALL_MOD_PATH=$ObjPath
######################################################
######################################################
echo "Create /bin & /sbin & /usr"
cd $PkgsPath/busybox/
#make ARCH=arm CROSS_COMPILE=/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-
make install
cd $ObjPath/usr/sbin
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flashcp $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_lock $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_otp_info $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_unlock $ObjPath/usr/sbin/
cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_erase $ObjPath/usr/sbin/
#cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/flash_eraseall $ObjPath/usr/sbin/
#cp $PkgsPath/mtd/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi/nandwrite $ObjPath/usr/sbin/
#ln -s flash_erase erase
#ln -s flash_eraseall eraseall
#ln -s flashcp fcp
#ln -s flash_lock lock
#ln -s flash_unlock unlock
cp $PkgsPath/xinetd/xinetd/xinetd $ObjPath/usr/sbin/xinetd
cp $PkgsPath/rzsz/rz $ObjPath/usr/sbin/rz
cp $PkgsPath/rzsz/sz $ObjPath/usr/sbin/sz
#cp $PkgsPath/ethtool/ethtool $ObjPath/bin
#cp $PkgsPath/iptables/iptables $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-save $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-restore $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/iptables-xml $ObjPath/usr/sbin/
#cp $PkgsPath/iptables/ip6tables $ObjPath/usr/sbin/
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/bin/*
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/sbin/*
######################################################
echo "Create /dev"
cd $ObjPath/dev/
mknod $ObjPath/dev/initrd b 1 250
mknod $ObjPath/dev/root b 253 0
chmod 660 $ObjPath/dev/initrd
mknod -m 600 $ObjPath/dev/fb0 c 29 0
ln -s fb0 fb
mknod -m 640 $ObjPath/dev/kmem c 1 2
mknod -m 600 $ObjPath/dev/psaux c 10 1
mknod -m 666 $ObjPath/dev/ptyp0 c 2 0
mknod -m 666 $ObjPath/dev/ptyp1 c 2 1
mknod -m 666 $ObjPath/dev/ptyp2 c 2 2
mknod -m 666 $ObjPath/dev/ptyp3 c 2 3
mknod -m 666 $ObjPath/dev/ptyp4 c 2 4
mknod -m 666 $ObjPath/dev/ptyp5 c 2 5
mknod -m 666 $ObjPath/dev/ptyp6 c 2 6
mknod -m 666 $ObjPath/dev/ptyp7 c 2 7
mknod -m 666 $ObjPath/dev/ttyp0 c 3 0
mknod -m 666 $ObjPath/dev/ttyp1 c 3 1
mknod -m 666 $ObjPath/dev/ttyp2 c 3 2
mknod -m 666 $ObjPath/dev/ttyp3 c 3 3
mknod -m 666 $ObjPath/dev/ttyp4 c 3 4
mknod -m 666 $ObjPath/dev/ttyp5 c 3 5
mknod -m 666 $ObjPath/dev/ttyp6 c 3 6
mknod -m 666 $ObjPath/dev/ttyp7 c 3 7
cp -dpR /dev/console $ObjPath/dev/console
cp -dpR /dev/fd $ObjPath/dev/fd
cp -dpR /dev/stdin $ObjPath/dev/stdin
cp -dpR /dev/stdout $ObjPath/dev/stdout
cp -dpR /dev/stderr $ObjPath/dev/stderr
cp -dpR /dev/full $ObjPath/dev/full
cp -dpR /dev/core $ObjPath/dev/core
cp -dpR /dev/mem $ObjPath/dev/mem
cp -dpR /dev/null $ObjPath/dev/null
cp -dpR /dev/ptmx $ObjPath/dev/
cp -dpR /dev/pts $ObjPath/dev/
cp -dpR /dev/initctl $ObjPath/dev/
cp -dpR /dev/ram $ObjPath/dev/
cp -dpR /dev/ramdisk $ObjPath/dev/
cp -dpR /dev/ram[0-1] $ObjPath/dev/
cp -dpR /dev/tty $ObjPath/dev/tty
cp -dpR /dev/ttyS[0-3] $ObjPath/dev/
cp -dpR /dev/tty[0-3] $ObjPath/dev/
cp -dpR /dev/zero $ObjPath/dev/zero
cp -dpR /dev/random $ObjPath/dev/random
cp -dpR /dev/urandom $ObjPath/dev/urandom
mknod -m 644 $ObjPath/dev/rtc c 10 135
mknod -m 644 $ObjPath/dev/mtd0 c 90 0
mknod -m 644 $ObjPath/dev/mtd1 c 90 2
mknod -m 644 $ObjPath/dev/mtd2 c 90 4
mknod -m 644 $ObjPath/dev/mtd3 c 90 6
mknod -m 644 $ObjPath/dev/mtd4 c 90 8
mknod -m 644 $ObjPath/dev/mtd5 c 90 10
mknod -m 644 $ObjPath/dev/mtdblock0 b 31 0
mknod -m 644 $ObjPath/dev/mtdblock1 b 31 1
mknod -m 644 $ObjPath/dev/mtdblock2 b 31 2
mknod -m 644 $ObjPath/dev/mtdblock3 b 31 3
mknod -m 644 $ObjPath/dev/mtdblock4 b 31 4
mknod -m 644 $ObjPath/dev/mtdblock5 b 31 5
#ln -s mtd0 Boot
#ln -s mtd1 U-Boot
#ln -s mtd2 Reserved
#ln -s mtd3 UImage
#ln -s mtd4 Ramdisk
#ln -s mtd5 Modules
#ln -s mtdblock0 Boot_b
#ln -s mtdblock1 U-Boot_b
#ln -s mtdblock2 Reserved_b
#ln -s mtdblock3 uImage_b
#ln -s mtdblock4 RamDisk_b
#ln -s mtdblock5 Modules_b
#mknod -m 666 $ObjPath/dev/usb c 228 0
#mknod -m 666 $ObjPath/dev/ECC c 220 0
#mknod -m 666 $ObjPath/dev/keylib c 223 0
#mknod -m 666 $ObjPath/dev/gpio c 224 0
#mknod -m 666 $ObjPath/dev/ssx30f c 227 0
######################################################
echo "Create /etc"
######################################################
cp /etc/mime.types $ObjPath/etc/
cat > $ObjPath/etc/group <<EOF
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin
tty:x:5:
lp:x:7:daemon
mem:x:8:
kmem:x:9:
ftp:x:50:
nobody:x:99:
nogroup:x:99:
users:x:100:
EOF
######################################################
cat > $ObjPath/readme_jnsec <<EOF
user init file: /jnsec/jnsec_sysinit.sh
get file: tftp -g -r FileName -l FileName <tftp server IP>
eraseall the mtd disk: flash_erase /dev/mtd2 0 0
EOF
######################################################
cat > $ObjPath/etc/host.conf <<EOF
order hosts,bind
EOF
######################################################
cat > $ObjPath/etc/hosts <<EOF
127.0.0.1 localhost
EOF
######################################################
cat > $ObjPath/etc/prit <<EOF
EOF
######################################################
cat > $ObjPath/etc/inittab <<EOF
#
::sysinit:/etc/init.d/rcS
::restart:/sbin/init
::shutdown:/bin/umount -a -r
#::respawn:/bin/login ttyS0
#::respawn:/bin/login root
ttyS0::respawn:/bin/sh
#::respawn:/usr/sbin/boa
EOF
cp -dpR /etc/localtime $ObjPath/etc/localtime
> $ObjPath/etc/mtab
> $ObjPath/etc/hosts.deny
> $ObjPath/etc/hosts.allow
######################################################
cat > $ObjPath/etc/nsswitch.conf <<EOF
passwd: files
shadow: files
group: files
hosts: files dns
ethers: files
netmasks: files
networks: files
protocols: files
services: files
EOF
######################################################
cat > $ObjPath/etc/passwd <<EOF
root:x:0:0:root:/:/bin/sh
bin:x:1:1:bin:/bin:
daemon:x:2:2:daemon:/sbin:
halt:x:7:0:halt:/sbin:/sbin/halt
ftp:x:14:50:FTP User:/
nobody:x:99:99:Nobody:/:
EOF
######################################################
> $ObjPath/etc/profile
######################################################
cat > $ObjPath/etc/protocols <<EOF
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group multicast protocol
ggp 3 GGP # gateway-gateway protocol
tcp 6 TCP # transmission control protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
idp 22 IDP # WhatsThis?
raw 255 RAW # RAW IP interface
EOF
cat > $ObjPath/etc/init.d/rcS <<EOF
#!/bin/sh
/bin/mount -t proc proc /proc
/bin/mount -t devpts devpts /dev/pts
/usr/sys_start.sh
EOF
chmod 755 $ObjPath/etc/init.d/rcS
cat > $ObjPath/usr/sys_start.sh <<EOF
#!/bin/sh
ifconfig eth0 120.4.6.201
ifconfig eth0 netmask 255.255.255.0
ifconfig lo 127.0.0.1
mount -t jffs2 /dev/mtdblock2 /jnsec_conf
mount -t jffs2 /dev/mtdblock3 /jnsec
#telnetd
#/usr/sbin/xinetd -stayalive -reuse -pidfile /tmp/xinetd.pid
#telnetd password: hsm@jn06.china
#telnetd password: 123456
#login
if [ -f /jnsec/jnsec_sysinit.sh ]
then
echo Init JNSEC System
chmod +x /jnsec/jnsec_sysinit.sh
/jnsec/jnsec_sysinit.sh
fi
#login
#date -s 080800002008
EOF
chmod 755 $ObjPath/usr/sys_start.sh
######################################################
cat > $ObjPath/etc/resolv.conf <<EOF
nameserver 192.168.126.1
EOF
######################################################
cat > $ObjPath/etc/securetty <<EOF
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
pts/6
pts/7
pts/8
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
ttyS0
ttyS1
console
ttyp0
ttyp1
ttyp2
ttyp3
ttyp4
ttyp5
ttyp6
ttyp7
EOF
######################################################
cat > $ObjPath/etc/services <<EOF
#
tcpmux 1/tcp
echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users
daytime 13/tcp
daytime 13/udp
chargen 19/tcp ttytst source
chargen 19/udp ttytst source
ftp-data 20/tcp
ftp 21/tcp
telnet 23/tcp
smtp 25/tcp mail
time 37/tcp timserver
time 37/udp timserver
name 42/udp nameserver
whois 43/tcp nicname
domain 53/tcp
domain 53/udp
bootps 67/udp
bootpc 68/udp
tftp 69/udp
http 80/tcp
www 80/tcp
hostnames 101/tcp hostname
EOF
######################################################
cat > $ObjPath/etc/shells <<EOF
/bin/sh
/bin/ash
/bin/bash
EOF
######################################################
cat > $ObjPath/etc/xinetd.conf <<EOF
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/
defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}
includedir /etc/xinetd.d
EOF
#root passwd: hsm@jn06.china
#root passwd: 123456
######################################################
cat > $ObjPath/etc/shadow <<EOF
root:KJpI/l1Gr9RBQ:16315:0:99999:7:::
#root:\$1\$6zBgZkHS\$hCdfmrAh3xVJliAEzsNrw.:13334:0:99999:7:::
#root:\$1\$D.nfqR83\$IRUzPR5pXqm5LOP/jdEMC.:13334:0:99999:7:::
bin:*:13222:0:99999:7:::
daemon:*:13222:0:99999:7:::
adm:*:13222:0:99999:7:::
lp:*:13222:0:99999:7:::
sync:*:13222:0:99999:7:::
shutdown:*:13222:0:99999:7:::
halt:*:13222:0:99999:7:::
news:*:13222:0:99999:7:::
operator:*:13222:0:99999:7:::
ftp:*:13222:0:99999:7:::
nobody:*:13222:0:99999:7:::
EOF
######################################################
cat > $ObjPath/etc/pam.d/chfn <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/chsh <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/ftp <<EOF
#%PAM-1.0
auth required /lib/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_shells.so
account required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/kbdrate <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
auth required /lib/security/pam_console.so
account required /lib/security/pam_permit.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/login <<EOF
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/other <<EOF
#%PAM-1.0
auth required /lib/security/pam_deny.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_deny.so
session required /lib/security/pam_deny.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/passwd <<EOF
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rexec <<EOF
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rlogin <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/rsh <<EOF
#%PAM-1.0
auth required /lib/security/pam_rhosts_auth.so
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
EOF
######################################################
cat > $ObjPath/etc/pam.d/ssh <<EOF
#%PAM-1.0
auth required pam_nologin.so
auth required pam_unix.so
auth required pam_env.so # [1]
account required pam_unix.so
session required pam_unix.so
session optional pam_lastlog.so # [1]
session optional pam_motd.so # [1]
session optional pam_mail.so standard noenv # [1]
session required pam_limits.so
password required pam_unix.so
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5
EOF
######################################################
cat > $ObjPath/etc/pam.d/su <<EOF
#%PAM-1.0
auth sufficient /lib/security/pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth sufficient /lib/security/pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth required /lib/security/pam_wheel.so use_uid
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_xauth.so
EOF
######################################################
cat > $ObjPath/etc/pam.d/system-auth <<EOF
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth sufficient /lib/security/pam_unix.so likeauth nullok md5
auth required /lib/security/pam_deny.so
account sufficient /lib/security/pam_unix.so
account required /lib/security/pam_deny.so
password required /lib/security/pam_cracklib.so retry=3
password sufficient /lib/security/pam_unix.so nullok use_authtok md5
password required /lib/security/pam_deny.so
session required /lib/security/pam_unix.so
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/ftpd <<EOF
# description: The FTP server serves FTP connections.
# It uses normal, unencrypted usernames and passwords for authentication.
service ftp
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/ssh <<EOF
service ssh
{
socket_type = stream
wait = no
user = root
server = /usr/sbin/in.ftpd
server_args = -l -a
log_on_success += DURATION USERID
log_on_failure += USERID
nice = 10
disable = no
}
EOF
######################################################
cat > $ObjPath/etc/xinetd.d/telnet <<EOF
# default: on
# description: The telnet server serves telnet sessions;
# it uses unencrypted username/password pairs for authentication.
service telnet
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/sbin/telnetd
# server_args = -h
log_on_failure += USERID
}
EOF
chmod 600 $ObjPath/etc/securetty
chmod 600 $ObjPath/etc/shadow
chmod 600 $ObjPath/etc/xinetd.conf
######################################################
echo "Create /lib"
cp -dpR /AT91SAM9X25/arm-2010q1/arm-none-linux-gnueabi/libc/lib/* $ObjPath/lib
mkdir $ObjPath/lib/modules/
/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/lib/*.so
#/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/lib/security/*.so
#/AT91SAM9X25/arm-2010q1/bin/arm-none-linux-gnueabi-strip $ObjPath/usr/local/lib/iptables/*.so
######################################################
cd /
umount $ObjPath
rm -f /tmp/initrd.img.gz
echo "Zip initrd.img Begin...."
gzip -v9 /tmp/initrd.img
ls -l /tmp/initrd.img.gz
rm -rf $RootfsPath/initrd
rm $RootfsPath/ramdisk_9x25.gz
mv /tmp/initrd.img.gz $RootfsPath/ramdisk_9x25.gz
ls -l $RootfsPath/ramdisk_9x25.gz
echo "$RootfsPath/ramdisk_9x25.gz OK"
echo ""
echo "Ramdisk for ARM9x25 Create OK."
echo ""